PT09IHJlbGVhc2UgMS42LjAgPT09CgoyMDE1LTA5LTI1ICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0Bjb2F4aW9uLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgcmVsZWFzaW5nIDEuNi4wCgoyMDE1LTA5LTI1IDEwOjE4OjA3ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cGNsb2NrOiBGaXggZXJyb3IgbGVhayBkdXJpbmcgZmFpbHVyZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTYwNwoKMjAxNS0wOS0yMSAxMzo1ODo1MSArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+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/aWQ9NzM2NDU1CgoyMDE0LTA5LTA5IDIwOjQzOjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBtaW5vciBkb2NzIGZpeAoKMjAxNC0wOS0wMyAxNzozODoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkgIGRldmljZW1vbml0b3I6IGZpeCB0eXBvIGluIHNhbXBsZSBjb2RlIGluIGRvY3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTk3NQoKMjAxNC0wOC0yNSAxMTozNDo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBhZGQgZmx1c2gtc3RvcCBvbiBpbmFjdGl2ZSBwYWQgdGVzdAoJICBDaGVjayB0aGF0IHB1c2hpbmcgZmx1c2gtc3RvcCBvbiBhbiBpbmFjdGl2ZSBwYWQgZG9lcyBub3QgY2xlYXIgdGhlCgkgIGZsdXNoaW5nIGZsYWcuCgoyMDE0LTA4LTIxIDE1OjQ5OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBhY2NlcHQgZmx1c2gtc3RvcCBvbiBpbmFjdGl2ZSBwYWRzCgkgIEluYWN0aXZlIHBhZHMgc2hvdWxkIGF0IGFsbCB0aW1lcyBoYXZlIHRoZSBmbHVzaGluZyBmbGFnIHNldC4gVGhpcyBtZWFucwoJICB0aGF0IHdoZW4gd2UgZ2V0IGEgZmx1c2gtc3RvcCBvbiBhbiBpbmFjdGl2ZSBwYWQgd2UgbXVzdCBpZ25vcmUgaXQuCgkgIE9uIHNpbmtwYWRzLCBtYWtlIHRoaXMgbW9yZSBleHBsaWNpdC4gV2UgdXNlZCB0byBub3QgY2xlYXIgdGhlIGZsdXNoCgkgIGZsYWcgYnV0IHJlbW92ZSB0aGUgZXZlbnRzIGFuZCB0aGVuIHJldHVybiBhbiBlcnJvciBiZWNhdXNlIHRoZSBmbHVzaGluZwoJICBmbGFnIHdhcyBzZXQuIE5vdyBqdXN0IHNpbXBseSByZWZ1c2UgdGhlIGV2ZW50IHdpdGhvdXQgZG9pbmcgYW55dGhpbmcuCgkgIE9uIHNyY3BhZHMsIGNoZWNrIHRoYXQgd2UgYXJlIHRyeWluZyB0byBwdXNoIGEgZmx1c2gtc3RvcCBldmVudCBhbmQKCSAgcmVmdXNlIGl0LiBXZSB3b3VsZCBhbGxvdyB0aGlzIGFuZCBtYXJrIHRoZSBzcmNwYWQgYXMgbm9uLWZsdXNoaW5nCgkgIGFueW1vcmUuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzUzNTcKCjIwMTQtMDgtMjcgMTc6MDY6NTcgKzA1MzAgIFJhdmkgS2lyYW4gSyBOIDxyYXZpLmtpcmFuQHNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXQtc2VsZWN0b3I6IFNlbmQgYWxsIGV2ZW50cyB0byBhY3RpdmUgc3JjIHBhZCBhbmQgRU9TIHRvIGFsbCBzcmMgcGFkcwoJICBGaXhlcyB0ZXN0cy9pY2xlcy9vdXRwdXQtc2VsZWN0b3ItdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5ODExCgoyMDE0LTA4LTI4IDE3OjI0OjU2ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IGZpeCB0eXBvIGluIGFkdmFuY2VkLWRhdGFhY2Nlc3MueG1sCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzU2MDkKCjIwMTQtMDgtMjYgMjA6MTQ6NDAgKzAyMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGRvIG5vdCB0b3VjaCBtZW1vcnkgdGFnIGZsYWcgd2hlbiBjb3B5aW5nIGJ1ZmZlciBmbGFncwoJICBUaGUgdGFnIG1lbW9yeSBmbGFnIHdpbGwgYmUgc2V0IGxhdGVyIGlmIHRoZSBtZW1vcnkgaXMgYWxzbyBjb3BpZWQuIFRoaXMKCSAgcGF0Y2ggYXZvaWRzIGJ1ZmZlcnMgYmVpbmcgZnJlZWQgbmVlZGxlc3NseSBpbiBidWZmZXJwb29scy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTU3NAoKMjAxNC0wNy0xNSAxNjowNjo0OSArMDIwMCAgTGludXMgU3ZlbnNzb24gPGxpbnVzcC5zdmVuc3NvbkBnbWFpbC5jb20+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+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3NwYXJzZWZpbGUuYzoKCSAgc3BhcnNlZmlsZTogSW5pdGlhbGl6ZSBtZW1vcnkgaW4gdW5pdCB0ZXN0IHRvIG1ha2UgdmFsZ3JpbmQgaGFwcHkKCSAgV2Ugd2VyZSB3cml0aW5nIHVuaXRpYWxpemVkIHN0YWNrIG1lbW9yeSB0byB0aGUgZmlsZS4KCj09PSByZWxlYXNlIDEuMy45MCA9PT0KCjIwMTQtMDYtMjggMTA6NDU6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4zLjkwCgoyMDE0LTA2LTI4IDEwOjQxOjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNC0wNi0yNyAxMDo0NDozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkZXZpY2UuYzoKCSAgZGV2aWNlbW9uaXRvcjogZG9uJ3QgZmFpbCB3aGVuIHN0YXJ0ZWQgd2l0aG91dCBhbnkgZmlsdGVycwoJICBKdXN0IHNob3cgYWxsIGRldmljZXMgdGhlbi4KCjIwMTQtMDYtMjcgMTA6NDQ6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5LmM6CgkgIGRldmljZXByb3ZpZGVyZmFjdG9yeTogaGFuZGxlIE5VTEwgY2xhc3NlcyBhcmd1bWVudCBhbmQgbWF0Y2ggYW55CgoyMDE0LTA2LTI2IDIxOjAwOjQwIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGV2aWNlLmM6CgkgIGRldmljZTogQWRkIHVuaXQgdGVzdHMKCjIwMTQtMDYtMjYgMTc6MjI6MjUgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBkZXZpY2Vtb25pdG9yOiBJbXByb3ZlIGRvY3VtZW50YXRpb24KCjIwMTQtMDYtMjYgMTc6MTM6MTIgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZXZpY2Vtb25pdG9yOiBNYWtlIGl0IHBvc3NpYmxlIHRvIGFkZCBtdWx0aXBsZSBmaWx0ZXJzCgkgIEVhY2ggZmlsdGVyIHdpbGwgaW5jbHVkZSBhIEdzdENhcHMgYW5kIGEgc2V0IG9mIGNsYXNzZXMgdG8gbWF0Y2gKCjIwMTQtMDYtMjYgMTY6MzE6NTEgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkgIGRldmljZTogQWRkIHByZS1jb25kaXRpb25zCgoyMDE0LTA2LTI2IDE1OjA4OjQ2IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBHc3REZXZpY2VNb25pdG9yOiBSZW5hbWUgZnJvbSBHc3RHbG9iYWxEZXZpY2VNb25pdG9yCgoyMDE0LTA2LTI2IDE0OjI4OjA5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvcmZhY3RvcnkuaDoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5oOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5LmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuaDoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmg6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBEZXZpY2VQcm92aWRlcjogUmVuYW1lIGZyb20gRGV2aWNlTW9uaXRvcgoKMjAxNC0wNi0yNiAxOTozMTozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGRhdGFxdWV1ZTogSGlkZSBmcm9tIGJpbmRpbmdzCgkgIE90aGVyIGxhbmd1YWdlcyBoYXZlIHRoZWlyIG93biBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgbW9yZSBjb252ZW5pZW50IHRvCgkgIHVzZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTMwMwoKMjAxNC0wNi0yNiAxOTozMDo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuaDoKCSAgcXVldWVhcnJheTogSGlkZSBmcm9tIGJpbmRpbmdzCgkgIE90aGVyIGxhbmd1YWdlcyBoYXZlIHRoZWlyIG93biBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgbW9yZSBjb252ZW5pZW50IHRvIHVzZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTM1MAoKMjAxNC0wNS0yOCAxMDoxNDo0NSArMDEwMCAgUGhpbGlwIFdpdGhuYWxsIDxwaGlsaXAud2l0aG5hbGxAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogQWRkIG1pc3NpbmcgKG51bGxhYmxlKSBhbm5vdGF0aW9ucwoJICBnc3RfbWluaV9vYmplY3RfcmVwbGFjZSgpIGNhbiB0YWtlIE5VTEwgbWluaS1vYmplY3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwODczCgoyMDE0LTA2LTI2IDE5OjAyOjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogQXBwbGljYXRpb24gYW5kIGVsZW1lbnQgbWVzc2FnZXMgc2hvdWxkIG5vdCBoYXZlIE5VTEwgc3RydWN0dXJlcwoJICBJdCBkb2VzIG5vdCBtYWtlIHNlbnNlIGZvciB0aGVtLgoKMjAxNC0wNi0xMSAxNjoxOTowMSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgaW50cm9zcGVjdGlvbjogYWRkIHNvbWUgbWlzc2luZyBhbGxvdy1ub25lIGFubm90YXRpb25zIHRvIGluIHBhcmFtcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwOTU3CgoyMDE0LTA2LTExIDE2OjA2OjE5IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBpbnRyb3NwZWN0aW9uOiBhZGQgbnVsbGFiaWxpdHkgYW5ub3RhdGlvbnMgdG8gb3V0IGFuZCBpbm91dCBwYXJhbXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDk1NwoKMjAxNC0wNi0xMSAxNToyMTozNCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGludHJvc3BlY3Rpb246IGFkZCBtaXNzaW5nIChudWxsYWJsZSkgYW5ub3RhdGlvbnMgdG8gcmV0dXJuIHZhbHVlcwoJICBTdXBwb3J0IGZvciAobnVsbGFibGUpIHdhcyBhZGRlZCB0byBHLUkgYXQgdGhlIHNhbWUgdGltZSBhcyBudWxsYWJsZQoJICByZXR1cm4gdmFsdWVzLiAgUHJldmlvdXMgdmVyc2lvbnMgb2YgRy1JIHdpbGwgbm90IG1hcmsgcmV0dXJuIHZhbHVlcyBhcwoJICBudWxsYWJsZSwgZXZlbiB3aGVuIGFuIChhbGxvdy1ub25lKSBhbm5vdGF0aW9uIGlzIHByZXNlbnQsIHNvIGl0IGlzCgkgIG5vdCBuZWNlc3NhcnkgdG8gYWRkIChhbGxvdy1ub25lKSBhbm5vdGF0aW9ucyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoCgkgIG9sZGVyIHZlcnNpb25zIG9mIEctSS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDk1NwoKMjAxNC0wNi0xMSAxNzoxNTozOSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIGJhc2U6IGFzc29ydGVkIGludHJvc3BlY3Rpb24gZml4ZXMgYW5kIGFkZGl0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNTQyCgoyMDE0LTA2LTExIDE3OjEyOjIwIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIGJhc2U6IGFkZCAobnVsbGFibGUpIGFubm90YXRpb25zIHRvIHJldHVybiB2YWx1ZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTU0MgoKMjAxNC0wNi0yNiAxNDowODowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkgIHRlc3RzOiBhZGQgYW5vdGhlciBidWZmZXIgbGlzdCB0ZXN0IGNhc2UKCjIwMTQtMDYtMjYgMTM6MjQ6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJICB0ZXN0czogcG9ydCBhbmQgcmUtZW5hYmxlIGJ1ZmZlciBsaXN0IHRlc3RzCgkgIEFuZCByZW1vdmUgc29tZSB3aGljaCBkb24ndCBhcHBseSBhbnkgbW9yZS4KCjIwMTQtMDYtMjYgMTE6NTg6MDQgKzAzMDAgIEdlb3JnZSBLaWFnaWFkYWtpcyA8Z2VvcmdlLmtpYWdpYWRha2lzQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB0ZXN0czogZW5oYW5jZSB0aGUgZ3N0Y2FwcyB0ZXN0X2ZlYXR1cmVzIHRvIGFsc28gdGVzdCBnc3RfY2Fwc19zZXRfZmVhdHVyZXMoKQoJICBDb21wbGltZW50cyBteSBwcmV2aW91cyBwYXRjaCBmb3IgZ3N0X2NhcHNfc2V0X2ZlYXR1cmVzLCB3aGljaCB3b3VsZAoJICBwcmV2aW91c2x5IGFzc2VydCBhbmQgbGVhayB0aGUgb2xkIEdzdENhcHNGZWF0dXJlcyBpZiB0aGUgY2FwcyBhbHJlYWR5CgkgIGhhZCBhIEdzdENhcHNGZWF0dXJlcyBhbmQgeW91IHdlcmUgdHJ5aW5nIHRvIHJlcGxhY2UgaXQgd2l0aCBhIG5ldyBvbmUuCgoyMDE0LTA2LTI2IDExOjE2OjM0ICswMzAwICBHZW9yZ2UgS2lhZ2lhZGFraXMgPGdlb3JnZS5raWFnaWFkYWtpc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogdW5zZXQgdGhlIHBhcmVudCByZWZjb3VudCBvZiB0aGUgb2xkIGZlYXR1cmVzIGJlZm9yZSBmcmVlaW5nIHRoZW0gaW4gZ3N0X2NhcHNfc2V0X2ZlYXR1cmVzKCkKCSAgT3RoZXJ3aXNlIGdzdF9jYXBzX2ZlYXR1cmVzX2ZyZWUoKSBhc3NlcnRzIGFuZCB0aGUgZmVhdHVyZXMgc3RydWN0dXJlIGlzIGxlYWtlZAoKMjAxNC0wNi0xNiAxOTozMDowNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGF2b2lkIHJldHVybmluZyBfT0sgZm9yIF9OT1RfTElOS0VECgkgIFdoZW4gdGhlIHBhcnNlciByZWNlaXZlcyBub24tYWxpZ25lZCBwYWNrZXRzIGl0IGNhbiBwdXNoIGEgYnVmZmVyCgkgIGFuZCBnZXQgYSBub3QtbGlua2VkIHJldHVybiB3aGlsZSBzdGlsbCBsZWF2aW5nIHNvbWUgZGF0YSBzdGlsbCB0bwoJICBiZSBwYXJzZWQuIFRoaXMgcmVtYWluaW5nIGRhdGEgd2lsbCBub3QgZm9ybSBhIGNvbXBsZXRlIGZyYW1lIGFuZAoJICB0aGUgc3ViY2xhc3MgbGlrZWx5IHJldHVybnMgX09LIGFuZCBiYXNlcGFyc2Ugd291bGQgdGFrZSB0aGF0CgkgIGFzIHRoZSByZXR1cm4sIHdoaWxlIGl0IHRoZSBlbGVtZW50IGlzIGFjdHVhbGx5IG5vdC1saW5rZWQuCgkgIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBieSBzdG9yaW5nIHRoZSBsYXN0IGZsb3ctcmV0dXJuIGZyb20gYSBwdXNoCgkgIGFuZCB1c2luZyB0aGF0IGlmIGEgcGFyc2luZyBvcGVyYXRpb24gZG9lc24ndCByZXN1bHQgaW4gZGF0YSBiZWluZwoJICBmbHVzaGVkIG9yIHNraXBwZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzE0NzQKCjIwMTQtMDYtMjUgMTE6NDA6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzX3ByaXZhdGUuYzoKCSAgZWxlbWVudHM6IGZpeCBjb3B5cmlnaHQgYW5kIHJlbW92ZSBndGstZG9jIGNodW5rCgkgIFRyaXZpYWwgYXMgaXQgbWF5IGJlLCB0aGlzIGNvZGUgd2FzIG1vc3RseSBjb3BpZWQgZnJvbQoJICBzb21ld2hlcmUgZWxzZS4gVGhlIGd0ay1kb2MgY2h1bmsgaXMgbm90IG5lZWRlZCwgc2luY2UKCSAgaXQncyBub3QgcHVibGljIEFQSS4KCjIwMTQtMDYtMDIgMjI6MDc6NTIgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogSWdub3JlIHNlZWsgZXJyb3Igb24gbm9uLXNlZWthYmxlIGZpbGVzCgkgIFRoaXMgbWFrZSBpdCB3b3JrcyB3aXRoIEZJRk9zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMTc2CgoyMDE0LTA2LTIyIDE5OjM2OjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjMuMyA9PT0KCjIwMTQtMDYtMjIgMTg6MDc6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4zLjMKCjIwMTQtMDYtMjIgMTc6MTU6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE0LTA2LTIyIDE0OjIzOjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9zci5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE0LTA2LTIyIDEyOjUyOjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIGdzdF9jYXBzX2lzX2FueSgpIGFuZCBfaXNfZW1wdHkoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8vc2hvd19idWcuY2dpP2lkPTczMTcwNAoKMjAxNC0wNi0yMiAxMjo1MDo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGdzdF9jYXBzX2lzX2FueSgpIHNob3VsZCByZXR1cm4gVFJVRSBvciBGQUxTRQoJICBOb3Qgc29tZSBmbGFnIHZhbHVlIGluc3RlYWQgb2YgVFJVRS4gRml4ZXMgY29kZSBsaWtlCgkgIGdzdF9jYXBzX2lzX2FueSgpID09IFRSVUUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNzA0CgoyMDE0LTA2LTAxIDE2OjU2OjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZXZpY2U6IHJlbmFtZSAia2xhc3MiIGFuZCBnZXRfa2xhc3MoKSB0byAiZGV2aWNlLWNsYXNzIiBhbmQgX2dldF9kZXZpY2VfY2xhc3MoKQoJICBUaGVyZSdzIHNvbWUgcHJlY2VkZW50IGluIEdzdEVsZW1lbnRGYWN0b3J5LCBidXQgYQoJICAia2xhc3MiIHByb3BlcnR5IGp1c3Qgc2VlbXMgd2VpcmQuCgoyMDE0LTA2LTIwIDE4OjM0OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJICBiZW5jaG1hcmtzOiBjYXBzbmVnbzogYWRkIC0tbG9vcHMgY29tbWFuZCBsaW5lIG9wdGlvbgoJICBBbmQgZGVmYXVsdCB0byA1MCBsb29wcy4KCjIwMTQtMDYtMjAgMTc6MTQ6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkgIGJlbmNobWFyazogY2Fwc25lZ286IHVzZSBHT3B0aW9uQ29udGV4dCBmb3Igb3B0aW9uIHBhcnNpbmcKCjIwMTQtMDYtMTkgMTI6MTA6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdGVzdHM6IGZpeCBjb21waWxlciB3YXJuaW5ncyBpbiBnc3R2YWx1ZSB0ZXN0cwoJICBDYWxsaW5nIEdTVF9WQUxVRV9IT0xEU18qKCZ2KSBub3cgcmVzdWx0cyBpbiBhIGNvbXBpbGVyCgkgIHdhcm5pbmcgYWJvdXQgdmFsdWUhPU5VTEwgYWx3YXlzIGJlaW5nIGZhbHNlLCBzbyBjaGVjawoJICB0eXBlIGRpcmVjdGx5IGluIHRob3NlIGNhc2VzLgoKMjAxNC0wNi0xNyAyMjo0NTo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgdmFsdWU6IHNpbXBsaWZ5IEdTVF9WQUxVRV9IT0xEUyBmb3Igb3VyIGJveGVkIGFuZCBmdW5kYW1lbnRhbCB0eXBlcwoJICBCb3hlZCB0eXBlcyBjYW4ndCBiZSBkZXJpdmVkIGZyb20sIGFuZCB3ZSBkb24ndCBzdXBwb3J0CgkgIGRlcml2aW5nIGZyb20gb3VyIHNwZWNpYWwgZnVuZGFtZW50YWwgdHlwZXMgKHRoZSBjb2RlCgkgIGNoZWNrcyBmb3IgR1R5cGUgZXF1YWxpdHkgaW4gbW9zdCBwbGFjZXMuCgoyMDE0LTA2LTIwIDE2OjU1OjA2IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlLmg6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5oOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBHc3REZXZpY2U6IERvY3VtZW50IEdzdERldmljZSBhbmQgcmVsYXRlZCBjbGFzc2VzCgoyMDE0LTA2LTE2IDEzOjQ3OjU1ICswMjAwICBTcmltYW50YSBQYW5kYSA8c3JpbWFudGEucGFuZGFAYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgRml4IGZ1bm5lbCBFT1MgaGFuZGxpbmcgYW5kIHdyb25nIHVuaXR0ZXN0CgkgIFdoZW4gbm8gZGF0YSBpcyBjb21pbmcgZnJvbSBzaW5rcGFkcyBhbmQgZW9zIGV2ZW50cwoJICBhcnJpdmVkIGF0IG9uZSBvZiB0aGUgc2lua3BhZCwgZnVubmVsIGZvcndhcmRzIHRoZSBFT1MKCSAgZXZlbnQgdG8gZG93bnN0cmVhbS4gSXQgZm9yd2FyZHMgdGhlIEVPUyBiZWNhdXNlIGxhc3RzaW5rIHBhZAoJICBpcyBOVUxMLiBBbHNvIHRoZSB1bml0IHRlc3RjYXNlIG9mIHRoZSBmdW5uZWwgaXMgbm90IGNoZWNraW5nCgkgIHRoZSBjb3JyZWN0IGJlaGF2aW9yIGFzIGl0IHNob3VsZC4gVGhlIHVuaXQgdGVzdCBjYXNlIHNob3VsZAoJICBmYWlsIGlmIG9uZSBvZiB0aGUgc2luayBwYWQgaGFzIGFscmVhZHkgRU9TIHByZXNlbnQgb24gaXQgYW5kCgkgIHdlIGFyZSB0cnlpbmcgdG8gcHVzaCBvbmUgbW9yZSBFT1MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzE3MTYKCjIwMTQtMDYtMTkgMDg6MDk6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IG9wdGltaXNlIGNoZWNrcyBmb3IgbGlzdHMKCSAgT3VyIGZ1bmRhbWVudGFsIHR5cGVzIGFyZSBub24tZGVyaXZhYmxlLCBzbyB3ZSBjYW4KCSAganVzdCBjaGVjayBmb3IgZXF1YWxpdHkuIEFsc28gYXZvaWQgZG9pbmcgdGhlIHNhbWUKCSAgY2hlY2sgbXVsdGlwbGUgdGltZXMgaW4gYSBjb3VwbGUgb2YgcGxhY2VzLgoKMjAxNC0wNi0xOSAwODowNjozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogdXNlIGdfYXNzZXJ0KCkgaW4gaW50ZXJuYWwgZnVuY3Rpb24gZm9yIGFscmVhZHktY2hlY2tlZCB0aGluZ3MKCSAgU28gdGhlc2UgZ2V0IGNvbXBpbGVkIG91dCBmb3IgcmVsZWFzZXMuCgoyMDE0LTA2LTE5IDA4OjA1OjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBhZGQgaW50ZXJuYWwgX2Nhbl9jb21wYXJlX3VuY2hlY2tlZCgpCgoyMDE0LTA2LTE5IDA4OjAzOjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBhZGQgaW50ZXJuYWwgX2xpc3RfY29uY2F0KCkgdGhhdCB0YWtlcyBvd25lcnNoaXAgb2YgaW5wdXQgdmFsdWVzCgkgIEF2b2lkcyB1bm5lY2Vzc2FyeSBjb3BpZXMuCgoyMDE0LTA2LTE4IDE5OjA2OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IHNpbXBsaWZ5IHZhbHVlIHR5cGUgY2hlY2tzIGluIGdldHRlcnMKCSAgSnVzdCBjaGVjayBmb3IgR1R5cGUgZXF1YWxpdHkgaW4gY29tbW9uIGNhc2VzLgoKMjAxNC0wNi0xOSAwOToyOToxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogQWRkIGEgRklYTUUgMi4wIGZvciBhIGZyYWN0aW9uIHJhbmdlcyBvcHRpbWl6YXRpb24KCSAgQ3VycmVudGx5IHdlIGxlYWsgdGhlIGludGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZW0gYXMgdHdvIEdWYWx1ZXMgdGhhdAoJICBjb250YWluIGEgZnJhY3Rpb24uIFdpdGhvdXQgdGhpcyB3ZSBjb3VsZCBzdG9yZSBmcmFjdGlvbiByYW5nZXMgYXMKCSAgZGF0YVswXSA9IChtaW5fbiA8PCAzMikgfCAobWluX2QpCgkgIGRhdGFbMV0gPSAobWF4X24gPDwgMzIpIHwgKG1heF9kKQoJICBhbmQgd291bGRuJ3QgcmVxdWlyZSBhbiBhZGRpdGlvbmFsIGFsbG9jYXRpb24gcGVyIHJhbmdlLgoKMjAxNC0wNi0xOSAwOToyMzo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IE1ha2Ugc3VyZSB0byBjYXN0IGludCByYW5nZSB2YWx1ZXMgdG8gZ3VpbnRzIGJlZm9yZSBzdG9yaW5nIHRoZW0KCSAgT3RoZXJ3aXNlIG5lZ2F0aXZlIHZhbHVlcyB3aWxsIHNldHMgYWxsIG9mIHRoZSA2NCBiaXRzIGR1ZSB0byB0d28ncwoJICBjb21wbGVtZW50J3MgZGVmaW5pdGlvbiBvZiBuZWdhdGl2ZSB2YWx1ZXMuCgkgIEFsc28gYWRkIGEgdGVzdCBmb3IgbmVnYXRpdmUgaW50IHJhbmdlcy4KCjIwMTQtMDYtMTkgMDc6NTc6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSBleHBvcnRzCgoyMDE0LTA2LTE5IDA5OjA1OjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBTdG9yZSBpbnRlZ2VyIHJhbmdlcyBkaXJlY3RseSBpbiBhIEdWYWx1ZSB3aXRob3V0IGFkZGl0aW9uYWwgYWxsb2NhdGlvbgoJICBNaWNybyBvcHRpbWl6YXRpb24gdG8gc2F2ZSBzb21lIGFsbG9jYXRpb25zLiBOZXh0IHN0ZXAgdG8gZG8gdGhpcwoJICB3aXRoIGZyYWN0aW9uIHJhbmdlcyB0b28uCgoyMDE0LTA2LTE5IDA4OjQzOjAyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICBnc3RfcHJpdmF0ZTogRml4IGR1cGxpY2F0ZSBkZWZpbml0aW9uCgoyMDE0LTA2LTE5IDA4OjA1OjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmg6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkgIGdzdDogU3RvcmUgbW9yZSBiYXNpYyB0eXBlIEdUeXBlcyBpbiB2YXJpYWJsZXMKCSAgTWljcm8gb3B0aW1pemF0aW9uIHRvIGNoYW5nZSBhIGZ1bmN0aW9uIGNhbGwgdG8gYSB2YXJpYWJsZSBhY2Nlc3MKCSAgZm9yIGFsbCBvdXIgYmFzaWMgdHlwZXMuCgoyMDE0LTA2LTE5IDA4OjA0OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICB2YWx1ZTogU3RvcmUgb3VyIGZ1bmRhbWVudGFsIHR5cGUgR1R5cGVzIGluIHZhcmlhYmxlcwoJICBNaWNybyBvcHRpbWl6YXRpb24gdG8gY2hhbmdlIGEgZnVuY3Rpb24gY2FsbCB0byBhIHZhcmlhYmxlIGFjY2VzcwoJICBmb3IgYWxsIG91ciBiYXNpYyB0eXBlcy4KCjIwMTQtMDYtMTcgMDc6MzE6NDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBTcGVlZCB1cCBnc3RfdmFsdWVfaW50ZXJzZWN0L19zdWJ0cmFjdAoJICBCb3RoIGdzdF92YWx1ZV9pbnRlcnNlY3QgYW5kIGdzdF92YWx1ZV9zdWJ0cmFjdCB3aWxsIGNhbGwKCSAgZ3N0X3ZhbHVlX2NvbXBhcmUgaWYgb25lIG9mIHRoZWlyIGFyZ3VtZW50cyBpc24ndCBhIGxpc3QuCgkgIGdzdF92YWx1ZV9jb21wYXJlIHdpbGwgdGhlbiByZS1kbyBhIGNoZWNrIHRvIHNlZSBpZiBvbmUgb2YKCSAgdGhlIGFyZ3VtZW50cyBpcyBhIGxpc3QgKGZvciB0aGUgc3BlY2lhbCBjYXNlIG9mIGNvbXBhcmluZyBhIHVuaXRhcnkKCSAgdmFsdWUgd2l0aCBhIGxpc3Qgb2YgbGVuZ3RoIDEpLgoJICBUaGUgcHJvYmxlbSBpcyB0aGF0IHRoZSB2YXJpb3VzIEdfVkFMVUVfSE9MRFMgcmVwcmVzZW50IGFuIGV4cGVuc2l2ZQoJICBhbW91bnQgb2YgY2FsbGluZyBnc3RfdmFsdWVfY29tcGFyZSAoYWxtb3N0IGhhbGYgb2YgaXQpIHRvIHNlZSBpZgoJICB0aGUgcHJvdmlkZWQgYXJndW1lbnRzIGFyZSBsaXN0LiBUaGVzZSBjaGVja3MgY2FuIGJlIGRvbmUgd2l0aG91dAoJICB3aGVuIHdlIGtub3cgdGhhdCB0aGUgYXJndW1lbnRzIGFyZW4ndCBsaXN0cy4KCSAgKiBDcmVhdGUgYSBuZXcgIm5vbGlzdCIgZ3N0X3ZhbHVlX2NvbXBhcmUgd2hpY2ggYXZvaWRzIHRoYXQgc3BlY2lhbAoJICBjYXNlIGNvbXBhcmlzaW9uCgkgIEJlbmNobWFya3M6CgkgIHZhbGdyaW5kL2NhbGxncmluZDogYXZlcmFnZSBzcGVlZHVwIGluIGluc3RydWN0aW9uIGNhbGxzIGZvcgoJICBnc3RfdmFsdWVfaW50ZXJzZWN0IGFuZCBnc3RfdmFsdWVfc3VidHJhY3QgaXMgYXJvdW5kIDU2JSAoTWFrZXMgNjMlCgkgIG9mIHRoZSBjYWxscyBpdCB1c2VkIHRvIHRha2UgcHJldmlvdXNseSkKCSAgdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnbzogV2l0aCBkZWZhdWx0IHNldHRpbmdzIChkZXB0aCA0LCBjaGlsZHJlbiAzCgkgIDYwNyBlbGVtZW50cyksIHRpbWUgdGFrZW4gZm9yIHRyYW5zaXRpb24gZnJvbSBSRUFEWSB0byBQQVVTRUQ6CgkgIEJlZm9yZSA6IDAwLjM5MTUxOTE1MwoJICBBZnRlciAgOiAwMC4yMjAzOTc0OTIKCSAgNTYlIG9mIHRoZSB0aW1lIHByZXZpb3VzbHkgdXNlZCwgKzc3JSBzcGVlZHVwCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzE3NTYKCjIwMTQtMDYtMTcgMTQ6Mzk6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJICB0ZXN0czogcmVtb3ZlIHNvbWUgY3J1ZnQgZnJvbSB0aGUgYnVmZmVybGlzdCB0ZXN0CgkgIEJ1ZmZlcnMgbm8gbG9uZ2VyIGNhcnJ5IGNhcHMsIGFuZCBidWZmZXJsaXN0cyBkb24ndCBoYXZlCgkgIGdyb3VwcyB3aGVyZSBidWZmZXJzIG1heSBuZWVkIHRvIGJlIG1lcmdlZCBpbnRvIG9uZSBhbnkgbW9yZS4KCjIwMTQtMDYtMTYgMjA6MzA6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJICB0ZXN0czogYWRkIHRlc3QgZm9yIGdzdF9idWZmZXJfbGlzdF9yZW1vdmUoKQoKMjAxNC0wNi0xNiAyMDoyOTo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IGZpeCBidWZmZXIgbGVhayBpbiBfcmVtb3ZlKCkKCjIwMTQtMDYtMTYgMDk6MTg6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJICBmbG93Y29tYmluZXI6IGZpeCBnLWkgdHJhbnNmZXIgYW5ub3RhdGlvbnMKCjIwMTQtMDYtMTYgMDg6NDE6NDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSAgZmxvd2NvbWJpbmVyOiBGaXhlZCBHQm94ZWRDb3B5RnVuYwoJICBJJ2xsIGp1c3QgcXVvdGUgdGhlIG1vc3QgaW50ZXJlc3RpbmcgbWFuIGluIHRoZSB3b3JsZDoKCSAgIkkgZG9uJ3QgdXN1YWxseSBwdXNoIGNvbW1pdHMsIGJ1dCB3aGVuIEkgZG8gSSBkb24ndCBjb21waWxlIGl0CgkgIGZpcnN0IgoKMjAxNC0wNi0xNCAxNjozMDo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmM6CgkgIGRldmljZW1vbml0b3I6IHNvbWUgZG9jcyBhZGRpdGlvbnMgYW5kIGZpeGVzCgoyMDE0LTA2LTE0IDE2OjI4OjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogYWRkIGV4cG9ydHMgZm9yIG5ldyBnZXRfdHlwZSgpIGZ1bmN0aW9uCgoyMDE0LTA2LTE0IDExOjMxOjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSAgZmxvd2NvbWJpbmVyOiBrZWVwIGEgcmVmIHRvIHRoZSBwYWRzIHdlJ3JlIHVzaW5nCgkgIE5lZWRlZCBmb3IgdXNlIHZpYSB0aGUgYm94ZWQgdHlwZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTM1NQoKMjAxNC0wNi0xNCAxMDo1NDo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmg6CgkgIGZsb3djb21iaW5lcjogYWRkIGJveGVkIHR5cGUgZm9yIGJpbmRpbmdzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzEzNTUKCjIwMTQtMDYtMTEgMTY6Mjg6NTEgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvcmZhY3RvcnkuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGludHJvc3BlY3Rpb246IG1pbm9yIGFubm90YXRpb24gYWRkaXRpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzE1NDEKCjIwMTQtMDYtMTEgMTk6MDg6MDQgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBpbnRyb3NwZWN0aW9uOiBpbmNsdWRlIGdzdHZlcnNpb24uaCBpbiBHSVIgZ2VuZXJhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAzMDIxCgoyMDE0LTA2LTEwIDEwOjIzOjEzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBieXRlcmVhZGVyOiBVc2UgY29uY2lzdGFudCBkZXJlZmVuY2UgbWV0aG9kCgkgIFRoaXMgaXMgbWlub3Igc3R5bGUgZml4IHRvIG5vdCBtaXggKnZhciBhbmQgdmFyW05dLgoKMjAxNC0wNi0xMCAwOTozNTozOCAtMDQwMCAgU3VuZ2hvIEJhZSA8YmF2ZXIuYmFlQGxnZS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgYnl0ZXJlYWRlcjogVXNlIHBvaW50ZXIgaW5zdGVhZCBvZiBpbmRleCBhY2Nlc3MKCSAgQ3VycmVudGx5IHRoZSBzY2FuIHVzZXMgQm95ZXItbW9vcmUgbWV0aG9kIGFuZCBpdHMgcGVyZm9ybWFuY2UgaXMgZ29vZC4KCSAgYnV0LCBpdCBjYW4gYmUgb3B0aW1pemVkIGZyb20gYW4gaW1wbGVtZW50YXRpb24gb2Ygdmlldy4KCSAgVGhlIG9yaWdpbmFsIHNjYW4gY29kZSBpcyBpbXBsZW1lbnRlZCBieSBieXRlIGFycmF5IGFuZCBpbmRleC1iYXNlZCBhY2Nlc3MuCgkgIEluIF9zY2FuX2Zvcl9zdGFydF9jb2RlKCksIHRoZSBpbmRleCBpcyBpbmNyZWFzaW5nIGZyb20gc3RhcnQgdG8gZW5kIGFuZCB0aGUKCSAgYmFzZSBhZGRyZXNzIG9mIHRoZSBieXRlIGFycmF5IGlzIHJlZmVycmVkIHRvIGFzIHJldHVybiB2YWx1ZS4KCSAgSW4gdGhlIGNhc2UsIGluZGV4LWJhc2VkIGFjY2VzcyBjYW4gYmUgcmVwbGFjZWQgYnkgcG9pbnRlciBhY2Nlc3MsIHdoaWNoCgkgIGltcHJvdmUgdGhlIHBlcmZvcm1hbmNlIGJ5IHJlbW92aW5nIGluZGV4LXJlbGF0ZWQgb3BlcmF0aW9ucy4KCSAgSXRzIHBlcmZvcm1hY2UgaXMgZW5oYW5jZWQgYnkgYXBwcm94aW1hdGVseSA4JSBvbiBhcm0tYmFzZWQgZW1iZWRkZWQgZGV2aWNlcy4KCSAgQWx0aG91Z2ggaXQgc2VlbXMgdHJpdmlhbCwgaXQgY2FuIGFmZmVjdCB0aGUgb3ZlcmFsbCBwZXJmb3JtYW5jZSBiZWNhdXNlIHRoZQoJICBfc2Nhbl9mb3Jfc3RhcnRfY29kZSgpIGZ1bmN0aW9uIGlzIHZlcnkgb2Z0ZW4gY2FsbGVkIHdoZW4gSC4yNjQvSC4yNjUgdmlkZW8gaXMKCSAgcGxheWVkLgoJICBJbiBhZGRpdGlvbiwgdGhlIHRlY2huaXF1ZSBjYW4gYXBwbHkgZm9yIGFsbCBhcmNoaXRlY3R1cmVzIGFuZCBpdCBpcyBnb29kIGluCgkgIHZpZXcgb2YgcmVhZGFiaWxpdHkgYW5kIG1haW50YWluYWJpbGl0eS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTQ0MgoKMjAxNC0wNi0wNyAxMDoxMzo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmg6CgkgIGdsb2JhbGRldmljZW1vbml0b3I6IHByZXR0aWZ5IGhlYWRlcgoKMjAxNC0wNi0wNyAwOTo0Njo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvcXVldWVhcnJheS5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgcXVldWVhcnJheSBleHBhbnNpb24gZnJvbSAxCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzEzNDkKCjIwMTQtMDYtMDYgMTY6MzY6MDAgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkgIHF1ZXVlYXJyYXk6IGZpeCBleHBhbmRpbmcgc2l6ZSBvZiBxdWV1ZSBmcm9tIDEKCSAgV2l0aG91dCB3ZSB3b3VsZCBub3QgYWN0dWFsbHkgZXhwYW5kIGFuZCBhY2Nlc3MKCSAgbWVtb3J5IGJleW9uZCB0aGUgYWxsb2NhdGVkIHJlZ2lvbiBmb3IgdGhlIGFycmF5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMzQ5CgoyMDE0LTA2LTA1IDE2OjU1OjE1IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgIGRhdGFxdWV1ZTogY2xlYXIgdXAgZG9jdW1lbnRhdGlvbiBvZiBnc3RfZGF0YV9xdWV1ZV9uZXcKCSAgVGhlIGdwb2ludGVyIGFyZ3VtZW50IGlzIHBhc3NlZCB0byBhbGwgdGhyZWUgY2FsbGJhY2tzLCBub3QganVzdCBvbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzEzMDIKCjIwMTQtMDUtMzAgMDA6MTc6MDYgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJICBpbnRyb3NwZWN0aW9uOiBmaXggc29tZSBtaW5vciBhbm5vdGF0aW9uIGJ1Z3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDk4MgoKMjAxNC0wNi0wNSAxMjozODoyMCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkgIGJhc2U6IHVzZSBjb3JyZWN0IHN5bnRheCBpbiBkb2N1bWVudGF0aW9uIG1vcmUgY29uc2lzdGVudGx5CgkgIFByZXZpb3VzbHksIG1hbnkgY29uc3RhbnRzIHdlcmUgcHJlZml4ZWQgd2l0aCAjIG9yIHVucHJlZml4ZWQsCgkgIHNvbWUgZnVuY3Rpb25zIGFuZCBtYWNyb3Mgd2VyZSBwcmVmaXhlZCB3aXRoICMgaW5zdGVhZCBvZiBzdWZmaXhlZAoJICB3aXRoICgpLCBldGMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzEyOTMKCjIwMTQtMDUtMDcgMTg6MjY6MzggKzA4MDAgIHpob3VtaW5nIDx6bWFmb3hAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBQYXNzIHJhdGUgb2YgaW5wdXQgc2VnbWVudCB0byBvdXRwdXQgc2VnbWVudAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5NzAxCgoyMDE0LTA0LTA3IDE0OjQ5OjU5ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzX3ByaXZhdGUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBnc3RidWZmZXI6IGZhY3RvciB0aHJlZSBmbGFncy10by1zdHJpbmcgbG9vcHMKCjIwMTQtMDYtMDMgMjM6NDI6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBtYWtlIHByaW50aW5nIGRhdGV0aW1lcyB3b3JrIHdpdGggR1NUX1BUUl9GT1JNQVQKCjIwMTQtMDYtMDMgMjM6Mzg6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZGF0ZXRpbWU6IGNoYW5nZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiB0byBtaW5pIG9iamVjdAoJICBBbmQgbW92ZSB0eXBlIHN0dWZmIGZyb20gR3N0VmFsdWUgdG8gR3N0RGF0ZVRpbWUuCgoyMDE0LTA2LTAzIDIyOjE5OjMzICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IGZpeCB1bmluaXRpYWxpemVkIHZhcmlhYmxlCgoyMDE0LTA2LTAzIDIyOjEyOjEzICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogaW1wcm92ZSBzdGFydC9zdG9wIGluIGJ1ZmZlcmluZyBxdWVyeQoJICBUaGUgc3RhcnQgYW5kIHN0b3Agc2hvdWxkIHJlcHJlc2VudCB0aGUgY3VycmVudGx5IGRvd25sb2FkaW5nIHJlZ2lvbi4KCSAgVGhlIGVzdGltYXRlZC10b3RhbCBzaG91bGQgcmVwcmVzZW50IHRoZSByZW1haW5pbmcgdGltZSB0byBkb3dubG9hZAoJICB0aGUgY3VycmVudGx5IGRvd25sb2FkaW5nIHJlZ2lvbi4gVGhpcyBtYWtlcyBpdCBhIGxvdCBtb3JlIHVzZWZ1bAoJICBmb3IgYXBwbGljYXRpb25zIGJlY2F1c2UgdGhleSBjYW4gdGhlbiB1c2UgdGhvc2UgdmFsdWVzIHRvIHVwZGF0ZQoJICB0aGUgZmlsbCByZWdpb24gYW5kIHVzZSB0aGUgZXN0aW1hdGVkIHRpbWUgdG8gZGVsYXkgcGxheWJhY2suCgkgIFVwZGF0ZSB0aGUgZG9jcyB3aXRoIHRoaXMgY2xhcmlmaWNhdGlvbi4KCjIwMTQtMDQtMDcgMTQ6MzU6MDQgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogYWRkIHN0YXRpYyBhbmQgY29uc3Qgd2hlcmUgYXBwcm9wcmlhdGUKCjIwMTQtMDQtMDcgMTQ6MzE6MTcgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogZml4IHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cKCSAgQ292ZXJpdHkgMTAzNzE1NQoKMjAxNC0wNi0wMyAxNDo0OTo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiByZXNldCByZWFkIGFuZCB3cml0ZSBwb3NpdGlvbnMKCSAgUmVzZXQgdGhlIHJlYWQgYW5kIHdyaXRlIHBvc2l0aW9ucyByaWdodCBhZnRlciB3ZSBvcGVuIHRoZSBmaWxlIG9yIGZsdXNoCgkgIGl0LiBXZSBhcmUgYWxzbyBpbiB0aGUgYnVmZmVyaW5nIHN0YXRlIHdpdGggMCBwZXJjZW50IGJ1ZmZlcmVkIHdoZW4gd2UKCSAgc3RhcnQuCgoyMDE0LTA2LTAzIDE0OjQ3OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGZpcnN0IGhhbmRsZSBhbGwgbWluaW9iamVjdHMsIHRoZW4gR09iamVjdHMKCSAgRmlyc3QgaGFuZGxlIGFsbCBtaW5pb2JqZWN0cyBiZWZvcmUgd2UgYXR0ZW1wdCB0byBkZXJlZmVyZW5jZSB0aGUgZmlyc3QKCSAgZmllbGQgcG9pbnRlciBhbmQgbG9vayBhdCB0aGUgR1R5cGUuIFdpdGggdGhlIHJlY2VudCBnbGliIGNoYW5nZSB0bwoJICBzcGVlZCB1cCBHX0lTX09CSkVDVCwgdGhpcyBjYXVzZXMgY3Jhc2hlcyBvbiBtaW5pb2JqZWN0cyBvdGhlcndpc2UuCgoyMDE0LTA2LTAzIDE0OjQ2OjExICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IEdzdERhdGVUaW1lIGRvZXMgbm90IGhhdmUgYSBHVHlwZSBhcyBmaXJzdCBmaWVsZAoJICBHc3REYXRlVGltZSBkb2VzIG5vdCBoYXZlIHRoZSBHVHlwZSBhcyB0aGUgZmlyc3QgZmllbGQgc28gd2UgY2FuJ3QgdXNlCgkgIGl0IHRvIGRldGVjdCBpdHMgdHlwZS4KCjIwMTQtMDYtMDMgMTQ6NDU6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogdXNlIG1hY3JvcyB0byBjaGVjayB0eXBlcwoJICBVc2UgdGhlIG1hY3JvcyB0byBjaGVjayB0aGUgdHlwZSBvZiBvYmplY3RzIGluc3RlYWQgb2YgZGlyZWN0bHkgcG9raW5nCgkgIGF0IHRoZSBmaXJzdCBmaWVsZC4KCjIwMTQtMDYtMDEgMjM6NTE6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5jOgoJICBnbG9iYWxkZXZpY2Vtb25pdG9yOiBjb25uZWN0IHN5bmMtbWVzc2FnZSBzaWduYWwgb24gdGhlIHJpZ2h0IG9iamVjdAoJICBGaXhlcyBjcml0aWNhbHMgYXQgcnVudGltZSBhbmQgbWFrZXMgc3R1ZmYgYWN0dWFsbHkgd29yay4KCjIwMTQtMDUtMzEgMTc6MzU6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogS2VlcCBzdGlsbCBtZWFuaW5nZnVsbCBwZW5kaW5nIGV2ZW50cyBvbiBGTFVTSF9TVE9QCgkgIE9ubHkgRU9TIGFuZCBzZWdtZW50IHNob3VsZCBiZSBkZWxldGVkIGluIHRoYXQgY2FzZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTg2OAoKMjAxNC0wNS0zMCAwOToxMzoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIFJldmVydCAibWluaW9iamVjdDogQWRkIG1pc3NpbmcgKG51bGxhYmxlKSBhbm5vdGF0aW9ucyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5NjM2MWU5YjVjNWQwMGRjNzcxMmZmM2E5YWNmYmUxMGRmN2NkOWZlLgoJICBUaGlzIHdhcyBub3Qgc3VwcG9zZWQgdG8gYmUgcHVzaGVkIHlldCEKCjIwMTQtMDUtMzAgMDk6MTI6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBJdCdzIHBvb2wsIG5vdCBwb28uLi4gZXZlbiB3aGVuIHRhbGtpbmcgYWJvdXQgZmx1c2hpbmcKCjIwMTQtMDUtMjggMTA6MTQ6NDUgKzAxMDAgIFBoaWxpcCBXaXRobmFsbCA8cGhpbGlwLndpdGhuYWxsQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IEFkZCBtaXNzaW5nIChudWxsYWJsZSkgYW5ub3RhdGlvbnMKCSAgZ3N0X21pbmlfb2JqZWN0X3JlcGxhY2UoKSBjYW4gdGFrZSBOVUxMIG1pbmktb2JqZWN0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDg3MwoKMjAxNC0wNS0zMCAwMTo0MjoxNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIHRlc3RzOiBtdWx0aXF1ZXVlOiBmaXggbGVha3MKCjIwMTQtMDUtMjkgMTQ6NTQ6MzQgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvcmZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZG9jczogY29udmVydCBOVUxMLCBUUlVFLCBhbmQgRkFMU0UgdG8gJU5VTEwsICVUUlVFLCBhbmQgJUZBTFNFCgkgIFRoaXMgc2hvdWxkIGhlbHAgaW1wcm92ZSBkb2N1bWVudGF0aW9uIGdlbmVyYXRlZCBmb3IKCSAgbGFuZ3VhZ2VzIG90aGVyIHRoYW4gQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDk2MQoKMjAxNC0wNS0zMCAwMDoxMzozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZG9jczogZml4IHR5cGUgaW4gR3N0T2JqZWN0IGRvY3MKCjIwMTQtMDUtMjkgMTU6MDQ6NDUgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogZml4IGdzdF9idWZmZXJfcG9vbF9oYXNfb3B0aW9uKCkgZG9jdW1lbnRhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwOTYyCgoyMDE0LTA1LTI5IDE0OjA3OjE1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHNldCBwYWRzIG5lZWQtcGFyZW50IGZsYWcgdG8gZmFsc2Ugd2hlbiByZW1vdmluZwoJICBXaGVuIGEgcGFkIGlzIGFkZGVkIHRoZSBuZWVkLXBhcmVudCBmbGFnIGlzIHNldCB0byB0cnVlLCBzbyB3aGVuCgkgIHRoZXkgYXJlIHJlbW92ZWQgdGhlIGZsYWcgc2hvdWxkIGJlIHNldCBiYWNrIHRvIGZhbHNlCgkgIFRoaXMgd2FzIHByZXZlbnRpbmcgR3N0UGFkcyB0byBiZSByZXVzZWQgaW4gZWxlbWVudHMgKHJlbW92ZWQgYW5kCgkgIGxhdGVyIHJlLWFkZGVkKS4gQSB1bml0IHRlc3RzIHdhcyBhZGRlZCB0byB2ZXJpZnkgdGhhdCB0aGlzIGlzCgkgIHdvcmtpbmcgbm93LgoJICBUaGUgdXNlIGNhc2UgaXMgdHNkZW11eCB0aGF0IGhhcyBhIHByb2dyYW0tbnVtYmVyIHByb3BlcnR5IGFuZAoJICBhbGxvd3MgdGhlIHVzZXIgdG8gc3dpdGNoIHByb2dyYW1zLiBJbiBvcmRlciB0byBkbyB0aGF0IHRzZGVtdXgKCSAgd2lsbCByZW1vdmUgdGhlIHBhZHMgb2YgdGhlIGN1cnJlbnQgcHJvZ3JhbSBhbmQgYWRkIGZyb20gdGhlIG5ldwoJICBvbmVzLiBUaGUgcmVtb3ZlZCBwYWRzIGFyZSBrZXB0IGluIHRoZSBkZW11eGVyIGZvciBsYXRlciBpZiB0aGUKCSAgdXNlciBzZWxlY3RzIHRoZSBvbGQgcHJvZ3JhbSBhZ2Fpbi4KCjIwMTQtMDUtMjcgMDg6MDk6MzYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHBvc3QgYnVmZmVyaW5nIG1lc3NhZ2Ugd2hlbiBxdWV1ZXMgZmx1c2gKCSAgVGhlIGJ1ZmZlcmluZyBzdGF0dXMgZ29lcyBiYWNrIHRvIDAsIHNvIGluZm9ybSB0aGUgYXBwbGljYXRpb24gYWJvdXQgaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNjQyMwoKMjAxNC0wNS0yOSAxNDozOTozNiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiAuZ2l0aWdub3JlOgoJICBnaXRpZ25vcmU6IElnbm9yZSBWSU0gc3dhcCBmaWxlcwoKMjAxNC0wNS0yNyAxMzozNjoyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHR3byBtaW5vciBkb2NzIGZpeGVzCgoyMDE0LTA1LTI3IDEwOjA5OjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuaDoKCSAgZmxvd2NvbWJpbmVyOiBiZWF1dGlmeSBoZWFkZXJzIGEgbGl0dGxlCgoyMDE0LTA1LTI3IDEwOjA1OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuaDoKCSAgZG9jczogYWRkIEdzdEZsb3dDb21iaW5lcgoKMjAxNC0wNS0yNyAwOTo1NToyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvYmFzZS5oOgoJICBiYXNlOiBpbmNsdWRlIGZsb3djb21iaW5lciBoZWFkZXIgZnJvbSBiYXNlLmgKCjIwMTQtMDUtMjYgMTI6MzE6MzMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbGlicy9mbG93Y29tYmluZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBmbG93Y29tYmluZXI6IGFkZCBHc3RGbG93Q29tYmluZXIKCSAgQWRkcyBhIHV0aWxpdHkgc3RydWN0IHRoYXQgaXMgY2FwYWJsZSBvZiBzdG9yaW5nIGFuZCBhZ2dyZWdhdGluZyBmbG93IHJldHVybnMKCSAgYXNzb2NpYXRlZCB3aXRoIHBhZHMuCgkgIFRoaXMgd2F5IGFsbCBkZW11eGVycyB3aWxsIGhhdmUgYSBzdGFuZGFyZCBmdW5jdGlvbiB0byB1c2UgYW5kIGhhdmUgdGhlCgkgIHNhbWUgZXhwZWN0ZWQgcmVzdWx0cy4KCSAgSW5jbHVkZXMgdGVzdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDkyMjQKCjIwMTQtMDUtMjMgMTM6MjU6MzUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogc3RvcmUgbGFzdCBmbG93IHJldHVybiBhbmQgcHJvdmlkZSBhY2Vzc29yIGZ1bmN0aW9uCgkgIFN0b3JlcyB0aGUgbGFzdCByZXN1bHQgb2YgYSBnc3RfcGFkX3B1c2ggb3IgYSBwdWxsIG9uIHRoZSBHc3RQYWQgYW5kIHByb3ZpZGVzCgkgIGEgZ2V0dGVyIGFuZCBhIG1hY3JvIHRvIGFjY2VzcyB0aGlzIGZpZWxkLgoJICBXaGVuZXZlciB0aGUgcGFkIGlzIGluYWN0aXZlIGl0IGlzIHNldCB0byBGTFVTSElORwoJICBBUEk6IGdzdF9wYWRfZ2V0X2xhc3RfZmxvd19yZXR1cm4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTIyNAoKMjAxNC0wNS0yMyAxNToyNjo1OSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcnBvb2w6IEFkZCBtZXRob2QgYW5kIHZpcnR1YWxzIHRvIHNldCBmbHVzaGluZyBzdGF0ZQoJICBDdXJyZW50bHkgdGhlcmUgaXMgbm8gb3RoZXIgd2F5IHRvIHVubG9jayBhIGJ1ZmZlciBwb29sIG90aGVyIHRoZW4KCSAgc3RvcHBpbmcgaXQuIFRoaXMgbWF5IGhhdmUgdGhlIGVmZmVjdCBvZiBmcmVlaW5nIGFsbCB0aGUgYnVmZmVycywKCSAgd2hpY2ggaXMgdG9vIGhlYXZ5IGZvciBhIHNlZWsuIFRoaXMgcGF0Y2ggYWRkIGEgbWV0aG9kIHRvIGVudGVyIGFuZAoJICBsZWF2ZSBmbHVzaGluZyBzdGF0ZS4gQXMgYSBjb252ZW5pZW5jZSwgZmx1c2hfc3RhcnQvZmx1c2hfc3RvcAoJICB2aXJ0dWFsIGFyZSBhZGRlZCBzbyBwb29sIGltcGxlbWVudGF0aW9uIGNhbiBhbHNvIHVuYmxvY2sgdGhlaXIgb3duCgkgIGludGVybmFsIHBvbGwgYXRvbWljYWxseSB3aXRoIHRoZSByZXN0IG9mIHRoZSBwb29sLiAgVGhpcyBpcyBmdWxseQoJICBiYWNrd2FyZCBjb21wYXRpYmxlIHdpdGggZG9pbmcgc3RvcC9zdGFydCB0byBhY3R1YWxseSBmbHVzaCB0aGUgcG9vbAoJICAoYXMgYmVpbmcgZG9uZSBpbiBHc3RCYXNlU3JjKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzYxMQoKMjAxNC0wNS0yNiAxNDoyMzoxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBQYXNzdGhyb3VnaCBBTExPQ0FUSU9OIHF1ZXJpZXMgaW4gcGFzc3Rocm91Z2ggbW9kZSBldmVuIGlmIHdlIGhhZCBubyBjYXBzIHlldAoJICBPciBpZiB0aGUgZWxlbWVudCBkb2VzIG5vdCBjYXJlIGFib3V0IGNhcHMgYXQgYWxsLgoJICBBbHNvIHJlbW92ZSBhbiBhc3NpZ25lZCBidXQgdW51c2VkIGxvY2FsIHZhcmlhYmxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwMjY4CgoyMDE0LTA1LTI1IDE2OjEwOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZQoKMjAxNC0wNS0yNSAxNjo1Nzo1OSArMDIwMCAgUGlvdHIgRHLEhWcgPHBpb3RyZHJhZ0BnbWFpbC5jb20+CgoJKiBwby9QT1RGSUxFUy5pbjoKCSAgcG86IHVwZGF0ZSBQT1RGSUxFUwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwNzE4CgoyMDE0LTA1LTIxIDEzOjIzOjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjMuMiA9PT0KCjIwMTQtMDUtMjEgMTM6MDY6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjMuMgoKMjAxNC0wNS0yMSAxMTozOTo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTQtMDUtMjEgMTA6NTA6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBSRUFETUU6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMjExZmE1ZiB0byAxZjVkM2MzCgoyMDE0LTA1LTE5IDExOjA1OjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBBZGQgc29tZSBwb3NpdGl2ZSB0ZXN0Y2FzZSBmb3Igc3RyaW5nIGRlc2VyaWFsaXphdGlvbgoKMjAxNC0wNS0xOCAxMDo0OTo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIFJFQURNRToKCSogZG9jcy9mYXEvZ2V0dGluZy54bWw6CgkgIGRvY3M6IHJlbW92ZSByZWZlcmVuY2UgdG8gTWFuZHJha2UgYW5kIHBhY2thZ2VzIHdlIG5vIGxvbmdlciBwcm92aWRlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzAzMTIKCjIwMTQtMDUtMTUgMTY6NDE6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSAgZG9jczogZml4IHR5cG8KCjIwMTQtMDUtMTQgMTM6NDA6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogZml4IGNvbXBpbGVyIHdhcm5pbmcgb24gd2luZG93cwoJICBnc3RwbHVnaW5sb2FkZXIuYzo1ODQ6MTogZXJyb3I6IGxhYmVsICdiZWFjaCcgZGVmaW5lZCBidXQgbm90IHVzZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDEyNQoKMjAxNC0wNS0xMyAxOTo1MTozNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzcGFyc2VmaWxlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3BhcnNlZmlsZS5oOgoJICBlbGVtZW50czogZG9uJ3QgZGVwZW5kIG9uIGxpYmdpbyBqdXN0IGZvciBnX2lvX2Vycm9yX2Zyb21fZXJybm8oKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5OTQ5CgoyMDE0LTA1LTEzIDE5OjMwOjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RzcGFyc2VmaWxlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0c3BhcnNlZmlsZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3BhcnNlZmlsZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNwYXJzZWZpbGUuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zcGFyc2VmaWxlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgc3BhcnNlZmlsZToga2VlcCBpdCBwcml2YXRlIGFzIGhlbHBlciBBUEkgZm9yIGRvd25sb2FkYnVmZmVyCgkgIFRoZXJlJ3Mgbm8gZXhwZWN0YXRpb24gdGhhdCBhbnkgb3RoZXIgZWxlbWVudCBvciBhcHBsaWNhdGlvbnMKCSAgbWlnaHQgd2FudCB0byB1c2UgdGhpcyBoZWxwZXIgQVBJIGFueSB0aW1lIHNvb24sIHNvIGtlZXAgaXQKCSAgcHJpdmF0ZSBmb3IgdGhlIHRpbWUgYmVpbmcuIFRoZXJlIHdlcmUgb3BlbiBxdWVzdGlvbnMgcmVnYXJkaW5nCgkgIHBvcnRhYmlsaXR5IGFuZCBiaW5kaW5nLWZyaWVuZGxpbmVzcyB0b28uCgkgIFRoaXMgYWxzbyByZW1vdmVzIHRoZSBnaW8gZGVwZW5kZW5jeSBvZiAtYmFzZSBhZ2Fpbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTk1MQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/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+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogQWRkIG1pc3NpbmcgYnJlYWsgYWZ0ZXIgaGFuZGxpbmcgdGhlIEdBUCBldmVudAoJICBUaGFua3MgdG8gRWR3YXJkIEhlcnZleSBmb3Igbm90aWNpbmcuCgoyMDEzLTA5LTA0IDA5OjE4OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogc2NyaXB0cy9nc3QtcGxvdC10aW1lbGluZS5weToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJICB0b29sczogbW92ZSBnc3QtcGxvdC10aW1lbGluZS5weSBpbnRvIHNjcmlwdHMgZGlyZWN0b3J5CgkgIFNvIGl0J3Mgbm90IGluIFBBVEggaW4gYW4gdW5pbnN0YWxsZWQgc2V0dXAgKHRod2FydGluZwoJICBnc3QtcGxheSBhdXRvY29tcGxldGlvbikuCgoyMDEzLTA5LTAzIDIzOjU5OjA1ICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IHJlZHVjZSBzaW5nbGUgcXVldWUgdmlzaWJsZSBzaXplIGJlbG93IGl0cyBjdXJyZW50IGxldmVsCgkgIElmIHRoZSBtdWx0aXF1ZXVlIGhhcyBhdXRvbWF0aWNhbGx5IGdyb3duIGNoYW5jZXMgYXJlIGdvb2QgdGhhdAoJICB3ZSB3aWxsIGNhdXNlIHRoZSBwaXBlbGluZSB0byBzdGFydmUgaWYgdGhlIG1heGltdW0gbGV2ZWwgaXMgcmVkdWNlZAoJICBiZWxvdyB0aGF0IGF1dG9tYXRpY2FsbHkgZ3Jvd24gc2l6ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzE1NgoKMjAxMy0wOS0wMiAxMzo1Mzo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogRG9uJ3QgYWRqdXN0IHNlZ21lbnQtPnN0YXJ0IHRvIHRoZSBjdXJyZW50IHRpbWUgd2hlbiBzd2l0Y2hpbmcgcGFkcwoJICBUaGlzIGRvZXMgbm90IG1ha2UgYW55IHNlbnNlIGF0IGFsbCBhbmQgYnJlYWtzIHRpbWVzdGFtcC0+cnVubmluZ190aW1lCgkgIGNhbGN1bGF0aW9ucyBpbiB1bnByZWRpY3RhYmxlIHdheXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDcxMzAKCjIwMTMtMDgtMjkgMjM6MTg6MzEgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAZXBpdGVjaC5ldT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBEZWxldGUgbGluayBkaXJlY3RseSBpbiBwZW5kaW5nX2V2ZW50cy4KCSAgV2hlbiByZW1vdmluZyBhIHNlZ21lbnQgZXZlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDcwODgKCjIwMTMtMDgtMjkgMTE6MDc6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBkZW1vdGUgbG9nIG1lc3NhZ2UsIGRvbid0IHNwYW0gSU5GTyBsZXZlbCB3aGVuIGhhbmRsaW5nIGJ1ZmZlciBsaXN0cwoKMjAxMy0wOC0yOCAxMzoyNjoyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjEuNCA9PT0KCjIwMTMtMDgtMjggMTI6MzY6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMS40CgoyMDEzLTA4LTI4IDEyOjM2OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEzLTA4LTI4IDEyOjMwOjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMy0wOC0yNyAwOTozMToyMiArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBwbGVhc2UgZ2NjIChhdm9pZCBhIHdhcm5fdW51c2VkX3Jlc3VsdCB3YXJuaW5nKQoKMjAxMy0wOC0yNyAwNzo1MTozNSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBmbHVzaCAoZGlzY2FyZCBkYXRhKSBvbiBGTFVTSF9TVE9QCgkgIFJlc2V0IHRoZSB3cml0ZSBwb3NpdGlvbiB0byAwIGFuZCB0cnVuY2F0ZSB0aGUgZmlsZSBvbiBGTFVTSF9TVE9QLgoKMjAxMy0wOC0yNyAwNzowNToxMSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJICB0ZXN0czogZmlsZXNpbms6IHNtYWxsIHJlZmFjdG9yaW5nCgoyMDEzLTA4LTI2IDEzOjE5OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogZ3N0LWxhdW5jaDogZG9uJ3QgcHJpbnQgcHJvcGVydGllcyBiZWluZyByZXNldCB3aGVuIHNodXR0aW5nIGRvd24KCSAgSXQncyBqdXN0IG5vaXNlLgoKMjAxMy0wOC0yMiAxOTowMTozMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRG9uJ3QgcHVzaCBvdXQgaWRlbnRpY2FsIGNhcHMKCSAgVGhpcyBhdm9pZHMgdHJpZ2dlcmluZyBwbGVudHkgb2YgZXh0cmEgY29kZS9tZXRob2RzL292ZXJoZWFkIGRvd25zdHJlYW0gd2hlbgoJICB3ZSBjYW4ganVzdCBxdWlja2x5IGNoZWNrIHdoZW5ldmVyIHdlIHdhbnQgdG8gc2V0IGNhcHMgd2hldGhlciB0aGV5IGFyZQoJICBpZGVudGljYWwgb3Igbm90CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDY2MDAKCjIwMTMtMDgtMjEgMTI6MjE6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkgIGRvY3M6IGZsZXNoIG91dCBnc3Rfc2FtcGxlX2dldF9idWZmZXIoKSBhIGxpdHRsZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2NDc4CgoyMDEzLTA4LTIwIDIzOjU5OjI5IC0wNzAwICBLZXJyaWNrIFN0YWxleSA8a2Vycmlja0BrZXJyaWNrc3RhbGV5LmNvbT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBtYWtlIGdyYW1tYXIueSB3b3JrIHdpdGggQmlzb24gMwoJICBZWUxFWF9QQVJBTSBpcyBubyBsb25nZXIgc3VwcG9ydGVkIGluIEJpc29uIDMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDY0NjIKCjIwMTMtMDgtMjAgMTc6MTU6NDEgKzA5MDAgIFdvbmNodWwgTGVlIDxjaHVsMDgxMkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkgIHNhbXBsZTogQWRkIGdzdF9zYW1wbGVfY29weSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDY0NTQKCjIwMTMtMDgtMTkgMTQ6NTU6MjIgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBGaXggZ3N0X2J1ZmZlcl9tZW1jbXAoKSB3aGVyZSB0aGUgYnVmZmVyIGlzIHNtYWxsZXIgdGhhbiBzaXplCgkgIEFsc28gYWRkIHVuaXQgdGVzdHMgZm9yIGdzdF9idWZmZXJfbWVtY21wCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDYxNjIKCjIwMTMtMDgtMjAgMTc6MDY6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZG9jczogZmxlc2ggb3V0IGdzdF9lbGVtZW50X3F1ZXJ5X3tkdXJhdGlvbixwb3NpdGlvbn0gZG9jcyBhIGJpdAoKMjAxMy0wOC0xNCAxNjoxODo1OSArMDEwMCAgTWF0dGhpZXUgQm91cm9uIDxtYXR0aGlldS5ib3Vyb25AY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IGhhbmRsZSBwdWJsaXNoZXIgYW5kIGludGVycHJldGVkLWJ5IHRhZ3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTk5OQoKMjAxMy0wOC0yMCAxMzo1ODoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IERvbid0IGNhbGwgbWVtY3B5KCkgd2l0aCBOVUxMIHNyYyBhbmQgMCBsZW5ndGgKCjIwMTMtMDgtMjAgMTA6MTY6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IFByb3Blcmx5IHVubG9jayB0aGUgc2lua3BhZCBzdHJlYW1pbmcgdGhyZWFkIHdoZW4gZGVhY3RpdmF0aW5nIHRoZSBwYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTgzNQoKMjAxMy0wOC0yMCAxMDoxNjowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBQcm9wZXJseSB1bmxvY2sgdGhlIHNpbmtwYWQgc3RyZWFtaW5nIHRocmVhZCB3aGVuIGRlYWN0aXZhdGluZyB0aGUgcGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDYzNjAKCjIwMTMtMDgtMTkgMTY6Mzg6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBDbGVhbiB1cCBhZnRlciB0aGUgc3RyZWFtaW5nIHRocmVhZCBoYXMgc3RvcHBlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1ODM1CgoyMDEzLTA4LTE5IDE2OjM4OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IENsZWFuIHVwIGFmdGVyIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGhhcyBzdG9wcGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU4MzUKCjIwMTMtMDgtMTkgMTY6Mzg6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IENsZWFuIHVwIGFmdGVyIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGhhcyBzdG9wcGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU4MzUKCjIwMTMtMDctMDEgMTQ6MDQ6NDYgLTA2MDAgIEJyZW5kYW4gTG9uZyA8Yi5sb25nQGNhYmxlbGFicy5jb20+CgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBBZGQgR1NUX0ZMQUdfTk9fU0lOR0xFX0VMRU1FTlRfQklOUwoJICBUaGlzIG1ha2VzIGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbigpIHJldHVybiBhbiBlbGVtZW50IGluc3RlYWQgb2YKCSAgYSBiaW4gaWYgdGhlcmUncyBvbmx5IG9uZSBlbGVtZW50LiBBbHNvIGNoYW5nZWQgZ3N0cGFyc2UuYyB0byB1c2UgdGhpcywKCSAgc28gZ3N0LWxhdW5jaCB3b24ndCBjcmVhdGUgc3VwZXJmbHVvdXMgYmlucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzQwNQoKMjAxMy0wOC0xNiAyMDozNjo1MyArMDIwMCAgQXJuYXVkIFZyYWMgPGF2cmFjQGZyZWVib3guZnI+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IHJldHVybiBOVUxMIHdoZW4gcGFyc2luZyB1cmkgcmVkaXJlY3Rpb24gdGhhdCB3YXMgbm90IHNldAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2MTYwCgoyMDEzLTA4LTE4IDExOjQ4OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogVXBkYXRlIHNpbmNlIG1hcmtlciBmb3IgZ3N0X2J1ZmZlcl9leHRyYWN0X2R1cCgpIHRvIDEuMC4xMAoKMjAxMy0wOC0xNiAxNjo0NTo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZG9uJ3QgY3Jhc2ggb24gRU9TIGlmIHF1ZXVlIGlzIGVtcHR5CgkgIEZpeGVzIHNwdXJpb3VzIGNyYXNoIGluIHRlc3Rfc2ltcGxlX3NodXRkb3duX3doaWxlX3J1bm5pbmcKCSAgdW5pdCB0ZXN0LgoKMjAxMy0wOC0xNiAxNjoyODoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZG9uJ3QgY2hhbmdlIGdsb2JhbCBidWZmZXJpbmcgc3RhdGUgZnJvbSB3aXRoaW4gcXVlcnkgaGFuZGxlcgoJICBXaGVuIGEgYnVmZmVyaW5nIHF1ZXJ5IGlzIGhhbmRsZWQgaXQgdXNlcyB0aGUgZ2V0X2J1ZmZlcmluZ19wZXJjZW50KCkKCSAgZnVuY3Rpb24gdG8gZ2V0IHNvbWUgc3RhdGl0aWNzLiBVbmZvcnR1bmF0ZWx5IHRoaXMgZnVuY3Rpb24gYWxzbwoJICBjYWxjdWxhdGVzIHdoZXRoZXIgdGhlIHF1ZXVlIHNob3VsZCBiZSBidWZmZXJpbmcgYW5kIGFkYXB0cyB0aGUKCSAgZ2xvYmFsIHF1ZXVlMiBzdGF0ZSBpbiBjYXNlIG9mIHN0YXRlIHRyYW5zaXRpb25zIGZyb20vdG8gYnVmZmVyaW5nCgkgIChpbmNsdWRpbmcgd2hldGhlciBhIGJ1ZmZlcmluZyBtZXNzYWdlIHdhcyBwb3N0ZWQgb24gdGhlIGJ1cyEpLgoJICBUaGlzIG1lYW5zIHRoYXQgdGhlcmUgaXMgYSByYWNlIHdoaWNoIGNhbiBjYXVzZSBidWZmZXJpbmcgbWVzc2FnZXMKCSAgdG8gbmV2ZXIgcG9zdGVkIGlmIHRoZSBnbG9iYWwgc3RhdGUgY2hhbmdlcyBoYXBwZW4gYXMgYSByZXN1bHQgb2YgYWEKCSAgcXVlcnkgaW5zdGVhZCBvZiByZXN1bHRpbmcgZnJvbSBieXRlcyBmbG93aW5nIGluL291dC4KCSAgU3BvdHRlZCBieSBTam9lcmQgU2ltb25zLgoJICBDaGFuZ2UgdG8gb25seSBxdWVyeSBzdGF0ZSBpbiBnZXRfYnVmZmVyaW5nX3BlcmNlbnQoKSBhbmQgdXBkYXRlCgkgIHN0YXRlIG9ubHkgaW4gdXBkYXRlX2J1ZmZlcmluZygpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1MzMyCgoyMDEzLTA4LTE2IDEyOjU0OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiB1cGRhdGUgYnVmZmVyaW5nIHdoZW4gY2hhbmdpbmcgY2FwYWNpdHkKCSAgV2hlbiB0aGUgY2FwYWNpdHkgb2YgdGhlIHF1ZXVlIGNoYW5nZXMsIG1ha2Ugc3VyZSB3ZSBwb3N0IGFuIHVwZGF0ZWQgYnVmZmVyaW5nCgkgIG1lc3NhZ2UgYmVjYXVzZSB3ZSBtaWdodCBzdWRkZW5seSBoYXZlIGNvbXBsZXRlZCB0aGUgYnVmZmVyaW5nIHN0YWdlLgoKMjAxMy0wOC0xNSAxNTozNTowOCArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzaGdAYXhpcy5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIEZyZWUgdGhyZWFkIHBvb2xzIGluIGdzdF9kZWluaXQoKQoKMjAxMy0wOC0xNiAxMTowMzozMCArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzaGdAYXhpcy5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogQ2FsbCBnc3RfZGVpbml0KCkgYXQgZXhpdCBvZiBhbGwgcHJvY2Vzc2VzCgoyMDEzLTA4LTE0IDIxOjQxOjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBzaW1wbGlmeSBpbnRlcm5hbCBnc3RfY2xvY2tfcmV0dXJuX2dldF9uYW1lKCkgaGVscGVyCgoyMDEzLTA4LTE0IDE3OjQ0OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGltcHJvdmUgZmx1c2gtc3RhcnQgaGFuZGxpbmcKCSAgVXNlIGN1c3RvbSBjb2RlIHRvIGltcGxlbWVudCBmbHVzaC1zdG9wLCB3ZSBjYW4ndCByZXVzZSB0aGUgc2V0X2ZsdXNoaW5nIGNvZGUKCSAgYmVjYXVzZSB3ZSBjYW4ndCB0b3VjaCB0aGUgbGl2ZV9wbGF5aW5nIGZsYWcgYW5kIHdlIG5lZWQgdG8gc2lnbmFsIHRoZQoJICBzdHJlYW1pbmcgdGhyZWFkLgoKMjAxMy0wOC0xNCAxNzoxNDoxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBzdG9wIGZsdXNoaW5nIGluIGZsdXNoLXN0b3AKCjIwMTMtMDgtMTQgMTY6NTg6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaGFuZGxlIGZsdXNoIGJldHRlcgoJICBVbmxvY2sgdGhlIHN0cmVhbWluZyB0aHJlYWQgd2hlbiBmbHVzaGluZyBzbyB0aGF0IHdlIGNhbgoJICBpbnNlcnQgdGhlIGZsdXNoLXN0b3AgY29ycmVjdGx5LgoKMjAxMy0wOC0xNCAxNTo0Njo1NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiAuZ2l0aWdub3JlOgoJICAuZ2l0aWdub3JlOiBpZ25vcmUgLmRpcnN0YW1wCgoyMDEzLTA4LTE0IDA3OjIxOjA2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogRG9uJ3QgdXNlIG5vZGlzdCBoZWFkZXJzIG9uIGdpciBzY2FubmVyCgkgIEp1c3QgY3JlYXRlcyBub2lzZSBhbmQgYm9ndXMgc3ltYm9scwoKMjAxMy0wOC0wNyAxODoyMDowMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdDogbWlub3IgZG9jc3RyaW5nIGZpeHVwcyB0byBtYWtlIGctaSBoYXBweQoJICBub3RlOiB0aGUgI2lmbmRlZiBtb3ZlIGlzIGFjdHVhbGx5IGEgbW92ZSBvZiB0aGUgIlNFQ1RJT04iIGRvY3N0cmluZwoKMjAxMy0wOC0xMyAxNzoxNDo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiAuZ2l0aWdub3JlOgoJICAuZ2l0aWdub3JlOiBJZ25vcmUgZmlsZXMgZnJvbSBhdXRvbWFrZSB0ZXN0LWRyaXZlcgoKMjAxMy0wOC0wNyAxODoyNDo0MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEFkZCBhIHByb3BlcnR5IHRvIGRpc2FibGUgcGFzc3Rocm91Z2gKCSAgSW4gc29tZSBzcGVjaWZpYyBjYXNlcyAobGlrZSB0cmFuc211eGluZykgd2Ugd2FudCB0byBmb3JjZSB0aGUgZWxlbWVudAoJICB0byBhY3R1YWxseSBwYXJzZSBhbGwgaW5jb21pbmcgZGF0YSBldmVuIGlmIHRoZSBlbGVtZW50IGRlZW1zIGl0IGlzIG5vdAoJICBuZWNlc3NhcnkuCgkgIFRoaXMgcHJvcGVydHkgc2ltcGx5IGlnbm9yZXMgcmVxdWVzdHMgZnJvbSB0aGUgZWxlbWVudCB0byBlbmFibGUgcGFzc3Rocm91Z2gKCSAgbW9kZSB3aGljaCByZXN1bHRzIGluIHByb2Nlc3NpbmcgYWx3YXlzIGJlaW5nIGVuYWJsZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU2MjEKCjIwMTMtMDgtMDcgMjE6MjY6MDEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZGF0YXF1ZXVlOiBhZGQgZ3N0X2RhdGFfcXVldWVfcHVzaF9mb3JjZQoJICBBZGRzIGEgdmFyaWFudCBvZiB0aGUgX3B1c2ggZnVuY3Rpb24gdGhhdCBkb2Vzbid0IGNoZWNrIHRoZSBxdWV1ZSBsaW1pdHMKCSAgYmVmb3JlIGFkZGluZyB0aGUgbmV3IGl0ZW0uIEl0IGlzIHVzZWZ1bCB3aGVuIHB1c2hpbmcgYW4gZWxlbWVudCB0byB0aGUKCSAgcXVldWUgc2hvdWxkbid0IGxvY2sgdGhlIHRocmVhZC4KCSAgT25lIHBhcnRpY3VsYXIgc2NlbmFyaW8gaXMgd2hlbiB0aGUgcXVldWUgaXMgdXNlZCB0byBzZXJpYWxpemUgYnVmZmVycwoJICBhbmQgZXZlbnRzIHRoYXQgYXJlIGdvaW5nIHRvIGJlIHB1c2hlZCBmcm9tIGFub3RoZXIgdGhyZWFkLiBUaGUKCSAgZGF0YXF1ZXVlIHNob3VsZCBoYXZlIGEgbGltaXQgb24gdGhlIGFtb3VudCBvZiBidWZmZXJzIHRvIGJlIHN0b3JlZCB0bwoJICBhdm9pZCBsYXJnZSBtZW1vcnkgY29uc3VtcHRpb24sIGJ1dCBldmVudHMgY2FuIGJlIGNvbnNpZGVyZWQgdG8gaGF2ZQoJICBuZWdsaWdpYmxlIGltcGFjdCBvbiBtZW1vcnkgY29tcGFyZWQgdG8gYnVmZmVycy4gU28gaXQgaXMgdXNlZnVsIHRvIGJlCgkgIHVzZWQgdG8gcHVzaCBpdGVtcyBpbnRvIHRoZSBxdWV1ZSB0aGF0IGNvbnRhaW4gZXZlbnRzLCBldmVuIHRob3VnaCB0aGUKCSAgcXVldWUgaXMgYWxyZWFkeSBmdWxsLCBpdCBzaG91bGRuJ3QgbWF0dGVyIGluc2VydGluZyBhbiBpdGVtIHRoYXQgaGFzCgkgIG5vIHNpZ25pZmljYXRpdmUgc2l6ZS4KCSAgVGhpcyBzY2VuYXJpbyBoYXBwZW5zIG9uIGFkYXB0aXZlIGVsZW1lbnRzIChkYXNoZGVtdXggLyBtc3NkZW11eCkgYXMKCSAgdGhlcmUgaXMgYSBzaW5nbGUgZG93bmxvYWQgdGhyZWFkIGZldGNoaW5nIGJ1ZmZlcnMgYW5kIHB1dHRpbmcgaW50byB0aGUKCSAgZGF0YXF1ZXVlcyBmb3IgdGhlIHN0cmVhbXMuIFRoaXMgc2FtZSBkb3dubG9hZCB0aHJlYWQgY2FuIGFscyBnZW5lcmF0ZQoJICBldmVudHMgaW4gc29tZSBzaXR1YXRpb25zIGFzIGNhcHMgY2hhbmdlcywgZW9zIG9yIGEgaW50ZXJuYWwgY29udHJvbAoJICBldmVudHMuIFRoZXJlIGNhbiBiZSBhIGRlYWRsb2NrIGF0IHByZXJvbGwgaWYgdGhlIGZpcnN0IGJ1ZmZlciBmZXRjaGVkCgkgIGlzIGxhcmdlIGVub3VnaCB0byBmaWxsIHRoZSBkYXRhcXVldWUgYW5kIHRoZSBkb3dubG9hZCB0aHJlYWQgYW5kIHRoZQoJICBuZXh0IGl0ZXJhdGlvbiBvZiB0aGUgZG93bmxvYWQgdGhyZWFkIGRlY2lkZXMgdG8gcHVzaCBhbiBldmVudCB0byB0aGlzCgkgIHNhbWUgZGF0YXF1ZXVlIGJlZm9yZSBmZXRjaGluZyBidWZmZXJzIHRvIG90aGVyIHN0cmVhbXMsIGlmIHRoaXMgcHVzaAoJICBsb2NrcywgdGhlIHBpcGVsaW5lIHdpbGwgYmUgc3R1Y2sgaW4gcHJlcm9sbCBhcyBubyBtb3JlIGJ1ZmZlcnMgd2lsbCBiZQoJICBkb3dubG9hZGVkLgoJICBUaGVyZSBpcyBhIHNvbWV3aGF0IGNvbW1vbiBwcmFjdGljZSBpbiBkYXNoIHN0cmVhbXMgdG8gaGF2ZSBhIHNpbmdsZQoJICB2ZXJ5IGxhcmdlIGJ1ZmZlciBmb3IgYXVkaW8gYW5kIG9uZSBmb3IgdmlkZW8sIHNvIHRoaXMgd2lsbCBhbHdheXMKCSAgaGFwcGVuIGFzIHRoZSBkb3dubG9hZCB0aHJlYWQgd2lsbCBoYXZlIHRvIHB1c2ggYW4gRU9TIHJpZ2h0IGFmdGVyCgkgIGZldGNoaW5nIHRoZSBmaXJzdCBidWZmZXIgZm9yIGFueSBzdHJlYW0uCgkgIEFQSTogZ3N0X2RhdGFfcXVldWVfcHVzaF9mb3JjZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1Njk0CgoyMDEzLTA4LTEzIDEzOjA2OjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkgIHN5c21lbTogT25seSBjb3B5IHRoZSByZXF1ZXN0ZWQgcGFydCBvZiBtZW1vcnkgaW5zdGVhZCBvZiB0aGUgY29tcGxldGUgc291cmNlIG1lbW9yeQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1Njc4CgoyMDEzLTA4LTEzIDEyOjExOjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogYWRkIFNpbmNlIG1hcmtlcnMgZm9yIG5ldyBBUEkgYW5kIGFkZCB0byBleHBvcnRzIGZpbGUKCjIwMTMtMDctMjMgMTY6MjU6MjcgKzAyMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGZpeCBhbm5vdGF0aW9uIGZvciBnc3RfcXVlcnlfcGFyc2VfdXJpCgoyMDEzLTA0LTE5IDEyOjE0OjU0ICswMjAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPHlsYXR1eWFAZ21haWwuY29tPgoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBhZGQgbmV3IHJlZGlyZWN0aW9uIHVyaSB0aGUgVVJJIHF1ZXJ5CgoyMDEzLTA4LTEyIDA5OjI1OjM0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGFkZCBzb21lIG1pc3NpbmcgJ3RyYW5zZmVyIG5vbmUnIGdpIGFubm90YXRpb25zCgkgIFRoZSBjdXJyZW50IGRvY3VtZW50YXRpb24gaXMgY29udHJvdmVyc2UsIHdoaWxlIGl0IHN0YXRlcyB0aGF0IHRoZQoJICByZXR1cm5lZCB2YWx1ZSBpcyB2YWxpZCBvbmx5IHdoaWxlIHRoZSBxdWVyeSBpcyBpcyB2YWxpZCwgd2hpY2ggcHJlc3VtZXMKCSAgYSAndHJhbnNmZXIgbm9uZScgcG9saWN5LiBCdXQgdGhlIHRvb2x0aXAgZm9yIHRoZSAnb3V0JyBhbm5vdGF0aW9uCgkgIHN0YXRlcyB0aGUgZGVmYXVsdCBpcyAndHJhbnNmZXItZnVsbCcuCgkgIEFkZCB0aGUgbWlzc2luZyAndHJhbnNmZXIgbm9uZScgYW5ub3RhdGlvbnMgdG8gZml4IHRoaXMuCgoyMDEzLTA4LTA4IDEyOjA4OjMxICswMjAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgYnl0ZXJlYWRlcjogQWNjZWxlcmF0ZSBNUEVHL0gyNjQgc3RhcnQgY29kZSBzY2FubmluZwoJICBBY2NlbGVyYXRlIE1QRUcvSDI2NCBzdGFydCBjb2RlIHNjYW5uaW5nIHVzaW5nIEJveWVyLU1vb3IgYmFkIGNoYXJhY3RlcgoJICBoZXVyaXN0aWMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDIzNTcKCjIwMTMtMDgtMTAgMTE6MzE6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IGctaTogYWxsb3cgY2xvY2sgdG8gYmUgTlVMTCBpbiBnc3RfcGlwZWxpbmVfdXNlX2Nsb2NrKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTc1MQoKMjAxMy0wOC0wNyAxNDoxNzoyOCAtMDMwMCAgQWRyaWFuIFBhcmRpbmkgPHB1YmxpY29AdGFuZ29wYXJkby5jb20uYXI+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xsZXI6IGZpeGVzIGludCBvdmVyZmxvdyB3aXRoIHByb3BlcnRpZXMgdGhhdCBzcGFuICstSU5UX01BWAoJICBXaGVuIHRoZSByYW5nZSBmb3IgYSBwcm9wZXJ0eSBpcyBkZWZpbmVkIGFzIC1JTlRfTUFYLTEgLi4gSU5UX01BWCwgbGlrZQoJICB0aGUgeHBvcyBpbiBhIHZpZGVvbWl4ZXIgdGhlIGZvbGxvd2luZyBleHByZXNzaW9uIGluIHRoZSBtYWNybwoJICBkZWZpbml0aW9ucyBvZiBjb252ZXJ0X2dfdmFsdWVfdG9fIyN0eXBlIChhbmQgdGhlIGVxdWl2YWxlbnQgaW4KCSAgY29udmVydF92YWx1ZV90b18jI3R5cGUpCgkgIHYgPSBwc3BlYy0+bWluaW11bSArIChnIyN0eXBlKSBST1VORElOR19PUCAoKHBzcGVjLT5tYXhpbXVtIC0gcHNwZWMtPm1pbmltdW0pICogcyk7CgkgIGFyZSBjb252ZXJ0ZWQgdG86CgkgIHYgPSAtMjE0NzQ4MzY0OCArIChnIyN0eXBlKSBST1VORElOR19PUCAoKDIxNDc0ODM2NDcgLSAtMjE0NzQ4MzY0OCkgKiBzKTsKCSAgKDIxNDc0ODM2NDcgLSAtMjE0NzQ4MzY0OCkgb3ZlcmZsb3dzIHRvIC0xIGFuZCB0aGUgbmV0IHJlc3VsdCBpczoKCSAgdiA9IC0yMTQ3NDgzNjQ4ICsgKGcjI3R5cGUpIFJPVU5ESU5HX09QICgtMSAqIHMpOwoJICBzbyB2IG9ubHkgdGFrZXMgdGhlIHZhbHVlcyAtMjE0NzQ4MzY0OCBmb3IgcyA9PSAwIGFuZCAyMTQ3NDgzNjQ3CgkgIGZvciBzID09IDEuCgkgIFJld3JpdGluZyB0aGUgZXhwcmVzc2lvbiBhcyBtaW5pbXVtKigxLXMpICsgbWF4aW11bSpzIGdpdmVzIHRoZSBjb3JyZWN0CgkgIHJlc3VsdCBpbiB0aGlzIGNhc2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NjMwCgoyMDEzLTA4LTAyIDEzOjMxOjU5ICswMjAwICBMdWJvc3ogU2FybmVja2kgPGx1Ym9zekBnbWFpbC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJ1aWxkOiBhZGQgc3ViZGlyLW9iamVjdHMgdG8gQU1fSU5JVF9BVVRPTUFLRQoJICBGaXhlcyB3YXJuaW5ncyB3aXRoIGF1dG9tYWtlIDEuMTQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTM1MAoKMjAxMy0wOC0wMiAxNjoyMTo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICBkZXNpZ246IGZpeCB0eXBvCgoyMDEzLTA3LTI5IDE1OjQ4OjMyICswMjAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4IGJhY2t3YXJkcyBzZWVrcyBpbnRvIHVuZG93bG9hZGVkIHJhbmdlcwoJICBXaGVuIGluIGRvd25sb2FkIGJ1ZmZlcmluZyBtb2RlIHF1ZXVlMiBkaWRuJ3QgY2hlY2sgaWYgYSByYW5nZSBvZmZzZXQgaXMKCSAgaW4gYSB1bmRvd25sb2FkZWQgcmFuZ2UgYmVmb3JlIHRoZSBjdXJyZW50bHkgaW4tcHJvZ3Jlc3MgcmFuZ2UuIENhdXNpbmcKCSAgc2Vla3MgdG8gYW4gZWFybGllciBvZmZzZXQgdG8sIHdlbGwsIHRha2UgYSB3aGlsZS4KCjIwMTMtMDctMzAgMTk6Mjc6MjMgKzAyMDAgIEtqYXJ0YW4gTWFyYWFzIDxrbWFyYWFzQGdub21lLm9yZz4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSAgZG9jczogc29tZSBzbWFsbCBndGstZG9jIG1hcmt1cCBmaXhlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1MTU2CgoyMDEzLTA3LTMwIDE5OjI3OjIzICswMjAwICBLamFydGFuIE1hcmFhcyA8a21hcmFhc0Bnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogcmVnaXN0ZXIgbmV3IGNvbG9yIG1vZGUgZW51bSwgZml4aW5nICdtYWtlIGNoZWNrJwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1MTU2CgoyMDEzLTA0LTE2IDE5OjA0OjQ4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmRoZWxwZXI6IEF2b2lkIHVzaW5nIGJ1ZmZlcl9nZXRfc2l6ZSBpbiB0aWdodCBsb29wcwoJICBDYWxsaW5nIGdzdF9idWZmZXJfZ2V0X3NpemUgcmVwcmVzZW50ZWQgMi8zIG9mIHRoZSBjb3N0IG9mIGhlbHBlcl9maW5kX3BlZWsKCSAgd2hpY2ggd2FzIGNhbGxlZCB3aGVuZXZlciBhIHR5cGVmaW5kZnVuY3Rpb24gd2FudGVkIHRvIHBlZWsgYXQgZGF0YS4KCSAgV2UgYWxyZWFkeSBrbm93IHRoZSBzaXplIChmcm9tIHRoZSBHc3RNYXBJbmZvKSwgc28ganVzdCB1c2UgdGhhdC4KCjIwMTMtMDctMjkgMTk6Mzg6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwby9MSU5HVUFTOgoJKiBwby9iZy5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbHQucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3YucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEzLTA3LTI5IDE5OjEzOjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBjb21tb246IHJldmVydCBhY2NpZGVudGFsIHJlLXdpbmRpbmcgb2YgY29tbW9uIHN1Ym1vZHVsZQoKMjAxMy0wNy0yNiAxNjoxNToyNCArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IENsYXJpZnkgdGhlIGVzdGltYXRlZC10b3RhbCBkb2N1bWVudGF0aW9uCgkgIFR3ZWFrIHRoZSBkb2N1bWVudGF0aW9uIHNsaWdodGx5IHRvIGNsYXJpZnkgdGhhdCB0aGUgZXN0aW1hdGVkLXRvdGFsIGluCgkgIGEgYSBCdWZmZXJpbmcgcXVlcnkgdGhlIHRvdGFsIHJlbWFpbmluZyB0aW1lIG9mIGEgZG93bmxvYWQsIG5vdCB0aGUKCSAgdG90YWwgdGltZSBmb3IgdGhlIGNvbXBsZXRlIGRvd25sb2FkLiBBbHNvIGluZGljYXRlIHRoZSB1bml0IHVzZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQ5MzQKCjIwMTMtMDctMjYgMTU6MDg6MTMgKzAyMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGb3J3YXJkIHRoZSBzY2hlZHVsZSBxdWVyeSB1cHN0cmVhbQoJICBXaGVuIGFza2VkIGFib3V0IHRoZSBzY2hlZHVsaW5nIGZsYWdzIGZpcnN0IGNoZWNrIHdpdGggdXBzdHJlYW0gYW5kCgkgIHNpbXBseSBhZGQgdGhlIF9TRUVLQUJMRSBmbGFnIHdoZW4gdXNpbmcgYSB0ZW1wb3JhcnkgZmlsZSBhcyBzdG9yYWdlLgoJICBUaGlzIGVuYWJsZXMgdGhlIGZvcndhcmRpbmcgb2YgX1NFUVVFTlRJQUwgYW5kIF9CQU5EV0lEVEhfTElNSVRFRCBmcm9tCgkgIHNvdXJjZXMgaWYgbmVlZGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0OTI3CgoyMDEzLTA3LTI5IDE0OjQ3OjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMS4zID09PQoKMjAxMy0wNy0yOSAxMzozNDo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMS4zCgoyMDEzLTA3LTI5IDEzOjMwOjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTMtMDctMjkgMTI6MTA6NDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2U6IEZpeCBoYW5kbGluZyBvZiBTRUdNRU5UIHF1ZXJ5CgkgIFRoZSB2YWx1ZXMgc2hvdWxkIGJlIGluIHN0cmVhbS10aW1lLCBhbmQgc3RhcnQvc3RvcCBzaG91bGQgbm90CgkgIGJlIHN3YXBwZWQgZm9yIG5lZ2F0aXZlIHJhdGVzLgoKMjAxMy0wNy0yOSAxMTowNTowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IE9ubHkgYWR2YW5jZSBvZmZzZXQgYnkgdGhlIG51bWJlciBvZiBieXRlcyB3ZSBhY3R1YWxseSByZWFkCgkgIFRoZXJlIG1pZ2h0IGJlIGEgc2hvcnQgcmVhZCBhdCBFT1MuCgoyMDEzLTA3LTI5IDEwOjQ4OjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEltcGxlbWVudCBTRUdNRU5UIHF1ZXJ5CgoyMDEzLTA3LTI2IDE4OjM2OjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCBTaW5jZTogbWFya2VyIGZvciBuZXcgZ3N0X2J1ZmZlcl9leHRyYWN0X2R1cCgpCgoyMDEzLTA3LTI2IDEyOjE5OjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBkZWJ1ZyB0aGUgY2xvY2sgcmV0dXJuIHZhbHVlcwoKMjAxMy0wNy0yNSAxMjoyMDoxNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggc2VxbnVtIGhhbmRsaW5nIGZvciBzZWVrcwoJICBVc2UgdGhlIHNhbWUgc2VxbnVtIGFzIHRoZSBzZWVrIGZvciBmbHVzaGVzL3NlZ21lbnRzIHRoYXQgYXJlCgkgIGNhdXNlZCBieSB0aGUgc2Vlay4gQWxzbyBkbyB0aGUgc2FtZSBmb3Igc2VnbWVudCBldmVudHMKCSAgRml4ZXMgIzY3NjI0MgoKMjAxMy0wNy0yNCAxMDoyOTozMCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBwYXJzZSBkZWJ1ZyBsZXZlbHMgPiA5CgoyMDEzLTA3LTI0IDE2OjU3OjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEZpeCBjb3B5JnBhc3RlIG1pc3Rha2VzIGluIHRoZSBiaXRtYXNrIGZ1bmN0aW9uIGRvY3MKCjIwMTMtMDctMjQgMTE6MjE6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IERvbid0IHNoYWRvdyB2YXJpYWJsZXMgdGhhdCBhcmUgc2V0IGluc2lkZSBvdXIgc2NvcGUgYW5kIHRoZW4gdXNlZCBvdXRzaWRlIG91ciBzY29wZQoJICBGaXhlcyB1bmluaXRpYWxpemVkIHVzZSBvZiB0aGVzZSB2YXJpYWJsZXMuCgoyMDEzLTA3LTI0IDEwOjMwOjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4NncuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgdGVzdHM6IFJlbW92ZSBvdGhlciBpbnRlcmZhY2Ugc3RydWN0cyBmcm9tIHRoZSBBQkkgdGVzdHMgdG9vCgoyMDEwLTEwLTE1IDEzOjE2OjU5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2dy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICB0ZXN0czogUmVtb3ZlIEdzdFRhZ1NldHRlciBmcm9tIEFCSSBjaGVja3MKCSAgSW50ZXJmYWNlcyBjYW4gaGF2ZSBuZXcgbWVtYmVycyBhZGRlZCB3aXRob3V0IGJyZWFraW5nIEFCSSwgc28KCSAgcmVtb3ZlIGl0IGZyb20gdGhlIGNoZWNrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIzNzk5CgoyMDEzLTA3LTIzIDE1OjM5OjUzIC0wNDAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5jOgoJICBsaWJjaGVjazogRXNjYXBlIHN0cmluZ3MgaW4gdGhlIGdlbmVyYXRlZCB4bWwgZmlsZXMKCSAgVGhpcyBpcyBjb3B5IHBhc3RlZCBmcm9tIHVwc3RyZWFtIGxpYmNoZWNrCgoyMDEzLTA3LTIzIDE4OjUzOjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBQcmludCBzb21lIGRlYnVnIG91dHB1dCBpZiBhIHN0cmVhbS1zdGFydCBldmVudCB3aXRob3V0IGdyb3VwLWlkIGFycml2ZXMKCSAgSWRlYWxseSBhbGwgZWxlbWVudHMgd291bGQgaW1wbGVtZW50IGhhbmRsaW5nIG9mIHRoYXQgdG8gZ2V0IHByb3BlcgoJICBzdHJlYW0tc3RhcnQgbWVzc2FnZSBoYW5kbGluZyBhbmQgb3RoZXIgdGhpbmdzLgoKMjAxMy0wNy0yMiAxODowMzowMSArMDIwMCAgQXJuYXVkIFZyYWMgPGF2cmFjQGZyZWVib3guZnI+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IEZpeCBtaXNzaW5nIHBhZCBhY3RpdmF0aW9uIG5vdGlmaWNhdGlvbgoJICBBIG5ldyBhY3RpdmUgcGFkIG1pZ2h0IG5vdCBiZSBub3RpZmllZCBpbiBzb21lIGNhc2VzLCB3aGljaCByZXN1bHRzCgkgIGluIHRoZSBjdXJyZW50IHRyYWNrIG51bWJlciBub3QgYmVpbmcgc2V0IGluIHBsYXliaW4uCgkgIFRoZSBhY3RpdmUtcGFkIG5vdGlmaWNhdGlvbiBpcyBvbmx5IHNlbnQgaW4gdGhlIGNoYWluIGFuZCBzaW5rX2V2ZW50CgkgIGZ1bmN0aW9ucywgYW5kIG9ubHkgd2hlbiB0aGUgYnVmZmVyIG9yIGV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBhY3RpdmUKCSAgcGFkIHNlbGVjdGlvbiBpcyBmcm9tIHRoZSBuZXdseSBhY3RpdmF0ZWQgcGFkLiBTbyBpbiB0aGUgb3RoZXIgY2FzZQoJICB0aGUgbm90aWZpY2F0aW9uIHdpbGwgbmV2ZXIgYmUgc2VudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDY5MQoKMjAxMy0wNy0yMiAxNzoyNTo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGhhbmRsZSBkZXNlcmlhbGlzYXRpb24gb2Ygbm9uZXhpc3RhbnQgZW51bSB2YWx1ZSBtb3JlIGdyYWNlZnVsbHkKCjIwMTMtMDctMjIgMTQ6MTI6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgaW5wdXRzZWxlY3RvcjogRG9uJ3QgcHVzaCBuZXcgc3RyZWFtLXN0YXJ0IGV2ZW50cyBvbiBzdHJlYW0gY2hhbmdlIHVubGVzcyB0aGV5IGFsbCBoYXZlIGdyb3VwIGlkcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0NDA4CgoyMDEzLTA3LTIyIDEyOjA2OjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogVXNlIG5ldyBncm91cC1pZCBpbiBzdHJlYW0tc3RhcnQgZXZlbnQKCjIwMTMtMDctMjIgMTI6MDY6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2U6IFVzZSBuZXcgZ3JvdXAtaWQgZmllbGQgaW4gc3RyZWFtLXN0YXJ0IGV2ZW50IGFuZCBtZXNzYWdlCgoyMDEzLTA3LTIyIDExOjQyOjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogVXNlIHRoZSBuZXcgZ3JvdXAtaWQgZmllbGQgb2YgdGhlIHN0cmVhbS1zdGFydCBtZXNzYWdlIGZvciBzdHJlYW0tc3RhcnQgbWVzc2FnZSBhZ2dyZWdhdGlvbgoJICBJZiBhbGwgc3RyZWFtLXN0YXJ0IG1lc3NhZ2VzIGhhZCBhIGdyb3VwIGlkIChmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkpLAoJICB3ZSBvbmx5IGNvbnNpZGVyIGEgc3RyZWFtIHN0YXJ0ZWQgaWYgYWxsIGhhZCB0aGUgc2FtZSBncm91cCBpZC4KCSAgSW4gMi4wIHdlIHNob3VsZCBtYWtlIHRoZSBncm91cCBpZCBtYW5kYXRvcnkuCgoyMDEzLTA3LTIyIDExOjQxOjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0OiBBZGQgbmV3IGdyb3VwLWlkIGZpZWxkIHRvIHRoZSBzdHJlYW0tc3RhcnQgZXZlbnQKCSAgQWxsIHN0cmVhbXMgdGhhdCBoYXZlIHRoZSBzYW1lIGdyb3VwIGlkIGFyZSBzdXBwb3NlZCB0byBiZSBwbGF5ZWQKCSAgdG9nZXRoZXIsIGkuZS4gYWxsIHN0cmVhbXMgaW5zaWRlIGEgY29udGFpbmVyIGZpbGUgc2hvdWxkIGhhdmUgdGhlCgkgIHNhbWUgZ3JvdXAgaWQgYnV0IGRpZmZlcmVudCBzdHJlYW0gaWRzLiBUaGUgZ3JvdXAgaWQgc2hvdWxkIGNoYW5nZQoJICBlYWNoIHRpbWUgdGhlIHN0cmVhbSBpcyBzdGFydGVkLCByZXN1bHRpbmcgaW4gZGlmZmVyZW50IGdyb3VwIGlkcwoJICBlYWNoIHRpbWUgYSBmaWxlIGlzIHBsYXllZCBmb3IgZXhhbXBsZS4KCjIwMTMtMDctMTggMjM6Mjk6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIGNvbW1vbjogcmV2ZXJ0IGFjY2lkZW50YWwgY2hhbmdlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCjIwMTMtMDctMTggMTQ6Mzk6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIGdzdDogQWRkIHNvbWUgbW9yZSBTaW5jZTogMS4yCgoyMDEzLTA3LTE4IDE0OjM0OjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBBZGQgc29tZSBTaW5jZTogMS4yCgoyMDEzLTA3LTE4IDE1OjEwOjEwICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGNvbW1vbjoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weToKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGluZm86IEFkZCBkZWJ1ZyBjb2xvciBtb2RlIG9wdGlvbgoJICBUaGlzIGFsbG93cyB0byBleHBsaWNpdGVseSBzZXQgdGhlIGRlYnVnIG91dHB1dCBjb2xvcgoJICBtb2RlIHRvIFVOSVggb24gZXZlcnkgcGxhdGZvcm0sIGVuYWJsZSBpdCAodXNlIHBsYXRmb3JtCgkgIGRlZmF1bHQgY29sb3IgbW9kZSkgb3IgZW5hYmxlIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc0MzIwCgoyMDEyLTA0LTE4IDE0OjM1OjMyICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IEZpeCBibGFjayBhbmQgdW5kZXJsaW5lIGNvbG9yaW5nIG9uIFczMgoJICBGaXhlcyAjNjc0MzIwCgoyMDEyLTA0LTE4IDE0OjEyOjE2ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IEN1dCBkb3duIHNyYyBmaWxlIG5hbWVzIGZvciBNaW5HVyB0b28KCSAgRml4ZXMgIzY3NDMyMAoKMjAxMy0wNy0xNiAxNzo0Nzo0NSArMDIwMCAgTmljb2xhIE11cmlubyA8bmljb2xhLm11cmlub0BnbWFpbC5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBGaXggZ3N0LXBsdWdpbnMtZ2wgaW4gdW5pbnN0YWxsZWQgc2V0dXAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzQ5OQoKMjAxMy0wNy0xNiAxNTozNTowOCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgYWRhcHRlcjogVGFrZSBhY2NvdW50IG9mIHRoZSBza2lwIGluIGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyX2Zhc3QoKQoJICBJbmNsdWRlIHJlZ3Jlc3Npb24gdGVzdAoKMjAxMy0wNy0xNSAxNTo0MTo0NCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRhcHRlcjogQWRkIGZ1bmN0aW9uIHRvIHJldHVybiBidWZmZXIgY29tcG9zZWQgb2YgbXVsdGlwbGUgbWVtb3JpZXMKCSAgQVBJOiBnc3RfYWRhcHRlcl90YWtlX2Zhc3QoKQoKMjAxMy0wNy0xNiAxNjoyNDozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBEb24ndCBhc3NlcnQgaWYgbm8gY29udGV4dCBpcyBzZXQgaW4gdGhlIHF1ZXJ5CgoyMDEzLTA3LTE2IDE0OjQ3OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy8uZ2l0aWdub3JlOgoJICBiZW5jaG1hcmtzOiBpZ25vcmUgbmV3IGJlbmNobWFyayBiaW5hcnkKCjIwMTMtMDctMTYgMTQ6NDY6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBzcHJpbmtsZSBzb21lIFNpbmNlIDEuMiBtYXJrZXJzIGluIGRvY3MKCjIwMTMtMDctMTYgMTQ6NDQ6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIHRpbWVwcm92aWRlcjogZy1pOiBhbGxvdyBOb25lIGFzIGFkZHJlc3MgZm9yIGdzdF9uZXRfdGltZV9wcm92aWRlcl9uZXcoKQoKMjAxMy0wNy0xNiAxNTozNDo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogUmV0dXJuIGFuIGVtcHR5IEdzdENvbnRleHQgaWYgbm9uZSB3YXMgc2V0IHlldAoKMjAxMy0wNy0xNiAxNToxNjoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcXVlcnk6IEFkZCBnc3RfcXVlcnlfaGFzX2NvbnRleHRfdHlwZSgpCgoyMDEzLTA3LTE2IDExOjM2OjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogb25seSBibG9jayBzZXJpYWxpemVkIHF1ZXJ5IHdoZW4gaXQncyBzYWZlCgkgIFdlIG11c3QgYmUgY2VydGFpbiB0aGF0IHdlIGRvbid0IGNhdXNlIGEgZGVhZGxvY2sgd2hlbiBibG9ja2luZyB0aGUgc2VyaWFsaXplZAoJICBxdWVyaWVzLiBPbmUgc3VjaCBkZWFkbG9jayBjYW4gaGFwcGVuIHdoZW4gd2UgYXJlIGJ1ZmZlcmluZyBhbmQgZG93bnN0cmVhbSBpcwoJICBibG9ja2VkIGluIHByZXJvbGwgYW5kIGEgc2VyaWFsaXplZCBxdWVyeSBhcnJpdmVzLiBEb3duc3RyZWFtIHdpbGwgbm90IHVuYmxvY2sKCSAgKGFuZCBhbGxvdyBvdXIgcXVlcnkgdG8gZXhlY3V0ZSkgdW50aWwgd2UgY29tcGxldGUgYnVmZmVyaW5nIGFuZCBidWZmZXJpbmcgd2lsbAoJICBub3QgY29tcGxldGUgdW50aWwgd2UgY2FuIGFuc3dlciB0aGUgcXVlcnkuLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyODQwCgoyMDEzLTA3LTE1IDExOjM2OjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQSBuZXdseSBhY3RpdmF0ZWQgcGFkIHNob3VsZCBiZSBtYXJrZWQgYXMgbmVlZGluZyByZWNvbmZpZ3VyYXRpb24KCjIwMTMtMDctMTUgMTE6MzI6NTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IERvbid0IGNvbnNpZGVyIGZsdXNoaW5nIHBhZHMgYXMgbmVlZGluZyByZWNvbmZpZ3VyYXRpb24iCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOTQ4YTlkMmYyYjcyOGY1ZmI2MGJlNDVkNDdhODE4Y2ViZWI2MGM3ZC4KCSAgVGhpcyBpcyByYWN5IGFuZCB0cnlpbmcgdG8gcmVjb25maWd1cmUgYW5kIGZhaWwgaXMgc3RpbGwgYmV0dGVyCgkgIHRoYW4gbm90IHRyeWluZyB0byByZWNvbmZpZ3VyZSBhdCBhbGwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQxMDAKCjIwMTMtMDctMTUgMTE6MzI6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBMZWF2ZSB0aGUgbG9vcCBmdW5jdGlvbiBmYXN0ZXIgaWYgd2UncmUgZmx1c2hpbmcKCSAgRXNwZWNpYWxseSBkb24ndCBldmVuIHRyeSB0byBzZW5kIHN0cmVhbS1zdGFydCBldmVudCBvciB0cnkKCSAgdG8gbmVnb3RpYXRlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0MTAwCgoyMDEzLTA3LTEyIDEwOjA4OjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRGVhY3RpdmF0ZSBhbmQgcmVtb3ZlIHBhZCB3aXRob3V0IHRoZSBpbnB1dHNlbGVjdG9yIGxvY2sKCSAgT3RoZXJ3aXNlIHdlIG1pZ2h0IGdldCBkZWFkbG9ja3MgY2F1c2VkIGJ5IGxvY2sgb3JkZXIgaW52ZXJzaW9uOgoJICBEdXJpbmcgdGhlIGNoYWluIGZ1bmN0aW9uIHRoZSBzdHJlYW0gbG9jayBpcyBmaXJzdCBsb2NrZWQgYW5kIHRoZW4gdGhlCgkgIGlucHV0c2VsZWN0b3IgbG9jay4gRHVyaW5nIHBhZCByZWxlYXNlIHdlIGZpcnN0IGxvY2tlZCB0aGUgaW5wdXRzZWxlY3RvcgoJICBsb2NrIGFuZCB0aGVuIGRlYWN0aXZhdGluZyB0aGUgcGFkIHdvdWxkIGxvY2sgdGhlIHN0cmVhbSBsb2NrLgoJICBUaGVyZSdzIG5vIHJlYXNvbiB3aHkgdGhlIGlucHV0c2VsZWN0b3IgbG9jayBzaG91bGQgYmUgcmVxdWlyZWQgd2hpbGUKCSAgZGVhY3RpdmF0aW5nIGFuZCByZW1vdmluZyB0aGUgcGFkLCBpdCdzIG9ubHkgbmVlZGVkIGJlZm9yZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDAwMgoKMjAxMy0wNy0xMSAxNjo1NzowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjEuMiA9PT0KCjIwMTMtMDctMTEgMTU6MTI6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjEuMgoKMjAxMy0wNy0xMSAxNToxMToyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEzLTA3LTEwIDE1OjUyOjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogQWx3YXlzIGZvcndhcmQgY2xvY2stbG9zdCBtZXNzYWdlIGlmIHdlJ3JlIG5vdCBhIHRvcC1sZXZlbCBiaW4KCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgbm8gYmluIG1pc3NlcyB0aGUgY2xvY2stbG9zdCBtZXNzYWdlcywgaW5kZXBlbmRlbnQKCSAgb2YgdGhlIHN0YXRlLCBhbmQgY291bGQgcmV0dXJuIGFuIG9sZCwgbm9uLXdvcmtpbmcgY2xvY2sgZnJvbQoJICBnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYygpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxOTk3CgoyMDEzLTA3LTEwIDE0OjMwOjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogS2VlcCBwcmV2aW91cyBhY3RpdmUgc2lua3BhZCBhcm91bmQgdW50aWwgd2UncmUgZG9uZSB3aXRoIGl0CgkgIE90aGVyd2lzZSB3ZSdsbCBzZW5kIGEgbmV3IHNlZ21lbnQgZXZlbnQgZG93bnN0cmVhbSBmb3IgZWFjaCBidWZmZXIuCgoyMDEzLTA3LTA4IDE1OjI2OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSAgYWxsb2NhdG9yOiBmaXggdHlwZSBvZiBnc3RfbWVtb3J5X2FsaWdubWVudCB0byBtYXRjaCBkZWNsYXJhdGlvbgoJICBGaXhlcyBjb21waWxlciB3YXJuaW5ncyBzdWNoIGFzCgkgIGdzdGFsbG9jYXRvci5jOjYxOjg6IGVycm9yOiBjb25mbGljdGluZyB0eXBlcyBmb3IgJ2dzdF9tZW1vcnlfYWxpZ25tZW50JwoJICAuLi9nc3QvZ3N0YWxsb2NhdG9yLmg6NTI6MTg6IG5vdGU6IHByZXZpb3VzIGRlY2xhcmF0aW9uIG9mICdnc3RfbWVtb3J5X2FsaWdubWVudCcgd2FzIGhlcmUKCjIwMTMtMDctMDUgMjE6MzY6MjcgKzAyMDAgIFBpb3RyIERyxIVnIDxwaW90cmRyYWdAZ21haWwuY29tPgoKCSogcG8vUE9URklMRVMuaW46CgkgIHBvOiB1cGRhdGUgUE9URklMRVMuaW4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzY4MgoKMjAxMy0wNy0wNCAyMDozOToyNiAtMDQwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IERvIG5vdCBsb2NrIGEgbXV0ZXggdGhhdCBkb2VzIG5vdCBleGlzdAoJICBUaGUgR1NUX0xJVkVfTE9DSyBpcyBvbiBHc3RCYXNlU3JjLCBub3Qgb24gaXRzIHNvdXJjZSBwYWQuCgoyMDEzLTA3LTAzIDIxOjIzOjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZXNldCBQVFMgYWZ0ZXIgc2VlawoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyNzc4CgoyMDEzLTA3LTAzIDEzOjAzOjQ5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJICBBZGQgZmV3IG1pc3NpbmcgYWxsb3ctbm9uZSBhbm5vdGF0aW9uCgoyMDEzLTA3LTAzIDA5OjI3OjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIG5ldyAtYmFkIG1wZWd0cyBsaWIKCSAgQW5kIHJlbW92ZSBzaWduYWxwcm9jZXNzb3IvdmlkZW8gbGlicyBmcm9tIC1iYWQgd2hpY2ggaGF2ZSBnb25lCgkgIGF3YXkgb3Igd2VyZSBtZXJnZWQgaW50byAtYmFzZS4KCjIwMTMtMDctMDEgMjA6MzU6MjEgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgZnVubmVsOiBSZS1wdXNoIGFsbCBzdGlja3kgZXZlbnRzIHdoZW4gYnVmZmVycyBjb21lIGZyb20gYSBkaWZmZXJlbnQgcGFkCgkgIERvbid0IHNwZWNpYWwgY2FzZSBzZWdtZW50L2NhcHMsIGp1c3QgcHVzaCBhbGwgc3RpY2t5IGV2ZW50cyB3aGVuIHRoZXkgYXJlCgkgIHJlY2VpdmVkIG9uIHRoZSBjdXJyZW50bHkgYWN0aXZlIHBhZCBvciB3aGVuIHRoZSBhY3RpdmUgcGFkIGNoYW5nZXMuCgoyMDEzLTA3LTAxIDIwOjIxOjEwIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBVc2UgZGVmYXVsdCBwYWQgZnVuY3Rpb24gZm9yIHVwc3RyZWFtIGV2ZW50L3F1ZXJpZXMKCSAgVGhlIGRlZmF1bHQgZnVuY3Rpb25zIGluIDEueCBhbHJlYWR5IGRvIHRoZSByaWdodCB0aGluZwoKMjAxMy0wNy0wMSAyMDoxODo1OCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICB0ZXN0czogUmVtb3ZlIGZ1bm5lbCBwYWRfYWxsb2MgdGVzdAoKMjAxMy0wNy0wMSAyMDowNzowMyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBDaGFuZ2Ugc3RyZWFtX2lkIHBhcmFtZXRlciBuYW1lIHRvIG1hdGNoIEd0a0RvYwoKMjAxMy0wNy0wMSAxMToxMDowMCArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzaGdAYXhpcy5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIGNoZWNrOiBBZGRlZCBnc3RfY2hlY2tfc2V0dXBfZXZlbnRzX3dpdGhfc3RyZWFtX2lkKCkKCSAgQWRkZWQgYSBuZXcgZnVuY3Rpb24gZ3N0X2NoZWNrX3NldHVwX2V2ZW50c193aXRoX3N0cmVhbV9pZCgpLCBzaW5jZQoJICBnc3RfY2hlY2tfc2V0dXBfZXZlbnRzKCkgZG9lcyBub3Qgd29yayB3aXRoIG11bHRpcGxlIHBhZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDMzNzcKCjIwMTMtMDYtMzAgMTg6Mzk6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEb24ndCBjb25zaWRlciBmbHVzaGluZyBwYWRzIGFzIG5lZWRpbmcgcmVjb25maWd1cmF0aW9uCgkgIFJlbmVnb3RpYXRpb24gYW5kIHJlY29uZmlndXJhdGlvbiB3aWxsIGZhaWwgYmVjYXVzZSBhbGwgcXVlcmllcwoJICBhbmQgZXZlbnRzIHdvbid0IGJlIGFjY2VwdGVkIGJ5IHRoZSBwYWQgaWYgaXQncyBmbHVzaGluZy4gSW4gdGhlCgkgIGJlc3QgY2FzZSB0aGlzIGp1c3QgY2F1c2VzIHVubmVlZGVkIHdvcmsgYW5kIHNwdXJpb3VzIHdhcm5pbmdzIGluCgkgIHRoZSBkZWJ1ZyBsb2dzLCBpbiB0aGUgd29yc3QgY2FzZSBpdCBjYXVzZXMgZWxlbWVudHMgdG8gZmFpbCBjb21wbGV0ZWx5LgoKMjAxMy0wNi0yNCAyMzoyNTo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogb25seSBibG9jayBzZXJpYWxpemVkIHF1ZXJ5IHdoZW4gaXQncyBzYWZlCgkgIFdlIG11c3QgYmUgY2VydGFpbiB0aGF0IHdlIGRvbid0IGNhdXNlIGEgZGVhZGxvY2sgd2hlbiBibG9ja2luZyB0aGUgc2VyaWFsaXplZAoJICBxdWVyaWVzLiBPbmUgc3VjaCBkZWFkbG9jayBjYW4gaGFwcGVuIHdoZW4gd2UgYXJlIGJ1ZmZlcmluZyBhbmQgZG93bnN0cmVhbSBpcwoJICBibG9ja2VkIGluIHByZXJvbGwgYW5kIGEgc2VyaWFsaXplZCBxdWVyeSBhcnJpdmVzLiBEb3duc3RyZWFtIHdpbGwgbm90IHVuYmxvY2sKCSAgKGFuZCBhbGxvdyBvdXIgcXVlcnkgdG8gZXhlY3V0ZSkgdW50aWwgd2UgY29tcGxldGUgYnVmZmVyaW5nIGFuZCBidWZmZXJpbmcgd2lsbAoJICBub3QgY29tcGxldGUgdW50aWwgd2UgY2FuIGFuc3dlciB0aGUgcXVlcnkuLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyODQwCgoyMDEzLTA2LTE5IDEyOjMwOjQ3ICswMjAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBBZGQgYSBmaWx0ZXIgdG8gdGhlIGNhcHNfcXVlcnkgZG9uZSBieSBhY2NlcHRjYXBzCgkgIFVzZSB0aGUgY2FwcyB0aGF0IHRoZSBwYWQgaXMgYXNrZWQgdG8gYWNjZXB0IGFzIGZpbHRlciBmb3IgdGhlIHF1ZXJ5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI2MzIKCjIwMTMtMDYtMTkgMTI6MTk6MDIgKzAyMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IG9wdGltaXplIGRlZmF1bHQgYWNjZXB0Y2FwcyBpbXBsZW1lbnRhdGlvbgoJICBQYXNzIHRoZSBmaXhlZCBjYXBzIHdlJ3JlIGFza2VkIHRvIGFjY2VwdCBhcyBhIGZpbHRlciBmb3IgdGhlIGNhcHMKCSAgcXVlcnksIHNvIHdlIGRvbid0IGdldCBhIGZ1bGx5LWV4cGFuZGVkIHNldCBvZiBjYXBzIGJhY2sgKHdoaWNoIHdlIGRvbid0CgkgIG5lZWQgYW5kIGNhbiB0YWtlIGEgbG90IG9mIHRpbWUgZm9yIGludGVyc2VjdGlvbikuCgkgIFRoaXMgcmVkdWNlcyB0aGUgdGltZSBmb3IgY2FtZXJhYmluIHRvIHByb2R1Y2UgYSBzZWNvbmQgZnJhbWUgb24gYQoJICBsb2dpdGVjaCBDOTEwIGNhbWVyYSBmcm9tIGFyb3VuZCA1MiBzZWNvbmRzIHRvIGEgYml0IGxlc3MgdGhlbiAxNgoJICBzZWNvbmRzIG9uIG15IHN5c3RlbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjYzMgoKMjAxMy0wNi0xOSAwOToxOTo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBBdm9pZCBjb21iaW5hdG9yaWFsIGV4cGxvc2lvbiB3aGVuIG1lcmdpbmcgdGFncwoJICBXaGVuIGFwcGVuZGluZy9wcmVwZW5kaW5nIHRhZ3MsIGF2b2lkIHJlLWNyZWF0aW5nIChhbmQgY29weWluZykgbGlzdHMgaWYgd2UgYWxyZWFkeQoJICBoYXZlIG9uZSBhbmQgaW5zdGVhZCBqdXN0IGFwcGVuZC9wcmVwZW5kIHRoZSBHVmFsdWUgdG8gdGhlIGxpc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI1NDUKCjIwMTMtMDYtMTkgMTA6NTM6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IERvbid0IGhvbGQgdGhlIHF1ZXVlIG11dGV4IHdoaWxlIGRvaW5nIHNlcmlhbGl6ZWQgcXVlcmllcyBkb3duc3RyZWFtCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI1MjAKCjIwMTMtMDYtMTkgMTA6NDU6NDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBBZGQgdW5pdCB0ZXN0IGZvciBtYXBfcmFuZ2UoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyNjE3CgoyMDEzLTA2LTE5IDA4OjM2OjIyICswMjAwICBQYXVsIEhFTlJZUyA8dmlzZWNoZWxsZUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogRml4IHdyb25nIHNpemUvaW5kZXggaGFuZGxpbmcgd2hlbiBtZXJnaW5nIG1lbW9yeQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyNjE3CgoyMDEzLTA2LTE4IDExOjM5OjU1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saXN0LXVsaW5rLnhzbDoKCSAgZG9jczogYWRkIG1pc3NpbmcgZmlsZSBmb3IgZG9jLWxpbmsgY2hlY2sKCjIwMTMtMDYtMTcgMTE6MTI6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvb2xzdHJlc3MuYzoKCSAgdGVzdHM6IGFkZCBzdHJlc3MgdGVzdCBmb3IgYnVmZmVycyBhbmQgcG9vbHMKCjIwMTMtMDYtMTcgMTA6MjU6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBjYWxsIHN0YXRlIGNoYW5nZSBpbiBhbGwgY2FzZXMKCSAgV2hlbiB3ZSBhc3luY2hyb25vdXNseSBnbyBmcm9tIFJFQURZIHRvIFBMQVlJTkcsIGFsc28gY2FsbCB0aGUKCSAgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIHNvIHRoYXQgc3ViY2xhc3NlcyBjYW4gdXBkYXRlIHRoZWlyIHN0YXRlIGZvciBQTEFZSU5HLgoJICBCZWNhdXNlIHRoZSBQUkVST0xMIGxvY2sgaXMgbm90IHJlY3Vyc2l2ZSwgd2UgY2FuJ3QgbWFrZSB0aGlzIHdpdGhvdXQKCSAgcmFjZXMgYW5kIHdlIG11c3QgYXNzdW1lIGZvciBub3cgdGhhdCB0aGUgc3ViY2xhc3MgY2FuIGhhbmRsZSBjb25jdXJyZW50IGNhbGxzCgkgIHRvIFBBVVNFRC0+UExBWUlORyBhbmQgUExBWUlORy0+UEFVU0VELiBXZSBjYW4gbWFrZSB0aGlzIGFzc3VtcHRpb24gYmVjYXVzZSBub3QKCSAgbWFueSBlbGVtZW50cyBhY3R1YWxseSBkbyBzb21ldGhpbmcgaW4gdGhvc2Ugc3RhdGUgY2hhbmdlcyBhbmQgdGhlIG9uZXMgdGhhdAoJICBkaWQgd291bGQgYmUgYnJva2VuIGV2ZW4gbW9yZSB3aXRob3V0IHRoaXMgY2hhbmdlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyMjgyCgoyMDEzLTA2LTE2IDE1OjA3OjM1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9mYXEvZGVwZW5kZW5jaWVzLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkqIGRvY3MvbWFudWFsL2ludHJvLW1vdGl2YXRpb24ueG1sOgoJICBkb2NzOiBmaXggc29tZSBleHRlcm5hbCBsaW5rcwoKMjAxMy0wNi0xNiAxNDo0NTowOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbWFudWFscy5tYWs6CgkgIGRvY3M6IGNoZWNrIGZvciBicm9rZW4gbGlua3MgaW4gZG9jcwoJICBUaGUgY2hlY2sgaXMgZG9uZSB1c2luZyBjdXJsIChpZiBhdmFpbGFibGUpLiBJdCBsaXN0cyB0aGUgY3VybCBleGl0IGNvZGUgKyBodHRwCgkgIHN0YXR1cyBjb2RlIChmb3IgdGhvc2UgPiAzOTkpIHRvZ2V0aGVyIHdpdGggdGhlIHVzZSBvZiB0aGUgdXJsIGluIHRoZSBjb2RlLiBUaGUKCSAgY2hlY2sgaXMgbm90IGZhdGFsLgoKMjAxMy0wNi0xNiAxMzowNToyMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIGRvY3MvcHdnL2ludHJvLXByZWZhY2UueG1sOgoJICBkb2NzOiBjaGFuZ2UgaHR0cHMgdG8gaHR0cCB1cmxzCgkgIFRoYW5rIHlvdSBicm93c2VyIGZvciBuZWVkbGVzc2x5IGNoYW5naW5nIHRvIGh0dHBzIGZvciBzdGF0aWMgZG9jIHBhZ2VzLgoKMjAxMy0wNi0xNiAxMTo0MTo1MiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtaW5pdC54bWw6CgkqIGRvY3MvcHdnL2ludHJvLXByZWZhY2UueG1sOgoJICBkb2NzOiB1cGRhdGUgbGlua3MgdG8gZGV2ZWxvcGVyLmdub21lLm9yZwoJICBUaGUgVVJMIGxheW91dCBoYXMgY2hhbmdlZC4gRml4IHRoZSBsaW5rcyBhbmQgY29tbWVudCBvdXQgb25lIHBhcmFncmFwaCB3aGVyZQoJICB0aGUgZG9jIGlzIGdvbmUuCgkgIEZpeGVzICM3MDIxMzUKCjIwMTMtMDYtMTQgMTM6MDU6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBBZGQgZ3N0X3N0cnVjdHVyZV9uZXdfZnJvbV9zdHJpbmcoKQoJICBDb252ZW5pZW5jZSBBUEkgZm9yIGJpbmRpbmdzLCBnc3Rfc3RydWN0dXJlX2Zyb21fc3RyaW5nKCkgcmV0dXJucwoJICBhIHR1cGxlIChzdHJ1Y3R1cmUsIGVuZF9wdHIpIGluIGJpbmRpbmdzIGFuZCBpcyB1bmludHVpdGl2ZSB0byB1c2UKCSAgYmVjYXVzZSBvZiB0aGF0LgoKMjAxMy0wNi0xMyAwODozNjoyMyArMDIwMCAgSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBEb24ndCBpbnRlcmNlcHQgLS1oZWxwIGluIGdzdF9pbml0KCkKCSAgQmVmb3JlIHRoaXMgcGF0Y2ggZ3N0X2luaXQgd291bGQgaW50ZXJjZXB0IC0taGVscCwgY2F1c2luZyBmb3IgZXhhbXBsZQoJICBjaGVlc2UncyAtLWhlbHAgdG8gbG9vayBsaWtlIHRoaXM6CgkgIFtoYW5zQHNoYWxlbSBjaGVlc2VdJCBjaGVlc2UgLS1oZWxwCgkgIFVzYWdlOgoJICBjaGVlc2UgW09QVElPTi4uLl0gLSBHU3RyZWFtZXIgaW5pdGlhbGl6YXRpb24KCSAgSGVscCBPcHRpb25zOgoJICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgICAgICAgU2hvdyBoZWxwIG9wdGlvbnMKCSAgLS1oZWxwLWFsbCAgICAgICAgICAgICAgICAgICAgICAgIFNob3cgYWxsIGhlbHAgb3B0aW9ucwoJICAtLWhlbHAtZ3N0ICAgICAgICAgICAgICAgICAgICAgICAgU2hvdyBHU3RyZWFtZXIgT3B0aW9ucwoJICBnc3RfaW5pdCBpcyB0aGUgb25seSBnZm9vX2luaXQgZnVuY3Rpb24gd2hpY2ggZG9lcyB0aGlzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyMDg5CgoyMDEzLTA2LTEyIDA5OjQ1OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIHVyaWRvd25sb2FkZXIgbGliIGluIC1iYWQgdG8gc2VhcmNoIHBhdGhzCgkgIEV2ZW4gaWYgaXQgbWlnaHQgbm90IGJlIGFyb3VuZCBmb3IgbG9uZy4KCjIwMTMtMDYtMTEgMTA6MjU6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogUmVtb3ZlIHVucmVmIHRoYXQgc2hvdWxkIG5vdCBiZSB0aGVyZQoJICBXZSBrZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBjb250ZXh0IGFyb3VuZCBhbGwgdGhlIHRpbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDE5ODUKCjIwMTMtMDYtMDkgMTc6MjA6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogSW1wcm92ZSBHc3RDb250ZXh0IGhhbmRsaW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDA5NjcKCjIwMTMtMDYtMDcgMTM6MDc6MzcgKzAyMDAgIEtpbSBMYW0gPGtpbUByZWRnaWFudHNvZnR3YXJlLmNvbT4KCgkqIHdpbjMyL3ZzMTAvYmFzZS9iYXNlLnZjeHByb2o6CgkgIHdpbjMyOiBEb24ndCBpbmNsdWRlIGdzdGNvbGxlY3RwYWRzLmMgdHdpY2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTYwMwoKMjAxMy0wNS0zMSAwOTozOTo1NSAtMDYwMCAgQnJlbmRhbiBMb25nIDxiLmxvbmdAY2FibGVsYWJzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3Rvcjogc2VuZCBub3RpZnk6OmFjdGl2ZSBzaWduYWwgZm9yIGlucHV0LXNlbGVjdG9yIHBhZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDEzMTkKCjIwMTMtMDYtMDYgMTY6NDY6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IE9ubHkgZm9yY2UtdXBkYXRlIHRoZSBkdXJhdGlvbiBmb3IgZHluYW1pYyBzb3VyY2VzIHdoZW4gZG9pbmcgdGhlIERVUkFUSU9OIHF1ZXJ5CgkgIERvaW5nIGl0IGFmdGVyIGV2ZXJ5IHNpbmdsZSBjcmVhdGUoKSBpcyBub3QgdmVyeSBlZmZpY2llbnQgYW5kIG5vdCBuZWNlc3NhcnkuCgkgIEVzcGVjaWFsbHkgb24gbmV0d29yayBmaWxlIHN5c3RlbXMgZnN0YXQoKSBpcyBub3QgY2FjaGVkIGFuZCBjYXVzZXMgbmV0d29yawoJICB0cmFmZmljLCBtYWtpbmcgdGhlIHNvdXJjZSBwb3NzaWJseSB1bnVzYWJsZSBzbG93LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUyMDM3CgoyMDEzLTA2LTA1IDE4OjM2OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4xLjEgPT09CgoyMDEzLTA2LTA1IDE3OjU4OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4xLjEKCjIwMTMtMDYtMDUgMTY6MDY6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEzLTA2LTA1IDE1OjE0OjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDA5OGMwZDcgdG8gMDFhN2E0NgoKMjAxMy0wNi0wNSAxMTowMjo1MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3R2YWx1ZTogQWRkIF9hcHBlbmRfYW5kX3Rha2VfdmFsdWUoKSBwdWJsaWMgdmFyaWFudHMKCSAgQVBJOiBnc3RfdmFsdWVfYXJyYXlfYXBwZW5kX2FuZF90YWtlX3ZhbHVlCgkgIEFQSTogZ3N0X3ZhbHVlX2xpc3RfYXBwZW5kX2FuZF90YWtlX3ZhbHVlCgkgIFdlIHdlcmUgYWxyZWFkeSB1c2luZyB0aGlzIGludGVybmFsbHksIHRoaXMgbWFrZXMgaXQgcHVibGljIGZvciBjb2RlCgkgIHdoaWNoIGZyZXF1ZW50bHkgYXBwZW5kcyB2YWx1ZXMgd2hpY2ggYXJlIGV4cGVuc2l2ZSB0byBjb3B5IChsaWtlCgkgIHN0cnVjdHVyZXMsIGFycmF5cywgY2FwcywgLi4uKS4KCSAgQXZvaWRzIGNvcGllcyBvZiB0aGUgdmFsdWVzIGZvciB1c2Vycy4gVGhlIHBhc3NlZCBHVmFsdWUgd2lsbCBhbHNvCgkgIGJlIDAtbWVtc2V0J2VkIGZvciByZS11c2UuCgkgIE5ldyB1c2VycyBjYW4gcmVwbGFjZSB0aGlzIGtpbmQgb2YgY29kZToKCSAgZ3N0X3ZhbHVlXypfYXBwZW5kX3ZhbHVlKG15Y29udGFpbmVyLCAmbXl2YWx1ZSk7CgkgIGdfdmFsdWVfdW5zZXQoJm15dmFsdWUpOwoJICBieToKCSAgZ3N0X3ZhbHVlXypfYXBwZW5kX2FuZF90YWtlX3ZhbHVlKG15Y29udGFpbmVyLCAmbXl2YWx1ZSk7CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDE2MzIKCjIwMTMtMDUtMjkgMTc6MjA6MzQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IFVzZSBpbnRlcm5hbCBmdW5jdGlvbiBmb3IgYnVmZmVyX25ld193cmFwcGVkCgkgIFNoYXZlcyB+MTAlIGluc3RydWN0aW9uIGNhbGxzIGZyb20gdGhlIHRvdGFsIGNvc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTYzMwoKMjAxMy0wNS0zMCAyMjo1Nzo0OSAtMDYwMCAgQnJlbmRhbiBMb25nIDxzZWxmQGJyZW5kYW5sb25nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogcmV0dXJuIEZBTFNFIGZvciAiYWN0aXZlIiBwcm9wZXJ0eSBpZiBzZWxlY3RvciBpcyBOVUxMCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDEzMjMKCjIwMTMtMDYtMDEgMTQ6MDA6MjIgKzAxMDAgIEFuZHJ6ZWogQmllbmllayA8YW5keWhlbHBAZ21haWwuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtdGhyZWFkcy54bWw6CgkgIG1hbnVhbDogdXBkYXRlIGVsZW1lbnRzIHRvIG1hdGNoIHRoZSByZXN0IG9mICJCb29zdCBwcmlvcml0eSBvZiBhIHRocmVhZCIgc2VjdGlvbgoKMjAxMy0wNi0wMSAxMzo1NTo1MCArMDEwMCAgQW5kcnplaiBCaWVuaWVrIDxhbmR5aGVscEBnbWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBmaXggY29tbWVudCBpbiBlZmZlY3Rzd2l0Y2ggZXhhbXBsZQoKMjAxMy0wNi0wMSAxMzo0OToxOCArMDEwMCAgQW5kcnplaiBCaWVuaWVrIDxhbmR5aGVscEBnbWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBmaXggYSB0eXBvIGluICJJbnNlcnRpbmcgZGF0YSB3aXRoIGFwcHNyYyIgc2VjdGlvbgoKMjAxMy0wNi0wMSAxMzoyMjoyMiArMDEwMCAgQW5kcnplaiBCaWVuaWVrIDxhbmR5aGVscEBnbWFpbC5jb20+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtcW9zLnhtbDoKCSogZG9jcy9wd2cvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSAgcHdnOiBmaXggYSBmZXcgdHlwb3MKCjIwMTMtMDUtMzEgMjM6Mzc6MDcgKzAxMDAgIEFuZHJ6ZWogQmllbmllayA8YW5keWhlbHBAZ21haWwuY29tPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogcmVtb3ZlIGRvdWJsZSAidGhlIgoKMjAxMy0wNS0yOCAyMzozNDo1NCArMDEwMCAgS3J6eXN6dG9mIEtvbm9wa28gPGtyenlzenRvZi5rb25vcGtvQGdtYWlsLmNvbT4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgc2NyaXB0czogaW1wcm92ZSBnaXQtdXBkYXRlLnNoIHN0YXR1cyBtZXNzYWdlCgkgIEJ5IGRlZmF1bHQgd2hlbiB0aGUgc2NyaXB0IGlzIGFib3V0IHRvIGV4aXQgKG5vcm1hbGx5IG9yIGR1ZSB0byBhbiBlcnJvciksCgkgIGl0IGNoZWNrcyB3aGV0aGVyICRFUlJPUl9MT0cgZmlsZSBleGlzdHMuICBJZiB0aGUgbG9nIGZpbGUgZXhpc3RzLCB0aGUKCSAgc2NyaXB0IHByaW50cyBhICJGYWlsdXJlczogIiBtZXNzYWdlIHByZWZpeCBhbmQgZHVtcHMgdGhlIGxvZyBmaWxlIHRvIHRoZQoJICBvdXRwdXQuCgkgIEFwcGFyZW50bHkgdGhlIGxvZyBmaWxlIGlzIGFsd2F5cyBjcmVhdGVkIGFuZCBpZiB0aGUgdXBkYXRlL2J1aWxkIGlzCgkgIHN1Y2Nlc3NmdWwsIHRoZSBzY3JpcHQgZmluaXNoZXMgd2l0aCBhIGJpdCBtaXNsZWFkaW5nICJGYWlsdXJlczogIiBtZXNzYWdlLgoJICBBbiBpbXByb3ZlbWVudCBwcm92aWRlZCB3aXRoIHRoaXMgY2hhbmdlIGxldHMgdGhlIGxvZyBmaWxlIHRvIGJlIGNyZWF0ZWQgYXMKCSAgbmVlZGVkLCBpLmUuIGlmIHRoZXJlJ3MgYW4gZXJyb3IgbWVzc2FnZSB0byBiZSBwcmludGVkLiAgSWYgdGhlIGZpbGUKCSAgZG9lc24ndCBleGlzdHMsIHRoZSBzY3JpcHQgcHJpbnRzIGEgIlVwZGF0ZSBkb25lIiBtZXNzYWdlIHdoaWNoIGNsZWFybHkKCSAgaW5kaWNhdGVzIHN1Y2Nlc3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDExNzcKCjIwMTMtMDUtMzAgMDc6MDM6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkgIGNoZWNrOiBmaXggcG9zaXRpb24gdW5pdCB0ZXN0CgoyMDEzLTA1LTMwIDA2OjUxOjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaW1wcm92ZSBwb3NpdGlvbiByZXBvcnRpbmcgd2l0aG91dCBjbG9jawoJICBXaGVuIG5vIGJhc2UgdGltZSBvciB3aGVuIHN5bmMgaXMgZGlzYWJsZWQsIHVzZSB0aGUgc2FtZSBsb2dpYyBhcwoJICBpbiBwYXVzZWQgdG8gcmVwb3J0IHBvc2l0aW9uLiBUaGUgbG9naWMgaW4gUExBWUlORyBhc3N1bWVzIHdlIHVzZSB0aGUKCSAgY2xvY2suCgoyMDEzLTA1LTI5IDExOjM2OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggbWVtb3J5IGxlYWsgaW4gdGhlIHVuaXQgdGVzdAoKMjAxMy0wNS0yOCAxMjo0NDoxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IEFkZCBzdXBwb3J0IGZvciBjaGVja2luZyBzdWJ0aXRsZS9tZXRhZGF0YSBmYWN0b3J5IHR5cGVzCgoyMDEzLTA1LTI4IDEyOjQxOjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogQWRkIHN1cHBvcnQgZm9yIGNoZWNraW5nIG9ubHkgdGhlIG1lZGlhIHR5cGUgb2YgYSBmYWN0b3J5CgkgIEFuZCB3aGlsZSBhdCBpdCBhbHNvIGFkZCBNZXRhZGF0YSBhbmQgU3VidGl0bGUgbWVkaWEgdHlwZXMuCgoyMDEzLTA1LTI3IDE2OjM4OjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIChtdWx0aSlxdWV1ZTogRG9uJ3QgYWNjZXNzIHF1ZXJ5IGl0ZW1zIGR1cmluZyBmbHVzaGluZwoKMjAxMy0wNS0yNyAxNjoyMjowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgZG8gc2VyaWFsaXplZCBxdWVyaWVzIHdoZW4gd2UncmUgZmx1c2hpbmcKCSAgSnVzdCBpbW1lZGlhdGVseSBmYWlsIHRoZSBxdWVyeSwgb3RoZXJ3aXNlIHdlIHdvdWxkIHdhaXQgZm9yZXZlcgoJICBmb3IgdGhlIHF1ZXJ5IHRvIGJlIGFuc3dlcmVkLgoKMjAxMy0wNS0yNyAxNjowODozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpcnN0IHNldCBxdWVyeSByZXN1bHQsIHRoZW4gc2lnbmFsIEdDb25kCgoyMDEzLTA1LTI3IDE1OjU5OjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogRml4IGhhbmRsaW5nIG9mIHNlcmlhbGl6ZWQgcXVlcmllcwoJICBEdXJpbmcgRkxVU0hfU1RBUlQgdGhlIHF1ZXJ5IG5lZWRzIHRvIGJlIHVuYmxvY2tlZCBhbHJlYWR5LCBvdGhlcndpc2UKCSAgaXQgY2FuIGxlYWQgdG8gZGVhZGxvY2tzIGlmIHRoZSBGTFVTSF9TVEFSVCBpcyB0aGUgcmVzdWx0IG9mIHNvbWV0aGluZwoJICBkb25lIGZyb20gdGhlIHN0cmVhbWluZyB0aHJlYWQgb2YgdGhlIHNyY3BhZCAodGhlIHF1ZXVlIHdpbGwgbmV2ZXIgYmUKCSAgZW1wdGllZCEpLgoKMjAxMy0wNS0yNyAxNTo0MToxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFVuYmxvY2sgYW55IHdhaXRpbmcgc2VyaWFsaXplIHF1ZXJpZXMgb24gRkxVU0hfU1RBUlQKCSAgRml4ZXMgc29tZSBkZWFkbG9ja3MgZHVyaW5nIGZsdXNoaW5nLgoJICBBbmQgc3RvcmUgcXVldWUgaXRlbXMgZGlmZmVyZW50bHkgdG8gbm90IGFjY2lkZW50aWFsbHkgcmVhZAoJICBhbHJlYWR5IHVucmVmZmVkIHF1ZXJpZXMgd2hlbiBmbHVzaGluZy4gUXVlcmllcyBhcmUgb3duZWQgYnkKCSAgdXBzdHJlYW0gYW5kIG5vdCB1cy4KCjIwMTMtMDUtMjcgMTM6MDE6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlL3F1ZXVlMi9tdWx0aXF1ZXVlOiBXaGVuIGZsdXNoaW5nLCBtYWtlIHN1cmUgdG8gbm90IGxvc2UgYW55IHN0aWNreSBldmVudHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODgyNAoKMjAxMy0wNS0yNyAxMjo0MDo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFN0b3JlIHN0aWNreSBldmVudHMgZXZlbiBpZiB0aGUgcGFkIGlzIGZsdXNoaW5nCgkgIEJ1dCBkbyB0aGlzIG9ubHkgZm9yIGV2ZW50cyB0aGF0IGFyZSBub3QgZHJvcHBlZCBieSBmbHVzaGluZywKCSAgaS5lLiBkbyBpdCBvbmx5IGZvciBldmVyeXRoaW5nIGV4Y2VwdCBTRUdNRU5UIGFuZCBFT1MuCgkgIFdpdGhvdXQgdGhpcyB3ZSBtaWdodCBkcm9wIGEgQ0FQUyBldmVudCBpZiBmbHVzaGluZyBoYXBwZW5zCgkgIGF0IGFuIHVuZm9ydHVuYXRlIHRpbWUgYW5kIG5vYm9keSBpcyByZXNlbmRpbmcgdGhlIENBUFMgZXZlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDA4MDYKCjIwMTMtMDUtMjUgMjI6MDM6NTMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogRG9uJ3QgcmVhZCBzdGlja3kgZmxhZyBmcm9tIHVucmVmZWQgZXZlbnQKCjIwMTMtMDUtMjQgMjM6Mjg6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IGZpeCBwcm9wZXJ0eSBkZXNjcmlwdGlvbiBmb3Igbm93LXVudXNlZCAiYWxsb2MtcGFkIiBwcm9wZXJ0eQoJICBTaG91bGQgcHJvYmFibHkgcHJveHkgQUxMT0NBVElPTiBxdWVyaWVzIG9uIHRoYXQgdGhvdWdoLCBpZiBzZXQuCgkgIEJ1dCB3aGF0IGVsc2U/IENBUFMgYW5kIEFDQ0VQVF9DQVBTIHRvbz8KCjIwMTMtMDUtMjQgMjM6MDE6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVtb3ZlIDAuMTAtaXNtIGZyb20gZG9jcwoJICBnc3RfYnVmZmVyX3BhZF9hbGxvYygpIG5ldmVyIGV4aXN0ZWQsIGFuZCBnc3RfcGFkX2FsbG9jX2J1ZmZlcigpCgkgIGRvZXNuJ3QgZXhpc3QgYW55IG1vcmUgZWl0aGVyLCBzbyBkb24ndCBtZW50aW9uIGl0IGluIHRoZSBkb2NzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk0NzE0CgoyMDEzLTA1LTI0IDE5OjIyOjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IEFkZCBzdXBwb3J0IGZvciBzZXJpYWxpemVkIHF1ZXJpZXMgaWYgdXNpbmcgYSBtZW1vcnkgcXVldWUKCjIwMTMtMDUtMjQgMTg6NDc6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IFNldCB0aGUgbGFzdCBzZXJpYWxpemVkIHF1ZXJ5IHJlc3VsdCB0byBGQUxTRSB3aGVuIGZsdXNoaW5nCgoyMDEzLTA1LTI0IDE4OjQyOjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogSW5pdGlhbGl6ZSBhbGwgR3N0TXVsdGlRdWV1ZUl0ZW0gZmllbGRzIGluIGJvdGggY29kZSBwYXRocwoKMjAxMy0wNS0yNCAxODozODo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IGFjY2VzcyB0aGUgcXVlcnkgYWZ0ZXIgc2lnbmFsbGluZyB0aGUgd2FpdGluZyB0aHJlYWQKCSAgSXQgbWlnaHQndmUgZnJlZSdkIHRoZSBxdWVyeSBhbHJlYWR5LgoKMjAxMy0wNS0yNCAxODozMDo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IE1ha2Ugc3VyZSB0byBhbHdheXMgc2lnbmFsIGFueSBwb3NzaWJsZSBwZW5kaW5nIHNlcmlhbGl6ZWQgcXVlcmllcwoJICBBbmQgZG9uJ3QgdW5yZWYgdGhlbSB3aGVuIGZsdXNoaW5nIHRoZSBxdWV1ZSwgdGhleSdyZSBvd25lZCBieSB0aGUgY2FsbGVyIQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAwMzQyCgoyMDEzLTA1LTI0IDE0OjM3OjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUmV0dXJuIEdTVF9GTE9XX0VSUk9SIGlmIHRoZSBhbGxvY2F0b3IgZGlkIG5vdCBhbGxvdyB0byBhbGxvY2F0ZSBhIGJ1ZmZlcgoKMjAxMy0wNS0yNCAxNjoyNDoxMCArMDkwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSAgZG9jczogUmVtb3ZlIG1lbnRpb24gb2YgZ2NvbmYqIGVsZW1lbnRzCgkgIEluc3RlYWQgcmVjb21tZW5kIHB1bHNlc3JjL3NpbmsgZm9yIGF1ZGlvLCB0aGVyZSBpcyBub3RoaW5nIEdOT01FCgkgIHNwZWNpZmljIGZvciB2aWRlby4KCjIwMTMtMDUtMTUgMTM6MjI6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IEhhbmRsZSB0aGUgZm9yY2UtY2FwcyBwcm9wZXJ0eSBtb3JlIHNpbWlsYXIgdG8gYWxsIHR5cGVmaW5kaW5nIGNvZGUgZmxvdwoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBldmVudHMgaGFwcGVuIGluIG9yZGVyIGFuZCBzaW1wbGlmaWVzIHRoZSBjb2RlIGEgYml0LgoKMjAxMy0wNS0xNSAxMToyMTo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogRml4IGV2ZW50IGhhbmRsaW5nIGluIGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QoKQoKMjAxMy0wNS0xNSAxMDo1MTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDVlZGNkODUgdG8gMDk4YzBkNwoKMjAxMy0wNS0xMCAxNjowMzozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogT25seSBjaGVjayBpZiB3ZSBnZXQgYnVmZmVycyBiZWZvcmUgc3RyZWFtLXN0YXJ0L3NlZ21lbnQgaWYgY29tcGlsaW5nIHdpdGhvdXQgR19ESVNBQkxFX0FTU0VSVAoJICBJbiByZWxlYXNlcyB0aGlzIGlzIHNldCB1c3VhbGx5LgoKMjAxMy0wNS0wOSAxNzoxNzoxNCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBBZGQgaGVscGVyIHRoYXQgc2VuZHMgaW5pdGlhbCBldmVudHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMDAzMwoKMjAxMy0wNS0wOSAxNzoyMjoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgY29tcGlsZXIgd2FybmluZwoKMjAxMy0wNS0wOSAxNzoyMToxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogTWFrZSBzdXJlIHBlbmRpbmcsIG9sZGVyIHN0aWNreSBldmVudHMgYXJlIHNlbnQgZG93bnN0cmVhbSBpbiBkeW5hbWljIGxpbmtpbmcgc2NlbmFyaW9zCgkgIElmIGEgcGFkIGJsb2NrIHdhcyB0cmlnZ2VyZWQgZnJvbSBzZW5kaW5nIGEgc3RpY2t5IGV2ZW50IGRvd25zdHJlYW0sIGl0CgkgIGNvdWxkIGhhcHBlbiB0aGF0IHRoZSBwYWQgYmxvY2sgaXMgcmVsaW5raW5nIHBhZHMsIHdoaWNoIHRoZW4gcmVxdWlyZXMKCSAgdG8gcmVzZW5kIHByZXZpb3VzIHN0aWNreSBldmVudHMuCgoyMDEzLTA1LTA5IDEzOjMyOjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIHRlc3RzOiBGaXggZXZlbnQgb3JkZXIgd2FybmluZ3MgYW5kIGRhdGFmbG93IGJlZm9yZSBzdHJlYW0tc3RhcnQvc2VnbWVudCBldmVudAoKMjAxMy0wNS0wOSAxMzozMTozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJICBiYXNldHJhbnNmb3JtOiBQcm9wZXJseSBwb3J0IHVuaXQgdGVzdCB0byBhY3R1YWxseSB1c2UgY2FwcyBhbmQgY2hlY2sgcmVzdWx0cwoKMjAxMy0wNS0wOSAxMjo1MDoyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBTdG9yZSBzdGlja3kgZXZlbnRzIG9uIHRoZSBzcmNwYWQgaWYgd2UncmUgZHJvcHBpbmcgdGhlbSBiZWNhdXNlIG9mIGxlYWtpbmcKCjIwMTMtMDUtMDkgMTI6Mjc6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogQWx3YXlzIGZvcndhcmQgc3RpY2t5IGV2ZW50cyB0byBhbGwgcGFkcwoKMjAxMy0wNS0wOSAxMjoxNTo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRm9yd2FyZCBhbGwgc3RpY2t5IGV2ZW50cywgaW5jbHVkaW5nIHN0cmVhbS1zdGFydAoKMjAxMy0wNS0wOSAxMTowNTo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogV2FybiBpZiBkYXRhIGZsb3cgaGFwcGVucyBiZWZvcmUgc3RyZWFtLXN0YXJ0IG9yIHNlZ21lbnQgZXZlbnQKCjIwMTMtMDUtMDkgMTA6NTk6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE9ubHkgbGV0IGdzdF9wYWRfc3RpY2t5X2V2ZW50c19mb3JlYWNoKCkgaXRlcmF0ZSBvdmVyIGV4aXN0aW5nIGV2ZW50cwoKMjAxMy0wNS0wOSAxMDoyOToxMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogSWYgd2UgcHVzaCBzdGlja3kgZXZlbnRzIGJlY2F1c2Ugb2YgYW5vdGhlciBzdGlja3kgZXZlbnQsIG9ubHkgcHVzaCB0aG9zZSB0aGF0IGNvbWUgYmVmb3JlIHRoZSBuZXcgZXZlbnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5OTkzNwoKMjAxMy0wNS0wOSAwOTo1MDo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogQWRkIG1vcmUgZGVidWcgb3V0cHV0IGFuZCBmb3J3YXJkIGNhcHMgZXZlbnRzIGltbWVkaWF0ZWx5IHRvbwoKMjAxMy0wNS0wOSAwOTo0MjozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogTm8gc3RpY2t5IGV2ZW50cyBtdXN0IGFycml2ZSBhZnRlciBFT1MKCjIwMTMtMDUtMDkgMDk6Mzg6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IEZpeCB0eXBvIGluIGxhc3QgY29tbWl0CgoyMDEzLTA1LTA4IDE5OjQ0OjA5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBJbXByb3ZlIHdhcm5pbmcgbWVzc2FnZSBuYW1pbmcgZXZlbnRzIHR5cGUgbmFtZQoJICBXaXRoIHRoaXMgcGF0Y2gsIG1lc3NhZ2Ugc2hvdWxkIGxvb2sgbGlrZSDCqFN0aWNreSBldmVudCBtaXNvcmRlcmluZywgZ290CgkgICdjYXBzJyBiZWZvcmUgJ3N0cmVhbS1zdGFydCfCqCBtYWtpbmcgaXQgZmFzdGVyIHRvIGRlYnVnLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4MTg4CgoyMDEzLTA1LTA4IDE4OjE5OjQ4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBPbmx5IGluZm9yY2UgU1RSRUFNX1NUQVJULCBDQVBTIGFuZCBTRUdNRU5UIG9yZGVyaW5nCgkgIFByZXZpb3VzIHBhdGNoIHdhcyBpbmZvcmNpbmcgYSBjb21wbGV0ZSBvcmRlcmluZyBvZiB0aGUgc3RpY2t5IGV2ZW50cywgd2hpbGUKCSAgaW4gZmFjdCwgb25seSBTVFJFQU1fU1RBUlQsIENBUFMgYW5kIFNFR01FTlQgZXZlbnRzIG5lZWQgcHJvcGVyIG9yZGVyaW5nLgoJICBTZWU6IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODgxODgKCjIwMTMtMDUtMDkgMDk6MzI6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oOgoJICBjYXBzZmlsdGVyOiBTZW5kIGFsbCBldmVudHMgdGhhdCBzaG91bGQgaGFwcGVuIGFmdGVyIENBUFMgYWZ0ZXIgdGhlIENBUFMgZXZlbnQKCjIwMTMtMDUtMDggMjE6NDU6MDggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oOgoJICBjYXBzZmlsdGVyOiBTZW5kIGNhcHMgYmVmb3JlIHNlZ21lbnQKCSAgSW4gdGhlIGNhc2UgdGhlIHNvdXJjZSBoYXMgbm8gY2FwcywgY2FwcyBtdXN0IGJlIHNlbnQgYmVmb3JlIHNlZ21lbnQuIFRoaXMKCSAgZml4ZXMgZmV3IHVuaXQgdGVzdHMgdGhhdCB3aGVyZSBmYWlsaW5nIGR1ZSB0byB0aGUgbmV3IG1pc29yZGVyaW5nIHdhcm5pbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTk5NjgKCjIwMTMtMDUtMDcgMjE6NTM6MzcgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERldGVjdCwgZml4IGFuZCB3YXJuIHdoZW4gc3RpY2t5IGV2ZW50cyBhcmUgaW4gd3Jvbmcgb3JkZXIKCSAgV2UgY2FuIHByZXZlbnQgYnVnZ3kgZWxlbWVudCBmcm9tIGNhdXNpbmcgb3RoZXIgZWxlbWVudHMgdG8gZmFpbCBvciBjcmFzaAoJICBieSBzb3J0aW5nIHN0aWNreSBldmVudCBhdCBpbnNlcnRpb24uIEluIHRoaXMgY2FzZSwgd2UgYWxzbyB3YXJuIGFzIHRoaXMKCSAgaXMgbm90IHN1cHBvc2VkIHRvIGhhcHBlbi4KCSAgU2VlOiBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4MTg4CgoyMDEzLTA1LTA4IDEwOjI2OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICB0ZXN0czogYWRkIHNvbWUgYmFzaWMgY2hlY2tzIGZvciBnc3RfYnVmZmVyX2ZpbGwoKQoKMjAxMy0wNS0wOCAxMDoyNTozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhbGxvdyBjYWxsaW5nIF9maWxsKCkgd2l0aCBhIE5VTEwgZGF0YSBwb2ludGVyIGlmIHNpemUgaXMgMCBieXRlcwoKMjAxMy0wNS0wNyAxNjo0NjozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogQWRkIEZJWE1FIGNvbW1lbnQgZm9yIHVudXNlZCBhc3NpZ25tZW50IHJlc3VsdHMKCjIwMTMtMDUtMDcgMTU6MTg6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1tZXRhZGF0YS54bWw6CgkgIGRvY3M6IGZpeCB0eXBvIGluIG1ldGFkYXRhIHNlY3Rpb24gaW4gYXBwIGRldiBtYW51YWwKCSAgVGhlcmUncyBubyBnX3RhZ19saXN0X2dldF94eXooKS4KCjIwMTMtMDUtMDcgMTQ6NDc6MDkgKzAzMDAgIFNyZWVyZW5qIEJhbGFjaGFuZHJhbiA8c3JlZXJlbmouYmFsYWNoYW5kcmFuQGludGVsLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogRml4IHRoZSBmdW5jdGlvbiBzaWduYXR1cmUgYW5kIGEgbWlub3IgdHlwbyBmaXgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5OTgyNwoKMjAxMy0wNS0wNiAxODo0Nzo0NCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFNlbmQgc3RyZWFtLXN0YXJ0IGJlZm9yZSBhbnl0aGluZyBlbHNlCgkgIFRvIGRvIHNvLCBzZW5kIHN0cmVhbS1zdGFydCB3aGVuIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGdvZXMgdXAgZm9yIHRoZSBmaXJzdAoJICB0aW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk5NzY3CgoyMDEyLTEyLTI2IDExOjU0OjUxICswMDAwICBEYXZpZCBSb3RobGlzYmVyZ2VyIDxkYXZpZEByb3RobGlzLm5ldD4KCgkqIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOgoJICB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjogQWxsb3cgMS4wIGFuZCAwLjEwIHNjcmlwdHMgaW5zdGFsbGVkIHNpbXVsdGFuZW91c2x5CgkgIEFzIGxvbmcgYXMgdGhlIHNjcmlwdHMnIGZpbGVuYW1lcyBhcmUgZGlmZmVyZW50LCBhbmQgdGhlIF9nc3RfaW5zcGVjdAoJICBhbmQgX2dzdF9sYXVuY2ggZnVuY3Rpb25zIGFyZSBuYW1lZCBkaWZmZXJlbnRseSwgdGhlIGNvbXBsZXRpb24gc2NyaXB0cwoJICBmb3IgR1N0cmVhbWVyIDEuMCBhbmQgMC4xMCBjYW4gYmUgaW5zdGFsbGVkIHNpZGUtYnktc2lkZSBpbgoJICAvZXRjL2Jhc2hfY29tcGxldGlvbi5kLgoJICBPbiBteSAwLjEwIGJyYW5jaOKAoCB0aGUgY29tcGxldGlvbiBzY3JpcHQgaXMgcmVuYW1lZCB0bwoJICAiZ3N0cmVhbWVyLWNvbXBsZXRpb24tMC4xMCIgYW5kIHRoZSBmdW5jdGlvbnMgYXJlIHJlbmFtZWQgdG8KCSAgIl9nc3RfaW5zcGVjdF8wXzEwIiBhbmQgIl9nc3RfbGF1bmNoXzBfMTAiLiBUaGUgcmVtYWluaW5nIGhlbHBlcgoJICBmdW5jdGlvbnMgc2hvdWxkIHJlbWFpbiBpZGVudGljYWwgKHRoZSBjb21tYW5kLWxpbmUgaW50ZXJmYWNlIHRvCgkgIGdzdC1pbnNwZWN0IGhhc24ndCBjaGFuZ2VkLCBub3IgaGFzIHRoZSBmb3JtYXQgb2YgdGhlIGdzdC1sYXVuY2gKCSAgcGlwZWxpbmUpLCBzbyBpdCBkb2Vzbid0IG1hdHRlciBpZiB0aGUgMS4wIHNjcmlwdCBvdmVycmlkZXMgdGhlIDAuMTAKCSAgc2NyaXB0J3MgZGVmaW5pdGlvbnMuCgkgIE5vdGUgdGhhdCBJIGRvbid0IGV4cGVjdCB0aGVyZSB0byBiZSBhbm90aGVyIEdTdHJlYW1lciAwLjEwIHJlbGVhc2UsIHNvCgkgIHRoZSAwLjEwIGNvbXBsZXRpb24gc2NyaXB0IHdpbGwgcHJvYmFibHkgbmV2ZXIgYmUgb2ZmaWNpYWxseSByZWxlYXNlZDsKCSAgYnV0IGl0IGlzIHN0aWxsIHdvcnRod2hpbGUgYWxsb3dpbmcgYm90aCBzY3JpcHRzIHRvIGJlIGluc3RhbGxlZAoJICBhbG9uZ3NpZGUgZWFjaCBvdGhlciwgZm9yIHRob3NlIHdobyBpbnN0YWxsIHRoZSAwLjEwIGNvbXBsZXRpb24gc2NyaXB0CgkgIG1hbnVhbGx5LgoJICBGaXhlczogIzY5MDUxNQoJICDigKAgaHR0cHM6Ly9naXRodWIuY29tL2Ryb3RobGlzL2dzdHJlYW1lci9ibG9iL2Jhc2gtY29tcGxldGlvbi0wLjEwL3Rvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uLTAuMTAKCjIwMTItMTItMjEgMTg6MTM6NTMgKzAwMDAgIERhdmlkIFJvdGhsaXNiZXJnZXIgPGRhdmlkQHJvdGhsaXMubmV0PgoKCSogdGVzdHMvbWlzYy90ZXN0LWdzdHJlYW1lci1jb21wbGV0aW9uLnNoOgoJKiB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjoKCSAgdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246IENvbXBsZXRlIG9wdGlvbiAmIHByb3BlcnR5IHZhbHVlcyBvbiBiYXNoIDMuMgoJICBCYXNoIDMncyBjb21wbGV0aW9uIGRvZXNuJ3Qgc3BsaXQgd29yZHMgYnkgY2hhcmFjdGVycyBpbgoJICBDT01QX1dPUkRCUkVBS1MuIEluIHBhcnRpY3VsYXIgaXQgZG9lc24ndCBzcGxpdCBhdCAiPSIgc2lnbnMuIE5vdwoJICBfZ3N0X2xhdW5jaF9wYXJzZSBoYW5kbGVzIGJvdGggYmFzaCAzIGFuZCA0IGZvcm1hdCBvZiBDT01QX1dPUkRTLgoJICBOb3RlIHRoYXQgIiR7Y3VyJSU9Kn0iIG1lYW5zIGN1cidzIHZhbHVlIHdpdGggdGhlIGxvbmdlc3QgcG9zc2libGUgbWF0Y2gKCSAgb2YgIj0qIiBkZWxldGVkIGZyb20gdGhlIGVuZDsgIiR7Y3VyIyo9fSIgbWVhbnMgY3VyJ3MgdmFsdWUgd2l0aCB0aGUKCSAgc2hvcnRlc3QgcG9zc2libGUgbWF0Y2ggb2YgIio9IiBkZWxldGVkIGZyb20gdGhlIGJlZ2lubmluZy4gU2VlCgkgIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9iYXNoL21hbnVhbC9odG1sX25vZGUvU2hlbGwtUGFyYW1ldGVyLUV4cGFuc2lvbi5odG1sCgkgIFJlZ2FyZGxlc3Mgb2YgdGhlIHZlcnNpb24gb2YgYmFzaCBydW5uaW5nIHRoZSB1bml0IHRlc3RzLCBJIGNhbiB0ZXN0IGZvcgoJICBib3RoIGJlaGF2aW91cnMgYmVjYXVzZSB0aGUgdW5pdCB0ZXN0IHBvcHVsYXRlcyBDT01QX1dPUkRTIG1hbnVhbGx5LiBTbwoJICB0aGlzIHRlc3RzIHRoZSBiYXNoIDMgYmVoYXZpb3VyOgoJICB0ZXN0X2dzdF9pbnNwZWN0X2NvbXBsZXRpb24gLS1nc3QtZGVidWctbGV2ZWw9NAoJICBhbmQgdGhpcyB0ZXN0cyB0aGUgYmFzaCA0IGJlaGF2aW91cjoKCSAgdGVzdF9nc3RfaW5zcGVjdF9jb21wbGV0aW9uIC0tZ3N0LWRlYnVnLWxldmVsID0gNAoKMjAxMi0xMi0yMSAwODo1NjoyNiArMDAwMCAgRGF2aWQgUm90aGxpc2JlcmdlciA8ZGF2aWRAcm90aGxpcy5uZXQ+CgoJKiB0ZXN0cy9taXNjL3Rlc3QtZ3N0cmVhbWVyLWNvbXBsZXRpb24uc2g6CgkqIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOgoJICB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjogQmFzaCAzLjIgY29tcGF0aWJpbGl0eSBmaXhlcwoJICBDb21wYXRpYmxlIHdpdGggYmFzaCAzLjI7IGRvZXNuJ3QgcmVxdWlyZSB0aGUgYmFzaC1jb21wbGV0aW9uIHBhY2thZ2UgYXQKCSAgYWxsICh0aG91Z2ggdGhlIGVhc2llc3Qgd2F5IHRvIGluc3RhbGwgdGhpcyBzY3JpcHQgaXMgc3RpbGwgdG8gaW5zdGFsbAoJICBiYXNoLWNvbXBsZXRpb24sIGFuZCB0aGVuIGRyb3AgdGhpcyBzY3JpcHQgaW50byAvZXRjL2Jhc2hfY29tcGxldGlvbi5kKS4KCSAgTm90ZSB0aGF0IGJhc2ggMyBkb2Vzbid0IGJyZWFrIENPTVBfV09SRFMgYWNjb3JkaW5nIHRvIGNoYXJhY3RlcnMgaW4KCSAgQ09NUF9XT1JEQlJFQUtTLCBzbyAicHJvcGVydHk9dmFsIiBsb29rcyBsaWtlIGEgc2luZ2xlIHdvcmQsIHNvIHRoaXMKCSAgd29uJ3QgY29tcGxldGUgcHJvcGVydHkgdmFsdWVzIChvbiBiYXNoIDMpLiBTaW1pbGFybHksCgkgICItLWdzdC1kZWJ1Zy1sZXZlbD08VEFCPiIgd29uJ3QgY29tcGxldGUgcHJvcGVybHkgKG9uIGJhc2ggMyksIGJ1dAoJICAiLS1nc3QtZGVidWctbGV2ZWwgPFRBQj4iIHdpbGwuCgkgIEZvciB0aGF0IHJlYXNvbiwgSSBub3cgb2ZmZXIgIi0tZ3N0LWRlYnVnLWxldmVsIiBldGMgYXMgY29tcGxldGlvbnMKCSAgaW5zdGVhZCBvZiAiLS1nc3QtZGVidWctbGV2ZWw9Ii4KCSAgRnVuY3Rpb25zICJfaW5pdF9jb21wbGV0aW9uIiBhbmQgIl9wYXJzZV9oZWxwIiB3ZXJlIHByb3ZpZGVkIGJ5IHRoZQoJICBiYXNoLWNvbXBsZXRpb24gcGFja2FnZSA+PSAyLjA7IG5vdyBJIHJvbGwgbXkgb3duIGVxdWl2YWxlbnQgb2YKCSAgIl9wYXJzZV9oZWxwIiwgYW5kIGluc3RlYWQgb2YgIl9pbml0X2NvbXBsZXRpb24iIEkgdXNlCgkgICJfZ2V0X2NvbXBfd29yZHNfYnlfcmVmIiB3aGljaCBpcyBhdmFpbGFibGUgZnJvbSBiYXNoLWNvbXBsZXRpb24gMS4yCgkgIG9ud2FyZHMuIElmIHRoZSBiYXNoLWNvbXBsZXRpb24gcGFja2FnZSBpc24ndCBhdmFpbGFibGUgYXQgYWxsIEkgdXNlCgkgIGJhc2gncyByYXcgZmFjaWxpdGllcywgYXQgdGhlIGV4cGVuc2Ugb2Ygbm90IGNvbXBsZXRpbmcgcHJvcGVybHkgd2hlbgoJICB0aGUgY3Vyc29yIGlzIGluIHRoZSBtaWRkbGUgb2YgYSB3b3JkLgoJICBUaGUgYnVpbHRpbiAiY29tcG9wdCIgZG9lc24ndCBleGlzdCBpbiBiYXNoIDM7IHRob3NlIHVzZXJzIHdpbGwganVzdAoJICBoYXZlIHRvIGxpdmUgd2l0aCB0aGUgaW5jb252ZW5pZW5jZSBvZiAicHJvcGVydHk9IiBjb21wbGV0aW5nIHRvCgkgICJwcm9wZXJ0eT0gIiB3aXRoIGEgdHJhaWxpbmcgc3BhY2UuIFByb3BlcnR5IHZhbHVlcyBhcmVuJ3QgY29tcGxldGVkCgkgIHByb3Blcmx5IGFueXdheSBvbiBiYXNoIDMgKHNlZSBhYm92ZSkuCgkgICJbWyAtdiB2YXIgXV0iIHRvIHRlc3Qgd2hldGhlciBhIHZhcmlhYmxlIGlzIHNldCwgYWxzbyBkb2Vzbid0IGV4aXN0IGluCgkgIGJhc2ggMy4gTmVpdGhlciBkb2VzICI7OyYiIHRvIGZhbGwgdGhyb3VnaCBpbiBhICJjYXNlIiBzdGF0ZW1lbnQuCgkgIEluIHRoZSB1bml0IHRlc3RzOgoJICAqIE9uIG15IHN5c3RlbSAoT1MgWCksICIjIS9iaW4vYmFzaCIgaXMgYmFzaCAzLjIsIHdoZXJlYXMKCSAgIiMhL3Vzci9iaW4vZW52IGJhc2giIGlzIHRoZSA0LjIgdmVyc2lvbiBJIGJ1aWx0IG15c2VsZi4KCSAgKiBJIGhhdmUgdG8gaW5pdGlhbGlzZSBhcnJheSB2YXJpYWJsZXMgbGlrZSAiZXhwZWN0ZWQ9KCkiLCBvciBiYXNoIDMKCSAgdHJlYXRzICIrPSIgYXMgYXBwZW5kaW5nIHRvIGFuIGFycmF5IGFscmVhZHkgcG9wdWxhdGVkIHdpdGggb25lIGVtcHR5CgkgIHN0cmluZy4KCjIwMTItMTItMTkgMTA6NDY6NTAgKzAwMDAgIERhdmlkIFJvdGhsaXNiZXJnZXIgPGRhdmlkQHJvdGhsaXMubmV0PgoKCSAgdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246IFN1cHBvcnQgZ3N0LWluc3BlY3QsIGFuZCBnc3QtbGF1bmNoIGVsZW1lbnQgcHJvcGVydGllcwoJICBDb21wbGV0ZXMgb3B0aW9ucyBsaWtlICItLWdzdC1kZWJ1Zy1sZXZlbCIgYW5kIHRoZSB2YWx1ZXMgb2Ygc29tZSBvZgoJICB0aG9zZSBvcHRpb25zOyBjb21wbGV0ZXMgZ3N0LWxhdW5jaCBwaXBlbGluZSBlbGVtZW50IG5hbWVzLCBwcm9wZXJ0eQoJICBuYW1lcywgYW5kIGV2ZW4gcHJvcGVydHkgdmFsdWVzIChmb3IgZW51bSBvciBib29sZWFuIHByb3BlcnRpZXMgb25seSkuCgkgIERvZXNuJ3QgY29tcGxldGUgYWxsIGNhcHMgc3BlY2lmaWNhdGlvbnMsIG5vciBlbGVtZW50IG5hbWVzIHNwZWNpZmllZAoJICBlYXJsaWVyIGluIHRoZSBwaXBlbGluZSB3aXRoICJuYW1lPS4uLiIuCgkgIFRoZSBHU3RyZWFtZXIgdmVyc2lvbiBudW1iZXIgaXMgaGFyZC1jb2RlZCBpbnRvIHRoZSBjb21wbGV0aW9uIHNjcmlwdDoKCSAgVGhpcyBwYXRjaCBpcyBvZmYgdGhlIG1hc3RlciBicmFuY2ggYW5kIGhhcyB0aGUgdmVyc2lvbiBoYXJkLWNvZGVkIGFzCgkgICIxLjAiOyBpdCBuZWVkcyB0byBiZSB1cGRhdGVkIGlmIGJhY2twb3J0ZWQgdG8gdGhlIDAuMTAgYnJhbmNoLiBZb3UKCSAgY291bGQgYWx3YXlzIGNyZWF0ZSBhICJnc3RyZWFtZXItY29tcGxldGlvbi5pbiIgdGhhdCBoYXMgdGhlIGFwcHJvcHJpYXRlCgkgIHZlcnNpb24gaW5zZXJ0ZWQgYnkgImNvbmZpZ3VyZSIsIGJ1dCBJJ2QgcmF0aGVyIG5vdCBkbyB0aGF0LiBUaGUKCSAgaGFyZC1jb2RlZCB2ZXJzaW9uIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb24gb2YKCSAgZ3N0cmVhbWVyLWNvbXBsZXRpb24sIHdoaWNoIGhhZCB0aGUgcmVnaXN0cnkgcGF0aCBoYXJkLWNvZGVkIGFzCgkgIH4vLmdzdHJlYW1lci0xLjAvcmVnaXN0cnkueG1sLgoJICBOb3RlIHRoYXQgR1N0cmVhbWVyIDAuMTAgaW5zdGFsbHMgImdzdC1pbnNwZWN0IiBhbmQgImdzdC1pbnNwZWN0LTAuMTAiLgoJICAiZ3N0LWluc3BlY3QgLS1oZWxwIiBvbmx5IHByaW50cyA0IGZsYWdzICgtLWhlbHAsIC0tcHJpbnQsIC0tZ3N0LW1tLAoJICBnc3QtbGlzdC1tbSkgd2hlcmVhcyAiZ3N0LWluc3BlY3QtMC4xMCAtLWhlbHAtYWxsIiBwcmludHMgdGhlIGZ1bGwgbGlzdAoJICBvZiBmbGFncy4gVGhlIHNhbWUgYXBwbGllcyB0byAiZ3N0LWxhdW5jaCIgYW5kICJnc3QtbGF1bmNoLTAuMTAiLgoJICBHU3RyZWFtZXIgMS4wIG9ubHkgaW5zdGFsbHMgImdzdC1pbnNwZWN0LTEuMCIsIG5vdCAiZ3N0LWluc3BlY3QiLgoJICBSZXF1aXJlcyBiYXNoIDQ7IG9ubHkgdGVzdGVkIHdpdGggYmFzaCA0LjIuIFJlcXVpcmVzICJiYXNoLWNvbXBsZXRpb24iCgkgICh3aGljaCB5b3UgaW5zdGFsbCB3aXRoIHlvdXIgc3lzdGVtJ3MgcGFja2FnZSBtYW5hZ2VyKS4KCSAgUHV0IHRoaXMgaW4gL2V0Yy9iYXNoX2NvbXBsZXRpb24uZC8gb3IgaW4gYHBrZy1jb25maWcKCSAgLS12YXJpYWJsZT1jb21wYXRkaXIgYmFzaC1jb21wbGV0aW9uYCwgd2hlcmUgaXQgd2lsbCBiZSBsb2FkZWQgYXQgdGhlCgkgIGJlZ2lubmluZyBvZiBldmVyeSBuZXcgdGVybWluYWwgc2Vzc2lvbjsKCSAgb3IgaW4gYHBnay1jb25maWcgLS12YXJpYWJsZT1jb21wbGV0aW9uc2RpciBiYXNoLWNvbXBsZXRpb25gLCByZW5hbWVkIHRvCgkgIG1hdGNoIHRoZSBuYW1lIG9mIHRoZSBjb21tYW5kIGl0IGNvbXBsZXRlcyAoZS5nLiAiZ3N0LWxhdW5jaC0xLjAiLCB3aXRoCgkgIGFuIGFkZGl0aW9uYWwgc3ltbGluayBuYW1lZCAiZ3N0LWluc3BlY3QtMS4wIiksIHdoZXJlIGl0IHdpbGwgYmUKCSAgYXV0b2xvYWRlZCB3aGVuIG5lZWRlZC4KCSAgdGVzdC1nc3RyZWFtZXItY29tcGxldGlvbi5zaCBpcyAoZm9yIG5vdykgaW4gdGVzdHMvbWlzYyAtLSBpdCBtaWdodCBiZQoJICB3b3J0aCBjcmVhdGluZyAidGVzdHMvY2hlY2svdG9vbHMiLCB3aXRoIGFsbCB0aGUgbmVjZXNzYXJ5IGF1dG9tYWtlCgkgIGJvaWxlcnBsYXRlLCBhbmQgbW92aW5nIHRlc3QtZ3N0cmVhbWVyLWNvbXBsZXRpb24uc2ggdGhlcmUsIGFuZCBoYXZlIGl0CgkgIHJ1biBhdXRvbWF0aWNhbGx5IHdpdGggIm1ha2UgY2hlY2siLgoJICBJRiBZT1UnUkUgTkVXIFRPIEJBU0ggQ09NUExFVElPTiBTQ1JJUFRTCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgImNvbXBsZXRlIC1GIF9nc3RfbGF1bmNoIGdzdC1sYXVuY2gtMS4wIiBtZWFucyB0aGF0IGJhc2ggd2lsbCBydW4gdGhlCgkgIGZ1bmN0aW9uICJfZ3N0X2xhdW5jaCIgdG8gZ2VuZXJhdGUgcG9zc2libGUgY29tcGxldGlvbnMgZm9yIHRoZSBjb21tYW5kCgkgICJnc3QtbGF1bmNoLTEuMCIuCgkgICJfZ3N0X2xhdW5jaCIgbXVzdCByZXR1cm4gdGhlIHBvc3NpYmxlIGNvbXBsZXRpb25zIGluIHRoZSBhcnJheSB2YXJpYWJsZQoJICBDT01QUkVQTFkuIChOb3RlIG9uIGJhc2ggc3ludGF4OiAiVj0oYSBiIGMpIiBhc3NpZ25zIHRocmVlIGVsZW1lbnRzIHRvCgkgIHRoZSBhcnJheSAiViIpLgoJICAiY29tcGdlbiIgcHJpbnRzIGEgbGlzdCBvZiBwb3NzaWJsZSBjb21wbGV0aW9ucyB0byBzdGFuZGFyZCBvdXRwdXQuIFRyeQoJICBpdDoKCSAgY29tcGdlbiAtVyAiYWJjMSBhYmMyIGRlZiIgLS0gImEiCgkgIGNvbXBnZW4gLWYgLS0gIi8iCgkgIFRoZSBsYXN0IGFyZ3VtZW50IGlzIHRoZSB3b3JkIGN1cnJlbnRseSBiZWluZyBjb21wbGV0ZWQ7IGNvbXBnZW4gdXNlcyBpdAoJICB0byBmaWx0ZXIgb3V0IHRoZSBub24tbWF0Y2hpbmcgY29tcGxldGlvbnMuIFdlIHB1dCAiLS0iIGZpcnN0LCBpbiBjYXNlCgkgIHRoZSB3b3JkIGN1cnJlbnRseSBiZWluZyBjb21wbGV0ZWQgc3RhcnRzIHdpdGggIi0iIG9yICItLSIsIHNvIHRoYXQgaXQKCSAgaXNuJ3QgdHJlYXRlZCBhcyBhIGZsYWcgdG8gY29tcGdlbi4KCSAgRm9yIHRoZSBkb2N1bWVudGF0aW9uIG9mIENPTVBfV09SRFMsIENPTVBfQ1dPUkQsIGV0YyBzZWUKCSAgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Jhc2gvbWFudWFsL2h0bWxfbm9kZS9CYXNoLVZhcmlhYmxlcy5odG1sI2luZGV4LUNPTVBfMDA1ZkNXT1JELTE4MAoJICBTZWUgYWxzbzoKCSAgKiBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvYmFzaC9tYW51YWwvaHRtbF9ub2RlL1Byb2dyYW1tYWJsZS1Db21wbGV0aW9uLmh0bWwKCSAgKiBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvYmFzaC9tYW51YWwvaHRtbF9ub2RlL1Byb2dyYW1tYWJsZS1Db21wbGV0aW9uLUJ1aWx0aW5zLmh0bWwKCSAgVGhlIGJhc2gtY29tcGxldGlvbiBwYWNrYWdlIHByb3ZpZGVzIHRoZSBoZWxwZXIgZnVuY3Rpb24KCSAgIl9pbml0X2NvbXBsZXRpb24iIHdoaWNoIHBvcHVsYXRlcyB2YXJpYWJsZXMgImN1ciIsICJwcmV2IiwgYW5kICJ3b3JkcyIuCgkgIFNlZQoJICBodHRwOi8vYW5vbnNjbS5kZWJpYW4ub3JnL2dpdHdlYi8/cD1iYXNoLWNvbXBsZXRpb24vYmFzaC1jb21wbGV0aW9uLmdpdDthPWJsb2I7Zj1iYXNoX2NvbXBsZXRpb247aD04NzA4MTFiNDtoYj1IRUFEI2w2MzQKCSAgTm90ZSB0aGF0IGJ5IGRlZmF1bHQsIGJhc2ggYXBwZW5kcyBhIHNwYWNlIHRvIHRoZSBjb21wbGV0ZWQgd29yZC4gV2hlbgoJICB0aGUgY29tcGxldGlvbiBpcyAicHJvcGVydHk9IiB3ZSBkb24ndCB3YW50IGEgdHJhaWxpbmcgc3BhY2U7IGNhbGxpbmcKCSAgImNvbXBvcHQgLW8gbm9zcGFjZSIgbW9kaWZpZXMgdGhlIGN1cnJlbnRseS1leGVjdXRpbmcgY29tcGxldGlvbgoJICBhY2NvcmRpbmdseS4gU2VlCgkgIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9iYXNoL21hbnVhbC9odG1sX25vZGUvUHJvZ3JhbW1hYmxlLUNvbXBsZXRpb24tQnVpbHRpbnMuaHRtbCNpbmRleC1jb21wb3B0CgoyMDEyLTExLTEzIDE2OjM2OjQ2ICswMDAwICBEYXZpZCBSb3RobGlzYmVyZ2VyIDxkYXZpZEByb3RobGlzLm5ldD4KCgkqIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOgoJICB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjogVXBkYXRlZCB0byB3b3JrIHdpdGggdGhlIGJpbmFyeSByZWdpc3RyeQoJICBUaGUgb3JpZ2luYWwgcmVnaXN0cnkgd2FzIGluIHhtbCBmb3JtYXQgKH4vLmdzdHJlYW1lci0qL3JlZ2lzdHJ5LnhtbCkuIEEKCSAgYmluYXJ5IHJlZ2lzdHJ5IGZvcm1hdCB3YXMgYWRkZWQgaW4gMjAwNyAoY29tbWl0IGViZjBjOWQzKSBhbmQgbWFkZSB0aGUKCSAgZGVmYXVsdCBpbiAyMDA4IChjb21taXQgM2YzOWZkN2UpLiBJbiAwLjEwIHlvdSBjb3VsZCBzdGlsbCBjaG9vc2UgYXQKCSAgImNvbmZpZ3VyZSIgdGltZSB0byB1c2UgdGhlIHhtbCByZWdpc3RyeSBpbnN0ZWFkOyBpbiAxLjAgdGhlIGJpbmFyeQoJICByZWdpc3RyeSBpcyB5b3VyIG9ubHkgY2hvaWNlLgoJICBUaGlzIGNoYW5nZSB0byBnc3RyZWFtZXItY29tcGxldGlvbiBzaG91bGQgd29yayB3aXRoIGVpdGhlciBmb3JtYXQKCSAgYmVjYXVzZSBpdCBwYXJzZXMgdGhlIG91dHB1dCBvZiAiZ3N0LWluc3BlY3QiIGluc3RlYWQgb2YgcmVhZGluZyB0aGUKCSAgcmVnaXN0cnkgZmlsZSBkaXJlY3RseS4KCSAgTm90ZSB0aGF0IF9nc3RfbGF1bmNoIG5vIGxvbmdlciBuZWVkcyBhbiBleHBsaWNpdCAicmV0dXJuIDAiIGJlY2F1c2UsCgkgIHVubGlrZSB0aGUgcHJldmlvdXMgZ3JlcCBjb21tYW5kLCBjb21wZ2VuIGFsd2F5cyByZXR1cm5zIDAgKHVubGVzcyBhCgkgIGdlbnVpbmUgZXJyb3Igb2NjdXJzKS4KCSAgSnVzdCBsaWtlIHRoZSBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbiBieSBEYXZpZCBTY2hsZWVmLCB0aGlzICJvbmx5CgkgIGNvbXBsZXRlcyBuYW1lcyBvZiBmZWF0dXJlcywgYnV0IHRoYXQncyA5MCUgb2Ygd2hhdCBJIHdhbnQgaXQgZm9yLiIKCjIwMTMtMDQtMjkgMjE6MTE6MzYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIHBvcnRpbmctdG8tMS4wLnR4dDogbml0IGNsYXJpZmljYXRpb24KCSAgSXQgaXMgdGhlIHByb2Nlc3MgY29udGV4dCB0aGF0IG1hdHRlcnMuCgoyMDEzLTA0LTI5IDEzOjIwOjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBBbHdheXMgbGVhdmUgVFlQRUZJTkQgbW9kZSB3aGVuIHdlJ3JlIHN0b3BwaW5nIHR5cGVmaW5kaW5nCgoyMDEzLTA0LTI5IDEzOjAzOjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBTaW1wbGlmeSBjb2RlCgkgIFRoaXMgaXMgb25seSBjYWxsZWQgd2hlbiBpbiBUWVBFRklORCBtb2RlLgoKMjAxMy0wNC0yOSAxMjo1ODowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogUHVzaCBwZW5kaW5nIGV2ZW50cyBpbmRlcGVuZGVudCBvZiB0aGUgZXhpc3RlbmNlIG9mIGEgZG93bnN0cmVhbSBjaGFpbiBmdW5jdGlvbiBhbmQgcGVlcgoJICBEb3duc3RyZWFtIG1pZ2h0IGNyZWF0ZSBhIHBlZXIgb25seSBhcyByZXN1bHQgb2YgdGhlIGV2ZW50cyBpbiB0aGVvcnkuCgoyMDEzLTA0LTI5IDEyOjU2OjU0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBPbmx5IHB1c2ggQ0FQUyBldmVudCBvbmNlIGlmIHdlIGdldCBvbmUgZnJvbSB1cHN0cmVhbQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNzg0CgoyMDEzLTA0LTI5IDEyOjU0OjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBTdG9wIHR5cGVmaW5kaW5nIGlmIHdlIGdldCBhIENBUFMgZXZlbnQgZnJvbSB1cHN0cmVhbQoKMjAxMy0wNC0yOSAxMjo1Mjo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogSW1wcm92ZSBoYW5kbGluZyBvZiBHQVAgZXZlbnRzCgkgIFRoZXJlJ3Mgc3RpbGwgcm9vbSBmb3IgaW1wcm92ZW1lbnQgdGhvdWdoLgoKMjAxMy0wNC0yOSAxMjo0ODoyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogRm9yd2FyZCBldmVudHMgdGhhdCBzaG91bGQgaGFwcGVuIGJlZm9yZSB0aGUgY2FwcyBldmVudCBkaXJlY3RseQoJICBUaGVyZSdzIG5vIHBvaW50IGluIHN0b3JpbmcgdGhlbSBhbmQgc2VuZGluZyB0aGVtIGxhdGVyLCBhbmQgZG9pbmcgc28gd291bGQKCSAgbGF0ZXIgcmVxdWlyZSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIGV2ZW50cyB0aGF0IHNob3VsZCBjb21lIGJlZm9yZSBjYXBzIGFuZAoJICBhZnRlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Mjc4NAoKMjAxMy0wNC0yOSAxMjo0ODoxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogT25seSBwdXNoIHBlbmRpbmcgYnVmZmVycyBhbmQgZXZlbnRzIGlmIHdlIGhhdmUgY2FwcwoKMjAxMy0wNC0yOSAxMjozOToyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogUmVtb3ZlIGNvZGUgdGhhdCB3b3VsZCBjYXVzZSBjYXBzIHRvIGJlIHNlbnQgdHdpY2UKCSAgV2hlbmV2ZXIgd2Ugc2V0IHR5cGVmaW5kLT5jYXBzIHdlIHdpbGwgYWxzbyBzZW5kIGEgY2FwcyBldmVudCBkb3duc3RyZWFtLgoKMjAxMy0wNC0yNyAyMDozMzowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWFsbG9jYXRpb24ueG1sOgoJICBwd2c6IGltcHJvdmUgYWxsb2NhdGlvbiBkb2NzCgoyMDEzLTA0LTI3IDExOjQ2OjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IHNldCBDS19USU1FT1VUX01VTFRJUExJRVIgb24gQVJNCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU1OTkKCjIwMTMtMDQtMjcgMDA6MDU6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICB0eXBlZmluZDogZml4IGNhcHMgbGVhayB3aGVuIHVzZWQgaW4gY29ubmVjdGlvbiB3aXRoIHVyaWRlY29kZWJpbiBhbmQgcGxheWJpbgoJICBEb24ndCBsZWFrIGZvcmNlZCBzaW5rIGNhcHMuCgoyMDEzLTA0LTIyIDE4OjA4OjQzIC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IEZpeCBlbGVtZW50LXR5cGUgYW5ub3RhdGlvbnMKCjIwMTMtMDQtMjUgMTY6Mzg6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFRyeSB0byBub3QgcHVzaCByZWFkLW9ubHkgYnVmZmVycwoJICBXZSBzaG91bGQgb25seSBpbmNyZWFzZSB0aGUgcmVmY291bnQgYmVmb3JlIHB1c2hpbmcgaWYgd2UncmUKCSAgcmVhbGx5IGdvaW5nIHRvIHVzZSB0aGUgYnVmZmVyIGFmdGVyd2FyZHMuCgoyMDEzLTA0LTI1IDA3OjE1OjM5ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IGFkZCBjaGVjayBmb3IgRkxVU0ggcGFkIHByb2JlcwoKMjAxMy0wNC0yNCAwODo0MDozMiArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogcnVuIHByb2JlcyBmb3IgRkxVU0ggZXZlbnRzIHNlbnQgd2l0aCBnc3RfcGFkX3NlbmRfZXZlbnQKCSAgTW92ZSBwcm9iZSBoYW5kbGluZyBpbiBnc3RfcGFkX3NlbmRfZXZlbnRfdW5jaGVja2VkIHNvIHRoYXQgcHJvYmVzIGFyZSBydW4gZm9yCgkgIEZMVVNIIGV2ZW50cyB0b28uCgoyMDEzLTA0LTI0IDE1OjU4OjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldGNsb2NrOiBBZGQgc3VwcG9ydCBmb3IgSVB2NgoKMjAxMy0wNC0yNCAxMjozMDowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIHBvcnRpbmctdG8tMS4wLnR4dDogYWRkIHRyb3VibGVzaG9vdGluZyBzZWN0aW9uCgkgIEFkZCBub3RlIGFib3V0ICJjYW5ub3QgcmVnaXN0ZXIgZXhpc3RpbmcgdHlwZSBgR3N0T2JqZWN0JyIgd2FybmluZy4KCjIwMTMtMDQtMjMgMTE6NDc6NTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBPbmx5IGluZmVyIFRTIGlmIFBUUyBpbnRlcnBvbGF0aW9uIGlzIGVuYWJsZWQKCSAgT3RoZXJ3aXNlIHRoaXMgaXMgYnJlYWtpbmcgdGltZXN0YW1wcyBvZiBmb3JtYXRzIHRoYXQKCSAgbmVlZCByZW9yZGVyaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk3NjYyCgoyMDEzLTA0LTIzIDExOjE3OjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG5vdGlmeSBjYXBzIHByb3BlcnR5IG9uIE5VTEwgYXMgd2VsbAoJICBBbHNvIG5vdGlmeSB0aGUgY2FwcyBwcm9wZXJ0eSB3aGVuIGl0IGNoYW5nZXMgdG8gTlVMTAoKMjAxMy0wNC0yMyAxMToxNjoxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBjbGFyaWZ5IGxvY2tpbmcKCjIwMTMtMDQtMjIgMjM6NTA6MTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBNQUlOVEFJTkVSUzoKCSogUkVBRE1FOgoJKiBSRUFETUUuc3RhdGljLWxpbmtpbmc6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gM2NiM2QzYyB0byA1ZWRjZDg1CgoyMDEzLTA0LTE5IDE1OjAxOjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRleHQudHh0OgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJICBwYXJ0LWNvbnRleHQ6IFdyaXRlIHNvbWUgZGVzaWduIGRvY3VtZW50YXRpb24gYWJvdXQgR3N0Q29udGV4dAoKMjAxMy0wNC0xOSAxMzoyMTozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJICBwYXJ0LWNhcHM6IEFkZCBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGNhcHMgZmVhdHVyZXMsIGNhcHMgc2VtYW50aWNzIGFuZCBob3cgdG8gdXNlIHRoZW0KCjIwMTMtMDQtMTkgMTE6MjM6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJICBjYXBzZmVhdHVyZXM6IEFkZCBkb2N1bWVudGF0aW9uIGFib3V0IEFOWSBHc3RDYXBzRmVhdHVyZXMKCjIwMTMtMDQtMTkgMTA6MjQ6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogRG9uJ3Qgc2V0IGxhc3RfcmVuZGVyX3RpbWUgaWYgd2UncmUgY2hlY2tpbmcgZm9yIGEgbGF0ZSBidWZmZXIgYmVmb3JlIDo6cHJlcGFyZSgpCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IGF0IGxlYXN0IG9uZSBidWZmZXIgcGVyIHNlY29uZCBpcyByZW5kZXJlZCBpZiBidWZmZXJzCgkgIGFyZSBkcm9wcGVkIGJlZm9yZSA6OnByZXBhcmUuIFdpdGhvdXQgdGhpcyBjaGFuZ2UsIGF0IGxlYXN0IG9uZSBidWZmZXIgcGVyCgkgIHNlY29uZCB3b3VsZG4ndCBiZSB0b28gbGF0ZSBiZWZvcmUgOjpwcmVwYXJlIGFueW1vcmUgYnV0IHdvdWxkIGJlIGRyb3BwZWQKCSAgYmVmb3JlIDo6cmVuZGVyIGJlY2F1c2Ugb2YgbGFzdF9yZW5kZXJfdGltZSBiZWluZyBzZXQgYmVmb3JlIDo6cHJlcGFyZQoJICBhbHJlYWR5LgoKMjAxMy0wMi0wOCAwMzo1Nzo0NCAtMDIwMCAgQW5kcmUgTW9yZWlyYSBNYWdhbGhhZXMgKGFuZHJ1bmtvKSA8YW5kcmUubWFnYWxoYWVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogQWRkIGNvbXBhcmUgZnVuY3Rpb24gZm9yIGNhcHMKCjIwMTMtMDEtMTUgMTY6NTc6MjAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZGF0YXF1ZXVlOiBhZGQgZ3N0X2RhdGFfcXVldWVfcGVlawoJICBUaGlzIGZ1bmN0aW9uIHdvcmtzIGp1c3QgbGlrZSBnc3RfZGF0YV9xdWV1ZV9wb3AsIGJ1dCBpdCBkb2Vzbid0CgkgIHJlbW92ZSB0aGUgb2JqZWN0IGZyb20gdGhlIHF1ZXVlLgoJICBVc2VmdWwgd2hlbiBpbnNwZWN0aW5nIG11bHRpcGxlIEdzdERhdGFRdWV1ZXMgdG8gZGVjaWRlIGZyb20gd2hpY2gKCSAgdG8gcG9wIHRoZSBlbGVtZW50IGZyb20uCgkgIEFkZDogZ3N0X2RhdGFfcXVldWVfcGVlawoKMjAxMy0wNC0xOCAxMDoxNDowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJICB0ZXN0czogaWdub3JlIG5ldyB0ZXN0IGJpbmFyeQoKMjAxMy0wNC0xOCAxMDoxMzozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IHVwZGF0ZSBmb3IgbGF0ZXN0IGNvbnRleHQgQVBJIGNoYW5nZXMKCjIwMTMtMDQtMTggMTA6MTc6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRleHQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNvbnRleHQ6IEFkZCBnc3RfY29udGV4dF93cml0YWJsZV9zdHJ1Y3R1cmUoKSBhbmQgbGV0IGdldF9zdHJ1Y3R1cmUoKSByZXR1cm4gY29uc3QgYWdhaW4KCjIwMTMtMDQtMTggMDA6NDQ6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1wYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICBwcmludGY6IGZpeCBoYW5kbGluZyBvZiBvbGQgcHJpbnRmIGV4dGVuc2lvbiBzcGVjaWZpZXJzIGZvciBBQkkgY29tcGF0aWJpbGl0eQoJICBGaXhlcyBhYm9ydCB3aGVuIHRoZSBvbGQgc3BlY2lmaWVycyBhcmUgdXNlZC4gRml4IHVwIHRoZSBjb252ZXJzaW9uCgkgIHNwZWNpZmllciwgaXQgd291bGQgZ2V0IG92ZXJ3cml0dGVuIHdpdGggJ2MnIGJlbG93IHRvIHRoZSBleHRlbnNpb24KCSAgZm9ybWF0IGNoYXIsIHdoaWNoIHRoZW4gbGF0ZXIgaXMgdW5oYW5kbGVkLCBsZWFkaW5nIHRvIHRoZSBhYm9ydC4KCSAgQWxzbyBmaXggdXAgYW5kIGVuYWJsZSB1bml0IHRlc3QgZm9yIHRoaXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Byb2Nlc3NfYnVnLmNnaQoKMjAxMy0wNC0xOCAwMDoyODowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciBvbGQgcHJpbnRmIGV4dGVuc2lvbiBzcGVjaWZpZXJzCgkgIFRvIG1ha2Ugc3VyZSB3ZSBtYWludGFpbiBiaW5hcnkgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBvbGQKCSAgc3BlY2lmaWVycy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5ODI0MgoKMjAxMy0wNC0xOCAwMDoxOToyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBydW4gc2tpcHBlZCB0ZXN0cyBpZiBleHBsaWNpdGx5IHJlcXVlc3RlZCB2aWEgR1NUX0NIRUNLUwoJICBJZiBhIHRlc3QgdGhhdCdzIGRpc2FibGVkIHdpdGggdGNhc2Vfc2tpcF9icm9rZW5fdGVzdCgpIGlzIGxpc3RlZAoJICBpbiB0aGUgR1NUX0NIRUNLUyBlbnZpcm9ubWVudCB2YXJpYWJsZSwgcnVuIGl0IGFueXdheS4KCjIwMTMtMDQtMTcgMTM6NDc6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBBZGQgR3N0Q29udGV4dCBzdXBwb3J0CgkgIGdzdC1sYXVuY2ggd2lsbCBjb2xsZWN0IGFsbCB0aGUgY29udGV4dHMgZnJvbSB0aGUgcGlwZWxpbmUgZWxlbWVudHMKCSAgYW5kIHVwZGF0ZSB0aGUgb3ZlcmFsbCBwaXBlbGluZSBjb250ZXh0IHdpdGggaXQuCgoyMDEzLTA0LTE3IDEyOjQ0OjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udGV4dC5jOgoJICBjb250ZXh0OiBBZGQgdW5pdCB0ZXN0IGZvciBHc3RDb250ZXh0CgoyMDEzLTA0LTE3IDEyOjE3OjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkgIGNvbnRleHQ6IFJldHVybiBhIG5vbi1jb25zdCBHc3RTdHJ1Y3R1cmUgdG8gbWFrZSBjb2RlIHNpbXBsZXIgYW5kIHVwZGF0ZSBkb2NzCgoyMDEzLTAzLTI5IDE0OjU2OjU3ICswMTAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSAgcXVlcnk6IG5ldyBfQkFORFdJRFRIX0xJTUlURUQgZmxhZwoJICBTb3VyY2UgZWxlbWVudHMgd2l0aCBsaW1pdGVkIGJhbmR3aWR0aCBjYXBhYmlsaXRpZXMgYW5kIHN1cHBvcnRpbmcKCSAgYnVmZmVyaW5nIGZvciBkb3duc3RyZWFtIGVsZW1lbnRzIHNob3VsZCBzZXQgdGhpcyBmbGFnIHdoZW4gYW5zd2VyaW5nCgkgIGEgc2NoZWR1bGluZyBxdWVyeS4gVGhpcyBpcyB1c2VmdWwgZm9yIHRoZSBvbi1kaXNrIGJ1ZmZlcmluZyBzY2VuYXJpbwoJICBvZiB1cmlkZWNvZGViaW4gdG8gYXZvaWQgY2hlY2tpbmcgdGhlIFVSSSBwcm90b2NvbCBhZ2FpbnN0IGEgbGlzdCBvZgoJICBoYXJkY29kZWQgcHJvdG9jb2xzLgoJICBCdWcgNjkzNDg0CgoyMDEzLTA0LTE2IDA5OjU1OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiBmaXggbWlzc2luZyBmbGFjZGVjIGluIHBvcnRpbmctdG8tMS4wIHBpcGVsaW5lIGV4YW1wbGUKCjIwMTMtMDQtMTYgMDk6MDM6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IGFkZCBub3RlIGFib3V0IGRlY29kZXJzIGFuZCBwYXJzZXJzIHRvIHBvcnRpbmctdG8tMS4wIGRvYwoKMjAxMi0xMC0yNCAxMTo1ODozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgZ3N0OiBBZGQgYmV0dGVyIHN1cHBvcnQgZm9yIHN0YXRpYyBwbHVnaW5zCgkgIEFQSTogR1NUX1BMVUdJTl9TVEFUSUNfREVDTEFSRSgpCgkgIEFQSTogR1NUX1BMVUdJTl9TVEFUSUNfUkVHSVNURVIoKQoJICBCYXNlZCBvbiBhIHBhdGNoIGJ5IEjDpXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+LgoJICBUaGlzIG5vdyBhbGxvd3MgR1NUX1BMVUdJTl9ERUZJTkUoKSB0byBjcmVhdGUgYSBzdGF0aWMgcGx1Z2luIGlmCgkgIEdTVF9QTFVHSU5fQlVJTERfU1RBVElDIGlzIGRlZmluZWQuIFRoZSByZXN1bHRpbmcgcGx1Z2luIGNhbiBiZQoJICBzdGF0aWNhbGx5IGxpbmtlZCBvciBkeW5hbWljYWxseSBsaW5rZWQgZHVyaW5nIGNvbXBpbGF0aW9uIGJ1dAoJICBjYW4ndCBiZSBkeW5hbWljYWxseSBsb2FkZWQgZHVyaW5nIHJ1bnRpbWUuCgkgIEFsc28gYWRkcyBHU1RfUExVR0lOX1NUQVRJQ19ERUNMQVJFKCkgYW5kIEdTVF9QTFVHSU5fU1RBVElDX1JFR0lTVEVSKCksCgkgIHdoaWNoIGFsbG93cyB0byByZWdpc3RlciBhIHN0YXRpYyBsaW5rZWQgcGx1Z2luIGVhc2lseS4KCSAgSXQgaXMgc3RpbGwgcmVxdWlyZWQgdG8gbWFudWFsbHkgcmVnaXN0ZXIgZXZlcnkgc2luZ2xlIHN0YXRpY2FsbHkgbGlua2VkCgkgIHBsdWdpbiBmcm9tIGluc2lkZSB0aGUgYXBwbGljYXRpb24gYXMgdGhpcyBjYW4ndCBiZSBhdXRvbWF0ZWQgaW4gYSBwb3J0YWJsZQoJICB3YXkuCgkgIEEgbmV3IGNvbmZpZ3VyZSBwYXJhbWV0ZXIgLS1lbmFibGUtc3RhdGljLXBsdWdpbnMgd2FzIGFkZGVkIHRoYXQgYWxsb3dzCgkgIHRvIGJ1aWxkIGFsbCBwbHVnaW5zIHdlIGJ1aWxkIGhlcmUgYXMgc3RhdGljIHBsdWdpbnMuCgkgIEZpeGVzIGJ1ZyAjNjY3MzA1LgoKMjAxMy0wNC0xMiAxMzo1MDozOSArMTIwMCAgRG91Z2xhcyBCYWduYWxsIDxkb3VnbGFzQHBhcmFkaXNlLm5ldC5uej4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBtYW51YWw6IFBhdGNoIG1hbnVhbCB0byByZWZlciB0byBwb3J0aW5nIGd1aWRlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTc4NDUKCjIwMTMtMDQtMTMgMTk6NDM6MTAgKzAzMDAgIFNyZWVyZW5qIEJhbGFjaGFuZHJhbiA8c3JlZXJlbmouYmFsYWNoYW5kcmFuQGludGVsLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIHBsdWdpbmZlYXR1cmU6IEZpeCB0aGUgR3N0UGx1Z2luRmVhdHVyZSBuYW1lIGNvbXBhcmlzb24uCgkgIFRoZSBnc3RfcGx1Z2luX2ZlYXR1cmVfcmFua19jb21wYXJlX2Z1bmMoKSBzaG91bGQgcmV0dXJuCgkgIG5lZ2F0aXZlIHZhbHVlLCBpZiB0aGUgcmFuayBvZiBib3RoIFBsdWdpbkZlYXR1cmVzIGFyZSBlcXVhbCBhbmQKCSAgdGhlIG5hbWUgb2YgZmlyc3QgUGx1Z2luRmVhdHVyZSBjb21lcyBiZWZvcmUgdGhlIHNlY29uZCBvbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTc5OTAKCjIwMTMtMDQtMTQgMTc6NTQ6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDI3MzY1OTIgdG8gM2NiM2QzYwoKMjAxMy0wNC0xNCAxNzoyNTozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYWVkODdhZSB0byAyNzM2NTkyCgoyMDEzLTA0LTE0IDExOjMzOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ByaW50Zi9wcmludGYuYzoKCSogZ3N0L3ByaW50Zi9wcmludGYuaDoKCSAgcHJpbnRmOiBkaXNhYmxlIHNvbWUgdW51c2VkIHByaW50ZiB2YXJpYW50cwoKMjAxMy0wNC0xNCAxMToyMzoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wcmludGYvZ3N0LXByaW50Zi5oOgoJICBwcmludGY6IHVzZSBzcHJpbnRmKCkgdG8gd29yayBhcm91bmQgZ2xpYmMgY29tcGxhaW5pbmcgYWJvdXQgJW4gaW4gYSB3cml0YWJsZSBmb3JtYXQgc3RyaW5nCgkgIERvbid0IHVzZSBzbnByaW50ZigpLCBidXQgdXNlIHNwcmludGYgaW5zdGVhZCBhbmQgZG8gb3VyIG93bgoJICBsZW5ndGggY2FsY3VsYXRpb25zLCBiZWNhdXNlIGdsaWJjIG1heSBjb21wbGFpbiBhYm91dCB1cyBwYXNzaW5nCgkgICVuIGluIGEgZm9ybWF0IHN0cmluZyBpZiB0aGUgc3RyaW5nIGlzIGluIHdyaXRhYmxlIG1lbW9yeSwgYW5kCgkgIGhlcmUgdGhlIGZvcm1hdCBzdHJpbmcgaXMgYWx3YXlzIGluIHdyaXRhYmxlIG1lbW9yeSBzaW5jZSB3ZQoJICBjb25zdHJ1Y3QgaXQgb24gdGhlIGZseS4gVGhpcyBoYXBwZW5zIGlmIGdsaWJjIGhhcyBiZWVuIGNvbXBpbGVkCgkgIHdpdGggX0ZPUlRJRllfU09VUkNFPTIsIHdoaWNoIHNlZW1zIHRvIGJlIHRoZSBjYXNlIG9uIHNvbWUKCSAgZGlzdHJvcy9zeXN0ZW1zKS4gT24gdGhlIHVwc2lkZSwgd2Ugbm93IHVzZSB0aGUgc3ByaW50ZiBjb2RlIHBhdGgKCSAgb24gYWxsIHN5c3RlbXMgd2hpY2ggc2hvdWxkIGJlIGJldHRlciBmcm9tIGEgbWFpbnRlbmFuY2UgcG9pbnQKCSAgb2Ygdmlldy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Nzk3MAoKMjAxMy0wNC0xMyAxMjoxODoyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwb2xsLmM6CgkgIHRlc3RzOiBza2lwIGFsbCBHc3RQb2xsIHRlc3RzIG9uIFdpbmRvd3MKCSAgQXMgdGhleSBkb24ndCB3b3JrIHRoZXJlLCBhbmQgaXQncyBub24tdHJpdmlhbCB0byBmaXguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTc2MDkKCjIwMTMtMDQtMTMgMTI6MDA6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogb25seSBhZGQgYSAnKicgZm9yIG5vbi0nZ3BvaW50ZXInIHBvaW50ZXJzCgkgIFNwb3R0ZWQgYnkgSm9zZSBBbnRvbmlvIFNhbnRvcyBDYWRlbmEuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTc3OTEKCjIwMTMtMDQtMTIgMTQ6NDg6MjkgKzAyMDAgIEd3ZW5vbGUgQmVhdWNoZXNuZSA8Z3dlbm9sZS5iZWF1Y2hlc25lQGludGVsLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgcGx1Z2luOiBmaXggbmFtZSBleHBhbnNpb24gZm9yIEdTVF9QTFVHSU5fREVGSU5FIG1hY3JvCgkgIE1ha2UgR1NUX1BMVUdJTl9ERUZJTkUgdXNlIEdfU1RSSU5HSUZZKCkgdG8gY29udmVydCB0aGUgbmFtZSBhcmd1bWVudAoJICBpbnRvIGEgbWVhbmluZ2Z1bCBzdHJpbmcuIFRoZSBhZHZhbnRhZ2Ugb2YgdGhpcyBpcyB0aGF0IGBuYW1lJyBjYW4gYmUKCSAgZXhwYW5kZWQgZnJvbSBvdGhlciBtYWNyb3MgZGVmaW5lZCBpbiB0aGUgcGx1Zy1pbiBlbGVtZW50LgoJICBTaWduZWQtb2ZmLWJ5OiBHd2Vub2xlIEJlYXVjaGVzbmUgPGd3ZW5vbGUuYmVhdWNoZXNuZUBpbnRlbC5jb20+CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTc4NzIKCjIwMTMtMDQtMTMgMTE6MzU6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiBhZGQgbmV3IHRyYW5zbGF0YWJsZSBzdHJpbmdzCgoyMDEzLTA0LTEyIDIzOjU4OjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSAgcHJpbnRmOiBkb24ndCBidWlsZCBpZiBkZWJ1Z2dpbmcgc3Vic3lzdGVtIHdhcyBkaXNhYmxlZAoKMjAxMy0wNC0xMCAxMTo1MTozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L3ByaW50Zi9NYWtlZmlsZS5hbToKCSogZ3N0L3ByaW50Zi9nc3QtcHJpbnRmLmg6CgkgIHByaW50ZjogZGVhbCB3aXRoIHNvbWUgb2YgdGhlIEhBVkVfRk9PIHVzZWQgaW4gdGhlIHByaW50ZiBjb2RlCgkgIFByb2JhYmx5IG5lZWRzIHNvbWUgbW9yZSB3b3JrIGZvciBNU1ZDLgoKMjAxMy0wNC0wOCAxOTo0MjoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcHJpbnRmL1JFQURNRToKCSogZ3N0L3ByaW50Zi92YXNucHJpbnRmLmM6CgkgIHByaW50ZjogZml4IGFsbG9jYSB1c2UgZm9yIHdpbmRvd3Mgd2l0aCBtaW5ndzMyCgkgIERvbid0IHVzZSBqdXN0IEdMSUJfSEFWRV9BTExPQ0FfSCB0byBjaGVjayBpZiBhbGxvY2EgaXMgYXZhaWxhYmxlLAoJICB0aGF0J3MganVzdCBmb3IgdGhlIGhlYWRlci4gR0xpYiBtYXkgZGVmaW5lIGFsbG9jYSBmb3IgdXMgb3RoZXJ3aXNlCgkgIHRvbyBpcnJlc3BlY3RpdmUgb2YgR0xJQl9IQVZFX0FMTE9DQV9ILgoJICBGaXhlcyBjb21waWxlciB3YXJuaW5nIHdpdGggbWluZ3czMjoKCSAgZ3N0L3ByaW50Zi92YXNucHJpbnRmLmM6NzM6MDogd2FybmluZzogImFsbG9jYSIgcmVkZWZpbmVkCgoyMDEzLTA0LTA3IDIwOjExOjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvcHJpbnRmL01ha2VmaWxlLmFtOgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzoKCSAgcHJpbnRmOiBlbmFibGUgYW5kIGZpeCBjb21waWxlciB3YXJuaW5ncwoJICBCdXQgc3VwcHJlc3MgLVdmb3JtYXQtbm9ubGl0ZXJhbCB3YXJuaW5ncyBzaW5jZSBzcHJpbnRmCgkgIGlzIHVzZWQgd2l0aCBhIHJ1bnRpbWUtZ2VuZXJhdGVkIGZvcm1hdCBzdHJpbmcgaW4gb3VyCgkgIHZhc25wcmludGYgaW1wbGVtZW50YXRpb24uCgoyMDEzLTA0LTA3IDE4OjIxOjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ByaW50Zi9wcmludGYtcGFyc2UuYzoKCSogZ3N0L3ByaW50Zi92YXNucHJpbnRmLmM6CgkqIGdzdC9wcmludGYvdmFzbnByaW50Zi5oOgoJICBwcmludGY6IGZpeCB1cCBkb2RneSB1c2Ugb2YgI2lmIEhBVkVfRk9PIGFuZCAjaWYgIUhBVkVfRk9PCgkgIFNob3VsZCB1c2UgI2lmZGVmIGFuZCAjaWZuZGVmLgoKMjAxMy0wNC0wNyAxNzozNjoyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wcmludGYvTWFrZWZpbGUuYW06CgkgIHByaW50ZjogbWFyayBpbnRlcm5hbCBmdW5jdGlvbnMgYXMgaW50ZXJuYWwKCjIwMTMtMDQtMDcgMTc6Mjk6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1wYXJzZS5jOgoJICBwcmludGY6IHNraXAgcG9pbnRlciBleHRlbnNpb24gc2lnbmlmaWVyIGNoYXJzIGFmdGVyICVwCgkgIFNvIHRoZXkgZG9uJ3QgZ2V0IHByaW50ZWQgYWZ0ZXIgdGhlIHNlcmlhbGlzZWQgcG9pbnRlciBzdHJpbmcuCgoyMDEzLTA0LTA3IDE3OjIxOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ByaW50Zi92YXNucHJpbnRmLmM6CgkgIHByaW50ZjogZG9uJ3QgbGVhayBzZXJpYWxpc2VkIHBvaW50ZXIgZXh0ZW5zaW9uIHN0cmluZ3MKCjIwMTMtMDQtMDcgMTc6MDI6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1wYXJzZS5jOgoJICBwcmludGY6IGhhbmRsZSBvbGQgR1NUX1BUUl9GT1JNQVQgJVAgYW5kIEdTVF9TRUdNRU5UX0ZPUk1BVCAlUSBkZWZpbmVzIHRvbwoJICBGb3IgYmluYXJ5IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgoKMjAxMy0wNC0wNyAxNjo0MTo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wcmludGYvcHJpbnRmLWFyZ3MuYzoKCSogZ3N0L3ByaW50Zi9wcmludGYtYXJncy5oOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1wYXJzZS5jOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1wYXJzZS5oOgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzoKCSAgcHJpbnRmOiBtYWtlIHByaW50ZiBwYXJzZXIgcmVjb2duaXNlIG91ciBwb2ludGVyIGV4dGVuc2lvbiBmb3JtYXQKCSAgYW5kIGNhbGwgdGhlIGhvb2sgdG8gZ2V0IGEgc3RyaW5nIGZvciB0aGUgcG9pbnRlciBpbnN0ZWFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEzMDgxCgoyMDEzLTAzLTMwIDE4OjI4OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L3ByaW50Zi9NYWtlZmlsZS5hbToKCSogZ3N0L3ByaW50Zi9SRUFETUU6CgkqIGdzdC9wcmludGYvcHJpbnRmLWV4dGVuc2lvbi5jOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1leHRlbnNpb24uaDoKCSAgcHJpbnRmOiBhZGQgaW5mcmFzdHJ1Y3R1cmUgZm9yIHBvaW50ZXIgZXh0ZW5zaW9ucyBob29rCgkgIERvZXMgbm90IGRvIGFueXRoaW5nIHlldC4gT24gYSBzaWRlbm90ZSwgd2UgY2FuJ3QganVzdCB1c2UKCSAgJXBcMDAxIG9yIHNvIHRvIHNpZ25hbCB0aGUgZXh0ZW5zaW9uIGJlY2F1c2UgZy1pIGNvbXBsYWlucwoJICBhYm91dCBhbiBpbnZhbGlkIGFzY2lpIGNoYXJhY3RlciB0aGVuLCBzbyBoYXZlIHRvIHJlc29ydCB0bwoJICBzb21ldGhpbmcgbW9yZSBlbGFib3JhdGUsIHN1Y2ggYXMgJXBcYUEgZXRjLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEzMDgxCgoyMDEzLTAzLTMwIDE3OjIwOjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IHVzZSBuZXcgaW50ZXJuYWwgcHJpbnRmIGZvciBkZWJ1ZyBtZXNzYWdlIHByaW50aW5nCgkgIGFuZCByZW1vdmUgYWxsIHRoZSBwcmludGYgZXh0ZW5zaW9uL3NwZWNpZmllciBzdHVmZiBmb3IKCSAgdGhlIHN5c3RlbSBwcmludGYuIE5leHQgd2UgbmVlZCB0byBhZGQgYmFjayB0aGUgY3VzdG9tCgkgIHNwZWNpZmllcnMgdG8gb3VyIG93biBwcmludGYgaW1wbGVtZW50YXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTMwODEKCjIwMTMtMDMtMzAgMTU6MTM6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L3ByaW50Zi9NYWtlZmlsZS5hbToKCSogZ3N0L3ByaW50Zi9SRUFETUU6CgkqIGdzdC9wcmludGYvYXNucHJpbnRmLmM6CgkqIGdzdC9wcmludGYvZ3N0LXByaW50Zi5oOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1hcmdzLmM6CgkqIGdzdC9wcmludGYvcHJpbnRmLWFyZ3MuaDoKCSogZ3N0L3ByaW50Zi9wcmludGYtcGFyc2UuYzoKCSogZ3N0L3ByaW50Zi9wcmludGYtcGFyc2UuaDoKCSogZ3N0L3ByaW50Zi9wcmludGYuYzoKCSogZ3N0L3ByaW50Zi9wcmludGYuaDoKCSogZ3N0L3ByaW50Zi92YXNucHJpbnRmLmM6CgkqIGdzdC9wcmludGYvdmFzbnByaW50Zi5oOgoJICBwcmludGY6IGFkZCBvdXIgb3duIHByaW50ZiBpbXBsZW1lbnRhdGlvbiBmb3IgZGVidWcgbG9nZ2luZwoJICBXZSB3aWxsIGFkZCBzdXBwb3J0IGZvciBvdXIgb3duIHByaW50ZiBtb2RpZmllcnMsIHNvIHdlIGNhbgoJICBnZXQgbmljZSBkZWJ1ZyBsb2cgb3V0cHV0IG9uIGFsbCBvcGVyYXRpbmcgc3lzdGVtcyBpcnJlc3BlY3RpdmUKCSAgb2YgdGhlIHNwZWNpZmljIGxpYmMgdmVyc2lvbiB1c2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEzMDgxCgoyMDEzLTA0LTEyIDE2OjEzOjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogYXZvaWQgdHJpZ2dlcmluZyBhbiBhc3NlcnRpb24KCSAgV2hlbiBkZXNlcmlhbGl6YXRpb24gb2YgdGhlIHN0cnVjdHVyZSBmYWlscywgcmV0dXJuIGEgTlVMTCB0YWdsaXN0IGluc3RlYWQgb2YKCSAgYXNzZXJ0aW5nLgoKMjAxMy0wNC0xMSAxNDo1NDozMiArMDIwMCAgSm9zZSBBbnRvbmlvIFNhbnRvcyBDYWRlbmFzIDxzYW50b3NjYWRlbmFzQGdtYWlsLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBhZGQgcG9pbnRlciBtYXJrIHRvIHNpZ25hbCBhbmQgYWN0aW9uIHJldHVybiB0eXBlcyB0aGF0IGFyZSBwb2ludGVycwoJICBXaGVuIHRoZSByZXR1cm4gdHlwZSBvZiBhIHNpZ25hbCBvciBhY3Rpb24gaXMgYSBwb2ludGVyLCBpdAoJICBzaG91bGQgaGF2ZSBhbiBhc3RlcmlzayB0byBtYXJrIGl0IGFzIHN1Y2guCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTc3OTEKCjIwMTMtMDQtMTEgMjI6MzI6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IGRvY3VtZW50IHR5cGUgY2hhbmdlIG9mIHBsYXliaW4ncyBjb25uZWN0aW9uLXNwZWVkIHByb3BlcnR5IGluIHBvcnRpbmcgZG9jcwoKMjAxMy0wNC0xMSAxNDozMTowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBhZGQgX2dzdF9tYXhfbWVtb3J5KCkgZnVuY3Rpb24KCSAgQWRkIHRoZSBhIGZ1bmN0aW9uIHRvIHF1ZXJ5IHRoZSBtYXhpbXVtIGFtb3VudCBvZiBtZW1vcnkgYmxvY2tzIHRoYXQgY2FuIGJlCgkgIGFkZGVkIHRvIGEgYnVmZmVyLiBBbHNvIGltcHJvdmUgdGhlIGRvY3MgZm9yIF9pbnNlcnRfbWVtb3J5KCkuCgoyMDEzLTA0LTExIDE0OjA0OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXR0aW1lcHJvdmlkZXI6IG5vdGlmeSBvZiBjaGFuZ2VkIGJvdW5kIGFkZHJlc3MKCSAgTm90aWZ5IHdoZW4gdGhlIGJvdW5kIGFkZHJlc3MgaXMga25vd24sIGp1c3QgbGlrZSB0aGUgcG9ydC4KCjIwMTMtMDQtMTEgMTM6NTU6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGxhdW5jaDogaGFuZGxlIFBST0dSRVNTIG1lc3NhZ2VzCgkgIFdhaXQgZm9yIGFsbCBQUk9HUkVTUyBtZXNzYWdlcyAoaWYgYW55KSB0byBjb21wbGV0ZSBiZWZvcmUgZ29pbmcgdG8gdGhlIFBMQVlJTkcKCSAgc3RhdGUuIFRoaXMgaXMgdGhlIG9ubHkgd2F5IHdlIGNhbiB3YWl0IGZvciBsaXZlIGVsZW1lbnRzIHRvIGNvbXBsZXRlIHRoZWlyCgkgIG9wZXJhdGlvbnMuCgkgIFRoaXMgaXMgaW50ZXJlc3RpbmcgZm9yIGVsZW1lbnRzIGxpa2UgcnRzcHNyYyB0aGF0IGRvIHNvbWUgYXN5bmNocm9ub3VzIG5ldHdvcmsKCSAgcmVxdWVzdHMgYXMgcGFydCBvZiBnb2luZyB0byB0aGUgUEFVU0VEIHN0YXRlLiBJdCBjb3VsZCBiZSBwb3NzaWJsZSB0aGF0IGl0LCBmb3IKCSAgZXhhbXBsZSwgcHJvdmlkZXMgYSBjbG9jayBhbmQgdGhlbiB3ZSB3b3VsZCBsaWtlIHRvIHdhaXQgdW50aWwgaXQgY29tcGxldGVzCgkgIHNvIHRoYXQgd2UgY2FuIHVzZSB0aGUgcHJvdmlkZWQgY2xvY2sgd2hlbiBnb2luZyB0byBQTEFZSU5HLgoKMjAxMy0wNC0xMSAxNTowNTowOCArMTIwMCAgRG91Z2xhcyBCYWduYWxsIDxkb3VnbGFzQHBhcmFkaXNlLm5ldC5uej4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgVG9nZ2xlIHVwc3RyZWFtIGFuZCBkb3duc3RyZWFtIGluIFJFQ09ORklHVVJFIHBhcmFncmFwaC4KCjIwMTMtMDQtMTEgMTA6MTE6MjUgKzEyMDAgIERvdWdsYXMgQmFnbmFsbCA8ZG91Z2xhc0BwYXJhZGlzZS5uZXQubno+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIEdzdENvbGxlY3RQYWRzIGRvY3VtZW50YXRpb246IGdzdF9jb2xsZWN0X3BhZHNfcmVhZCBpcyBnb25lLgoKMjAxMy0wNC0xMCAyMToyNDozOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBmaXggdGhlIHByZWNvbmRpdGlvbiBmb3IgZ3N0X2J1c19kaXNhYmxlX3N5bmNfbWVzc2FnZV9lbWlzc2lvbigpCgkgIFVzZSB0aGUgcmlnaHQgdmFyaWFibGUgYW5kIGludmVydCB0aGUgdGVzdC4gVGhlIHByZWNvbmRpdGlvbiBzaG91bGQgY2F0Y2gKCSAgc29tZW9uZSBjYWxsaW5nIHRvIG9uY2UgdG9vIG9mdGVuLgoKMjAxMy0wNC0wOSAxOTozNzowNiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSAgY2Fwc2ZlYXR1cmVzOiBJbml0IGRlYnVnIGNhdGVnb3J5IGJlZm9yZSBldmVyIHVzaW5nIGl0CgoyMDEzLTA0LTA5IDIwOjU5OjM2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAwNGM3YTFlIHRvIGFlZDg3YWUKCjIwMTMtMDQtMDMgMjE6MzI6NTQgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZG9jcy9tYW51YWxzLm1hazoKCSAgVXNlIHhsc3Rwcm9jIGluc3RlYWQgb2YgZG9jYm9vazJodG1sCgoyMDEzLTA0LTA5IDEwOjE3OjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBiaW5kIHNvY2tldCBiZWZvcmUgcXVlcnlpbmcgbG9jYWwgYWRkcmVzcwoJICBGYWlscyBvbiB3aW5kb3dzIG90aGVyd2lzZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NzYwOAoKMjAxMy0wNC0wOCAxMzoxNDozNSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogQWxzbyBjaGVjayBmb3IgY2xvY2tfZ2V0dGltZSBpbiBsaWJwdGhyZWFkCgkgIGxpYndpbnB0aHJlYWRzIHByb3ZpZGVzIFBPU0lYIHRpbWUgQVBJLgoJICBJdCBhbHNvIHByb3ZpZGVzIGxpYnB0aHJlYWQgYWxpYXMgZm9yIGl0c2VsZiwgZm9yIGNvbXBhdGliaWxpdHksIHNvIHRoYXQKCSAgaXMgd2hhdCB3ZSB3aWxsIGxpbmsgd2l0aC4KCSAgRml4ZXMgIzY5NzU1MAoKMjAxMy0wNC0wOCAxNTozMDowNyArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGNsb2NrOiBEbyB1c2UgSEFWRV9DTE9DS19HRVRUSU1FCgkgIEZpeGVzICM2OTc1NDkKCjIwMTMtMDQtMDggMTQ6NDI6MTUgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODZ3Lmg6CgkgIGxpYnNhYmk6IFNwZWNpYWwgc3RydWN0IHNpemUgdmFsdWVzIGZvciBXMzIKCSAgVGhlc2UgYWNjb3VudCBmb3IgYm90aCBwb3NzaWJsZSB0eXBlIHNpemUgbWlzbWF0Y2ggQU5EIC1tbXMtYml0ZmllbGRzCgkgIHBhY2tpbmcuIFNpemVzIGFyZSB0YWtlbiBmcm9tIGFuIGk2ODYtdzY0LW1pbmd3MzItYnVpbHQgR1N0cmVhbWVyLAoJICBnY2MgNC44LjAsIG1pbmd3LXc2NCBzdm4tcjU2ODUuCgkgIEZpeGVzICM2OTc1NTEKCjIwMTMtMDQtMDkgMDk6MjI6MzkgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogZml4IEdzdFBhZCB0ZXN0IG9uIHdpbmRvd3MgYW5kIGluIENLX0ZPUks9bm8gbW9kZQoJICBOZWVkIHRvIGNsZWFyIGJ1ZmZlciBsaXN0cyBhdCB0aGUgZW5kIG9mIGVhY2ggdGVzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NzYxMAoKMjAxMy0wNC0wNiAxNjowOTo1NCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IEZpeCBzcGFjZSBpbiBmYXVsdCBtZXNzYWdlCgoyMDEzLTA0LTA2IDIyOjEwOjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSAgY2Fwc2ZlYXR1cmVzOiBDb3B5IEFOWSBmbGFnIHdoZW4gY29weWluZyBjYXBzIGZlYXR1cmVzIHRvbwoKMjAxMy0wNC0wNiAyMTo0OToyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBjYXBzOiBIYW5kbGUgQU5ZIGNhcHMgZmVhdHVyZXMgcHJvcGVybHkgaW4gbW9yZSBwbGFjZXMKCjIwMTMtMDQtMDYgMjE6MjE6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogQWRkIHRlc3QgZm9yIG9wZXJhdGlvbnMgb24gY2FwcyB3aXRoIEFOWSBmZWF0dXJlcwoKMjAxMy0wNC0wNiAyMTowOTo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBQcm9wZXJseSBoYW5kbGUgQU5ZIGNhcHMgZmVhdHVyZXMgaW4gY2FwcyBvcGVyYXRpb25zCgoyMDEzLTA0LTA1IDIxOjEwOjQ4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IHVwZGF0ZSBzaWduYWwgZG9jcyBmb3IgZ3N0X2J1c19lbmFibGVfc3luY19tZXNzYWdlX2VtaXNzaW9uKCkKCjIwMTMtMDQtMDUgMTA6MTU6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogaWdub3JlIGVtcHR5IG5vdC1saW5rZWQgcXVldWVzCgkgIFdlIG5lZWQgdG8gaWdub3JlIHRoZSBub3QtbGlua2VkIHF1ZXVlcyBpbiB0aGUgdW5kZXJydW4gYW5kIG92ZXJydW4gY2FsbGJhY2tzCgkgIGJlY2F1c2UgdGhleSBhcmUgZXhwZWN0ZWQgdG8gYmUgZW1wdHkuCgoyMDEzLTA0LTA0IDIzOjEyOjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZml4IGNhcHMgZmVhdHVyZSBsZWFrCgkgIEZpeGVzIGxlYWtzIGluIDE0IGNvcmUgdW5pdCB0ZXN0cyBpbmNsdWRpbmcKCSAgZ3N0L2dzdGNhcHMuCgoyMDEzLTA0LTA0IDE5OjE2OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHN0YXJ0IHB1c2hpbmcgYWdhaW4gb24gUkVDT05GSUdVUkUKCSAgV2hlbiB3ZSBnb3QgTk9UX0xJTktFRCBiZWZvcmUgYW5kIHdlIHJlY2VpdmUgYSBSRUNPTkZJR1VSRSBldmVudCwgc3RhcnQgcHVzaGluZwoJICBhZ2FpbiBvbiB0aGUgc291cmNlIHBhZC4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzYzMDQKCjIwMTMtMDQtMDQgMTk6MDc6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHN0YXJ0IHB1c2hpbmcgYWdhaW4gb24gUkVDT05GSUdVUkUKCSAgV2hlbiB3ZSBnb3QgTk9UX0xJTktFRCBiZWZvcmUgYW5kIHdlIHJlY2VpdmUgYSBSRUNPTkZJR1VSRSBldmVudCwgc3RhcnQgcHVzaGluZwoJICBhZ2FpbiBvbiB0aGUgc291cmNlIHBhZC4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzYzMDQKCjIwMTMtMDQtMDQgMTk6MDY6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBzdGFydCBwdXNoaW5nIGFnYWluIG9uIFJFQ09ORklHVVJFCgkgIFdoZW4gd2UgZ290IE5PVF9MSU5LRUQgYmVmb3JlIGFuZCB3ZSByZWNlaXZlIGEgUkVDT05GSUdVUkUgZXZlbnQsIHN0YXJ0IHB1c2hpbmcKCSAgYWdhaW4gb24gdGhlIHNvdXJjZSBwYWQuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2MzA0CgoyMDEzLTA0LTA0IDE3OjU5OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IHNpbXBsaWZ5IGlzX3N1YnNldCBjaGVjawoJICBJdGVyYXRlIG92ZXIgdGhlIGZpZWxkcyBvZiB0aGUgc3VwZXJzZXQgaW5zdGVhZCBvZiB0aG9zZSBvZiB0aGUgc3Vic2V0LgoJICBUaGlzIHdheSB3ZSBjYW4gY2hlY2sgdGhlIHByZXNlbmNlIG9mIHRoZSBzdWJzZXQgZmllbGQgYW5kIGRvIHRoZSBzdWJzZXQgY2hlY2sKCSAgaW4gb25lIGl0ZXJhdGlvbi4KCjIwMTMtMDQtMDQgMTc6NDY6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiB1cGRhdGUgZG9jcywgaXNfc3Vic2V0KCkgd29ya3Mgbm93CgoyMDEzLTA0LTA0IDE2OjM5OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogZml4IGRvY3MKCjIwMTMtMDQtMDQgMTY6MjA6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogYWRkIGdzdF9wYWRfc3RvcmVfc3RpY2t5X2V2ZW50KCkKCSAgUmV3aXJlIHNvbWUgaW50ZXJuYWwgZnVuY3Rpb25zIGFuZCBleHBvc2UgYSBuZXcKCSAgZ3N0X3BhZF9zdG9yZV9zdGlja3lfZXZlbnQoKSBmdW5jdGlvbi4KCSAgQVBJOiBnc3RfcGFkX3N0b3JlX3N0aWNreV9ldmVudCgpCgoyMDEzLTA0LTA0IDE1OjQ1OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGNsYXJpZnkgZG9jcwoKMjAxMy0wNC0wNCAxNTo0NToxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbXByb3ZlIGRlYnVnCgoyMDEzLTA0LTA0IDEwOjE3OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogZG9uJ3QgV0FSTiwganVzdCBERUJVRwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2OTExCgoyMDEzLTAzLTMwIDExOjA2OjU5ICswMDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBGaXggc2Vla2luZyB3aGVuIHBvc2l0aW9uIGlzIHNsaWdodGx5IG91dHNpZGUgdGhlIHNlZ21lbnQKCSAgVmVyeSBvZnRlbiwgd2hlbiB0aGUgZW5kIG9mIGEgc2VnbWVudCBpcyBkZXRlY3RlZCBieSBkZW11eGVyLCB0aGUgcG9zaXRpb24KCSAgaXMgc2xpZ2h0bHkgb3V0c2lkZSB0aGUgc2VnbWVudCBib3VuZGFyaWVzLiBDdXJyZW50bHksIGlmIHRoYXQgaXMgdGhlIGNhc2UKCSAgdGhlIGJhc2Ugd2lsbCBiZSBzZXQgdG8gTk9ORSBpbnN0ZWFkIG9mIG5vcm1hbCBhY2N1bXVsYXRpb24uIFRoaXMgd291bGQKCSAgYnJlYWsgbm9uLWZsdXNoaW5nIHNlZWtzIGluIG9nZ2RlbXV4IGFuZCBtb3N0IGxpa2VseSBvdGhlciBkZW11eGVycy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Njg5OQoKMjAxMy0wNC0wMyAxNzoyOTo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTMtMDQtMDMgMTY6MDI6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogYWRkIHN0cmVhbSBmbGFncwoKMjAxMy0wNC0wMiAxODoxNzowMCAtMDYwMCAgQnJlbmRhbiBMb25nIDxiLmxvbmdAY2FibGVsYWJzLmNvbT4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgcG9ydGluZy10by0xLjAudHh0OiBzdWJ0aXRsZSB0ZXh0IG1lZGlhIHR5cGVzIGNoYW5nZWQgYXMgd2VsbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3MTUzCgoyMDEzLTA0LTAyIDIzOjUxOjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSAgZG9jczogbW9yZSBzaW5jZSBtYXJrZXJzIGFuZCBvdGhlciBkb2NzIGZpeGVzCgoyMDEzLTA0LTAyIDIzOjIxOjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJICBkb2NzOiBhZGQgc2luY2UgbWFya2VycyB0byBjYXBzZmVhdHVyZXMgZG9jcwoKMjAxMy0wNC0wMiAyMzoxODo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgc2NyaXB0czogYWRkIHNvbWUgbW9yZSBtb2R1bGVzIHRvIGdpdC11cGRhdGUuc2gKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NzA1OAoKMjAxMy0wNC0wMiAyMzowNDo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCB1bmluc3RhbGxlZCBvcmMvb3JjLXRlc3QvLmxpYnMgdG8gbGlicmFyeSBwYXRocwoJICBUaGlzIGlzIG5lZWRlZCBieSB0aGUgdW5pdCB0ZXN0cyBpbiBnc3QtcGx1Z2lucy1iYXNlLCAtZ29vZCBldGMuCgkgIFNwb3R0ZWQgYnkgQWxleCBLYXllLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3MDkzCgoyMDEzLTA0LTAyIDIyOjEzOjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkgIGNhcHNmZWF0dXJlczogQWRkIEdTVF9DQVBTX0ZFQVRVUkVTX0FOWQoJICBUaGlzIGlzIGVxdWFsIHRvIGFueSBvdGhlciBjYXBzIGZlYXR1cmVzIGJ1dCByZXN1bHRzIGluIHVuZml4ZWQgY2Fwcy4gSXQKCSAgd291bGQgYmUgdXNlZCBieSBlbGVtZW50cyB0aGF0IG9ubHkgbG9vayBhdCB0aGUgYnVmZmVyIG1ldGFkYXRhIG9yIGFyZQoJICBjdXJyZW50bHkgd29ya2luZyBpbiBwYXNzdGhyb3VnaCBtb2RlLCBhbmQgYXMgc3VjaCBkb24ndCBjYXJlIGFib3V0IGFueQoJICBzcGVjaWZpYyBmZWF0dXJlcy4KCjIwMTMtMDQtMDEgMjI6MTM6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBtaW5vciBjb3NtZXRpYyBjaGFuZ2VzCgkgIExldCdzIG5vdCB1c2UgdWdseSBsZWFkaW5nIHVuZGVyc2NvcmVzIGZvcgoJICBzdGF0aWMgZnVuY3Rpb25zLgoKMjAxMy0wNC0wMSAyMToyMzoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGZpeCBvYmplY3QgcHJpbnRpbmcgb2YgY2FwcyBmZWF0dXJlcyBpbiBkZWJ1ZyBsb2cKCjIwMTMtMDQtMDEgMTY6Mzg6NDMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSAgZHJhZnQtdHJhY2luZzogdXBkYXRlIGRyYWZ0IGRlc2lnbiB3aXRoIHRpbWVyIGlkZWFzCgoyMDEzLTAzLTMwIDE3OjAzOjQ0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogcmVmYWN0b3IgcHJldHR5IHByaW50aW5nIG9iamVjdHMKCSAgRXh0cmFjdCBmb3JtYXR0ZXJzIGludG8gbG9jYWwgZnVuY3Rpb25zLiBDaGFuZ2UgdGhlIHN0cnVjdHVyZSBmaWx0ZXJpbmcgc28gdGhhdAoJICBpdCB3b3JrcyBmb3IgdGFnbGlzdHMgdG9vLgoKMjAxMy0wMy0zMCAxNjozOTozOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IG1ha2UgcG9zdF9tZXNzYWdlIGFuZCBxdWVyeSBtb3JlIGFsaWtlCgoyMDEzLTA0LTAxIDEwOjIwOjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBQcmludCBjYXBzIGZlYXR1cmVzIHRvbwoKMjAxMy0wNC0wMSAxMDoxOToyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkgIGNhcHNmZWF0dXJlczogRm9yIGNvcHlpbmcgZmVhdHVyZXMgaXQncyBub3QgcmVxdWlyZWQgdG8gaGF2ZSBubyBwYXJlbnQgcmVmY291bnQKCjIwMTMtMDQtMDEgMTA6MTk6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogU2V0IGZlYXR1cmVzJyBwYXJlbnQgcmVmY291bnQgaW4gZ3N0X2NhcHNfc2V0X2ZlYXR1cmVzKCkgdG9vCgoyMDEzLTA0LTAxIDEwOjE4OjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IFNldCBzeXNtZW0gZmVhdHVyZXMgaWYgZXhwbGljaXRlbHkgcmVxdWVzdGVkCgoyMDEzLTAzLTMxIDE5OjA5OjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkgIGRlc2lnbjogQWRkIHRoZSBjYXBzIGZlYXR1cmVzIGFuZCBkZXNjcmliZSBob3cgdGhlIGNhcHMgb3BlcmF0aW9ucyBhY3R1YWxseSB3b3JrCgoyMDEzLTAzLTMwIDE1OjM1OjE5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjYXBzOiBBZGQgbmV3IGRhdGEgdHlwZSBmb3IgaGFuZGxpbmcgY2FwcyBmZWF0dXJlcyB0byB0aGUgY2FwcwoJICBUaGVzZSBhcmUgbWVhbnQgdG8gc3BlY2lmeSBmZWF0dXJlcyBpbiBjYXBzIHRoYXQgYXJlIHJlcXVpcmVkCgkgIGZvciBhIHNwZWNpZmljIHN0cnVjdHVyZSwgZm9yIGV4YW1wbGUgYSBzcGVjaWZpYyBtZW1vcnkgdHlwZQoJICBvciBtZXRhLgoJICBTZW1hbnRpY2FsbHkgdGhleSBjb3VsZCBiZSB0aG91Z2ggb2YgYXMgYW4gZXh0ZW5zaW9uIG9mIHRoZSBtZWRpYQoJICB0eXBlIG5hbWUgb2YgdGhlIHN0cnVjdHVyZXMgYW5kIGFyZSBoYW5kbGVkIGV4YWN0bHkgbGlrZSB0aGF0LgoKMjAxMy0wMy0zMSAxNTozMDoxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogYWRkIFNFTEVDVCBhbmQgVU5TRUxFQ1Qgc3RyZWFtIGZsYWdzIGZvciBzdHJlYW0tc3RhcnQgZXZlbnQKCSAgU28gZGVtdXhlcnMgY2FuIHNpZ25hbCB3aGljaCBhdWRpby92aWRlby9zdWJ0aXRsZSBzdHJlYW1zIHNob3VsZAoJICBiZSBzZWxlY3RlZCBieSBkZWZhdWx0IGFuZCB3aGljaCBzaG91bGQgbm90IGJlIHNlbGVjdGVkCgkgIGF1dG9tYXRpY2FsbHkuCgkgIEFQSTogR1NUX1NUUkVBTV9GTEFHX1NFTEVDVAoJICBBUEk6IEdTVF9TVFJFQU1fRkxBR19VTlNFTEVDVAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk1OTY4CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTA5MTEKCjIwMTMtMDEtMDYgMjA6Mjc6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXZlbnQ6IGFkZCBzdHJlYW0gZmxhZ3MgdG8gc3RyZWFtLXN0YXJ0IGV2ZW50CgkgIEFQSTogZ3N0X2V2ZW50X3NldF9zdHJlYW1fZmxhZ3MoKQoJICBBUEk6IGdzdF9ldmVudF9wYXJzZV9zdHJlYW1fZmxhZ3MoKQoJICBBUEk6IEdTVF9TVFJFQU1fRkxBR19OT05FCgkgIEFQSTogR1NUX1NUUkVBTV9GTEFHX1NQQVJTRQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAwNjQ4CgoyMDEzLTAzLTMxIDExOjI2OjMyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQ6IEFkZCBBUEkgdG8gZ2V0IHRoZSBsYXN0IHNldCBjb250ZXh0IGZyb20gYW4gZWxlbWVudAoJICBFbGVtZW50cyBzaG91bGQgb3ZlcnJpZGUgR3N0RWxlbWVudDo6c2V0X2NvbnRleHQoKSBhbmQgYWxzbyBjYWxsCgkgIGdzdF9lbGVtZW50X3NldF9jb250ZXh0KCkgdG8ga2VlcCB0aGlzIGNvbnRleHQgdXAtdG8tZGF0ZSB3aXRoCgkgIHRoZSB2ZXJ5IGxhdGVzdCBjb250ZXh0IHRoZXkgaW50ZXJuYWxseSB1c2UuCgoyMDEzLTAzLTMwIDE0OjA0OjI4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkgIGRlc2lnbjogYWRkIGluaXRpYWwgdHJhY2luZyBkZXNpZ24gZG9jCgoyMDEzLTAzLTMwIDExOjQ3OjI5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBMZXQgZ3N0X3BhZF9nZXRfYWxsb3dlZF9jYXBzKCkgcGFzcyB0aGUgY2FwcyBvd24gY2FwcyBhcyBmaWx0ZXIKCSAgVGhpcyB3aWxsIHJlZHVjZSB0aGUgbnVtYmVyIG9mIGNhcHMgY3JlYXRlZCBkb3duc3RyZWFtIGFuZCB3ZSBkb24ndAoJICBuZWVkIHRvIGludGVyc2VjdCBpbiB0aGUgdmVyeSBlbmQgd2l0aCB0aGUgcGFkJ3Mgb3duIGNhcHMuCgoyMDEzLTAzLTMwIDEwOjI0OjI3ICswMTAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXhlcyBjb21waWxlciB3YXJuaW5nCgkgIGdzdGJhc2VzaW5rLmM6IEluIGZ1bmN0aW9uICdnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkJzoKCSAgZ3N0YmFzZXNpbmsuYzozMjA0OiB3YXJuaW5nOiAncmV0JyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24KCjIwMTMtMDMtMjkgMTk6MDE6NTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiBmaXggZ2lyIHdhcm5pbmcKCjIwMTMtMDMtMjkgMTg6NDk6MTQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgUmV2ZXJ0ICJwd2c6IEZpeCBleGFtcGxlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDVkNjRmMjdkODgxMjc0YTQwZjA0NDFiYjhjNWIzODE2ZmRmYzViOWUuCgkgICpzaWdoKgoKMjAxMi0xMS0wNiAwOTo0MTo1OCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBwd2c6IEZpeCBleGFtcGxlCgoyMDEyLTExLTExIDEzOjUyOjI1ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBSZW1vdmUgU0VHTUVOVCBzdGlja3kgZXZlbnRzIHdoZW4gZmx1c2hpbmcKCSAgV2hlbiBmbHVzaGluZywgaXQgaXMgZXhwZWN0ZWQgdGhhdCB1cHN0cmVhbSB3aWxsIHNlbmQgYSBTRUdNRU5UCgkgIGV2ZW50IGFmdGVyd2FyZHMuCgkgIFRoaXMgYWxzbyBhdm9pZHMgc3RyYXkgU0VHTUVOVCBldmVudHMgZnJvbSBjb21pbmcgdGhyb3VnaCBhZnRlciBhCgkgIGZsdXNoLgoKMjAxMy0wMy0yOCAxNTozNToxMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0OiBBZGQgbmV3IEdzdENvbnRleHQgbWluaW9iamVjdCBmb3Igc2hhcmluZyBjb250ZXh0cyBpbiBhIHBpcGVsaW5lCgoyMDEzLTAzLTI4IDE2OjQyOjUwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSAgYXJnYi1jb250cm9sYmluZGluZzogZml4IG1lc3NlZCB1cCBwcm9wZXJ0eSBzZXR0ZXIKCSAgVGhpcyB3YXMgbWlzYXNzaWduaW5nIHRoZSBjb250cm9sIHNvdXJjZXMuIEl0IHdhcyBhbHNvIGxlYWtpbmcgdGhlIG9sZCB2YWx1ZXMgaWYKCSAgYSBjb250cm9sIHNvdXJjZSB3b3VsZCBiZSByZXBsYWNlZC4KCjIwMTMtMDMtMjcgMTg6MjU6MDggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVzZXQgbmV4dF9wdHMgdXBvbiBTRUdNRU5UIGV2ZW50CgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE0ODEKCjIwMTMtMDItMjYgMTk6NTg6NDkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogbW9yZSBpbnRlci10aW1lc3RhbXAgdHJhY2tpbmcKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTQ4MQoKMjAxMy0wMy0yNiAxOToyMjoxOCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IEFkZCBhbm5vdGF0aW9ucyBhbmQgcHlnaSBmcmllbmRseSBleHRyYWN0aW9uIGZ1bmN0aW9uCgkgIEFQSTogZ3N0X2J1ZmZlcl9leHRyYWN0X2R1cAoKMjAxMy0wMy0yNyAxNzowODo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgcG9ydGluZzogaG9wZWZ1bGx5IGNsYXJpZnkgYSBsaXR0bGUKCjIwMTMtMDMtMjUgMTg6MTE6NTQgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIFVwZGF0ZSBkb2NzIGZvciBnc3RfcGFkX2NyZWF0ZV9zdHJlYW1faWRfcHJpbnRmKCkKCSAgVG8gaW5kaWNhdGUgdGhhdCBmb3JtYXQgc3RyaW5ncyBzaG91bGQgYmUgYWxwaGEgc29ydGFibGUuCgoyMDEzLTAzLTI1IDA5OjE2OjA1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IEFkZCB1bml0IHRlc3QgZm9yIEdTVF9DQVBTX3tBTlksTk9ORX0gYW5kIEdTVF9TVEFUSUNfQ0FQU197QU5ZLE5PTkV9CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTY0MzUKCjIwMTMtMDMtMjUgMDk6MTk6MjQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogRml4IGdzdF9zdGF0aWNfY2Fwc19nZXQoR1NUX1NUQVRJQ19DQVBTX05PTkUpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTY0MzUKCjIwMTMtMDMtMjEgMjE6MDA6NTQgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IERvbid0IHNlbmQgZXJyb3IgaWYgbmVnb3RpYXRlIGZhaWxzIGJlY2F1c2Ugd2UgYXJlIGZsdXNoaW5nCgkgIE5lZ290aWF0aW9uIG1heSBiZSBhYm9ydGVkIGJ5IGEgZmx1c2ggZnJvbSBhbm90aGVyIHRocmVhZCB0aGF0IG5lZWQgdG8KCSAgc3RvcCB0aGUgdGFzayAoaS5lLiBzZWVrKS4gQ2hlY2sgdGhhdCBjYXNlIGFuZCBzaWxlbnRseSBwYXVzZSB0aGUgdGFzay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjM1NwoKMjAxMy0wMy0yNCAxNzo1MzozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSogZ3N0L2dzdHRvYy5jOgoJICB0b2M6IHNvbWUgZG9jdW1lbnRhdGlvbiB1cGRhdGVzCgoyMDEzLTAzLTIyIDIwOjAyOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLXF1ZXJ5Zm4ueG1sOgoJICBkb2NzOiBmaXggdHlwbyBpbiBxdWVyeSBmdW5jdGlvbiBleGFtcGxlIGluIFBsdWdpbiBXcml0ZXIncyBHdWlkZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2MTQyCgoyMDEzLTAzLTA3IDEyOjExOjMwICswMTAwICBKb25hcyBIb2xtYmVyZyA8am9uYXNoZ0BheGlzLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgdGVzdHM6IGZpeCBzcHVyaW91cyBmYWlsdXJlIGluIHRlc3RfY29sbGVjdCBjb2xsZWN0cGFkcyB0ZXN0CgkgIHBvcCgpIGluIGNvbGxlY3RlZCBjYWxsYmFjay4KCSAgVGhlcmUgd2VyZSB0aHJlZSB0aHJlYWRzIGluIHRoZSB0ZXN0IGNhc2VzIHRoYXQgaGFuZ2VkOiB0aGUgdGVzdCB0aHJlYWQgYW5kIHR3bwoJICB0aHJlYWRzIHRoYXQgcHVzaCBidWZmZXJzLiBFYWNoIHRocmVhZCBwdXNoIG9uZSBidWZmZXIgb24gb25lIHBhZC4gVGhlcmUgYXJlCgkgIHR3byBwYWRzIGluIHRoZSBjb2xsZWN0cGFkcyBzbyB0aGUgc2Vjb25kIGJ1ZmZlciB3aWxsIHRyaWdnZXIgdGhlCgkgIGNvbGxlY3QtY2FsbGJhY2suCgkgIFRoaXMgaXMgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIGhhbmcgb2NjdXJzOgoJICBUaGUgZmlyc3QgdGhyZWFkIHB1c2hlcyBhIGJ1ZmZlciBhbmQgaW5pdGlhbGl6ZXMgYSBjb29raWUgdG8gdGhlIHZhbHVlIG9mIGEKCSAgY291bnRlciBpbiB0aGUgY29sbGVjdHBhZHMgb2JqZWN0IGFuZCB3YWl0cyBvbiBhIGNvbmQgZm9yIHRoZSBjb3VudGVyIHRvIGNoYW5nZQoJICBhbmQgZm9yIHNvbWVvbmUgdG8gY29uc3VtZSB0aGUgYnVmZmVyIChpLmUuIF9wb3AoKSBpdCkuCgkgIFRoZSBzZWNvbmQgdGhyZWFkIHB1c2hlcyBhIGJ1ZmZlciBhbmQgY2FsbHMgdGhlIGNvbGxlY3RlZCBjYWxsYmFjaywgd2hpY2gKCSAgc2lnbmFscyB0aGUgY29uZCB0aGF0IHRoZSB0ZXN0IHRocmVhZCBpcyB3YWl0aW5nIGZvci4KCSAgVGhlIHRlc3QgdGhyZWFkIHBvcHMgYm90aCBidWZmZXJzICh3aXRob3V0IGhvbGRpbmcgYW55IGxvY2spLiBFYWNoIGNhbGwgdG8KCSAgX3BvcCgpIGluY3JlYXNlcyB0aGUgY291bnRlciBicm9hZGNhc3RzIHRoZSBjb25kaXRpb24gdGhhdCB0aGUgZmlyc3QgdGhyZWFkIGlzCgkgIG5vdyB3YWl0aW5nIGZvci4gSXQgdGhlbiBqb2lucyBib3RoIHRocmVhZHMgKGhhbmdzKS4KCSAgVGhlIGZpcnN0IHRocmVhZCB3YWtlcyB1cCBhbmQgcmV0dXJucywgc2luY2UgaXRzIGJ1ZmZlciBoYXMgYmVlbiBjb25zdW1lZC4KCSAgVGhlIHNlY29uZCB0aHJlYWQgc3RhcnRzIGV4ZWN1dGluZyBhZ2Fpbi4gV2hlbiB0aGUgY2FsbGJhY2ssIGNhbGxlZCBieSB0aGUKCSAgc2Vjb25kIHRocmVhZCwgaGFzIHJldHVybmVkIGl0IGluaXRpYWxpemVzIGEgY29va2llIHRvIHRoZSB2YWx1ZSBvZiBhIGNvdW50ZXIsCgkgIHdoaWNoIGhhcyBhbHJlYWR5IHByZW1hdHVyZWx5IGJlZW4gaW5jcmVhc2VkIGJ5IHRoZSB0ZXN0IHRocmVhZCB3aGVuIGl0IHBvcHBlZAoJICB0aGUgYnVmZmVycywgYW5kIHdhaXQncyBvbiBhIGNvbmQgZm9yIHRoZSBjb3VudGVyIHRvIGNoYW5nZSBhbmQgZm9yIHNvbWVvbmUgdG8KCSAgY29uc3VtZSB0aGUgYnVmZmVyIChpLmUuIF9wb3AoKSBpdCkuIFNpbmNlIHRoZSBidWZmZXIgaGFzIGFscmVhZHkgYmVlbiBwb3BlZAoJICBhbmQgdGhlIGNvdW50ZXIgaGFzIGFscmVhZHkgYmVlbiBpbmNyZWFzZWQgaXQgd2lsbCBiZSBzdHVjayBmb3JldmVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg1NTU1CgoyMDEzLTAzLTE2IDEyOjA1OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogcmVtb3ZlIGZmbXBlZyBsaWJzIGZyb20gZHluYW1pYyBsaW5rZXIgcGF0aHMKCSAgV2UgbGluayB0aG9zZSBsaWJzIGludG8gdGhlIHBsdWdpbiBzdGF0aWNhbGx5LCBvciB1c2UgZXh0ZXJuYWwKCSAgc3lzdGVtIGxpYnMsIGJ1dCBuZXZlciB0aGUgaW50ZXJuYWwgc25hcHNob3QgZHluYW1pY2FsbHkuCgoyMDEzLTAzLTE2IDEyOjAwOjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIGdzdC1lZGl0aW5nLXNlcnZlcyB0byBHSV9UWVBFTElCX1BBVEgKCSAgU28gcHlnaSBjYW4gZmluZCBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NTkzNwoKMjAxMy0wMy0xMiAxMzo1Mzo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IG1ha2Ugc3VyZSBzbG93IEdTVF9SRUFEX1VJTlQqIHZhcmlhbnRzIGRvbid0IGhhdmUgdW5leHBlY3RlZCBzaWRlIGVmZmVjdHMKCSAgRml4ZXMgdW5pdCB0ZXN0IG9uIHN5c3RlbXMgd2hlcmUgdW5hbGlnbmVkIG1lbW9yeSBhY2Nlc3MgaXMgbm90IHBvc3NpYmxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk1NTk5CgoyMDEzLTAzLTA1IDExOjE0OjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBsYXVuY2g6IGRvbid0IGV4aXQgdGhlIGxvb3Agb24gYnVmZmVyaW5nIGluIHBhdXNlZAoJICBXaGVuIHdlIHJlY2VpdmUgYSBidWZmZXJpbmcgbWVzc2FnZSBvZiAxMDAlIGluIHRoZSBwYXVzZWQgc3RhdGUsIHdlIGV4aXQKCSAgdGhlIGV2ZW50X2xvb3AgYW5kIG1vdmUgdG8gdGhlIFBMQVlJTkcgc3RhdGUuIFdoYXQgc2hvdWxkIGhhcHBlbiBpcyB0aGF0CgkgIHdlIHdhaXQgZm9yIGJvdGggQVNZTkMtRE9ORSBhbmQgMTAwJSBidWZmZXJpbmcgYmVmb3JlIGNvbnRpbnVlaW5nLgoKMjAxMy0wMy0wOCAxMzoxNTozMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY29udHJvbGxlci50eHQ6CgkgIGRlc2lnbjogdXBkYXRlIGNvbnRyb2xsZXIgZGVzaWduIGFuZCBhZGQgc29tZSB0aG91Z2hzIGZvciBmdXR1cmUgc3R1ZmYKCjIwMTMtMDMtMDggMDg6MTM6MDYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGRvY3M6IG1lbnRpb24gY2xpcHBpbmcgb2YgdmFsdWVzIGluIGNvbnRyb2wtYmluZGluZyBkb2NzCgoyMDEzLTAzLTA4IDA4OjEwOjIwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogY29kZSBjbGVhbnVwcwoJICBVc2UgYSBwcm9wZXJ0eSBmb3IgYWNjZXNzaW5nIHRoZSBjb250cm9sLXNvdXJjZSBvbiB0aGUgYmluZGluZy4gRHJvcCBiYXNlX2luaXQKCSAgb24gdGhlIHRlc3Qgb2JqZWN0LgoKMjAxMy0wMy0wNyAxMTo0NjozMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGdzdF9xdWVyeV9nZXRfbl9hbGxvY2F0aW9uX3BhcmFtcygpIHJldHVybnMgYSBuZXcgcmVmIHRvIHRoZSBhbGxvY2F0b3IKCjIwMTMtMDMtMDcgMTE6MzU6MDMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogcmVtb3ZlIGEgYm9ndXMgdGVzdAoJICBXZSBwcmV2aW91c2x5IGZvcmdvdCB0byBpbml0aWxpemUgdGhlIGFtcGxpdGRlIHByb3BlcnR5IHRvIHRoZSBkZWZhdWx0IGFuZCB0aHVzIGl0IHdhcyAwLjAuIFRoZXJlZm9yZSBhIGRlZmF1bHQgbGZvIGNvbnRyb2xzb3VyY2UgcmV0dXJuZWQgYSBzZXJpZXMgb2YgMC4wIGFuZCB0aGUgdGVzdCB3YXMgYXNzZXJ0aW5nIG9uIHRoYXQuCgoyMDEzLTAzLTA3IDA5OjE1OjE0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGJpbmRpbmc6IHJlbGF4IHRoZSBwc3BlYyBmb3IgdGhlIGNvbnRyb2wtc291cmNlCgkgIFdlIGNhbiBjaGFuZ2UgY29udHJvbCBzb3VyY2VzIG9uIGNvbnRyb2xiaW5kaW5ncy4KCjIwMTMtMDMtMDcgMDk6MTI6NTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgbGZvOiBzZXQgYSBzZW5zaWJsZSBsb3dlciBib3VuZGFyeSBmb3IgdGhlIGZyZXF1ZW5jeQoJICBVc2UgREJMX01JTiwgd2hpY2ggaXMgYSB0aGUgc21hbGxlcyBkb3VibGUgZ3JlYXRlciB0aGFuIHplcm8gdGhhdCBpcyBub3QgaW4KCSAgZGVub3JtYWwgZm9ybWF0LiBUaGlzIGV4cG9zZXMgdGhlIGxpbWl0IGJldHRlciB0aGFuIHRoZSBydW50aW1lIGNoZWNrLgoKMjAxMy0wMy0wNiAyMzo1OToyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMmRlMjIxYyB0byAwNGM3YTFlCgoyMDEzLTAzLTA2IDE2OjQwOjI3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGxmb2NvbnRyb2xzb3VyY2U6IGluaXQgdGhlIGFtcGxpdHVkZSB0byB0aGUgZGVmYXVsdCBhbmQgdXBkYXRlIHRoZSBkb2NzCgoyMDEzLTAzLTA1IDExOjMwOjIyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IEFkZCBhbGwgdGhlIGJhc2UvYmFkIGxpYnJhcmllcyBhbmQgcmVtb3ZlIG9ic29sZXRlIG9uZXMKCjIwMTMtMDMtMDMgMTY6MDA6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggdXNlIG9mIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUKCSAgUnVubmluZyBzdWl0ZShzKTogR3N0QmFzZVNpbmsKCSAgPT0yMjAyMz09IENvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKCSAgPT0yMjAyMz09ICAgIGF0IDB4NTA1RkZDRTogZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyAoZ3N0YmFzZXNpbmsuYzoxOTM2KQoJICA9PTIyMDIzPT0gICAgYnkgMHg1MDY4QzgwOiBnc3RfYmFzZV9zaW5rX2RvX3N5bmMgKGdzdGJhc2VzaW5rLmM6MjM3OSkKCSAgPT0yMjAyMz09ICAgIGJ5IDB4NTA2QkNEMjogZ3N0X2Jhc2Vfc2lua19kZWZhdWx0X3dhaXRfZXZlbnQgKGdzdGJhc2VzaW5rLmM6MjkwMykKCSAgPT0yMjAyMz09ICAgIGJ5IDB4NTA2MzNBNDogZ3N0X2Jhc2Vfc2lua19kZWZhdWx0X2V2ZW50IChnc3RiYXNlc2luay5jOjI5MTgpCgkgID09MjIwMjM9PSAgICBieSAweDZGNUMyMTY6IGdzdF9mYWtlX3NpbmtfZXZlbnQgKGdzdGZha2VzaW5rLmM6MzgzKQoJICA9PTIyMDIzPT0gICAgYnkgMHg1MDVGMTY0OiBnc3RfYmFzZV9zaW5rX2V2ZW50IChnc3RiYXNlc2luay5jOjMxMDgpCgkgID09MjIwMjM9PSAgICBieSAweDUyRkEwOTA6IGdzdF9wYWRfc2VuZF9ldmVudF91bmNoZWNrZWQgKGdzdHBhZC5jOjQ4MjIpCgkgID09MjIwMjM9PSAgICBieSAweDUzMDM3NTY6IGdzdF9wYWRfc2VuZF9ldmVudCAoZ3N0cGFkLmM6NDk4NCkKCSAgPT0yMjAyMz09ICAgIGJ5IDB4NDAxNjVCOiBiYXNlc2lua190ZXN0X2dhcCAoYmFzZXNpbmsuYzoxNDgpCgoyMDEzLTAzLTAzIDEyOjA2OjM2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBGaXggbWVtb3J5IGNvcHlpbmcgbG9naWMgaW4gY29weV9pbnRvKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NTAzNQoKMjAxMy0wMy0wMyAxMToyODozMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IFVzZSBjb3JyZWN0IHByaW50IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGZpeCBjb21waWxlciB3YXJuaW5ncwoKMjAxMy0wMi0yMiAxNDoyMjowMSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIEZpeCBtaXNzcGVsbGluZ3Mgb2YgJ2NvbnRpbnVvdXMnCgoyMDEzLTAyLTIyIDE0OjU2OjQ5IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IHRha2UgRFRTIGludG8gYWNjb3VudAoJICBJbXBvcnRhbnRseSwgdGhpcyBwYXRjaCBjb252ZXJ0cyBEVFMgdG8gcnVubmluZyB0aW1lLiAgTGVzcyBpbXBvcnRhbnRseSwKCSAgYW5kIHBvc3NpYmx5IGEgcHJvYmxlbSBmb3Igc29tZSBtdXhlcnMsIGlzIHRoYXQgaXQgb3JkZXJzIGJ1ZmZlcnMgYnkKCSAgRFRTIChpZiBpdCBpcyB2YWxpZCwgb3RoZXJ3aXNlIFBUUykuICBUaGlzIGlzIGdlbmVyYWxseSBjb3JyZWN0LCBidXQKCSAgbWlnaHQgYmUgc29tZXdoYXQgc3VycHJpc2luZyB0byBtdXhlcnMuCgkgIEFsc28gbm90ZSB0aGF0IG9uY2UgY29udmVydGVkIHRvIHJ1bm5pbmcgdGltZSwgRFRTIGNhbiBlbmQgdXAgbmVnYXRpdmUuCgoyMDEzLTAyLTI4IDIyOjU5OjQzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgIG1hbnVhbDogaW1wcm92ZSB0aGUgY29udHJvbGxlciBkb2NzIGEgbGl0dGxlIG1vcmUKCSAgUmV3b3JkIHNvbWUgc2VjdGlvbnMuIEV4cGxhaW4gdmFsdWUgbWFwcGluZ3MgYmV0dGVyLgoKMjAxMy0wMi0yOCAxOTo0MDozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBnc3QtbGliYXYgdG8gcGtnLWNvbmZpZyBwYXRoCgoyMDEzLTAyLTI3IDIyOjE1OjQ4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgc2Vla2luZzogYWRkIG1vcmUgbG9nZ2luZyBmb3Igc2Vla2luZwoJICBFc3BlY2lhbGx5IGFkZCBsb2dnaW5nIHRvIGVycm9yIGNvZGUgcGF0aHMuCgoyMDEzLTAyLTI3IDEwOjA5OjU2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IEdyYWNlZnVsbHkgaGFuZGxlIGdzdF9tZW1vcnlfY29weSgpIHJldHVybmluZyBOVUxMIHdpdGhvdXQgY3Jhc2hpbmcKCSAgZ3N0X2J1ZmZlcl9jb3B5X2ludG8oKSBhbmQgZ3N0X2J1ZmZlcl9yZXNpemVfcmFuZ2UoKSBjYW4gbm93IGZhaWwuCgoyMDEzLTAyLTI2IDE3OjMzOjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWxsb2NhdG9yOiBzbWFsbCBpbnRlcm5hbCBjbGVhbnVwcwoJICBSZW5hbWUgU3lzdGVtIG1lbW9yeSBhbGxvY2F0b3IgdG8gR3N0QWxsb2NhdG9yU3lzbWVtIGFuZCB0aGUgbWVtb3J5IHRvCgkgIEdzdE1lbW9yeVN5c3RlbS4KCjIwMTMtMDItMjYgMTU6Mzc6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgbWV0aG9kIHRvIGNoZWNrIG1lbW9yeSB0eXBlCgkgIEFkZCBhIG1ldGhvZCB0byBjaGVjayBpZiBhIG1lbW9yeSB3YXMgYWxsb2NhdGVkIGZyb20gYW4gYWxsb2NhdG9yIG9mCgkgIGEgZ2l2ZW4gdHlwZS4KCSAgQVBJOiBnc3RfbWVtb3J5X2lzX3R5cGUoKQoKMjAxMy0wMi0yNiAxNTozNjoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGltcHJvdmUgZG9jcyBhIGxpdHRsZQoKMjAxMy0wMi0yNiAxNTozMjoyNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkqIGdzdC9nc3RiaW4uYzoKCSAgdXNlIEdTVF9NRVNTQUdFX0RVUkFUSU9OX0NIQU5HRUQgaW4gZG9jcyBhbmQgY29kZQoKMjAxMy0wMi0yNiAxNDo0MDozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBkb24ndCB1bnJlZiBhbGxvY2F0b3IgdG9vIHNvb24KCSAgVW5yZWYgdGhlIGFsbG9jYXRvciAqYWZ0ZXIqIHdlIGhhdmUgZnJlZWQgdGhlIG1lbW9yeS4gV2UgYWxzbyBuZWVkIHRvIGtlZXAKCSAgYSByZWYgdG8gdGhlIGFsbG9jYXRvciBhcm91bmQgYmVjYXVzZSBmb2xsb3dpbmcgdGhlIG5vdyBmcmVlZCBtZW1vcnkgd291bGQKCSAgbGVhZCB0byBjcmFzaGVzLgoKMjAxMy0wMi0yNiAwOTowODo0OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogRml4IGludmVydGVkIGxvZ2ljIGZvciBkZWNpZGluZyBpZiBtZW1vcnkgc2hvdWxkIGJlIHNoYXJlZCBvciBjb3BpZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NDcxNwoKMjAxMy0wMi0yNiAwNzo1MDoxMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgcG9ydGluZzogbWVudGlvbiBzZWdtZW50IGFjY3VtdWxhdGlvbiBpbiB0aGUgcG9ydGluZyBndWlkZQoJICBUaGlzIG5lZWRzIG1vcmUgZGV0YWlsLCBidXQgYXQgbGVhc3QgZ2l2ZXMgcGVvcGxlIGEgaGludCBvbiB0aGUgaXNzdWUuCgoyMDEzLTAyLTI2IDA3OjQ4OjM1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgZG9jczogcy9zdGFydC9kb25lLyBjb3B5J24ncGFzdGUgbWlzdGFrZQoKMjAxMy0wMi0yNSAxMzo1Nzo0MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogQWRkIG5ldyBBUEkgdG8gcmVtb3ZlIGFsbG9jYXRpb24gcGFyYW1zIGFuZCBwb29scyBmcm9tIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5CgoyMDEzLTAyLTI1IDEzOjI0OjMzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogRG9jdW1lbnQgdGhhdCB0aGUgZmlyc3QgYWxsb2NhdG9yIGluIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IHNob3VsZCBhbGxvdyBtYXBwaW5nIHRvIHN5c3RlbSBtZW1vcnkKCjIwMTMtMDItMjQgMDk6MjQ6MjYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IEtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIGFsbG9jYXRvcgoJICBPdGhlcndpc2UgdGhlIGFsbG9jYXRvciBtaWdodCBnZXQgZnJlZWQgd2hpbGUgaXQncyBzdGlsbCB1c2VkCgkgIGJ5IHRoZSBtZW1vcnkKCjIwMTMtMDItMjQgMDk6MzM6MDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IElmIHNoYXJpbmcgYSBHc3RNZW1vcnkgZmFpbHMsIGZhbGwgYmFjayB0byBjb3B5aW5nIGl0CgoyMDEzLTAyLTIzIDE4OjM2OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiBwb3J0aW5nLXRvLTEuMC50eHQ6IHNvbWUgZWxlbWVudCBuYW1lcyBoYXZlIGNoYW5nZWQKCjIwMTMtMDItMjMgMDg6MTk6NDggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IEl0J3MgY29udGlndW91cywgbm90IGNvbnRpbm91cwoKMjAxMy0wMi0yMiAxMjo0MTowOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogQWRkIG5ldyBtZW1vcnkgZmxhZyB0byBzcGVjaWZ5IHRoYXQgbWVtb3J5IGNhbid0IGJlIG1hcHBlZAoKMjAxMy0wMi0yMiAwOTowMjoyMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogQWRkIG1lbW9yeSBmbGFnIHRvIG1hcmsgcGh5c2ljYWxseSBjb250aW5vdXMgbWVtb3J5CgoyMDEzLTAyLTE2IDIzOjAyOjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGRvbid0IHBhc3MgTlVMTCBvdXRjYXBzIHRvIHRyYW5zZm9ybV9zaXplIG9uIHNodXRkb3duCgkgIGdzdF9wYWRfZ2V0X2N1cnJlbnRfY2FwcygpIG9uIHRoZSBzb3VyY2UgcGFkIG1pZ2h0IHlpZWxkIE5VTEwgY2FwcwoJICBpZiB3ZSdyZSBiZWluZyBzaHV0IGRvd24gYW5kIHRoZSBzb3VyY2UgcGFkIGhhcyBhbHJlYWR5IGJlZW4KCSAgZGVhY3RpdmF0ZWQgYnkgdGhlIG90aGVyIHRocmVhZCB0aGF0J3MgY2hhbmdpbmcgc3RhdGUuIEp1c3QgYmFpbAoJICBvdXQgaW4gdGhhdCBjYXNlLCBpbnN0ZWFkIG9mIHBhc3NpbmcgTlVMTCBjYXBzIHRvIHRoZSB0cmFuc2Zvcm1fc2l6ZQoJICBmdW5jdGlvbiwgd2hpY2ggaXQgbWlnaHQgbm90IGV4cGVjdC4KCSAgRml4ZXMgc3B1cmlvdXMgd2FybmluZ3MgaW4gYXVkaW9yZXNhbXBsZSBzaHV0ZG93biB1bml0IHRlc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTM5OTYKCjIwMTMtMDItMjEgMTA6MTg6MTQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogQWRkIE9SQwoKMjAxMy0wMi0xOSAxODowMDo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBhdm9pZCB1bmV4cGVjdGVkIHNpZGUtZWZmZWN0cyBvZiBHU1RfV1JJVEVfKiBtYWNyb3MKCSAgTWFrZSBzdXJlIHRoZSBkYXRhIGFyZ3VtZW50IGlzIG9ubHkgZXZhbHVhdGVkIG9uY2UuCgoyMDEzLTAyLTE5IDE3OjM2OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICBjaGVjazogYWRkIHNvbWUgbW9yZSBmYWlsX3VubGVzc18qKCkgbWFjcm9zIGZvciBjb252ZW5pZW5jZQoJICBBUEk6IGZhaWxfdW5sZXNzX2VxdWFsc19pbnRfaGV4CgkgIEFQSTogYXNzZXJ0X2VxdWFsc19pbnRfaGV4CgkgIEFQSTogZmFpbF91bmxlc3NfZXF1YWxzX2ludDY0X2hleAoJICBBUEk6IGFzc2VydF9lcXVhbHNfaW50NjRfaGV4CgkgIEFQSTogZmFpbF91bmxlc3NfZXF1YWxzX3VpbnQ2NF9oZXgKCSAgQVBJOiBhc3NlcnRfZXF1YWxzX3VpbnQ2NF9oZXgKCSAgQVBJOiBmYWlsX3VubGVzc19lcXVhbHNfcG9pbnRlcgoJICBBUEk6IGFzc2VydF9lcXVhbHNfcG9pbnRlcgoKMjAxMy0wMi0xOSAxMjo0MjozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgc2NyaXB0czogYWRkIG5ldyAtYmFzZSBhbGxvY2F0b3JzIGxpYnJhcnkgdG8gZ3N0LXVuaW5zdGFsbGVkIHNlYXJjaCBwYXRocwoKMjAxMy0wMi0xOCAyMDo0NzowNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGFkZCB0d28gbW9yZSB0ZXN0cyB1c2luZyBjb2xsZWN0cGFkcyB3aXRoaW4gYW4gZWxlbWVudAoJICBBZGQgYSBzdGF0aWMgcGx1Z2luIHdpdGggYSBydWRpbWVudGFyeSBlbGVtZW50IHVzaW5nIGNvbGxlY3RwYWRzIGFuZCBkbyBzb21lCgkgIHBpcGVsaW5lIGJhc2VkIHRlc3RzLgoKMjAxMy0wMi0xNyAxMjo1MDowMyAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgZG9jczogRml4IHNvbWUgYW1iaWd1b3VzIHdvcmRpbmcKCjIwMTMtMDItMTcgMTk6NTM6NTUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkgIHRyaWdnZXJjb250cm9sc291cmNlOiBhZGQgbWlzc2luZyBlbmRfaXRlciBjaGVjayBmb3Igc2VxdWVuY2UKCSAgQXZvaWQgYWNjZXNzaW5nIHRoZSBlbmQtaXRlciwgdGhpcyBpcyBhIG1hcmtlciB3aXRob3V0IGEgZGF0YSBmaWVsZC4KCjIwMTMtMDItMTcgMTM6MjA6MjAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBkb2NzOiBsaW5rIHRvIHRoZSBhcHByb3ByaWF0ZSBtZXNzYWdlcyBmcm9tIGdzdF9lbGVtZW50c19zZXRfc3RhdGUoKSBkb2NzCgkgIEZvciBhbiBhc3luYyBzdGF0ZSBjaGFuZ2UgcmV0dXJuIG9uZSB3b3VsZCB3YWl0IGZvciBBU1lOQ19ET05FIG9yIFNUQVRFX0NIQU5HRUQuCgoyMDEzLTAyLTE2IDE0OjIwOjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBzaW5jZSBtYXJrZXIgZm9yIG5ldyBDT1BZX0RFRVAgYnVmZmVyIGZsYWcKCjIwMTMtMDItMTYgMTQ6NTk6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBhZGQgb3B0aW9uIHRvIGRlZXAgY29weSBhIGJ1ZmZlcgoJICBBZGQgYSBidWZmZXIgY29weSBmbGFnIHRvIGZvcmNlIGEgbWVtb3J5IGNvcHkgaW4gYWxsIGNhc2VzLgoKMjAxMy0wMi0xNCAxNDowOToxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgUmV2ZXJ0ICJ1dGlsczogVXNlIGdzdF9wYWRfZ2V0X3BhZF90ZW1wbGF0ZSgpIGluIGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZF90ZW1wbGF0ZSgpIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDFhMWE5ZTE0M2ZiMGUxNTVkNzYyN2FhOGU0ODljZDVkMDRiYzA5M2MuCgkgIFRoaXMgYnJlYWtzIHRoZSBwaXBlbGluZXMvdGFnc2NoZWNraW5nIHVuaXQgdGVzdCBmb3Igc29tZSByZWFzb24KCSAgKGZha2VzcmMgISBjYXBzZmlsdGVyICEgcXRtdXggbGlua2luZyBmYWlscyBub3cpLiBJdCBtaWdodCBiZQoJICBhIGJ1ZyBpbiB0aGUgdW5pdCB0ZXN0IG9mIGNvdXJzZSwgYnV0IHNvbWVvbmUgd2lsbCBuZWVkIHRvCgkgIGludmVzdGlnYXRlIHRoaXMuIFJldmVydGluZyBmb3Igbm93LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNTA4CgoyMDEzLTAyLTE1IDEzOjA4OjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJICBhbGxvY2F0b3I6IGltcHJvdmUgZmFsbGJhY2sgY29weSBmdW5jdGlvbgoJICBPbmx5IHVzZSB0aGUgYWxsb2NhdG9yIG9mIHRoZSBjb3BpZWQgbWVtb3J5IHdoZW4gd2UgY2FuIHVzZSB0aGUgZGVmYXVsdAoJICBfYWxsb2MgZnVuY3Rpb24gb24gaXQuIE90aGVyd2lzZSB3ZSB3aWxsIGhhdmUgdG8gdXNlIHRoZSBkZWZhdWx0CgkgIGFsbG9jYXRvciBmb3IgdGhlIGNvcHkuCgoyMDEzLTAyLTE0IDEzOjU1OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBkb2NzOiBmaXggbG9jYXRpb24gaW4gdXNlcidzIGhvbWUgZGlyZWN0b3J5IHdoZXJlIEdTdHJlYW1lciBsb29rcyBmb3IgcGx1Z2lucwoJICBJdCdzIGJhc2VkIG9uIHRoZSB4ZGcgdXNlciBkYXRhIGRpciBub3cgaW4gMS4wLgoKMjAxMy0wMS0yNSAwNjo1MDoyNyAtMDMwMCAgTml2IFNhcmRpIDx4YWlraUBldmlsZ2lnZ2xlLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogVXNlIGdzdF9wYWRfZ2V0X3BhZF90ZW1wbGF0ZSgpIGluIGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZF90ZW1wbGF0ZSgpCgkgIG1vdGl2YXRpb24gY29tZXMgZnJvbTogLyogRklYTUU6IHdoeSBub3QgZ3N0X3BhZF9nZXRfcGFkX3RlbXBsYXRlIChwYWQpOyAqLwoJICB0aGlzIGNvZGUgcGF0aCBpcyBxdWl0ZSBuaWNlciwgd2Ugbm93IG9ubHkgcmV2ZXJ0IHRvIGNyZWF0aW5nIHRoZSB0ZW1wbGF0ZQoJICBpZiBnc3RfcGFkX2dldF9wYWRfdGVtcGxhdGUgZmFpbHMuCgkgIHdpdGggdGhpcyBmb3JrLCB3ZSBnYWluIGEgbm9uLWFsbG9jYXRpb24gb2YgR3N0Q2FwcyAqdGVtcGxjYXBzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI1MDgKCjIwMTMtMDItMTMgMDA6Mjc6MjggKzAwMDAgIEtyenlzenRvZiBLb25vcGtvIDxrcnp5c3p0b2Yua29ub3Brb0BnbWFpbC5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IFVzZSBnX3VuaXhfc2lnbmFsX2FkZCgpIHRvIGhhbmRsZSBrZXlib2FyZCBpbnRlcnJ1cHRpb24KCSAgQ3VycmVudCBpbXBsZW1lbnRhdGlvbiB1c2VzIGEgdHJhZGl0aW9uYWwgc2lnbmFsIGhhbmRsZXIgYW5kIGEgMjUwbXMKCSAgdGltZW91dCBjYWxsYmFjayBpbiB0aGUgZXZlbnQgbG9vcC4gIEFkZGluZyBhIEdTb3VyY2Ugd2l0aAoJICBnX3VuaXhfc2lnbmFsX2FkZCgpIHRvIHRoZSBHTWFpbkxvb3AgaXMgYSBtdWNoIG1vcmUgZWxlZ2FudCBzb2x1dGlvbi4KCSAgVGhlIHNpZ25hbCBoYW5kbGVyIHdpdGggdGhpcyBhcHByb2FjaCBjYW4gc2VuZCBhIG1lc3NhZ2UgdG8gdGhlIGJ1cwoJICBkaXJlY3RseSByYXRoZXIgdGhhbiBzZXQgYSBmbGFnIGFzIGFsbCBkaXNwYXRjaGluZyBpbnRyaWNhY2llcyBhcmUgaGFuZGxlZAoJICBieSBHTGliLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkzNDgxCgoyMDEzLTAyLTE0IDAwOjA3OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIGRvY3M6IGZsZXNoIG91ciAnUnVubmluZyBHU3RyZWFtZXInIGJpdHMgYSBiaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzYwNwoKMjAxMy0wMi0xMyAyMzoyNzoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZG9jczogZmxlc2ggb3V0IGdzdC1sYXVuY2gtMS4wIG1hbiBwYWdlIGEgbGl0dGxlCgkgIEZpeCB1cCBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSByZWdpc3RyeS4KCSAgTWVudGlvbiBtb3JlIG9wdGlvbnMgZm9yIEdTVF9ERUJVRyAod2lsZGNhcmRzIGFuZAoJICBuYW1lZCBkZWJ1ZyBsZXZlbHMpLgoJICBFeHBsYWluIHdoYXQgdG8gZG8gd2l0aCB0aGUgZG90IGZpbGVzIHRoYXQgY2FuIGJlCgkgIHByb2R1Y2VkIGJ5IHNldHRpbmcgR1NUX0RFQlVHX0RVTVBfRE9UX0RJUi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzYwNwoKMjAxMi0xMi0yNyAwMDowMzowNiArMDEwMCAgR2VydCBNaWNoYWVsIEt1bHlrIDxna3VseWtAeWFob28uZGU+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1tZXRhZGF0YS54bWw6CgkgIGRvY3M6IGZpeCBhZHZhbmNlZC1tZXRhZGF0YSBjb2RlIGV4YW1wbGUgaW4gbWFudWFsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTA3NTEKCjIwMTMtMDItMTMgMTY6NTI6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogYWNjZXB0IE5VTEwgZXJyb3IgYXJndW1lbnQgaW4gZ3N0X21lc3NhZ2VfcGFyc2Vfe2Vycm9yLHdhcm5pbmcsaW5mb30KCSAgQW5kIHNpbXBsaWZ5IGNvZGUgYSBiaXQgd2hpbGUgYXQgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTM3MDQKCjIwMTMtMDItMTMgMTc6MDA6MjMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogUmVtb3ZlIHNldC1zdHlsZSBiaXRtYXNrIGludGVyc2VjdGlvbi91bmlvbi9zdWJ0cmFjdGlvbiBmdW5jdGlvbnMKCSAgU2V0IG9wZXJhdGlvbnMgb24gdGhlIGJpdG1hc2tzIGRvbid0IG1ha2UgbXVjaCBzZW5zZSBhbmQgcmVzdWx0CgkgIGluIGludmFsaWQgY2FwcyB3aGVuIHVzZWQgYXMgYSBjaGFubmVsLW1hc2suIFRoZXkgYXJlIG5vdyBoYW5kbGVkCgkgIGV4YWN0bHkgbGlrZSBpbnRlZ2Vycy4KCSAgVGhpcyBmdW5jdGlvbmFsaXR5IHdhcyBub3QgdXNlZCBhbnl3aGVyZSBleGNlcHQgZm9yIHRlc3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxMzcwCgoyMDEzLTAyLTEzIDExOjE5OjA2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBUaGUgbGF0ZW5jeSBxdWVyeSBzaG91bGQgcmV0dXJuIFRSVUUgYnkgZGVmYXVsdCwgZGlmZmVyZW50IHRvIG90aGVyIHF1ZXJpZXMKCSAgRml4ZXMgdW5pdCB0ZXN0IGZhaWx1cmVzIGNhdXNlZCBieSBmM2QyNjhkZTdmN2ZiMTE2MTc3OGE5YTk1ZTBkNTRkOGM4OWVmNjI2CgoyMDEzLTAyLTEzIDEwOjQ2OjM3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgc3RydWN0dXJlOiBNYWtlIHN1cmUgdGhhdCBzdWJzZXRzIGhhdmUgYWxsIGZpZWxkcyBvZiB0aGUgc3VwZXJzZXQKCSAgInZpZGVvL3gtaDI2NCxwYXJzZWQ9KGJvb2xlYW4pdHJ1ZSIgaXMgbm90IGEgc3VwZXJzZXQgb2YKCSAgInZpZGVvL3gtaDI2NCxzdHJlYW0tZm9ybWF0PShzdHJpbmcpYnl0ZS1zdHJlYW0sYWxpZ25tZW50PShzdHJpbmcpbmFsIgoJICBmb3IgZXhhbXBsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzM2NQoKMjAxMy0wMi0xMiAxMjozMjoyMyAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHVwZGF0ZSBleHBvcnRzIGZvciBiYXNlcGFyc2UgQVBJIGNoYW5nZXMKCjIwMTMtMDItMTIgMTI6MzE6NDIgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggZG9jIHR5cG8KCjIwMTMtMDItMTEgMTY6NTE6NDggLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgZ3N0X2Jhc2VfcGFyc2Vfc2V0X3RzX2F0X29mZnNldCgpCgkgIFNldHMgdGhlIGJ1ZmZlciB0aW1lc3RhbXBzIGJhc2VkIG9uIGxhc3Qgc2VlbiB0aW1lc3RhbXBzIGF0IGEKCSAgcGFydGljdWxhciBvZmZzZXQgaW50byB0aGUgZnJhbWUuCgkgIEFQSTogZ3N0X2Jhc2VfcGFyc2Vfc2V0X3RzX2F0X29mZnNldCgpCgoyMDEzLTAyLTExIDE2OjQyOjQxIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogQWRkIGdzdF9hZGFwdGVyX3ByZXZfW3BkXXRzX2F0X29mZnNldCgpCgkgIE9yaWdpbmFsIHBhdGNoIHdyaXR0ZW4gYnkgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHJkaW8uY29tPi4KCSAgQVBJOiBnc3RfYWRhcHRlcl9wcmV2X3B0c19hdF9vZmZzZXQoKQoJICBBUEk6IGdzdF9hZGFwdGVyX3ByZXZfZHRzX2F0X29mZnNldCgpCgoyMDEzLTAyLTA5IDE4OjE0OjA5ICswMTAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IHF1ZXJ5IHNpbmsgZWxlbWVudHMgYW5kIHNvdXJjZSBwYWRzIG9mIHRoZSBiaW4KCSAgZ3N0X2Jpbl9xdWVyeSgpIG5vdyBmb3J3YXJkcyB0aGUgcXVlcnkgdG8gdGhlIHNvdXJjZSBwYWRzIGFzIHdlbGwgaWYKCSAgbm9uZSBvZiB0aGUgc2lua3Mgb2YgdGhlIGJpbiBzYXRpc2ZpZWQgdGhlIHF1ZXJ5LiBUaGlzIGhlbHBzIGluIHRoZQoJICBjYXNlIG9mIERVUkFUSU9OIHF1ZXJpZXMgZG9uZSBhIGJpbiBjb250YWluaW5nIGEgc291cmNlIGVsZW1lbnQuCgkgIEZpeGVzIGJ1ZyA2Mzg3NDkKCjIwMTMtMDItMDcgMTI6NDc6MDIgKzAxMDAgIEFsZXhhbmRlciBTY2hyYWIgPGFsZXhhc0BheGlzLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBMZXQgZ3N0X2Jpbl9zZW5kX2V2ZW50KCkgc2VuZCBldmVudHMgdG8gZ2hvc3QgcGFkcyBhcyB3ZWxsCgoyMDEzLTAyLTExIDIyOjUyOjI1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBjb21wYXQ6IGtpbGwgbW9yZSB1c2VzIG9mIGdzdF9wYWRfc2V0X2NhcHMoKQoKMjAxMy0wMi0xMiAwMDowODo1MSArMTEwMCAgVGltICdtaXRocm8nIEFuc2VsbCA8bWl0aHJvQG1pdGhpcy5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEFkZGluZyBvZmZzZXQgdG8gR3N0U2VnbWVudCBzZXJpYWxpemUvZGVzZXJpYWxpemUuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTM1ODcKCjIwMTMtMDItMDkgMTI6MzI6MDIgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogaW1wcm92ZSBQVFMgaW50ZXJwb2xhdGluZwoJICAuLi4gYW5kIHRyYWNraW5nIG9mIERUUy4gIEZpeGVzIGNhc2VzIHdoZXJlIFBUUyBpcyBsb2NrZWQgb24gdG8gdGhlCgkgIERUUyBvZiBhbiBpbmNvbWluZyBidWZmZXIgd2l0aCBubyBQVFMgd2l0aCBpbnZhbGlkIGRhdGEsIGxlYWRpbmcgdG8KCSAgbm8gb3V0Z29pbmcgUFRTIChzaW5jZSBpdCBpcyBub3QgYWxsb3dlZCBzbWFsbGVyIHRoYW4gRFRTKS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTQ4MQoKMjAxMy0wMi0wOCAyMToyODoxOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogYWRkIG1vcmUgcG9ydGluZyBkZXRhaWxzCgoyMDEzLTAyLTA4IDIxOjIxOjQ4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sYmluZGluZzogZXJyb3IgaGFuZGxpbmcgZm9yIGJpbmRpbmcgY29udHJvbHNvdXJjZXMgdG8gd3JvbmcgcHJvcGVydGllcwoJICBBZGQgd2FybmluZyBpZiBwcm9wZXJ0eSBpcyBub3Qgc3VpdGFibGUgZm9yIGNvbnRyb2xsaW5nLiBXaGVuIGFkZGluZyBhIGNvbnRyb2wtCgkgIGJpbmRpbmcgY2hlY2sgdGhhdCBwc3BlYyE9TlVMTC4KCjIwMTMtMDItMDcgMTM6MDg6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiByZW1vdmUgb2xkIGRvY3MgYWJvdXQgaXRlcmF0b3JzCgoyMDEzLTAyLTA3IDEyOjUyOjI2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IHJlbW92ZSBvbGQgY29tbWVudAoJICBUaGUgaXRlcmF0b3JzIG5vdyByZXR1cm4gYSBHVmFsdWUgYW5kIG5vdCB0aGUgb2JqZWN0IGRpcmVjdGx5IGFueW1vcmUuCgoyMDEzLTAyLTA3IDEyOjUwOjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IHJlc2V0IEdWYWx1ZSBmcm9tIGl0ZXJhdG9yIGFmdGVyIHVzYWdlCgoyMDEzLTAyLTA1IDE3OjE1OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc2luay5jOgoJICB0ZXN0czogYWRkIGJhc2VzaW5rIHRlc3QKCjIwMTMtMDItMDUgMTc6MTk6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBoYW5kbGUgc3luYyBvZiBFT1MgYWZ0ZXIgaXRlbSB3aXRob3V0IGR1cmF0aW9uCgkgIEFmdGVyIGEgYnVmZmVyIG9yIEdBUCB3aXRob3V0IGR1cmF0aW9uLCBhbiBFT1MgZXZlbnQgc2hvdWxkIGJlIHJlbmRlcmVkCgkgIGltbWVkaWF0ZWx5IGluc3RlYWQgb2Ygd2FpdGluZyBmb3IgdGhlIGVuZCBvZiB0aGUgc2VnbWVudC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Mjg2OAoKMjAxMy0wMi0wMiAxMTo1NTo1MiAtMDgwMCAgTmF0ZSBCb2dkYW5vd2ljeiA8bmF0ZXpiQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBnc3RwaXBlbGluZTogZml4IGZhaWxlZCBhc3NlcnRpb24gY2F1c2VkIGJ5IHNlZWtpbmcgcGlwZWxpbmUgd2l0aCBOVUxMIGNsb2NrCgkgIFVuZGVyIGNlcnRhaW4gR1NUX1NUQVRFX0NIQU5HRURfUEFVU0VEX1RPX1BMQVlJTkcgdHJhbnNpdGlvbnMsIGEgcGlwZWxpbmUgd2l0aAoJICBhIE5VTEwgY2xvY2sgd2lsbCBmYWlsIGFuIGFzc2VydGlvbiBkdWUgdG8gYW4gdW5jaGVja2VkIGNhbGwgdG8gZ3N0X29iamVjdF9yZWYoKS4KCSAgVGhpcyBpcyBmaXhlZCBieSBzaW1wbHkgYWRkaW5nIGEgY2hlY2sgYW5kIG9ubHkgcmVmLWluZyBpZiB0aGUgY2xvY2sgaXMgbm90IE5VTEwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTMwNjUKCjIwMTMtMDItMDUgMTM6NDQ6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIHN0cnVjdHVyZTogY2hhbmdlIGFyZ3VtZW50IG5hbWUgZm9yIGRvY3MKCjIwMTMtMDItMDQgMTA6MzA6MzIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBmaXggb3JkZXIgb2YgY2FwcyBvbiBhbiB1bm5lZ290aWF0ZWQgbGluawoJICBoZWFkbGFiZWwgaXMgdGhlIHNpbmtfcGFkICh3aGVyZSB0aGUgbGluayBwb2ludHMgdG8pIGFuZCBub3QgdGhlIG90aGVyIHdheSBhcm91bmQuCgoyMDEzLTAyLTAxIDIxOjU5OjQxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBkb2NzOiB1cGRhdGUgdGhlIGNvbnRyb2xsZXIgZG9jcwoJICBBZGQgdGhlIGNvbnRyb2wgYmluZGluZ3MgdG8gdGhlIGRvY3MuIEFkZCBhIGxpdHRsZSBtb3JlIGRldGFpbC4KCjIwMTMtMDItMDEgMjE6NTc6NDUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIHBvcnRpbmc6IGEgZmV3IHVwZGF0ZXMgZm9yIHRoZSBwb3J0aW5nIGd1aWRlCgoyMDEzLTAxLTMwIDEzOjA2OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgIGRhdGFxdWV1ZTogY2FuJ3QgcGFzcyBhIEdUeXBlIHRocm91Z2ggR0lOVF9UT19QT0lOVEVSCgkgIFVzZSBHU0laRV9UT19QT0lOVEVSIGluc3RlYWQuIHNpemVvZihHVHlwZSkgbWF5IGJlIGxhcmdlcgoJICB0aGFuIHNpemVvZihndWxvbmcpIGFuZCBzaXplb2YoaW50KSwgc28gdGhlIGNhc3RzIG1heQoJICBjaG9wIG9mZiBzb21lIGJpdHMgZnJvbSB0aGUgR1R5cGUgdmFsdWUgb24gc29tZSBhcmNoaXRlY3R1cmVzLgoKMjAxMy0wMS0yOSAxMjo0MDo1MiArMDEwMCAgQWxleGFuZGVyIFNjaHJhYiA8YWxleGFzQGF4aXMuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgdGVzdHM6IHVuaXQgdGVzdCB0byB0cmlnZ2VyIHRoZSBxdWV1ZS9mbHVzaGluZyByYWNlIGNvbmRpdGlvbiBidWcgZm9yIGFsbG9jYXRpb24gcXVlcmllcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNjkxCgoyMDEzLTAxLTI4IDExOjA1OjI4ICswMTAwICBBbGV4YW5kZXIgU2NocmFiIDxhbGV4YXNAYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiByZW1vdmUgcXVlcnkgZnJvbSBxdWV1ZSBpZiBxdWV1ZSBpcyBmbHVzaGluZwoJICBXaGVuIHF1ZXJ5aW5nIGEgcXVldWUgdGhhdCBpcyBmbHVzaGluZyB3ZSBlbmQgdXAgYWRkaW5nCgkgIGEgcXVlcnkgdG8gdGhlIHF1ZXVlYXJyYXkgd2l0aG91dCB0YWtpbmcgYSByZWZlcmVuY2UgdG8KCSAgdGhhdCBxdWVyeSAoYmVjYXVzZSB0aGUgbm9ybWFsIGZ1bmN0aW9uYWxpdHkgaXMgdG8gYmxvY2sKCSAgdW50aWwgdGhhdCBxdWVyeSBpcyBkb25lIGFuZCBkaXNjYXJkZWQgZnJvbSB0aGUgcXVldWUpLgoJICBUaGlzIGxhdGVyIGNhdXNlcyBwcm9ibGVtIGlmIHRoZSBxdWVyeSBpcyB1bnJlZmZlZCBvdXRzaWRlCgkgIG9mIHRoZSBxdWV1ZSBiZWZvcmUgd2UgZGlzY2FyZCB0aGUgcXVldWUuIFRoZXJlIGlzIGEgY2hlY2sKCSAgdG8gYXZvaWQgdW5yZWZmaW5nIGFueSBsaW5nZXJpbmcgcXVlcnktb2JqZWN0cywgYnV0IHNpbmNlCgkgIHRoZSBxdWVyeSBoYXMgYmVlbiBkZWxldGVkIHRoYXQgY2hlY2sgZmFpbHMuCgkgIFRoaXMgY29tbWl0IGRlcGVuZHMgb24gb3RoZXIgZml4ZXMgZG9uZSB0byBnc3RfcXVldWVfYXJyYXlfZmluZCgpCgkgIGFuZCBnc3RfcXVldWVfYXJyYXlfZHJvcF9lbGVtZW50KCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI2OTEKCjIwMTMtMDEtMzAgMTE6NTU6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkgIHF1ZXVlYXJyYXk6IG1ha2UgX2ZpbmQoKSBmaW5kIHRoZSB2YWx1ZSBpZiBubyBjb21wYXJlIGZ1bmN0aW9uIGlzIHByb3ZpZGVkCgkgIEFsbG93IE5VTEwgYXMgY29tcGFyZSBmdW5jdGlvbiBmb3IgZGlyZWN0IHZhbHVlIGxvb2t1cC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjY5MQoKMjAxMy0wMS0zMCAxMTozNDoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3F1ZXVlYXJyYXkuYzoKCSAgdGVzdHM6IGNoZWNrIHJldHVybiB2YWx1ZSBvZiBnc3RfcXVldWVfYXJyYXlfZHJvcF9lbGVtZW50KCkgdG9vCgkgIFdhcyBhZGRlZCB3aGVuIHRoZSBBUEkgd2FzIG1hZGUgcHVibGljIGluIGdpdCBtYXN0ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI2OTEKCjIwMTMtMDEtMjkgMjI6NTQ6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3F1ZXVlYXJyYXkuYzoKCSAgdGVzdHM6IG9uZSBtb3JlIHRlc3QgZm9yIGdzdF9xdWV1ZV9hcnJheV9kcm9wX2VsZW1lbnQoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNjkxCgkgIENvbmZsaWN0czoKCSAgdGVzdHMvY2hlY2svbGlicy9xdWV1ZWFycmF5LmMKCjIwMTMtMDEtMjggMTE6MDU6MjggKzAxMDAgIEFsZXhhbmRlciBTY2hyYWIgPGFsZXhhc0BheGlzLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJICBxdWV1ZWFycmF5OiBmaXggZ3N0X3F1ZXVlX2FycmF5X2ZpbmQoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNjkxCgoyMDEzLTAxLTI4IDExOjA1OjI4ICswMTAwICBBbGV4YW5kZXIgU2NocmFiIDxhbGV4YXNAYXhpcy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSAgcXVldWVhcnJheTogZml4IGdzdF9xdWV1ZV9hcnJheV9kcm9wX2VsZW1lbnQoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNjkxCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmMKCjIwMTMtMDEtMjkgMTY6NTU6MjMgKzAyMDAgIFNyZWVyZW5qIEJhbGFjaGFuZHJhbiA8c3JlZXJlbmouYmFsYWNoYW5kcmFuQGludGVsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLWRvY3MuaDoKCSAgZG9jczogYWxpZ24gdGhlIGNvbW1lbnRzIGNvcnJlY3RseSB3aXRoIHRoZSBkZWNsYXJhdGlvbiBpbiBiaXRyZWFkZXIgZG9jcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyODA5CgoyMDEzLTAxLTI5IDA5OjQ1OjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGhhbmRsZSByZW5lZ290aWF0aW9uIGNvcnJlY3RseQoJICBEb24ndCByZXRyeSB0byBuZWdvdGlhdGUgd2hlbiB3ZSBmYWlsIHRvIG5lZ290aWF0ZSBidXQgaW5zdGVhZCBwcm9kdWNlIGEKCSAgTk9UX05FR09USUFURUQgZXJyb3IuIFdlIG9ubHkgd2FudCB0byByZXRyeSBuZWdvdGlhdGlvbiBpZiB0aGUgcmVzdWx0IGZyb20KCSAgZ3N0X3BhZF9wdXNoKCkgcmV0dXJuZWQgTk9UX05FR09USUFURUQuCgoyMDEzLTAxLTI4IDIwOjQxOjIwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBhOTQyMjkzIHRvIDJkZTIyMWMKCjIwMTMtMDEtMjggMTM6MDU6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3N0cmVhbS1zdGF0dXMuYzoKCSAgZXhhbXBsZTogZml4IEZJWE1FIGluIGV4YW1wbGUKCSAgVXNlIHNldHByaW9yaXR5IHRvIHJhaXNlIHByaW9yaXR5CgoyMDEzLTAxLTI3IDA2OjIwOjUxIC0wODAwICBTaW1vbiBGZWx0bWFuIDxzZmVsdG1hbkBzcmMuZ25vbWUub3JnPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBnLWk6IGFkZCBidWlsdCBlbnVtdHlwZXMgaGVhZGVycyBhbmQgc291cmNlcyB0byBnaXIgY3JlYXRpb24KCSAgQWRkIGdzdGVudW10eXBlcy5oL2MgZm9yIGluY2x1c2lvbiB3aXRoIGctaXItc2Nhbm5lci4gVGhpcyBmaXhlcwoJICBwcm9ibGVtcyB3aGVyZSBpbnRyb3NwZWN0aW9uIGJhc2VkIGJpbmRpbmdzIHRoaW5rIEdzdFN0YXRlIGlzCgkgIHR5cGVsZXNzIGR1ZSB0byB0aGUgR1R5cGUgbm90IGJlaW5nIGluY2x1ZGVkIGFzIGFuIGFubm90YXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTExODUKCjIwMTMtMDEtMjcgMDk6MTg6MDAgKzA1MzAgIEIuUHJhdGhpYmhhIDxwcmF0aGliaGFiQGNkYWMuaW4+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc3RyZXNzLmM6CgkgIHRlc3RzOiB1c2UgZ190aW1lb3V0X2FkZF9zZWNvbmRzIGluIHBpcGVsaW5lIHN0cmVzcyB0ZXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI2MTIKCjIwMTMtMDEtMjQgMTc6NTA6MzEgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBQdXQgdGhlIHJpZ2h0IHBhdGggZm9yIHRoZSBnc3R0dGVzdGNsb2NrIGluY2x1ZGUgZmlsZQoKMjAxMy0wMS0yNCAxNTo1MDoxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgcHdnOiByZW5hbWUgdmFyaWFibGUKCSAgVGhlIGZpbHRlciB2YXJpYWJsZSB3YXMgdXNlZCB0d2ljZSBmb3IgZGlmZmVyZW50IHRoaW5ncy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjQzMgoKMjAxMy0wMS0xNyAyMTozNTo0OCAtMDMwMCAgTml2IFNhcmRpIDx4YWlraUBldmlsZ2lnZ2xlLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0X3BhZF9jaGVja19yZWNvbmZpZ3VyZTogb25seSByZW1vdmUgZmxhZyBpZiBzZXQuCgkgIHRoZSBjb2RlIGlmZWQgYSBkZWJ1ZyBzdGF0ZW1lbnQsIHRoYXQgY2FuJ3QgYmUgcmlnaHQuIGFueXdheSwgdGhlIHdheSBpdCBpcywKCSAgd2UgZG9uJ3QgcmVhbGx5IG5lZWQgdGhhdCBicmFuY2gsIGFzIHdlIHNldCB0aGUgZmxhZyB0byB1bnNldCBvbmx5IGlmIHNldAoJICAoYW5kIHRoYXQgY2FuJ3QgZmFpbCkgaGVuY2UgdGhlIGVuZCByZXN1bHQgaXMgYWx3YXlzIHRvIHVuc2V0IHRoZSBmbGFnLgoJICBTaWduZWQtb2ZmLWJ5OiBOaXYgU2FyZGkgPHhhaWtpQGV2aWxnaWdnbGUuY29tPgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxOTg1CgoyMDEzLTAxLTE3IDIxOjQzOjI1IC0wMzAwICBOaXYgU2FyZGkgPHhhaWtpQGV2aWxnaWdnbGUuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHNldCBORUVEX1JFQ09ORklHVVJFIGZsYWcgaWYgbmVnb3RpYXRlIGZhaWxzCgkgIFdoZW4gbmVnb3RpYXRpb24gZmFpbHMsIG1hcmsgdGhlIHBhZCBhcyBuZWVkaW5nIGEgcmVjb25maWd1cmUgYWdhaW4gc28KCSAgdGhhdCBpdCBnZXRzIHBpY2tlZCB1cCBhZ2FpbiBuZXh0IHRpbWUuCgkgIFNpZ25lZC1vZmYtYnk6IE5pdiBTYXJkaSA8eGFpa2lAZXZpbGdpZ2dsZS5jb20+CgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE5ODYKCjIwMTMtMDEtMTkgMTI6NTE6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogYWRkIGdzdF9wYWRfZ2V0X3N0cmVhbV9pZCgpIHV0aWxpdHkgZnVuY3Rpb24KCSAgQVBJOiBnc3RfcGFkX2dldF9zdHJlYW1faWQoKQoKMjAxMy0wMS0xOCAxNjowNTowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIHRvb2xzOiBtaW5vciBhZGRpdGlvbiB0byBnc3QtbGF1bmNoLTEuMCBtYW4gcGFnZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyMDE1CgoyMDEzLTAxLTE4IDE2OjAxOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgdG9vbHM6IHVwZGF0ZSBnc3QtbGF1bmNoLTEuMCBtYW4gcGFnZSBmb3IgbmV3IGRlYnVnIGxldmVscwoJICBUaGVyZSBhcmUgbW9yZSBkZWJ1ZyBsZXZlbHMgdGhlc2UgZGF5cywgbm90IG9ubHkgMC01LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyMDE1CgoyMDEzLTAxLTE3IDAwOjM4OjE0IC0wNjAwICBEYW5pZWwgRMOtYXogPHlvc295QGRhbmllbGRpYXoub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfYXJtLmg6CgkgIHRlc3RzOiBmaXggQUJJIGNoZWNrIHN0cnVjdCBzaXplcyBmb3IgQVJNCgkgIGFuZCByZS1lbmFibGUgQUJJIGNoZWNrIGZvciBBUk0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE4MjgKCjIwMTMtMDEtMTYgMTc6MjQ6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGRvY3M6IGFkZCBhIG5vdGUgdG8gdGhlIGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKCkgZG9jcyBhYm91dCBidWZmZXIgZmxhZ3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MjExMAoKMjAxMy0wMS0xNiAxMToyOTo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICB0ZXN0czogZGlzYWJsZSBBQkkgY2hlY2tzIGZvciBhcmNoaXRlY3R1cmVzIHdoZXJlIHRoZSBzdHJ1Y3Qgc2l6ZXMgYXJlIG5vdCB1cC10by1kYXRlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE4MjgKCjIwMTMtMDEtMTUgMTU6MDM6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAyYTA2OGNlIHRvIGE5NDIyOTMKCjIwMTMtMDEtMTUgMTM6NDc6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBVc2UgR1NUXypfMV8wIGVudmlyb25tZW50IHZhcmlhYmxlcyBldmVyeXdoZXJlCgkgIFRoZSBfMV8wIHN1ZmZpeGVkIGVudmlyb25tZW50IHZhcmlhYmxlcyBvdmVycmlkZSB0aGUKCSAgbm9uLXN1ZmZpeGVkIG9uZXMsIHNvIGlmIHdlJ3JlIGluIGFuIGVudmlyb25tZW50IHRoYXQKCSAgc2V0cyB0aGUgXzFfMCBzdWZmaXhlZCBvbmVzLCBzdWNoIGFzIGpoYnVpbGQsIHdlIG5lZWQKCSAgdG8gc2V0IHRob3NlIHRvIG1ha2Ugc3VyZSBvdXJzIGFjdHVhbGx5IGFsd2F5cyBnZXQKCSAgdXNlZC4KCjIwMTMtMDEtMTUgMTM6NDc6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgdHJhbnNsYXRlZCBzdHJpbmcKCjIwMTMtMDEtMTUgMDk6NDI6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBhZGQgYWxsb3ctbm9uZSBhbm5vdGF0aW9uIGZvciBnc3RfcGlwZWxpbmVfbmV3KCkncyBuYW1lIHByb3BlcnR5CgoyMDEzLTAxLTE0IDIwOjAyOjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGRvY3M6IG1pbm9yIEdzdEJhc2VQYXJzZSBkb2NzIGZpeGVzCgkgIEV4cG9zZSBkb2NzIGZvciBnc3RfYmFzZV9wYXJzZV9maW5pc2hfZnJhbWUoKS4KCjIwMTMtMDEtMTQgMTc6MDE6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kOiBoYW5kbGUgbWFwIGZhaWx1cmUKCjIwMTMtMDEtMTQgMTc6MDA6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaGFuZGxlIG1hcCBmYWlsdXJlCgoyMDEzLTAxLTE0IDE3OjAwOjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGhhbmRsZSBtYXAgZmFpbHVyZQoKMjAxMy0wMS0xMyAxNDo0NTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYWRkIHZmdW5jcyB0byBpbnRlcmNlcHQgcXVlcmllcwoJICBVc2VmdWwgZm9yIHZpZGVvIHBhcnNlcyB0aGF0IHdhbnQgdG8gYXR0YWNoIG1hdHRlciBvcgoJICBmaW5kIG91dCBpZiBkb3duc3RyZWFtIHN1cHBvcnRzIGNlcnRhaW4gbWV0YXMuCgkgIEFQSTogR3N0QmFzZVBhcnNlQ2xhc3M6OnNyY19xdWVyeSgpCgkgIEFQSTogR3N0QmFzZVBhcnNlQ2xhc3M6OnNpbmtfcXVlcnkoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxNDc1CgoyMDEzLTAxLTEyIDIwOjU0OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggdXAgbmFtZSBvZiBkZWZhdWx0IGV2ZW50IHZmdW5jcwoKMjAxMy0wMS0xMCAxMTozNDoxNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJICBjb250cm9sYmluZGluZzogaGlkZSBvbmUgdW51c2VkIHR5cGVkZWYKCSAgVGhpcyBpcyBub3QgdXNlZCBpbnRlcm5hbGx5LgoKMjAxMy0wMS0xMCAxMTozMzo0MiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJICBkb2NzOiBpbXByb3ZlIGFwaSBkb2NzIGZvciBjb250cm9sc291cmNlIGFuZCAtYmluZGluZwoKMjAxMy0wMS0wNSAxNjozMDowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICB0ZXN0czogZml4IGxlYWsgaW4gZ2hvc3RwYWQgdW5pdCB0ZXN0CgkgIFRoZSBjcmVhdGVkIHBhZCBpcyBuZXZlciB1c2VkIGFuZCBvdmVyd3JpdHRlbiB3aXRoCgkgIGFub3RoZXIgbmV3bHktY3JlYXRlZCBwYWQgYSBmZXcgbGluZXMgYmVsb3cuCgoyMDEzLTAxLTA0IDEyOjI3OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBkb2NzOiBtaW5vciBzeXN0ZW1zY2xvY2sgZG9jIGZpeAoKMjAxMy0wMS0wMyAxMDoxNjoxOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBJbml0aWFsaXplIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUKCjIwMTItMTItMzAgMjM6MzU6NDggKzAxMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGFkYXB0ZXI6IHJldHVybiBnc3NpemUgZnJvbSBnc3RfYWRhcHRlcl9tYXNrZWRfc2Nhbl8qIGZ1bmN0aW9ucwoJICBBcyB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoaXMgZnVuY3Rpb24gaXMgLTEgd2hlbiB0aGUgbWF0Y2ggaXMgbm90IGZvdW5kCgoyMDEzLTAxLTAxIDEwOjIzOjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IENoZWNrIGlmIGJ1ZmZlcnMgYXJlIHRvbyBsYXRlIGJlZm9yZSBjYWxsaW5nIHByZXBhcmUvcHJlcGFyZV9saXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTA5MzYKCjIwMTItMTItMzAgMjM6NDg6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogcmVwbGFjZSBkZXByZWNhdGVkIEFNX0NPTkZJR19IRUFERVIgd2l0aCBBQ19DT05GSUdfSEVBREVSUwoJICBBTV9DT05GSUdfSEVBREVSIGhhcyBiZWVuIHJlbW92ZWQgaW4gdGhlIGp1c3QtcmVsZWFzZWQgYXV0b21ha2UgMS4xMzoKCSAgaHR0cHM6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9hdXRvbWFrZS8yMDEyLTEyL21zZzAwMDM4Lmh0bWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDg4MQoKMjAxMi0xMi0yMiAxNjo1MDo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgY2Fwcywgc3RydWN0dXJlLCAgdGFnbGlzdDogbWljcm8tb3B0aW1pc2F0aW9ucwoJICBBdm9pZCBzb21lIHVubmVjZXNzYXJ5IEdWYWx1ZSBjb3B5aW5nIGJ5IG1ha2luZyB1c2Ugb2YKCSAgZ3N0X3N0cnVjdHVyZV9pZF90YWtlX3ZhbHVlKCkgd2hlcmUgcG9zc2libGUuCgoyMDEyLTEyLTIyIDE2OjI5OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBzb21lIG1pY3JvLW9wdGltaXNhdGlvbnMKCSAgQXZvaWQgdW5uZWNlc3NhcnkgdmFsdWUgY29weWluZywgYW5kIHVubmVjZXNzYXJ5IGluaXQvdW5zZXQKCSAgY3ljbGVzIHdoaWNoIGFsbCBnbyB0aHJvdWdoIHRoZSB2YWx1ZSB0YWJsZS4gVGhlcmUncyBhIGJ1bmNoCgkgIG9mIHBsYWNlcyB3aGVyZSB3ZSBjb3B5IGEgdmFsdWUgYW5kIHRoZW4gdW5zZXQgaXQgaW4gdGhlIG5leHQKCSAgbGluZSwgaW5zdGVhZCBvZiBqdXN0IHRha2luZyBvdmVyIHRoZSBzb3VyY2UgdmFsdWUuCgoyMDEyLTEyLTIyIDE2OjUzOjQ3ICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogc2NyaXB0cy9jcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6CgkgIHNjcmlwdHM6IGZpeCBsb2NhdGlvbiBvZiByZXBvc2l0b3J5IHdpdGggc3NoCgoyMDEyLTEyLTIxIDE2OjM2OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkgIGJpbjogYWRkIGZsYWcgdG8gZGlzYWJsZSByZXN5bmMgc3RhdGUgY2hhbmdlCgkgIEFkZCBhIEdTVF9CSU5fRkxBR19OT19SRVNZTkMgdGhhdCBkaXNhYmxlcyBhIHJlc3luYyB3aGVuIGFuIGVsZW1lbnQgaXMgYWRkZWQsCgkgIHJlbW92ZWQgb3IgbGlua2VkIGluIHRoZSBiaW4uIFRoaXMgaXMgaW50ZXJlc3RpbmcgZm9yIGNvbXBsZXggYmlucyB0aGF0CgkgIGR5bmFtaWNhbGx5IGFkZCBlbGVtZW50cyB0byB0aGVtc2VsdmVzIGFuZCB3YW50IHRvIG1hbmFnZSB0aGUgc3RhdGUgb2YgdGhvc2UKCSAgZWxlbWVudHMgd2l0aG91dCBpbnRlcmZlcmVuY2UgZnJvbSByZXN5bmNzLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDQyMAoKMjAxMi0xMi0yMSAxMDowOTozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSAgZG9jczogdXBkYXRlIHN5bmNocm9uaXphdGlvbiBkb2N1bWVudCBhIGxpdHRsZQoKMjAxMi0xMi0yMCAxNjo0MDowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBzeXN0ZW1jbG9jazogYWRkIE9USEVSIGNsb2NrIHR5cGUKCSAgQWRkIGFuIE9USEVSIGNsb2NrIHR5cGUgc28gdGhhdCBzdWJjbGFzc2VzIGFyZSBhYmxlIHRvIG1hcmsgdGhlbXNlbHZlcyBhcwoJICB1c2luZyBzb21lIG90aGVyIGNsb2NrIHNvdXJjZSB0aGFuIHRoZSByZWFsdGltZSBvciBtb25vdG9uaWMgY2xvY2suCgoyMDEyLTEyLTIwIDEzOjMxOjAyICswMTAwICBCcmFua28gU3ViYXNpYyA8YnJhbmtvQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGNvcnJlY3Qgb3ZlcnJ1biBoYW5kbGluZwoJICBUaGUgY29udHJvbCBvZiB3aGV0ZWhlciBhIFNpbmdsZVF1ZXVlIGlzIGZ1bGwgaXMgbm90IGNvcnJlY3QuCgkgIFJld3JvdGUgc2luZ2xlX3F1ZXVlX292ZXJydW5fY2IoKSBzbyBpdCBjaGVja3MgdGhlIGNvcnJlY3QgdmFyaWFibGVzCgkgIHdoZW4gY2hlY2tpbmcgaWYgdGhlIHF1ZXVlIGhhcyByZWFjaGVkIHRoZSBoYXJkIGxpbWl0cywgYW5kIHRvCgkgIGluY3JlYXNlIHRoZSBtYXggYnVmZmVyIGxpbWl0IG9uY2UgZm9yIGVhY2ggY2FsbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDU1NwoKMjAxMi0xMi0yMCAxMTo1OTo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogaW1wbGVtZW50IGJ1ZmZlcmluZyBxdWVyeSBmb3IgYWxsIG1vZGVzCgkgIEFsc28gaW1wbGVtZW50IHRoZSBidWZmZXJpbmcgcXVlcnkgZm9yIFNUUkVBTSBtb2RlLgoKMjAxMi0xMi0yMCAxMTozMDoyNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVmYWN0b3IgYnVmZmVyaW5nIHBlcmNlbnQgYW5kIHN0YXRzCgkgIE1ha2UgbWV0aG9kcyB0byBnZXQgdGhlIGN1cnJlbnQgYnVmZmVyaW5nIHBlcmNlbnQgYW5kIHRoZSBzdGF0cy4gV2Ugd2lsbCB1c2UKCSAgdGhpcyBpbiB0aGUgcXVlcnkgbGF0ZXIuCgoyMDEyLTEyLTEzIDEzOjQ3OjI5ICswMTAwICBBcm5hdWQgVnJhYyA8YXZyYWNAZnJlZWJveC5mcj4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IGludmFsaWQgb3V0cHV0IHRpbWVzdGFtcHMgaW4gc29tZSBjYXNlcwoKMjAxMi0xMi0xNCAxNToyMjoyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgTkVXU0VHTUVOVCAtPiBTRUdNRU5UCgoyMDEyLTEyLTE0IDE0OjAzOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5wcmVyZXF1aXNpdGVzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuc2lnbmFsczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogdXBkYXRlIHBsdWdpbiBkb2NzCgkgIFVwZGF0ZSBhcmdzL3NpZ25hbHMgZXRjLgoKMjAxMi0xMi0xNCAxMTowOTozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBhZGQgZGVidWcgY2F0ZWdvcnkKCSAgQWRkaW5nIGEgZGVidWcgY2F0ZWdvcnkgaXMgbmljZXIgdGhhbiBsb2dnaW5nIHRvIHRoZSBkZWZhdWx0IGNhdGVnb3J5CgoyMDEyLTEyLTE0IDExOjA4OjU3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogaW1wcm92ZSBkZWJ1ZwoKMjAxMi0xMi0xMyAxNDo0ODozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBjYWxsIF9zdG9wIHdoZW4gc3RhcnQgZmFpbGVkCgkgIFdoZW4gd2UgZmFpbGVkIHRvIGNvbXBsZXRlIHRoZSBzdGFydCwgY2FsbCBzdG9wIGFnYWluLiBUaGlzIG1ha2VzIHN1cmUgdGhhdCBhbGwKCSAgc3VjY2Vzc2Z1bGwgY2FsbHMgdG8gX3N0YXJ0IGFyZSBwYWlyZWQgd2l0aCBhIF9zdG9wLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3ODQ1CgoyMDEyLTEyLTEyIDE2OjQ0OjE0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvYmFzZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2UuaDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2NoZWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvY29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvbmV0Lmg6CgkgIGxpYnM6IFVzZSBmb28vZm9vLmggYXMgc2luZ2xlLWluY2x1ZGUgaGVhZGVyIGNvbnNpc3RlbnRseSBldmVyeXdoZXJlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg3ODUKCjIwMTItMTItMTEgMTY6NDY6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+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+CgoJKiBjb21tb246CgkgIGNvbW1vbjogdXBkYXRlIGZvciBBR19HU1RfUExVR0lOX0RPQ1MgcHl0aG9uIGNoZWNrcwoKMjAxMi0xMS0wNiAxODoyOToyOCArMDEwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIERvY3VtZW50IEdTVF9ERUJVR19GSUxFCgoyMDEyLTExLTA2IDE3OjAzOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IGZpeCBhbGlnbm1lbnQgb2YgcmFuaywgZXRjLgoKMjAxMi0xMS0wNiAxNjo1ODowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgZWxlbWVudHM6IGZpeCBsZWFkaW5nIHNwYWNlIGluIHBsdWdpbiBkZXNjcmlwdGlvbiBzdHJpbmcKCjIwMTItMTEtMDMgMjA6NDQ6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDT1BZSU5HOgoJKiBkb2NzL3JhbmRvbS9MSUNFTlNFOgoJKiBnc3QvZ2V0dGV4dC5oOgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJKiBnc3QvZ2xpYi1jb21wYXQuYzoKCSogZ3N0L2dsaWItY29tcGF0Lmg6CgkqIGdzdC9nc3QtaTE4bi1hcHAuaDoKCSogZ3N0L2dzdC1pMThuLWxpYi5oOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGFsbG9jYXRvci5oOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RlbGVtZW50bWV0YWRhdGEuaDoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RlcnJvci5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGZvcm1hdC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSogZ3N0L2dzdG1hY3Jvcy5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmg6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3Rwb2xsLmg6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHByZXNldC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuaDoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuaDoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkqIGdzdC9tYXRoLWNvbXBhdC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdG1lbWluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19pbXBsLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXBsdWdpbi1zY2FubmVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXQuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSogc2NyaXB0cy9jcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6CgkqIHNjcmlwdHMvZml2ZS1idWdzLWEtZGF5LnBsOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHMuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0Y2xvY2tzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvaW5pdC5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc2ZpbHRlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmRleC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByZXNldC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRld3JpdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bGlic2NwcC5jYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9xdWV1ZWFycmF5LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1kaXNhYmxlZC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9xdWV1ZS1lcnJvci5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2Vlay5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc3RyZXNzLmM6CgkqIHRlc3RzL2NoZWNrL3Rvb2xzL2dzdGluc3BlY3QuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LW1lbW9yeS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktbWVtb3J5Lmg6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS12aWRtZW0uYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LXZpZG1lbS5oOgoJKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvdGVzdHJ0cG9vbC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3Rlc3RydHBvb2wuaDoKCSogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzoKCSogdGVzdHMvbWlzYy9uZXR3b3JrLWNsb2NrLXV0aWxzLnNjbToKCSogdGVzdHMvbWlzYy9uZXR3b3JrLWNsb2NrLnNjbToKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSogdG9vbHMvdG9vbHMuaDoKCSogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBGaXggRlNGIGFkZHJlc3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NzUyMAoKMjAxMi0xMC0zMSAxOTozMzozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IGFkZCAiZmx1c2gtb24tZW9zIiBwcm9wZXJ0eQoJICBJbiBmbHVzaC1vbi1lb3M9dHJ1ZSBtb2RlIGFueSBkYXRhIHJlbWFpbmluZyBpbiB0aGUgcXVldWUgaXMKCSAgZGlzY2FyZGVkIHdoZW4gYW4gRU9TIGV2ZW50IGlzIHJlY2VpdmVkLCBhbmQgdGhlIEVPUyBwYXNzZWQKCSAgZG93bnN0cmVhbSBhcyBzb29uIGFzIHBvc3NpYmxlIChpbnN0ZWFkIG9mIHdhaXRpbmcgZm9yIGFsbAoJICBidWZmZXJzIGluIHRoZSBxdWV1ZSB0byBnZXQgcHJvY2Vzc2VkIGJ5IGRvd25zdHJlYW0gZmlyc3QpLgoJICBNYXkgb3IgbWF5IG5vdCBiZSB1c2VmdWwgaW4gY2FwdHVyZS9lbmNvZGluZyBzY2VuYXJpb3MuCgoyMDEyLTEwLTMxIDE4OjMyOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBjb21tb246IHVwZGF0ZSBmb3IgcHl0aG9uIGRldGVjdGlvbgoJICBGaXhlcyBkb2NzIGJ1aWxkLgoKMjAxMi0xMC0zMSAxNzozNzozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGxldCBBR19HU1RfUExVR0lOX0RPQ1MgY2hlY2sgZm9yIHB5dGhvbgoJICBBbmQgdXBkYXRlIGNvbW1vbiBmb3IgbW92ZSBmcm9tIEFTX1BBVEhfUFlUSE9OIHRvIEFNX1BBVEhfUFlUSE9OLAoJICB3aGljaCBhcyBhIHNpZGUtZWZmZWN0IHNob3VsZCBwaWNrIHVwIG5ld2VyIHB5dGhvbiB2ZXJzaW9ucyBhcyB3ZWxsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYzOTAzCgoyMDEyLTEwLTMwIDEwOjA0OjQ0ICsxMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBDbGFyaWZ5IGRvY3MgYWJvdXQgdGhlIGJ1ZmZlciBoYW5kbGVyIGNhbGxiYWNrLgoJICBDbGFyaWZ5IHRoYXQgdGhlIGNhbGxiYWNrIG93bnMgYSByZWYgb24gYSBwYXNzZWQgYnVmZmVyLgoKMjAxMi0xMC0zMCAxMDowNDoxNCArMTEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEFkZCBFT1Mgc3RhdHVzIHRvIGRlYnVnIG91dHB1dCBhYm91dCBmaWxsZWQvdW5maWxsZWQKCjIwMTItMTAtMjIgMDA6MzE6MDkgKzExMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgY2hlY2s6IEFkZCBhIHNpbXBsZSB0ZXN0IGZvciB0aGUgQ29sbGVjdFBhZHMgYnVmZmVyIGNvbGxlY3QgY2FsbGJhY2sKCjIwMTItMTAtMjkgMTM6MjY6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgZy1pOiBmaXggImNhbid0IHJlc29sdmUgbGlicmFyaWVzIHRvIHNoYXJlZCBsaWJyYXJpZXM6IGdzdGNoZWNrLTEuMCIgYnVpbGQgZXJyb3IKCSAgUmV2ZXJ0IC0tbGlicmFyeT1saWJmb28tMS4wLmxhIC0+IC0tbGlicmFyeT1mb28tMS4wIGNoYW5nZSBtYWRlCgkgIGluIHByZXZpb3VzIGNvbW1pdC4gVHVybnMgb3V0IHRoYXQgd2FzIHdyb25nLCBkZXNwaXRlIHdoYXQgdGhlCgkgIG1hbiBwYWdlIHNheXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDM3MTAKCjIwMTItMTAtMjkgMTE6MzA6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiBkb3duZ3JhZGUgJ2NyZWF0aW5nIHJhbmRvbSBzdHJlYW0taWQnIGRlYnVnIGxvZyBtZXNzYWdlCgkgIE5vIG5lZWQgZm9yIGl0IHRvIGJlIGEgd2FybmluZy4KCjIwMTItMDYtMTMgMTM6MDI6NDggKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcmV2ZW50IGV4Y2Vzc2l2ZWx5IGhpZ2ggbWVtb3J5IHVzYWdlIHdpdGggbG9uZyBzdHJlYW1zCgkgIExhcmdlIHN0cmVhbXMgd291bGQgaW5kZXggb25lIGZyYW1lIGV2ZXJ5IHNlY29uZCwgd2hpY2ggY2FuIGdldCBxdWl0ZQoJICBsYXJnZSB3aXRoIG11bHRpLWhvdXIgc3RyZWFtcywgc28gYWRkIGFuIGFkZGl0aW9uYWwgYnl0ZS1iYXNlZAoJICBtaW5pbXVtIGRpc3RhbmNlIGFzIHdlbGwsIHdoaWNoIHdpbGwga2ljayBpbiBmb3IgbG9uZyBzdHJlYW1zCgkgIGFuZCBtYWtlIHN1cmUgd2UgbmV2ZXIgaGF2ZSBtb3JlIHRoYW4gYSBjb3VwbGUgb2YgdGhvdXNhbmQgaW5kZXgKCSAgZW50cmllcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NjA1MwoKMjAxMi0xMC0yOCAxNzoxNzo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGxpYnM6IGctaTogYXZvaWQgbXVsdGlwbGUgbGlicmFyaWVzIGluIHRoZSBzaGFyZWQtbGlicmFyeSB0YWcKCSAgVXNpbmcgbXVsdGlwbGUgbGlicmFyaWVzIGNhdXNlcyBwcm9ibGVtcyBmb3IgdGhlIEMjIGJpbmRpbmdzIGFuZAoJICB3aWxsIGZvciBzaW1pbGlhciBsYW5ndWFnZXMgc3VjaCBhcyBKYXZhIHdoZW4gdGhlcmUgYXJlIGJpbmRpbmdzCgkgIGZvciB0aGVtLgoJICBBbHNvIGNoYW5nZSAtLWxpYnJhcnk9bGliZ3N0Zm9vLVgubGEgdG8gLS1saWJyYXJ5PWdzdGZvby1YIGFzCgkgIHRoZSBtYW4gcGFnZSBzdWdnZXN0cyBpdCBzaG91bGQgYmUgZG9uZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTMxNQoKMjAxMi0xMC0yOCAxNTo1MzoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwbHVnaW5mZWF0dXJlOiBhZGQgZ3N0X3BsdWdpbl9mZWF0dXJlX2dldF9wbHVnaW5fbmFtZSgpCgkgIEFQSTogZ3N0X3BsdWdpbl9mZWF0dXJlX2dldF9wbHVnaW5fbmFtZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01NzE4MzIKCjIwMTItMTAtMjcgMTQ6NDA6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBhbGxvdyBzZXR0aW5nIG9mIEdTVF9ERUJVRyBsZXZlbHMgYnkgbmFtZQoJICBlLmcuIEdTVF9ERUJVRz0qOklORk8sKnNyYzpMT0cKCjIwMTItMDYtMjkgMTI6Mzg6NTIgLTA0MDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBtYWtlIHVzIG9mIHRoZSBuZXcgZ3N0X2RlYnVnX3NldF90aHJlc2hvbGRfZnJvbV9zdHJpbmcgZnVuY3Rpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTE1MgoKMjAxMi0wNi0yOSAxMjowNTozNiAtMDQwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGluZm86IGFkZCBhIGZ1bmN0aW9uIHRvIHNldCBkZWJ1ZyB0aHJlc2hvbGQgZnJvbSBhIEdTVF9ERUJVRy1zdHlsZSBzdHJpbmcKCSAgVXNlIHRoZSBzYW1lIGZvcm1hdCBhcyB3aXRoIHRoZSBHU1RfREVCVUcgZW52aXJvbm1lbnQgdmFyaWFibGUuCgkgIEFQSTogZ3N0X2RlYnVnX3NldF90aHJlc2hvbGRfZnJvbV9zdHJpbmcoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MTUyCgoyMDEyLTEwLTI1IDE1OjI3OjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvcXVldWVhcnJheS5jOgoJICBxdWV1ZWFycmF5OiBGaXggdW5pdCB0ZXN0CgoyMDEyLTEwLTIyIDEwOjEzOjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZWFycmF5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWVhcnJheS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRhdGFxdWV1ZS9xdWV1ZWFycmF5OiBNYWtlIHB1YmxpYyBBUEkgYWdhaW4KCSAgVGhlc2UgYXJlIGFjdHVhbGx5IHVzZWQgb3V0c2lkZSBvZiBjb3JlZWxlbWVudHMgbm93YWRheXMuCgkgIEFsc28gaGlkZSBsb3RzIG9mIGludGVybmFscyBhbmQgYWRkIHBhZGRpbmcgYW5kIGRvY3VtZW50YXRpb24uCgoyMDEyLTEwLTI1IDEyOjEwOjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBCYWNrIHRvIGZlYXR1cmUgZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMC4yID09PQoKMjAxMi0xMC0yNSAwMDowNDo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjAuMgoKMjAxMi0xMC0yNCAxNjoxMzozNCArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIGV4YW1wbGVzOiBsaW5rIHRlc3RydHBvb2wgdG8gcHRocmVhZHMKCSAgRml4ZXMgIzY4Njc4NwoKMjAxMi0xMC0yNCAxMTo0NjowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IEFsbG93IEdTVF9DTE9DS19USU1FX05PTkUgYXMgZHVyYXRpb24gZm9yIEdBUCBldmVudHMKCjIwMTItMTAtMjQgMTE6MTY6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogdXNlIG5ldyBHQ29uZCBmb3IgYXN5bmMgc3RhdGUgY2hhbmdlCgkgIFVzZSBhIG5ldyBHQ29uZCwgcHJvdGVjdGVkIHdpdGggdGhlIG9iamVjdCBsb2NrLCB0byBzaWduYWwgY29tcGxldGlvbgoJICBvZiB0aGUgYXN5bmMgc3RhdGUgY2hhbmdlLiBXZSBjYW4ndCByZXVzZSB0aGUgbGl2ZSBsb2NrIGJlY2F1c2UgdGhhdAoJICBvbmUgY2FuIGJlIGxvY2tlZCB3aGVuIHRoZSBjcmVhdGUgZnVuY3Rpb24gYmxvY2tzLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg2NzIzCgoyMDEyLTEwLTIyIDIwOjI1OjQzICswMjAwICBNaWd1ZWwgQW5nZWwgQ2FicmVyYSBNb3lhIDxtYWRtYWMyNTAxQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSAgYWxsb2NhdG9yOiBmaXggbWVtb3J5IGxlYWsgaW4gX2ZhbGxiYWNrX21lbV9jb3B5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODY2NTgKCjIwMTItMTAtMjIgMjA6MzM6MDYgKzAyMDAgIE1pZ3VlbCBBbmdlbCBDYWJyZXJhIE1veWEgPG1hZG1hYzI1MDFAZ21haWwuY29tPgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IHJlbW92ZSB2YXJpYWJsZSBub3QgcmVhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg2NjU5CgoyMDEyLTEwLTIyIDE1OjA0OjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svTWFrZWZpbGUuYW06CgkqIG00L2F4X3B0aHJlYWQubTQ6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvTWFrZWZpbGUuYW06CgkgIGNvbmZpZ3VyZTogUHJvcGVybHkgY2hlY2sgZm9yIHB0aHJlYWQKCSAgVGhlIG9sZCBjaGVjayBmYWlsZWQgb24gQW5kcm9pZCBmb3IgZXhhbXBsZS4KCjIwMTItMTAtMjIgMTA6MjU6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogRG9uJ3QgdXNlIEdTVF9ERUJVRygpIGluIGdzdF9kZWJ1Z19hZGRfbG9nX2Z1bmN0aW9uKCkgYW5kIHJlbGF0ZWQgZnVuY3Rpb25zIHVuY29uZGl0aW9uYWxseQoJICBJZiBHU3RyZWFtZXIgd2FzIG5vdCBpbml0aWFsaXplZCB5ZXQgdGhpcyB3aWxsIGNhdXNlIGdfd2FybmluZ3MoKS4KCjIwMTItMTAtMjAgMTk6NDQ6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIGNvbGxlY3RwYWRzOiBmaXggZy1pIGFubm90YXRpb24gZm9yIEdzdENvbGxlY3RQYWRzQnVmZmVyRnVuY3Rpb24KCSAgV2UgcGFzcyBvd25lcnNoaXAgb2YgdGhlIGJ1ZmZlciB0byB0aGUgZnVuY3Rpb24uCgoyMDEyLTEwLTIwIDEyOjU0OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkgIGdfdHlwZV9pbml0KCkgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkIGFuZCBkZXByZWNhdGVkIGluIGdsaWIgPj0gMi4zNS4wCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODY0NTYKCjIwMTItMTAtMTkgMTM6MzY6MzMgLTA3MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEByZGlvLmNvbT4KCgkqIGdzdC9nc3RzYW1wbGUuYzoKCSAgR3N0U2FtcGxlOiBmaXggdHlwbyBpbiBHLUkgYW5ub3RhdGlvbnMsIGFsbG93cyBjcmVhdGluZyBHc3RTYW1wbGVzIGZyb20gYmluZGluZ3MuCgoyMDEyLTEwLTE4IDE1OjMxOjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IEZpeCBjb21waWxlciB3YXJuaW5nIGFib3V0IGNvbnN0bmVzcwoJICBwYXNzaW5nIGFyZ3VtZW50IDEgb2YgJ2dfbXV0ZXhfbG9jaycgZGlzY2FyZHMgJ2NvbnN0JyBxdWFsaWZpZXIgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlCgkgIHBhc3NpbmcgYXJndW1lbnQgMSBvZiAnZ19tdXRleF91bmxvY2snIGRpc2NhcmRzICdjb25zdCcgcXVhbGlmaWVyIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZQoKMjAxMi0xMC0xNyAxNjo0OToxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBiaW4sIHBpcGVsaW5lOiB1c2UgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X3N0YXRpY19tZXRhZGF0YSgpCgkgIFNvIHRoZSBzdHJpbmdzIGFyZW4ndCBjb3BpZWQuCgoyMDEyLTEwLTE2IDEyOjMxOjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IEFQSTogQWRkIEdzdEVsZW1lbnQ6OnBvc3RfbWVzc2FnZSgpIHZmdW5jCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGVsZW1lbnQuaAoKMjAxMi0xMC0xNiAxMTo1NDo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWV2ZW50cy54bWw6CgkgIHB3ZzogbGluayB0byBjYXBzIGFuZCBxb3MgY2hhcHRlcnMKCjIwMTItMTAtMTYgMTE6MjA6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1xdWVyeWZuLnhtbDoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgcHdnOiBhZGQgc2VjdGlvbiBhYm91dCBxdWVyeSBmdW5jdGlvbgoKMjAxMi0xMC0xNiAxMToxMjozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWV2ZW50Zm4ueG1sOgoJICBwd2c6IGZpeCBldmVudCBmdW5jdGlvbgoKMjAxMi0xMC0xNSAxOTo1NjozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgY29sbGVjdHBhZHM6IG1pbm9yIGRvY3MgZml4ZXMKCjIwMTItMTAtMTUgMTk6NTU6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogZml4IGJ1ZmZlciBsZWFrIGluIGNsaXBfdGltZQoKMjAxMi0xMC0xNSAxODo0NDo1MiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBjYWxsIGNsaXAgZnVuY3Rpb24gd2l0aCB1c2VyIGRhdGEKCjIwMTItMTAtMTUgMTQ6MDY6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBwd2c6IHJlb3JkZXIgc29tZSBjaGFwdGVycwoJICBSZW9yZGVyIHNvbWUgY2hhcHRlciBzbyB0aGF0IHRoZXkgbWF0Y2ggdGhlIHN0ZXBzIGRvbmUgaW4gdGhlCgkgIGVsZW1lbnQuCgoyMDEyLTEwLTE1IDEzOjU5OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBwd2c6IHNtYWxsIHR3ZWFrcyB0byBuZWdvdGlhdGlvbgoKMjAxMi0xMC0xNSAxMzo0NDo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgcHdnOiBpbXByb3ZlIG5lZ290aWF0aW9uIGRvY3VtZW50YXRpb24gc29tZSBtb3JlCgoyMDEyLTEwLTE1IDEyOjEwOjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgcHdnOiB1cGRhdGUgbmVnb3RpYXRpb24gcGFydAoKMjAxMi0xMC0xNSAxMjoxMDoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSAgZG9jczogdXBkYXRlIHN5bmNocm9uaXphdGlvbiBkb2NzCgoyMDEyLTEwLTEyIDE2OjU4OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBwd2c6IHdvcmsgb24gcmV3cml0aW5nIGNhcHMgbmVnb3RpYXRpb24gZG9jcwoKMjAxMi0xMC0xMiAxNjowOToyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBkZXNpZ246IHJlbmFtZSBwYXNzdGhyb3VnaCBuZWdvdGlhdGlvbgoJICBSZW5hbWUgcGFzc3Rocm91Z2ggbmVnb3RpYXRpb24gdG8gdHJhbnNmb3JtIG5lZ290aWF0aW9uIHRvIGF2b2lkCgkgIGNvbmZ1c2lvbiB3aXRoIHBhc3N0aHJvdWdoIG9wZXJhdGlvbi4KCjIwMTItMTAtMTIgMTM6MTU6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgIG1hbnVhbDogbm8gbW9yZSBuZXctZGVjb2RlZC1wYWQKCjIwMTItMTAtMTIgMTM6MTM6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtY29tcGlsaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgbWFudWFsOiBtb3ZlIGVtYmVkZGluZyBlbGVtZW50cyB0byBzZXBhcmF0ZSBjaGFwdGVyCgoyMDEyLTEwLTEyIDEzOjAxOjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtcW9zLnhtbDoKCSAgcHdnOiBzbWFsbCBleGFtcGxlIGZvciB0aHJvdHRsZQoKMjAxMi0xMC0xMiAxMjo1NTo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXFvcy54bWw6CgkqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIHB3ZzogYWRkIGluZm8gYWJvdXQgUW9TCgoyMDEyLTEwLTEyIDEyOjU1OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDoKCSAgcHdnOiBhZGRzIHNvbWUgbW9yZSBsaW5rcwoKMjAxMi0xMC0xMiAxMjo1NTowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgcW9zOiBtZXNzYWdlcyBhcmUgcG9zdGVkLCBub3QgZHJvcHBlZAoKMjAxMi0xMC0xMiAxMDozNTo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2NvbW11bmljYXRpb24ucG5nOgoJKiBkb2NzL21hbnVhbC9kaWFncmFtcy1nZW5lcmFsLnN2ZzoKCSogZG9jcy9tYW51YWwvZGlhZ3JhbXMtcGlwZWxpbmVzLnN2ZzoKCSogZG9jcy9tYW51YWwvZ3N0cmVhbWVyLW92ZXJ2aWV3LnBuZzoKCSogZG9jcy9tYW51YWwvbWltZS13b3JsZC5wbmc6CgkqIGRvY3MvbWFudWFsL3RocmVhZC1idWZmZXJpbmcucG5nOgoJICBtYW51YWw6IHVwZGF0ZSBncmFwaGljcwoKMjAxMi0xMC0xMSAxNzoxMDoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWJ1ZmZlcmluZy54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogYWRkIGV4YW1wbGUgb2Ygbm8tcmVidWZmZXIgYnVmZmVyaW5nIHN0cmF0ZWd5CgoyMDEyLTEwLTExIDE3OjEwOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkqIGRvY3MvbWFudWFsL2ludHJvLWdzdHJlYW1lci54bWw6CgkgIG1hbnVhbDogc21hbGwgdHdlYWtzCgoyMDEyLTEwLTExIDE3OjA5OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBidWZmZXJpbmcgdGltZSBsZWZ0IGlzIGluIG1pbGxpc2Vjb25kcwoKMjAxMi0xMC0xMSAxNzowNzozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgbWFudWFsOiBhZGQgc29tZSB0ZXh0IGFib3V0IGJpbiBzdGF0ZSBjaGFuZ2Ugb3JkZXIKCjIwMTItMTAtMTAgMTY6NDM6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtcGxheWJhY2sueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogdGFsayBhYm91dCBwbGF5c2luawoJICBUYWxrIGFib3V0IHBsYXlzaW5rIGFuZCBnaXZlIGFuIGV4YW1wbGUgb2YgaXRzIHVzYWdlLgoKMjAxMi0xMC0xMCAxMzowODozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLXBsYXliYWNrLnhtbDoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IGFkZCBzb21ldGhpbmcgYWJvdXQgdXJpZGVjb2RlYmluCgoyMDEyLTEwLTEwIDExOjM1OjAxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGVuc3VyZSBhbGwgdGltZXN0YW1wcyBhcmUgaW4gc2FtZSB0aW1lIGRvbWFpbgoJICAuLi4gYnkgbm90IG9ubHkgcHJvY2Vzc2luZyBpbmNvbWluZyBidWZmZXJzIHRocm91Z2ggYSBjbGlwIGZ1bmN0aW9uLAoJICBidXQgYWxzbyBvdGhlciB0aW1lc3RhbXBzIHN1Y2ggYXMgdGhvc2UgY29taW5nIGZyb20gR0FQIGV2ZW50LgoKMjAxMi0xMC0xMCAxMDozNjozMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgZG9jczogYWRqdXN0IHNvbWUgcGFyYW1ldGVyIG1pc21hdGNoZXMKCjIwMTItMTAtMTAgMTE6MzQ6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvd25ncmFkZSBHU1RfV0FSTklORyB0byBHU1RfSU5GTwoJICBJdCdzIHVzdWFsbHkgbm90IGEgcHJvYmxlbSBpZiBhIHF1ZXJ5IGZhaWxzIGlmIHRoZXJlJ3Mgbm8gcGVlciwKCSAgZXNwZWNpYWxseSBhcyBpdCB3aWxsIGhhcHBlbiBkdXJpbmcgcGFkIGxpbmtpbmcgKGNhcHMgcXVlcnkpCgkgIHF1aXRlIG9mdGVuIGFuZCBzcGFtcyB0aGUgbG9ncy4KCjIwMTItMTAtMDkgMTc6MDY6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IHJlbW92ZSBvdXRkYXRlZCBhdXRvcGx1Z2dpbmcgc2VjdGlvbgoJICBSZW1vdmUgYXV0b3BsdWdnaW5nIGNoYXB0ZXIgYW5kIHBvaW50IHRvIGRlY29kZWJpbi9wbGF5YmluIGV4YW1wbGVzLgoKMjAxMi0xMC0wOSAxNjoxMjowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXRocmVhZHMueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IFRhbGsgYWJvdXQgdGhyZWFkaW5nCgkgIFJld29yayB0aGUgdGhyZWFkaW5nIGNoYXB0ZXIuCgkgIFRhbGsgYWJvdXQgc3RyZWFtLXN0YXR1cyBhbmQgZ2l2ZSBzb21lIGV4YW1wbGVzIG9uIGhvdyB0byBjaGFuZ2UKCSAgdGhlIHRocmVhZCBwcmlvcml0aWVzLgoKMjAxMi0xMC0wOSAxNTo1NzoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtLXN0YXR1cy50eHQ6CgkgIGRlc2lnbjogaW1wcm92ZSBzdHJlYW0tc3RhdHVzIGRvY3VtZW50CgoyMDEyLTEwLTA5IDE1OjMxOjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHJldHJpZXZlIHRoZSByZXN1bHQgZnJvbSBzdGFydF9jb21wbGV0ZQoJICBnc3RfYmFzZV9zcmNfc3RhcnRfY29tcGxldGUoKSBjYW4gZmFpbCB3aGVuIHRoZSB0aHJlYWQgY291bGQgbm90IGJlCgkgIHN0YXJ0ZWQsIGZvciBleGFtcGxlLiBNYWtlIHN1cmUgaXQgY2F1c2VzIHRoZSBzdGF0ZSBjaGFuZ2UgdG8gZmFpbCBieQoJICByZXRyaWV2aW5nIHRoZSByZXN1bHQgZnJvbSBfc3RhcnRfY29tcGxldGUoKS4KCjIwMTItMTAtMDkgMTU6MzE6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaW1wcm92ZSBkZWJ1ZwoKMjAxMi0xMC0wOSAxMDoyNDozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBzbWFsbCBkb2NzIGZpeGVzIGFuZCByZW1vdmUgYSAwLjExIGZpeG1lCgoyMDEyLTEwLTA4IDE2OjQyOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1idWZmZXJpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICBtYW51YWw6IHRhbGsgYSBiaXQgYWJvdXQgYnVmZmVyaW5nCgoyMDEyLTEwLTA4IDEzOjIyOjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtY2xvY2tzLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJICBkb2NzOiBpbXByb3ZlIGNsb2NrIGNoYXB0ZXIKCjIwMTItMTAtMDggMTA6Mzk6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IGFkZCBleGFtcGxlIGZvciBlZmZlY3Qgc3dpdGNoaW5nCgoyMDEyLTEwLTA4IDA5OjExOjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1wcmVyb2xsLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zcGFyc2VzdHJlYW1zLnR4dDoKCSAgZG9jczogc21hbGwgdXBkYXRlcwoKMjAxMi0xMC0wNyAxNjo0ODoyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudCAoYnVnLWZpeGluZykKCj09PSByZWxlYXNlIDEuMC4xID09PQoKMjAxMi0xMC0wNyAxMzoxMDozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMC4xCgoyMDEyLTEwLTA3IDAwOjE1OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2kzODYuaDoKCSAgdGVzdHM6IHVwZGF0ZSBzdHJ1Y3RfaTM4Ni5oIGZvciBBQkkgY2hlY2tzCgkgIEZpeGVzIG1ha2UgY2hlY2sgb24gMzItYml0IHg4Ni4KCjIwMTItMTAtMDYgMTc6MjY6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzMyLmg6CgkgIHRlc3RzOiB1cGRhdGUgc3RydWN0X3BwYzMyLmggZm9yIEFCSSBjaGVja3MKCSAgRml4ZXMgbWFrZSBjaGVjayBvbiAzMi1iaXQgUG93ZXJQQy4KCjIwMTItMTAtMDYgMTQ6NTU6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDZjMGI1MmMgdG8gNmJiNjk1MQoKMjAxMi0xMC0wNiAxMjowODozNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC8uZ2l0aWdub3JlOgoJICBleGFtcGxlczogLmdpdGlnbm9yZSBtb3JlIGJpbmFyaWVzIGZyb20gdGhlIG1hbnVhbAoKMjAxMi0xMC0wNSAxNjowNDo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9iZXMudHh0OgoJICBkb2NzOiByZW1vdmUgb2Jzb2xldGUgcGFydC1ibG9jayBkb2N1bWVudAoJICBNZXJnZSB0aGUgcGFydC1ibG9jayBkb2N1bWVudCBpbnRvIHBhcnQtcHJvYmVzCgoyMDEyLTEwLTA1IDA5OjQyOjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlc2VuZCBkcm9wcGVkIGV2ZW50cwoJICBJZiB3ZSB0cnkgdG8gcHVzaCBzdGlja3kgZXZlbnRzIGJ1dCBhIHByb2JlIGRyb3BwZWQgdGhlbSwgd2UgZG9uJ3QgbWFyawoJICB0aGUgZXZlbnQgYXMgcmVjZWl2ZWQgYW5kIG1hcmsgdGhlIHBhZCBhcyBQRU5ESU5HX0VWRU5UUy4gVGhpcyBlbnN1cmVzCgkgIHRoYXQgd2UgcmVzZW5kIHRoZSBldmVudCB0aGUgbmV4dCB0aW1lLiBGb3IgdGhpcyB3ZSBuZWVkIHRvIGxldCB0aGUKCSAgY3VzdG9tIGZsb3cgcmV0dXJuIGZyb20gdGhlIHByb2JlIHRyaWNrbGUgdXAgdG8KCSAgZ3N0X3BhZF9wdXNoX2V2ZW50X3VuY2hlY2tlZCgpIHNvIHRoYXQgd2UgY2FuIGRpZmZlcmVudGlhdGUgYmV0d2VlbgoJICBPSyBhbmQgRFJPUFBFRCBwcm9iZSByZXR1cm5zLgoKMjAxMi0xMC0wNSAwNzoxNDoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBzdG9yZSBzdGlja3kgZXZlbnRzIG9uIGZsdXNoaW5nL0VPUyBwYWRzCgkgIERvbid0IHN0b3JlIHN0aWNreSBldmVudHMgb24gZmx1c2hpbmcgb3IgRU9TIHBhZHMuIFRoaXMgd2FzIGRvbmUKCSAgY29ycmVjdGx5IGZvciBzb3VyY2UgcGFkcyBidXQgbm90IGZvciBzaW5rIHBhZHMuCgoyMDEyLTEwLTA0IDExOjI0OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRvY3M6IGFkZCBTaW5jZSBtYXJrZXJzIGZvciBuZXcgQVBJIGFuZCBhZGQgaXQgdG8gZG9jcyBhbmQgLmRlZiBmaWxlCgoyMDEyLTEwLTA0IDExOjUwOjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiBhZGQgZHluYW1pYyBjYXBzZmlsdGVyIGV4YW1wbGUKCjIwMTItMTAtMDQgMTE6MTg6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogZG9uJ3QgcHJlZmVyIHBhc3N0aHJvdWdoCgkgIEJhc2V0cmFuc2Zvcm0gc2hvdWxkIG5vdCB0cnkgdG8gbmVnb3RpYXRlIGluIHBhc3N0aHJvdWdoIG1vZGUgYnV0CgkgIHJlc3BlY3QgdGhlIG9yZGVyIG9mIHdoYXQgd2UgcmV0dXJuIGluIHRoZSB0cmFuc2Zvcm1fY2FwcyBtZXRob2QuCgkgIEEgdHlwaWNhbCBjYXNlIGlzIHRoYXQgeW91IHNwZWNpZnkgc29tZSBzcGVjaWZpYyBuZXcgY2FwcyBpbiB0aGUKCSAgY2FwcyBwcm9wZXJ0eSBidXQgYWxzbyBhbGxvdyB0aGUgY3VycmVudCBjYXBzIHRvIHBhc3MuCgoyMDEyLTEwLTA0IDExOjE1OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnM6IGFkZCBhbiBvcHRpb24gdG8gcHJlZmVyIHBhc3N0aHJvdWdoCgkgIEJhc2V0cmFuc2Zvcm0gYXR0ZW1wdHMgdG8gZG8gcGFzc3Rocm91Z2ggbW9kZSByZWdhcmRsZXNzIG9mIHRoZSBvcmRlciBvZgoJICB0aGUgdHJhbnNmb3JtX2NhcHMgbWV0aG9kLiBBZGQgYSBtZXRob2QgdG8gZGlzYWJsZSB0aGlzLgoJICBUaGlzIGlzIG5lZWRlZCBmb3IgZWxlbWVudHMgbGlrZSBjYXBzZmlsdGVyIHRoYXQgd2FudCB0byB0cmFuc2Zvcm0gY2FwcwoJICBiYXNlZCBvbiB0aGUgb3JkZXIgb2YgdGhlIGNhcHMgcHJvcGVydHkuCgoyMDEyLTEwLTA0IDEwOjAxOjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuczogaW1wcm92ZSBzb21lIGNvbW1lbnRzCgoyMDEyLTEwLTAzIDE3OjE3OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogdGFsayBzb21lIG1vcmUgYWJvdXQgZHluYW1pYyBwaXBlbGluZXMKCjIwMTItMTAtMDMgMTM6NDk6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJICBtZXRhOiBkb24ndCBwdXQgZXNzZW50aWFsIGxvZ2ljIGluIGdfcmV0dXJuX3ZhbF8qCgoyMDEyLTEwLTAzIDEzOjQ1OjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICBtZXRhOiBkbyBtZXRhZGF0YSByZWdpc3RyYXRpb24gdGhyZWFkc2FmZQoJICBXZSBuZWVkIHRvIHVzZSBnX29uY2UgdG8gcmVnaXN0ZXIgdGhlIG1ldGFkYXRhIGltcGxlbWVudGF0aW9ucwoJICBvbmx5IG9uY2UuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg1MzMyCgoyMDEyLTEwLTAzIDEzOjM1OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YTogaGFuZGxlIG11bHRpcGxlIGltcGxlbWVudGF0aW9uIHJlZ2lzdHJhdGlvbgoJICBGaXJzdCBjaGVjayB0aGF0IHdlIGNhbiBhY3R1YWxseSByZWdpc3RlciB0aGUgaW1wbGVtZW50YXRpb24gYmVmb3JlCgkgIG1ha2luZyBhIEdzdE1ldGFJbmZvLiBJZiB3ZSBjYW4ndCByZWdpc3RlciB3ZSB3b3VsZCBvdGhlcndpc2UgZW5kCgkgIHVwIHdpdGggYW4gdW5kZWZpbmVkIHR5cGUgYW5kIGFuIGludmFsaWQgR3N0TWV0YUluZm8uCgkgIEl0J3MgcG9zc2libGUgdGhhdCB0eXBlIHJlZ2lzdHJhdGlvbiBmYWlscyBiZWNhdXNlIGFub3RoZXIgbWV0YWRhdGEKCSAgd2l0aCB0aGUgc2FtZSBpbXBsZW1lbnRhdGlvbiBuYW1lIHdhcyBhbHJlYWR5IHJlZ2lzdGVyZWQuCgoyMDEyLTEwLTAzIDEzOjEyOjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogdXNlIENEQVRBIGZvciBjb2RlIGJsb2NrcwoJICB0aGVuIHdlIGRvbid0IGhhdmUgdG8gZXNjYXBlIHNwZWNpYWwgdG9rZW4gYW55bW9yZS4KCjIwMTItMTAtMDMgMTM6MDk6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IGFkZCBwYXJ0aWFsIHByZXJvbGwgZXhhbXBsZSB3aXRoIHByb2JlcwoKMjAxMi0xMC0wMyAxMDo1MzoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IGFkZCBtb3JlIHN0dWZmIGFib3V0IHByb2JlcwoKMjAxMi0xMC0wMiAxNzoyMzoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IHN0YXJ0IHRhbGtpbmcgYWJvdXQgZHluYW1pYyBwaXBlbGluZSBjaGFuZ2VzCgoyMDEyLTEwLTAyIDE2OjQ3OjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogbW92ZSBzZWN0aW9uIGFyb3VuZAoKMjAxMi0xMC0wMiAxNjo0NDoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIHB3ZzogYWRkIGFwcHNpbmsgZG9jcwoKMjAxMi0xMC0wMiAxNjoxNToxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIHB3ZzogcmV3aXRlIGRhdGEtYWNjZXNzIGNoYXB0ZXIKCSAgUmV3cml0ZSB0aGUgZGF0YS1hY2Nlc3MgY2hhcHRlciBzbyB0aGF0IHdlIHRhbGsgYWJvdXQgYXBwc3JjIGluc3RlYWQKCSAgb2YgdGhlIGZha2VzcmMgaGFja3MuCgoyMDEyLTEwLTAyIDEzOjIyOjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtbWV0YWRhdGEueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogcG8vUkVBRE1FOgoJKiB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weToKCSAgZG9jczogc29tZSAwLjEwIC0+IDEuMCBjaGFuZ2VzCgoyMDEyLTEwLTAyIDEzOjEyOjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkgIHB3ZzogYWRkIGFsbG9jYXRpb24gcXVlcnkgZXhhbXBsZQoKMjAxMi0xMC0wMiAxMjo0OToxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWFsbG9jYXRpb24ueG1sOgoJICBwd2c6IGFkZCBidWZmZXJwb29sIGRvY3MKCjIwMTItMTAtMDIgMTE6MzQ6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wcm9ncmFtcy54bWw6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWFsbG9jYXRpb24ueG1sOgoJICBwd2c6IGZsZXNoIG91dCBhbGxvY2F0aW9uIGRvY3MKCSAgQWRkIG1vcmUgZXhhbXBsZXMuCgkgIEFkZCBleGFtcGxlIGZvciBpbXBsZW1lbnRpbmcgbmV3IG1ldGFkYXRhLgoJICBBZGQgcHJvZ3JhbXMgdG8gdGhlIGRvY3MgKGFnYWluPyksIGl0IHNlZW1zIHRvIGNvbnRhaW4gdXNlZnVsIGluZm8uCgoyMDEyLTEwLTAxIDE2OjU5OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvdGl0bGVwYWdlLnhtbDoKCSAgcHdnOiBhZGQgbmV3IGF1dGhvcgoKMjAxMi0xMC0wMSAxNjo1NTo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWFsbG9jYXRpb24ueG1sOgoJICBwd2c6IGFkZCBhbGxvY2F0aW9uIGRvY3MKCjIwMTItMTAtMDEgMTY6NDY6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlci50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVycG9vbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBkZXNpZ24gZG9jcwoKMjAxMi0xMC0wMSAxMzoyODo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVycG9vbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIGRvY3M6IG1vcmUgZG9jcyBmaXhlcwoJICBGaXggYWxsb2NhdG9yIGRlc2lnbiBkb2MKCSAgQWRkIGJlZ2lubmluZyBvZiBhbGxvY2F0aW9uIGNoYXB0ZXIgaW4gdGhlIHB3ZwoKMjAxMi0xMC0wMSAxMTo0Nzo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1tYW5hZ2VyLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItbnRvb25lLnhtbDoKCSAgcHdnOiBmaW5hbCBjbGVhbnVwcyBmb3IgMS4wCgoyMDEyLTEwLTAxIDExOjI0OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtZXZlbnRzLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItYmFzZS54bWw6CgkgIHB3ZzogZml4IGV2ZW50cyBhbmQgYmFzZSBjbGFzc2VzCgoyMDEyLTEwLTAxIDEwOjQwOjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdGFnZ2luZy54bWw6CgkgIHB3ZzogZml4dXAgdGFnIGRvY3MKCjIwMTItMTAtMDEgMDk6NDg6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSAgcHdnOiBwYXRjaCB1cCB0aGUgc2VjdGlvbiBhYm91dCBpbnRlcmZhY2VzCgoyMDEyLTA5LTMwIDA0OjA1OjM2ICsxMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRml4IHNlYW1sZXNzIHNlZ21lbnQgZnVuY3Rpb24KCSAgVGhlIDNyZCBwYXJhbWV0ZXIgb2YgZ3N0X2Jhc2Vfc3JjX25ld19zZWFtbGVzc19zZWdtZW50IGluCgkgIDAuMTAgaXMgdGhlIHRpbWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBzdGFydCBvZiB0aGUgbmV3IHNlZ21lbnQsCgkgIG5vdCB0aGUgcG9zaXRpb24gaW4gdGhlIG5ldyBzZWdtZW50LiBGaXggdGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlciwKCSAgdGhlIGRvY3MsIGFuZCB0aGUgaW1wbGVtZW50YXRpb24gdG8gbWF0Y2ggdGhlIG5lZWRzIG9mIHRoZSBvbmx5CgkgIGV4dGFudCBjb25zdW1lcjogRFZEIHBsYXliYWNrLgoKMjAxMi0wOS0yOSAxNDozNTo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgdmFsdWU6IGF2b2lkIGR1cGxpY2F0ZXMgd2hlbiBpbnRlcnNlY3RpbmcgbGlzdHMKCSAgRml4ZXMgbmVnb3RpYXRpb24gdGFraW5nIGEgcmlkaWN1bG91cyBhbW91bnQgb2YKCSAgdGltZSAobXVsdGlwbGUgMTBzIG9mIHNlY29uZHMgb24gYSBjb3JlMikgd2hlbgoJICB0aGVyZSBhcmUgZHVwbGljYXRlIGVudHJpZXMgaW4gbGlzdHMuCgkgIENvdWxkIGhhdmUgYSBuZWdhdGl2ZSBwZXJmb3JtYW5jZSBpbXBhY3Qgb24gb3RoZXIKCSAgc2NlbmFyaW9zIGJlY2F1c2Ugd2Ugbm93IGhhdmUgdG8gaXRlcmF0ZSB0aGUKCSAgZGVzdCBsaXN0IHRvIGF2b2lkIGR1cGxpY2F0ZXMsIGJ1dCB3ZSBkb24ndAoJICBoYXZlIGEgbG90IG9mIGxpc3RzIGFueSBtb3JlIHRoZXNlIGRheXMsIGFuZAoJICB0aGV5IHRlbmQgdG8gYmUgc21hbGwgYW55d2F5LiBUaGUgbmVnYXRpdmVzCgkgIGFyZSBob3BlZnVsbHkgY291bnRlcmVkIGJ5IHRoZSBwb3NpdGl2ZSBlZmZlY3RzCgkgIG9mIHJlZHVjaW5nIHRoZSBsaXN0IGxlbmd0aCBlYXJseSBvbiBpbiB0aGUKCSAgcHJvY2Vzcy4gQW5kIGluIGFueSBjYXNlLCBpdCdzIHRoZSByaWdodCB0aGluZwoJICB0byBkby4KCSAgQmFzZWQgb24gcGF0Y2ggYnkgQW5kcmUgTW9yZWlyYSBNYWdhbGhhZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ5ODEKCjIwMTItMDktMjkgMDA6Mjc6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBwd2c6IG1pbm9yIHVwZGF0ZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxMTIxCgoyMDEyLTA5LTI4IDIzOjUzOjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZGVwZW5kZW5jaWVzLnhtbDoKCSAgZmFxOiBhZGQgbWlzc2luZyA8L3BhcmE+IHRhZwoKMjAxMi0wOS0yOCAxNToxNzoyNyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWluaW9iamVjdDogQWx3YXlzIHJlamVjdCBXUklURSBsb2NrcyBvbiBSRUFET05MWSBtaW5pb2JqZWN0cwoJICBWZXJpZnkgdGhhdCBtYXBwaW5nIGEgcmVhZC1vbmx5IG1lbW9yeSBhcyByZWFkIGRvZXNudCBtYWtlIGl0IHdyaXRhYmxlCgoyMDEyLTA5LTI4IDIwOjM4OjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9mYXEvZGVwZW5kZW5jaWVzLnhtbDoKCSogZG9jcy9yYW5kb20vYXV0b3Rvb2xzOgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgZG9jczogcHVyZ2UgYWxsIG1lbnRpb24gb2YgbGlib2lsLCB1cGRhdGUgRkFRCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzMyODUKCjIwMTItMDktMjggMTY6MDM6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1jbG9jay54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSAgcHdnOiB1cGRhdGUgZm9yIDEuMAoJICBSZXdyaXRlIGNsb2NrIHBhcnQuCgkgIHN0YXJ0IG9uIGludGVyZmFjZXMKCjIwMTItMDktMjggMTM6MjU6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1yZXF1ZXN0LnhtbDoKCSAgcHdnOiByZXdvcmsgZHluYW1pYyBwYWRzIGRvY3MKCjIwMTItMDktMjggMTM6MjU6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDoKCSAgcHdnOiByZXdvcmsgc2NoZWR1bGluZyBkb2NzCgoyMDEyLTA5LTI4IDEzOjI0OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctcHJvcHMueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1iYXNlLnhtbDoKCSAgcHdnOiByZW1vdmUgc29tZSBHU1RfQk9JTEVSUExBVEUKCjIwMTItMDktMjggMTE6MTg6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWFjdGl2YXRpb24udHh0OgoJICBkb2NzOiB1cGRhdGUgYWN0aXZhdGlvbiBkZXNpZ24gZG9jcwoKMjAxMi0wOS0yOCAxMDo0MTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGZpeCBhY3RpdmF0ZSBkb2NzCgoyMDEyLTA5LTI4IDEwOjA0OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBwd2c6IGZpeCBtb3JlIG5lZ290aWF0aW9uIGZvciAxLjAKCjIwMTItMDktMjcgMTY6NTk6MDQgKzAyMDAgIE9saXZpZXIgQmxpbiA8b2xpdmllci5ibGluQHNvZnRhdGhvbWUuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZG8gbm90IHJlZ2lzdGVyIHByaW50ZiBleHRlbnNpb24gZm9yICVwCgkgIFRoaXMgaGFwcGVuZWQgd2hlbiBnbGliIHdhcyBub3QgdXNpbmcgc3lzdGVtIHByaW50ZiwgYW5kIGNhdXNlZCB0aGUKCSAgaW50ZXJuYWwgZ3N0cmVhbWVyIHByaW50ZiBleHRlbnNpb25zIHRvIGJlIHVzZWQgZm9yIGFsbCAlcCBwcmludGZzLAoJICBjYXVzaW5nIGNyYXNoZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ5NzAKCjIwMTItMDktMjcgMTc6MjE6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIHB3ZzogZml4IHNvbWUgbmVnb3RpYXRpb24gdG8gMS4wCgoyMDEyLTA5LTI3IDE0OjQyOjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctcHJvcHMueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1zdGF0ZS54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOgoJICBwd2c6IG1vcmUgdXBkYXRlcyBmb3IgMS4wCgoyMDEyLTA5LTI3IDEzOjU3OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctY2hhaW5mbi54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLWV2ZW50Zm4ueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgcHdnOiBtb3JlIHVwZGF0ZXMgZm9yIDEuMAoKMjAxMi0wOS0yNyAxMTo1MzozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIHB3ZzogdXBkYXRlIGJvaWxlciB0byAxLjAKCjIwMTItMDktMjcgMTE6MDY6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGFsc28gcmVmIHRoZSBpbnRlcm5hbCBwYWQgZm9yIGFjdGl2YXRlIGZ1bmN0aW9ucwoJICBBbHNvIHRha2UgYSByZWYgdG8gdGhlIGludGVybmFsIHBhZCBpbiB0aGUgYWN0aXZhdGUgZnVuY3Rpb25zCgoyMDEyLTA5LTI0IDE4OjI2OjE2IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHByb3h5cGFkOiBIb2xkIGEgcmVmZXJlbmNlIHRvIHRoZSBpbnRlcm5hbCBwYWQgd2hpbGUgcHVzaGluZyB0aHJvdWdoIGl0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ4MDkKCjIwMTItMDktMjUgMTQ6NDQ6NTQgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgdGVzdHM6IFRlc3QgdGhlIGNhc2Ugd2hlcmUgZ2hvc3QgcGFkcyBhcmUgcmVtb3ZlZCB3aGlsZSBzdHJlYW1pbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDgwOQoKMjAxMi0wOS0yNyAwOTo0NDowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF94ODZfNjQuaDoKCSAgdGVzdHM6IGVuYWJsZSBsaWJyYXJ5IGFiaSBjaGVja3MKCjIwMTItMDktMjYgMjM6MzI6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBkb2NzOiBmaXggdXAgYmFzZXNyYy9iYXNlc2luayBkb2NzIGZvcm1hdHRpbmcKCjIwMTItMDktMjYgMTc6MDg6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICB0ZXN0czogYWRkIGFiaSBjaGVja3MKCSAgRW5hYmxlIGFiaSBjaGVja3MgYWdhaW4uCgkgIEZpeCBhYmkgc2l6ZXMgZm9yIHg4Nl82NCwgY29weSB0aGUgZmlsZSB0byBvdGhlciBhcmNocy4KCjIwMTItMDktMjYgMTY6MjY6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICB1cGRhdGUgZG9jcyBmb3IgMS4wIEFQSQoKMjAxMi0wOS0yNiAxNDoxNTowMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogdXNlIHByb3BlciAndHJhbnNmZXIgZmxvYXRpbmcnIGFubm90YXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDA5OQoKMjAxMi0wOS0yNiAxMzoxOToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIHR5cGVmaW5kOiBzZW5kIFNUUkVBTS1TVEFSVCBldmVudAoJICBTZW5kIGEgU1RSRUFNX1NUQVJUIGV2ZW50IHdoZW4gd2UgYXJlIG9wZXJhdGluZyBpbiBwdWxsIG1vZGUuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ0MjQKCjIwMTItMDktMjYgMTA6NTU6MjggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogbWFyayBHc3RTZWdtZW50RmxhZ3MgYXMgZmxhZ3MgcmF0aGVyIHRoYW4gZW51bQoJICAuLi4gd2hpY2ggcmVhbGx5IG1ha2VzIGEgZGlmZmVyZW5jZSB3aGVuIHRyeWluZyB0byBzZXJpYWxpemUKCSAgYSBmbGFncyB2YWx1ZSB3aGljaCBpcyBhIGNvbWJpbmF0aW9uIG9mIGZsYWdzLCB3aGljaCBpcyBoYXJkCgkgIHRvIGRvIGFzIGFuIGVudW0gdHlwZS4KCjIwMTItMDktMjYgMTA6NTQ6MDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogcmV0aW1lc3RhbXAgYm90aCBwdHMgYW5kIGR0cyB3aGVuIGRvaW5nIHNvCgoyMDEyLTA5LTI2IDE1OjAxOjQyICsxMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IE1vdmUgc29tZSBydW4gb2YgdGhlIG1pbGwgZGVidWcgc3RhdGVtZW50cyB0byBMT0cgbGV2ZWwKCjIwMTItMDktMjYgMTQ6MjM6NTIgKzEwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogT3V0cHV0IHRpbWVzdGFtcHMgYWZ0ZXIgYSBzZWVrLgoJICBSZWluaXRpYWxpc2UgdGhlIERUUyBhZnRlciBhIHNlZWsgc28gYXMgdG8gY29udGludWUKCSAgZ2VuZXJhdGluZyB0aW1lc3RhbXBzIHdoZW4gYmFzZXBhcnNlIGlzIG5vdCBkb3duc3RyZWFtCgkgIG9mIGEgZGVtdXhlci4KCSAgRml4ZXM6ICM2ODQ1MzgKCjIwMTItMDktMjUgMTc6MDY6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wcm9ncmFtcy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItbnRvb25lLnhtbDoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuMS5pbjoKCSAgZG9jczogdXBkYXRlcwoJICBNSU1FLXR5cGUgLT4gTWVkaWEgdHlwZQoJICBGaXggc29tZSBvbGQgZ3N0LWluc3BlY3Qgb3V0cHV0CgoyMDEyLTA5LTI1IDE2OjUzOjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tcHJlZmFjZS54bWw6CgkgIHB3ZzogdXBkYXRlIGZvciAxLjAgQVBJCgoyMDEyLTA5LTI1IDE1OjExOjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIHNlY3Rpb24gZm9yIG1ldGFkYXRhCgoyMDEyLTA5LTI1IDEzOjA5OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogRmFpbCBpZiBubyB2YWxpZCBlbGVtZW50IGZhY3RvcnkgbWV0YWRhdGEgaXMgc2V0CgoyMDEyLTA5LTI1IDEzOjA5OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBGYWlsIGlmIG5vIHZhbGlkIHBsdWdpbiBtZXRhZGF0YSBpcyBzZXQKCjIwMTItMDktMjUgMTU6MDY6NDMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogYWxzbyB0cmFjayBhbmQgc3RvcmUgc2VnbWVudCBpbmZvIGluIHNpbmdsZSBzZWdtZW50IG1vZGUKCjIwMTItMDktMjUgMTQ6NDA6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXRocmVhZHMueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZGF0YS54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiBmaXggdXAgdGhlIG1hbnVhbAoJICBNSU1FLXR5cGUgLT4gbWVkaWEgdHlwZXMKCSAgRml4IHVwIHRoZSBtYW51YWwgaW4gdmFyaW91cyBwbGFjZXMgd2l0aCB0aGUgMS4wIHdheSBvZiBkb2luZyB0aGluZ3MKCSAgc3VjaCBhcyBwcm9iZXMsIHN0YXRpYyBlbGVtZW50cywgc2NoZWR1bGluZywgLi4uCgkgIEFkZCBwb3J0aW5nIGZyb20gMC4xMCB0byAxLjAgY2hhcHRlci4KCSAgQWRkIHByb2JlIGV4YW1wbGUgdG8gYnVpbGQuCgkgIFJlbW92ZSBzb21lIGRvY3MgZm9yIHJlbW92ZSBjb21wb25lbnRzIHN1Y2ggYXMgR3N0TWl4ZXIgYW5kCgkgIEdzdFByb3BlcnR5UHJvYmUsIFhNTC4uLgoKMjAxMi0wOS0yNCAxNjo1MDo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2ludHJvLWdzdHJlYW1lci54bWw6CgkgIGRvY3M6IGdzdC1weXRob24gaXMgbm8gbW9yZQoJICBnc3QtcHl0aG9uIGlzIG5vIG1vcmUgYW5kIGdzdC1saWJhdiBpcyBvbmUgb2YgdGhlIG1haW4gbW9kdWxlcyB0aGF0CgkgIHdlIHJlbGVhc2UuCgoyMDEyLTA5LTI0IDE2OjMxOjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBkb2NzOiBmaXggYmFzZXNpbmsgZG9jcwoKMjAxMi0wOS0yNCAxNjoyNTozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dldHRpbmcueG1sOgoJKiBkb2NzL2ZhcS90cm91Ymxlc2hvb3RpbmcueG1sOgoJKiBkb2NzL2ZhcS91c2luZy54bWw6CgkgIGRvY3M6IHVwZGF0ZSBGQVEKCSAgQ2hhbmdlIHZlcnNpb25zLgoJICBVc2UgdG9vbHMgd2l0aCB2ZXJzaW9uIHByZWZpeC4KCjIwMTItMDktMjUgMTM6MTU6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucyBmb3IgdHlwbyBmaXgKCjIwMTItMDktMjUgMTM6MTQ6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogZml4IHR5cG8gaW4gdHJhbnNsYXRlZCBzdHJpbmcKCSAgU3BvdHRlZCBieSBDaHJpcyBMZW9uYXJkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0NzU1CgoyMDEyLTA5LTI1IDA5OjI3OjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIHBsdWdpbmZlYXR1cmU6IFJlbW92ZSAwLjExLjlYLT4xLjAuMCB2ZXJzaW9uIG1hbmdsaW5nCgoyMDEyLTA5LTI1IDAxOjAyOjAzICswMTAwICBKb3NlcCBUb3JyYSBWYWxsZXMgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOgoJICBiZW5jaG1hcmtzOiBwcmludGYgZm9ybWF0IGZpeGVzIHRvIG1ha2UgaW50ZWwgY29tcGlsZXIgaGFwcHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU1MjY1NwoKMjAxMi0wOS0yNSAwMDo1NTo1OSArMDEwMCAgSm9zZXAgVG9ycmEgVmFsbGVzIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvdG9vbHMuaDoKCSAgTWFrZSBpbnRlbCBjb21waWxlciBoYXBwaWVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01NTI2NTcKCjIwMTItMDktMjQgMTY6MzE6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50IChidWcgZml4aW5nKQoKPT09IHJlbGVhc2UgMS4wLjAgPT09CgoyMDEyLTA5LTI0IDEyOjE5OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMS4wLjAKCjIwMTItMDktMjQgMDA6Mzk6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IHVwZGF0ZSAwLjExIHJlZmVyZW5jZXMgaW4gcG9ydGluZyBndWlkZQoKMjAxMi0wOS0yNCAwMDozNzoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogcmVuYW1lIHBvcnRpbmctdG8tMC4xMS50eHQgdG8gcG9ydGluZy10by0xLjAudHh0CgoyMDEyLTA5LTIzIDE5OjU2OjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IGZpeCBGSVhNRSBwcmludGluZyBmb3IgdGNhc2Vfc2tpcF9icm9rZW5fdGVzdCgpCgoyMDEyLTA5LTIzIDE3OjMwOjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogdXBkYXRlIHJlbGVhc2UgZG9jCgkgIENyZWF0ZSB0YWdzIGZvciByZWxlYXNlcyB3aXRob3V0IHRoZSB1Z2x5IFJFTEVBU0UtIHByZWZpeC4KCjIwMTItMDktMjMgMTI6NDI6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBkb24ndCBmb3J3YXJkIHJhbmRvbSBzdHJlYW0tc3RhcnQgZXZlbnQKCSAgSXQncyBub3QgcmlnaHQsIGFuZCB3ZSBkb24ndCBrbm93IHdoYXQgZXh0cmEgcHJvcGVydGllcwoJICB0aGF0IGV2ZW50IG1pZ2h0IGhhdmUgc2V0IGluIGZ1dHVyZSAoZS5nLiBzcGFyc2VuZXNzKS4KCSAgVGhpcyBjaGFuZ2UgbWVhbnMgY29sbGVjdHBhZCB1c2VycyBuZWVkIHRvIGNyZWF0ZSB0aGVpcgoJICBvd24gc3RyZWFtLXN0YXJ0IGV2ZW50IG5vdy4gV2UgY291bGQgYWRkIGEgdXRpbGl0eQoJICBmdW5jdGlvbiB0aGF0IGNyZWF0ZXMgYSBzdHJlYW0tc3RhcnQgZXZlbnQgYmFzZWQgb24KCSAgdGhlIGlucHV0IHN0cmVhbS1zdGFydCBldmVudHMuCgoyMDEyLTA5LTIyIDE2OjA3OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0Zjk2MmY3IHRvIDZjMGI1MmMKCjIwMTItMDktMjEgMjE6MTM6MjcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgIG1hbnVhbDogdXBkYXRlIGNvbnRyb2xsZXIgZG9jdW1lbnRhdGlvbgoKMjAxMi0wOS0yMSAyMToxMzoxMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIG9iamVjdDogdXBkYXRlIGNvbnRyb2xsZXIgZG9jdW1lbnRhdGlvbgoKMjAxMi0wOS0xOCAxNToyMjowMyArMDIwMCAgQmFzdGlhbiBXaW5rbGVyIDxidXpAbmV0YnV6Lm9yZz4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgbWFuOiBGaXggc3ludGF4IGZvciB2YWx1ZSBsaXN0cyBpbiBjYXBzIHN0cmluZ3MKCSAgVmFsdWUgbGlzdHMgdXNlIGN1cmx5IGJyYWNrZXRzIGluc3RlYWQgb2YgcGFyZW50aGVzZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDI5MwoKMjAxMi0wOS0yMCAxNDo0ODoxNyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFJlbW92ZSBwYWQgcHJvYmVzIG9ubHkgb25jZQoJICBBbHNvIGFkZCB0ZXN0IHRvIG1ha2Ugc3VyZSB0aGF0IGlmIGEgcGFkIHByb2JlIGlzIHJlbW92ZWQgd2hpbGUgaXQncwoJICBjYWxsYmFjayBpcyBydW5uaW5nLCB0aGUgY2xlYW51cF9ob29rIGlzbid0IGNhbGxlZCBhZ2FpbiBpZiBpdAoJICByZXR1cm5zIEdTVF9QQURfUFJPQkVfUkVNT1ZFCgoyMDEyLTA5LTE5IDE1OjAxOjQ2IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IEFkZCBmdW5jdGlvbnMgdG8gc2FmZWx5IGFjY2VzcyBHc3RQcm9iZUluZm8gZGF0YSBwb2ludGVyCgkgIFRoaXMgaXMgc28gdGhhdCBpbnRyb3NwZWN0aW9uIGJhc2VkIGJpbmRpbmdzIGNhbiBhY2Nlc3MgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ0MDIKCjIwMTItMDktMTkgMjM6MjU6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkgIGRvY3M6IHJlbW92ZSByZWZlcmVuY2UgdG8gMC44IEdzdEJpbiBBUEkgZnJvbSBtYW51YWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDA0OAoKMjAxMi0wOS0xOSAxNToxNDozNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiB0cmFuc2Zvcm0gR0FQIGV2ZW50IGluIHNpbmdsZSBzZWdtZW50IG1vZGUKCjIwMTItMDktMTkgMDk6NDQ6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGRvY3M6IGNvbGxlY3RwYWRzIGRvYyBmaXhlcwoKMjAxMi0wOS0xOCAyMTo0OTo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBjaGVjayBhY3F1aXJlIHJlc3VsdCB2YWx1ZQoJICBDaGVjayB0aGUgcmVzdWx0IHZhbHVlIGZyb20gX2J1ZmZlcl9wb29sX2FjcXVpcmUoKSBhbmQgcmV0dXJuIHRoZQoJICB2YWx1ZSB3aGVuIGFsbG9jYXRpb24gZmFpbGVkLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0Mjg1CgoyMDEyLTA5LTE4IDEyOjE0OjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggcmVmY291bnQgYnVnIGJ5IHVucmVmZmluZyB0aGUgY29ycmVjdCB2YXJpYWJsZQoKPT09IHJlbGVhc2UgMC4xMS45OSA9PT0KCjIwMTItMDktMTcgMTc6NTY6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjExLjk5CgoyMDEyLTA5LTE3IDEzOjM1OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIHdpbjMyL3ZzMTAvQ29tbW9uLnByb3BzOgoJICBSZW1vdmUgR1NUX1VTRV9VTlNUQUJMRV9BUEkgZ3VhcmQgYW5kIGRlZmluZXMKCjIwMTItMDktMTcgMTM6MDk6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBwYWQ6IEFkZCBwYXJlbnQgcGFyYW1ldGVyIHRvIHRoZSBsaW5rIGFuZCB1bmxpbmsgZnVuY3Rpb25zCgkgIEZpeGVzIHBhcnQgb2YgYnVnICM2ODM5OTUuCgoyMDEyLTA5LTE2IDIzOjIwOjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICBzYW1wbGU6IGFkZCBzZXJpYWxpc2F0aW9uL2Rlc2VyaWFsaXNhdGlvbiBmdW5jdGlvbnMgZm9yIEdzdFNhbXBsZQoJICBTaW5jZSB0aGVzZSB0aGluZ3MgYXJlIGluc2lkZSB0YWdsaXN0cyBub3csIGl0IHdvdWxkIGJlIGdvb2QgdG8gYmUKCSAgYWJsZSB0byBwcmludCB0aGVtIGFuZCBkZXNlcmlhbGlzZSB0aGVtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMzIyCgoyMDEyLTA5LTE1IDIxOjU2OjA3ICswMjAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDx1cmFldXNAbGludXhyaXNpbi5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgU3dpdGNoIHRvIEYxOCBuYW1pbmcgb2YgdGhlIHBhY2thZ2UKCjIwMTItMDktMTUgMTg6NDM6MzkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdXNlIGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhIHRvIHJlcGxhY2Ugb2Jzb2xldGUgQVBJCgoyMDEyLTA5LTE0IDE3OjUyOjE0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgIHJlcGxhY2UgZ3N0X3RhZ19saXN0X2ZyZWUgd2l0aCBnc3RfdGFnX2xpc3RfdW5yZWYKCjIwMTItMDktMTQgMTc6MDA6MjMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByZXNldC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkgIHJlcGxhY2UgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlIHdpdGggZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X21ldGFkYXRhCgoyMDEyLTA5LTA2IDE2OjMyOjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuczogd2hpdGVzcGFjZSBmaXgKCjIwMTItMDktMTQgMTQ6MDg6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+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+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IGVtYmVkIEdzdFF1ZXVlQXJyYXkgc3RydWN0dXJlCgoyMDEyLTA3LTE0IDIwOjAwOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlYXJyYXkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICBwbHVnaW5zOiBzcHJpbmtsZSBzb21lIG1vcmUgR19HTlVDX0lOVEVSTkFMCgoyMDEyLTA3LTE0IDE5OjM4OjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZWFycmF5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWVhcnJheS5oOgoJICBwbHVnaW5zOiBhZGQgaW5pdC9jbGVhciBmdW5jdGlvbnMgdG8gR3N0UXVldWVBcnJheQoKMjAxMi0wNy0xNCAxOToyNDo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlYXJyYXkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZWFycmF5Lmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvcXVldWVhcnJheS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2U6IG1ha2UgR3N0UXVldWVBcnJheSBwcml2YXRlIHRvIGNvcmVlbGVtZW50cyBmb3Igbm93CgkgIEtlZXAgaXQgcHJpdmF0ZSB1bnRpbCB3ZSBoYXZlIGEgcmVhc29uIHRvIG1ha2UgaXQgcHVibGljLgoKMjAxMi0wNy0xNCAxOTowODoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGNoZWNrIHZhbHVlIHR5cGUgbWF0Y2hlcyB0YWcgdHlwZSB3aGVuIGFkZGluZyB2YWx1ZXMgdG8gYSB0YWdsaXN0CgoyMDEyLTA3LTE0IDE4OjUyOjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogbWFrZSB0YWdsaXN0cyBhbmQgZGF0ZXRpbWUgbG9nZ2FibGUgdmlhIEdTVF9QVFJfRk9STUFUCgoyMDEyLTA3LTEzIDEyOjA1OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzZW5kIHNlZWsgZXZlbnQgdXBzdHJlYW0gZmlyc3QKCSAgRmlyc3QgdHJ5IHRvIGxldCB1cHN0cmVhbSBoYW5kbGUgdGhlIHNlZWsgZXZlbnQsIHRoZW4gZmFpbCBpZiB0aGUgZXZlbnQgaXMKCSAgc29tZXRoaW5nIHdlIGRvbid0IHVuZGVyc3RhbmQuCgoyMDEyLTA3LTEzIDA5OjQzOjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCB0ZXN0IHJhY2luZXNzCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk1MDYKCjIwMTItMDctMTIgMTM6MTc6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogZml4IGdzdC1mZm1wZWcgcGx1Z2luIHBhdGggYWdhaW4KCjIwMTItMDctMTIgMTI6MDk6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIGNsdXR0ZXItZ3N0IGFuZCByZWZpbmUgcGx1Z2luIHNlYXJjaCBwYXRocwoKMjAxMi0wNy0xMiAwMDozNDoyMiArMTAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IE1vdmUgc3RpY2t5IGZsYWcgY2xlYXJpbmcgY29kZSB0byBnc3RfcGFkX2FjdGl2YXRlX21vZGUKCSAgVGhlIGdob3N0cGFkIGNvZGUgZGlyZWN0bHkgYWN0aXZhdGVzL2RlYWN0aXZhdGVzIHRoZSBjaGlsZCBjb2RlIGJ5CgkgIGNhbGxpbmcgZ3N0X3BhZF9hY3RpdmF0ZV9tb2RlLCByYXRoZXIgdGhhbiBnc3RfcGFkX3NldF9hY3RpdmUsIHNvCgkgIG1ha2Ugc3VyZSB0byBjbGVhciB0aGUgZmxhZ3MgaW4gZ3N0X3BhZF9hY3RpdmF0ZV9tb2RlKCksIHdoaWNoIHNob3VsZAoJICBjYXRjaCBhbGwgY2FzZXMuCgoyMDEyLTA3LTExIDEyOjQwOjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBpbXByb3ZlIGFubm90YXRpb24KCjIwMTItMDctMTEgMTI6Mzc6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBoYW5kbGUgc3RlcCBlbmQgY29ycmVjdGx5CgkgIHdoZW4gd2UgaGF2ZSBhIG5ldyBzdGVwIGV2ZW50IHdpdGggYSAtMSBhbW91bnQsIG1ha2Ugc3VyZSB0aGF0IHdlIGZvbGxvdyB0aGUKCSAgcmVndWxhciBjb2RlIHBhdGggc28gdGhhdCB0aGUgc3RvcF9lbmQgaGFuZGxlciBpcyBjYWxsZWQgYXMgdXN1YWwuIFRoaXMgdGFrZXMKCSAgY2FyZSBvZiBmbHVzaGluZyB0aGUgYnVmZmVyIGluIGNhc2Ugb2YgYSBmbHVzaGluZyBzdGVwIGFuZCBhbHNvIHBvc3RzIGEgc3RlcCBlbmQKCSAgbWVzc2FnZS4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkzNzgKCjIwMTItMDctMTEgMTM6MTQ6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSAgd2luMzI6IEZpeCBleHBvcnRlZCBzeW1ib2xzIGxpc3QgZm9yIHJlYWwgbm93CgoyMDEyLTA3LTExIDExOjIxOjE4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogcmVtb3ZlIHJlbW92ZWQgYXBpIGZyb20gdGhlIGRvY3MuCgoyMDEyLTA3LTExIDEyOjQ2OjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlZCBleHBvcnRlZCBzeW1ib2xzIGxpc3QKCjIwMTItMDctMTEgMTI6NDU6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkgIHRvYzogQWRkIGZ1bmN0aW9ucyB0byByZXRyaWV2ZSB0aGUgcGFyZW50IEdzdFRvYy9Hc3RUb2NFbnRyeSBvZiBhIEdzdFRvY0VudHJ5CgoyMDEyLTA3LTEwIDE4OjE1OjIwICswMzAwICBBbnRvbiBCZWxrYSA8YW50b25iZWxrYUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dG9jLmM6CgkgIHRvYzogRml4IGdzdF90b2NfZmluZF9lbnRyeSgpCgkgIFJlY3Vyc2l2ZSBzZWFyY2ggZm9yIHRoZSByZXF1aXJlZCBlbnRyeSwgaW5zdGVhZCBvZiByZXR1cm5pbmcgdGhlCgkgIHRvcC1sZXZlbCBlbnRyeSB0aGF0IGNvbnRhaW5zIGFuIGVudHJ5IHdpdGggdGhlIHNlYXJjaCBVSUQuCgoyMDEyLTA3LTExIDEwOjI2OjEzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUHVzaCBTVFJFQU1fU1RBUlQgaW4gcHVsbC1tb2RlCgoyMDEyLTA3LTExIDEwOjI0OjUxICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBEZW1vdGUgV0FSTklORyB0byBERUJVRwoJICBJdCBpcyBub3QgYW4gaXNzdWUgdG8gZ2V0IGZpZWxkcyB0aGF0IGRvbid0IGV4aXN0LCBjYWxsaW5nIGNvZGUgc2hvdWxkCgkgIGhhbmRsZSB0aGF0LgoKMjAxMi0wNy0xMCAxMTo0Njo0MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGVycm9yLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0cG9sbC5oOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuaDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICBSZW1vdmUgMC4xMC1yZWxhdGVkIGRvY3VtZW50YXRpb24gYW5kICJTaW5jZSIgbWFya2VycwoKMjAxMi0wNy0xMCAwMDozOTozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBwcm92aWRlIGZhbGxiYWNrIGluIGNhc2UgYSBjcmVhdGUgZnVuY3Rpb24gZG9lc24ndCBrbm93IGFib3V0IHByb3ZpZGVkIGJ1ZmZlcnMKCSAgSW4gMC4xMSB0aGUgY2FsbGVyIG1heSBwcm92aWRlIGEgYnVmZmVyIHRvIGJlIGZpbGxlZCBieSB0aGUgc291cmNlIHRvCgkgIHB1bGxfcmFuZ2UvZ2V0X3JhbmdlL2NyZWF0ZSwgYnV0IGl0J3MgZWFzeSB0byBtaXNzIHRoaXMgbmV3IGNhc2Ugd2hlbgoJICBwb3J0aW5nIGNvZGUgZnJvbSAwLjEwLiBQcm92aWRlIGZhbGxiYWNrIHRoYXQgY29waWVzIHRoZSBjcmVhdGVkIGRhdGEKCSAgaW50byB0aGUgcHJvdmlkZWQgYnVmZmVyIGZvciBub3cuCgkgIFRoaXMgbWFrZXMgb2dnZGVtdXggaW4gcHVsbC1tb2RlIHdvcmsgd2l0aCBkYXRhdXJpc3JjLgoKMjAxMi0wNy0xMCAxMDozMTowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHF1ZXJ5OiBjb3B5IHN0cnVjdHVyZSBpbiBfYWRkX2FsbG9jYXRpb25fbWV0YSgpCgkgIE1ha2UgZ3N0X3F1ZXJ5X2FkZF9hbGxvY2F0aW9uX21ldGEoKSB0YWtlIGEgY29weSBvZiB0aGUgcGFzc2VkIGNhcHMgaW5zdGVhZCBvZgoJICB0YWtpbmcgb3duZXJzaGlwLiBUaGlzIG1ha2VzIGl0IGVhc2llciBmb3IgdGhlIGNhbGxlciBpbiBtb3N0IGNhc2VzIGJlY2F1c2UgaXQKCSAgZG9lc24ndCBoYXZlIHRvIG1ha2UgYSBjb3B5IGFuZCBkZWFsIHdpdGggTlVMTCB2YWx1ZXMuCgoyMDEyLTA3LTEwIDEwOjExOjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGFkZCBuZXcgZmxhZ3MKCjIwMTItMDctMDkgMjM6NDc6NTMgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBmaXggZXhjbHVzaXZlIGxvY2svdW5sb2NrIHJhY2UKCjIwMTItMDctMDkgMjE6NTE6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+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+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGZpeCBoYXJkY29kZWQgMC4xMCB2ZXJzaW9uIGluIHdpbjMyIHBsdWdpbnNjYW5uZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NDI5NAoKMjAxMi0wNC0xNyAxNTozNzoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YTogYWRkIExPQ0tFRCBmbGFnCgkgIEFkZCBhIG5ldyBMT0NLRUQgZmxhZyB0byB0aGUgbWV0YWRhdGEuIFJlZnVzZSByZW1vdmluZyBMT0NLRUQgbWV0YWRhdGEgZnJvbQoJICBhIGJ1ZmZlci4KCSAgTWFyayB0aGUgbWV0YWRhdGEgZnJvbSB0aGUgYnVmZmVycG9vbCBMT0NLRUQuCgkgIEFkZCB1bml0IHRlc3QgZm9yIExPQ0tFRCBmbGFnCgoyMDEyLTA0LTE3IDE0OjM4OjAxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkczIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi92czEwL2Jhc2UvYmFzZS52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2Jhc2UvYmFzZS52Y3hwcm9qLmZpbHRlcnM6CgkgIGNvbGxlY3RwYWRzMjogcmVuYW1lIHRvIGNvbGxlY3RwYWRzCgoyMDEyLTA0LTE3IDEyOjU0OjQ1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBlbnN1cmUgd3JpdGFibGUgaGVhZCBidWZmZXIgYmVmb3JlIHNraXBwaW5nIHBhcnQgb2YgaXQKCjIwMTItMDQtMTcgMTI6Mjk6NTAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYwoKMjAxMi0wNC0xNyAxMjoyMzowNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+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+CgoJICBNZXJnZSBicmFuY2ggJzAuMTAnCgoyMDEyLTA0LTA2IDEyOjMyOjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBjaGVjayB0aGUgcGFkIG1vZGUgb24gdGhlIHJpZ2h0IHBhZAoKMjAxMi0wNC0wNiAxMjoyNDoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZm9yd2FyZCBmbHVzaCBldmVudHMgY29ycmVjdGx5CgkgIFdlIHdhbnQgdG8gZm9yd2FyZCB0aGUgZmx1c2ggZXZlbnRzIHJlY2VpdmVkIG9uIHRoZSBzaW5rcGFkIHdoZW5ldmVyIHRoZSBzcmNwYWQKCSAgaXMgYWN0aXZhdGVkIGluIHB1c2htb2RlLCB3aGljaCBjYW4gYWxzbyBoYXBwZW4gd2hlbiB1c2luZyB0aGUgUklOR0JVRkZFUiBvcgoJICBET1dOTE9BRCBtb2RlIGFuZCBkb3duc3RyZWFtIGZhaWxlZCB0byBhY3RpdmF0ZSB1cyBpbiBwdWxsIG1vZGUuCgoyMDEyLTA0LTA1IDIxOjU2OjA1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xiaW5kaW5nOiBjaGFpbiB1cCBvbiBkaXNwb3NlIGFuZCBmaW5hbGl6ZQoKMjAxMi0wNC0wNSAyMTo1NTowNyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiB1bnBhcmVudCB0aGUgY29udHJvbGJpbmRpbmcgb24gZGlzcG9zZQoKMjAxMi0wNC0wNSAyMTowNzo1NSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGxlcjogZHVwIHRoZSBvYmplY3RzIHRvIGF2b2lkIHByZW1hdHVyZSBmcmVlcwoKMjAxMi0wNC0wNSAyMTowNjoxNCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCBhIGZpbmFsaXplciBmb3IgdGhlIHRlc3QgY29udHJvbGJpbmRpbmdzCgkgIE5vIGlkZWEgd2h5IHZhbGdyaW5kIHN0aWxsIGluaXN0cyB0aGF0IHRoZXJlIGFyZSBsZWFrcy4KCjIwMTItMDQtMDUgMTg6NDI6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3ZmRhNTI0IHRvIDQ2NGZlMTUKCjIwMTItMDQtMDUgMTQ6MTc6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIGdzdDogQ2hhbmdlIG5hbWUgcGFyYW1ldGVyIG9mIEdTVF9QTFVHSU5fREVGSU5FKCkgdG8gbm90IHRha2UgYSBzdHJpbmcgYW55bW9yZQoJICBUaGlzIHdpbGwgYmUgbmVlZGVkIHdoZW4gd2UgbGF0ZXIgYWRkIHN1cHBvcnQgZm9yIHN0YXRpYyBsaW5raW5nCgkgIG9mIHBsdWdpbnMgd2l0aG91dCBpbnRyb2R1Y2luZyBuZXcgQVBJIG9yIGNoYW5naW5nIGV4aXN0aW5nIEFQSS4KCjIwMTItMDQtMDUgMTM6MjM6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBnc3RwbHVnaW46IEFkZCBoYWNrIGZvciBoYW5kbGluZyAwLjExLjlYIGFuZCAwLjExLjg5Llggd2l0aCBYPjAgdGhlIHNhbWUgYXMgMS4wLjAKCSAgQWxzbyB1cGRhdGUgdGhlIHZlcnNpb24gbnVtYmVyIHRvIDAuMTEuODkuMQoKMjAxMi0wNC0wNSAxMjoyMjoxMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkgIHRvY3NldHRlcjogY2xlYXIgbXV0ZXggdXBvbiBmcmVlCgoyMDEyLTA0LTA1IDEwOjU2OjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICByZWdpc3RyeTogU2V0IHJlZ2lzdHJ5IHZlcnNpb24gdG8gMS4wLjAgdG9vCgoyMDEyLTA0LTA1IDEwOjM2OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICcwLjEwJwoJICBDb25mbGljdHM6CgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmMKCjIwMTItMDQtMDUgMTA6MDM6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHN0b3Agd2FpdGluZyBmb3IgbW9yZSBkYXRhIGFmdGVyIEVPUwoJICBXaGVuIHdlIGhhdmUgRU9TLCByZWFkIHRoZSByZW1haW5pbmcgYnl0ZXMgaW4gdGhlIGJ1ZmZlciBhbmQgbWFrZSBzdXJlIHdlIGRvbid0CgkgIHdhaXQgZm9yIG1vcmUgZGF0YS4gQWxzbyBjbGlwIHRoZSBvdXRwdXQgYnVmZmVyIHRvIHRoZSBhbW91bnQgb2YgcmVtYWluaW5nCgkgIGJ5dGVzLgoKMjAxMi0wNC0wNSAwOTo1Njo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogY2hlY2sgZm9yIGZpbGxlZCBidWZmZXIgY29ycmVjdGx5CgkgIFdoZW4gdXNpbmcgdGhlIHJpbmdidWZmZXIgbW9kZSwgdGhlIGJ1ZmZlciBpcyBmaWxsZWQgd2hlbiB3ZSByZWFjaGVkIHRoZQoJICBtYXhfbGV2ZWwuYnl0ZXMgbWFyayBvciB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgcmluZ2J1ZmZlciwgd2hpY2hldmVyIGlzIHNtYWxsZXIuCgoyMDEyLTA0LTA0IDEzOjA3OjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhdm9pZCB3YWl0aW5nIGZvciBhIGZpbGxlZCBidWZmZXIKCSAgVXNlIGEgdGhyZXNob2xkIHZhcmlhYmxlIHRvIGhvbGQgdGhlIG1heGltdW0gZGlzdGFuY2UgZnJvbSB0aGUgY3VycmVudCBwb3NpdGlvbgoJICBmb3Igd2l0aCB3ZSB3aWxsIHdhaXQgaW5zdGVhZCBvZiBkb2luZyBhIHNlZWsuCgkgIFdoZW4gdXNpbmcgdGhlIHJpbmdidWZmZXIgYW5kIHRoZSByZXF1ZXN0ZWQgb2Zmc2V0IGlzIG5vdCBhdmFpbGFibGUsIGF2b2lkCgkgIHdhaXRpbmcgdW50aWwgdGhlIGNvbXBsZXRlIHJpbmdidWZmZXIgaXMgZmlsbGVkIGJ1dCBpbnN0ZWFkIGRvIGEgc2VlayB3aGVuIHRoZQoJICByZXF1ZXN0ZWQgZGF0YSBpcyBmdXJ0aGVyIHRoYW4gdGhlIHRocmVzaG9sZC4KCSAgQXZvaWQgZG9pbmcgdGhlIHNlZWsgdHdpY2UgaW4gdGhlIHJpbmdidWZmZXIgY2FzZS4KCSAgVXNlIHRoZSBzYW1lIHRocmVzaG9sZCBmb3IgcmluZ2J1ZmZlciBhbmQgZG93bmxvYWQgYnVmZmVyaW5nLgoKMjAxMi0wNC0wNSAwOTowNzoxOCArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogZml4IGNvbXBpbGUgd2FybmluZwoKMjAxMi0wNC0wNCAxMzoxMzo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3JhbmRvbS9hdXRvdG9vbHM6CgkqIGRvY3MvdmVyc2lvbi5lbnRpdGllcy5pbjoKCSogZ3N0LWVsZW1lbnQtY2hlY2subTQuaW46CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXIucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmVzZXQuYzoKCSogdGVzdHMvZXhhbXBsZXMvYWRhcHRlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBnc3Q6IENoYW5nZSB2ZXJzaW9uaW5nCgkgIFJlbW92ZSBHU1RfTUFKT1JNSU5PUiBhbmQgcmVwbGFjZSBpdCBieSBHU1RfQVBJX1ZFUlNJT04KCSAgQWxzbyBzZXQgR1NUX1ZFUlNJT05fe01BSk9SLE1JTk9SLE1JQ1JPLE5BTk99IGV4cGxpY2l0ZWx5CgkgIG5vdy4KCSAgQWxsIHZlcnNpb25zIGFyZSBhdCAxLjAuMCBub3cgZm9yIHRoZSByZWxlYXNlIHNvb24gYnV0CgkgIEFQSS9BQkkgY2FuIHN0aWxsIGNoYW5nZSB1bnRpbCB0aGUgMS4wLjAgcmVsZWFzZS4KCSAgTmV4dCByZWxlYXNlIHZlcnNpb25zIHVudGlsIDEuMC4wIHdpbGwgYmUgMC4xMC45WCBhbmQKCSAgdGhlc2Ugd2lsbCBiZSByZWxlYXNlIGNhbmRpZGF0ZXMuIEdTVF9WRVJTSU9OXyogd2lsbAoJICBub25ldGhlbGVzcyBzdGF5IGF0IDEuMC4wLjAuCgoyMDEyLTA0LTA0IDEyOjI1OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoJICBDb25mbGljdHM6CgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQKCSAgZ3N0L01ha2VmaWxlLmFtCgkgIGdzdC9nc3QuYwoJICBnc3QvZ3N0LmgKCSAgZ3N0L2dzdGV2ZW50LmMKCSAgZ3N0L2dzdGV2ZW50LmgKCSAgZ3N0L2dzdG1lc3NhZ2UuYwoJICBnc3QvZ3N0bWVzc2FnZS5oCgkgIGdzdC9nc3RxdWFyay5jCgkgIGdzdC9nc3RxdWFyay5oCgkgIGdzdC9nc3RxdWVyeS5jCgkgIGdzdC9nc3RxdWVyeS5oCgkgIGdzdC9nc3R0b2MuYwoJICBnc3QvZ3N0dG9jLmgKCSAgZ3N0L2dzdHRvY3NldHRlci5jCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYwoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmMKCjIwMTItMDQtMDMgMTY6NTE6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogaW1wcm92ZSBfc2V0X3NpemUoKQoKMjAxMi0wNC0wMyAxNjo0NDo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBtYWtlIGdldF9zaXplcyBhbmQgX3Jlc2l6ZSB3aXRoIHJhbmdlcwoJICBNYWtlIHRoZSBfZ2V0X3NpemVzIGFuZCBfcmVzaXplIG1ldGhvZHMgd29yayBvbiBhIHJhbmdlIG9mIG1lbW9yeSB0byBtYWtlIHRoZW0KCSAgbW9yZSBwb3dlcmZ1bGwuCgoyMDEyLTA0LTAzIDE4OjI1OjQwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBjb25zaXN0ZW5jeWNoZWNrZXI6IGFsbG93IHNvbWUgbW9yZSBldmVudHMgYmVmb3JlIGEgc2VnbWVudCBldmVudAoKMjAxMi0wNC0wMyAxNTo0NjoyOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSAgdG9jc2V0dGVyOiB1c2UgbmV3IGdsaWIgbXV0ZXggYXBpCgoyMDEyLTA0LTAyIDIzOjE3OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGZpeCBjb21waWxlciB3YXJuaW5nCgkgIGdzdC1sYXVuY2guYzogSW4gZnVuY3Rpb24g4oCYcHJpbnRfdG9jX2VudHJ54oCZOgoJICBnc3QtbGF1bmNoLmM6NDQ2OjM6IGVycm9yOiB0aGUgc2l6ZSBvZiBhcnJheSDigJhzcGPigJkgY2Fu4oCZdCBiZSBldmFsdWF0ZWQgWy1XZXJyb3I9dmxhXQoJICBnc3QtbGF1bmNoLmM6NDQ2OjM6IGVycm9yOiB2YXJpYWJsZS1zaXplZCBvYmplY3QgbWF5IG5vdCBiZSBpbml0aWFsaXplZAoKMjAxMi0wNC0wMiAyMzoyOToyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSAgdGVzdHM6IGFkZCBuZXcgdW5pdCB0ZXN0IGJpbmFyaWVzIHRvIC5naXRpZ25vcmUKCjIwMTItMDQtMDIgMjM6Mjg6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHJlZiBuZXcgZW50cnkgZW51bSB0eXBlcwoJICBGaXhlcyAnbWFrZSBjaGVjaycsIGFnYWluLgoKMjAxMi0wNC0wMiAyMzoyNDoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgQVBJIHRvIC5kZWYgZmlsZQoJICBGaXhlcyAnbWFrZSBjaGVjaycuCgoyMDEyLTA0LTAyIDIzOjIzOjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3R0b2MuYzoKCSAgdG9jOiBkb24ndCBleHBvcnQgcHJpdmF0ZSBmdW5jdGlvbnMKCjIwMTItMDQtMDIgMjM6MTc6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogZml4IGNvbXBpbGVyIHdhcm5pbmcKCSAgZ3N0LWxhdW5jaC5jOiBJbiBmdW5jdGlvbiDigJhwcmludF90b2NfZW50cnnigJk6CgkgIGdzdC1sYXVuY2guYzo0NDY6MzogZXJyb3I6IHRoZSBzaXplIG9mIGFycmF5IOKAmHNwY+KAmSBjYW7igJl0IGJlIGV2YWx1YXRlZCBbLVdlcnJvcj12bGFdCgkgIGdzdC1sYXVuY2guYzo0NDY6MzogZXJyb3I6IHZhcmlhYmxlLXNpemVkIG9iamVjdCBtYXkgbm90IGJlIGluaXRpYWxpemVkCgoyMDEyLTA0LTAyIDIzOjE2OjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHRyYW5zbGF0YWJsZSBzdHJpbmdzCgoyMDEyLTA0LTAyIDIzOjAxOjE3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicKCjIwMTItMDQtMDIgMjI6MDk6MDcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSAgdG9jOiBwb3J0IHRvIDAuMTEKCjIwMTItMDMtMjIgMDg6MzY6MDIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGFkZCAtYywgLS10b2MgdG8gcHJpbnQgdGhlIHRvYwoJICBQcmludCB0aGUgbmVzdGVkIGNoYXB0ZXIgYW5kIGVkaXRpb24gc3RydWN0dXJlIG9mIHRoZSBjaGFwdGVycyBtZXNzYWdlLgoKMjAxMi0wMy0yOCAyMzoxNTo0MSArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkgIGRvY3M6IGFkZCBvdmVydmlldyBvZiBHc3RUb2MgdXNhZ2UKCjIwMTItMDMtMTQgMjE6MTQ6MjMgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBBZGQgR3N0VG9jIGFuZCBHc3RUb2NTZXR0ZXIgc2VjdGlvbnMgd2l0aCByZWxhdGVkIGZ1bmN0aW9ucwoKMjAxMi0wMy0xNCAyMToxMzoyMiArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkgIGdzdGNoZWNrczogQWRkIHVuaXQgdGVzdCBmb3IgdGhlIEdzdFRvY1NldHRlcgoKMjAxMi0wMy0xNCAyMToxMjoyMiArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkgIGdzdGNoZWNrczogQWRkIHVuaXQgdGVzdCBmb3IgdGhlIEdzdFRvYwoKMjAxMi0wMy0xNCAyMDo0NTozNSArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuaDoKCSAgQWRkIG5ldyBHc3RUb2NTZXR0ZXIgaW50ZXJmYWNlCgoyMDEyLTAzLTE0IDIwOjQyOjU2ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBBZGQgbmV3IFRPQyBxdWVyeQoKMjAxMi0wMy0xNCAyMDo0MTo0OCArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFkZCBuZXcgVE9DIG1lc3NhZ2UKCjIwMTItMDMtMTQgMjA6NDA6MzIgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgQWRkIG5ldyBUT0MgYW5kIFRPQyBzZWxlY3QgZXZlbnRzCgoyMDEyLTAzLTE0IDIwOjAxOjUxICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJICBBZGQgZ2VuZXJpYyB0YWJsZSBvZiBjb250ZW50cyAoVE9DKSBzdXBwb3J0CgoyMDEyLTA0LTAyIDIxOjE1OjA5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSAgTWVyZ2UgYnJhbmNoICcwLjEwJwoJICBDb25mbGljdHM6CgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQKCSAgZ3N0L01ha2VmaWxlLmFtCgkgIGdzdC9nc3QuYwoJICBnc3QvZ3N0LmgKCSAgZ3N0L2dzdGV2ZW50LmMKCSAgZ3N0L2dzdGV2ZW50LmgKCSAgZ3N0L2dzdG1lc3NhZ2UuaAoJICBnc3QvZ3N0cXVhcmsuYwoJICBnc3QvZ3N0cXVhcmsuaAoJICBnc3QvZ3N0cXVlcnkuYwoJICBnc3QvZ3N0cXVlcnkuaAoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbQoKMjAxMi0wNC0wMiAxNTozMDowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jCgoyMDEyLTA0LTAyIDE1OjEzOjI0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWx3YXlzIGF0dGVtcHQgdG8gcHVzaCBpZiBub3QtbGlua2VkCgkgIFRoaXMgYXZvaWRzIGVuZGluZyB1cCB3aXRoIHBsZW50eSBvZiBwZW5kaW5nIGRhdGEgKHNpbmNlIHdlJ2xsIG9ubHkKCSAgdHJ5IHRvIHBhcnNlL3B1c2ggb25lIGZyYW1lIGZyb20gdGhlIGluY29taW5nIGJ1ZmZlcikuCgkgIEZpeGVzIGluY3JlYXNpbmcgbWVtb3J5IGNvbnN1bXB0aW9uIHdoZW4gcGFyc2VycyBhcmVuJ3QgbGlua2VkCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYwoKMjAxMi0wNC0wMiAxNToxMzoyNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFsd2F5cyBhdHRlbXB0IHRvIHB1c2ggaWYgbm90LWxpbmtlZAoJICBUaGlzIGF2b2lkcyBlbmRpbmcgdXAgd2l0aCBwbGVudHkgb2YgcGVuZGluZyBkYXRhIChzaW5jZSB3ZSdsbCBvbmx5CgkgIHRyeSB0byBwYXJzZS9wdXNoIG9uZSBmcmFtZSBmcm9tIHRoZSBpbmNvbWluZyBidWZmZXIpLgoJICBGaXhlcyBpbmNyZWFzaW5nIG1lbW9yeSBjb25zdW1wdGlvbiB3aGVuIHBhcnNlcnMgYXJlbid0IGxpbmtlZAoKMjAxMi0wNC0wMSAwMzozMDo1MSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIFRpbWVvdXQgaXMgbm90IHVzZWQgb24gVzMyCgkgIEZpeGVzICM2NzMyNjcKCjIwMTItMDQtMDIgMTE6MDk6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIHRyYW5zOiBhZGQgdHJhbnNmb3JtX2lwX29uX3Bhc3N0aHJvdWdoCgkgIEFkZCBhbiBvcHRpb24gdG8gY29udHJvbCBpZiB0cmFuc2Zvcm1faXAgaXMgY2FsbGVkIGluIHBhc3N0aHJvdWdoIG1vZGUgb3Igbm90LgoJICBmb3IgZWxlbWVudHMgdGhhdCBkb24ndCB3YW50IHRvIGxvb2sgYXQgdGhlIGRhdGEgaW4gcGFzc3Rocm91Z2ggbW9kZSwgdGhpcyBjYW4KCSAgYXZvaWQgc29tZSBleHRyYSBwcm9jZXNzaW5nLCBtb3N0bHkgaW4gc3ViY2xhc3Nlcy4KCjIwMTItMDMtMjIgMDg6MzY6MDIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGFkZCAtYywgLS10b2MgdG8gcHJpbnQgdGhlIHRvYwoJICBQcmludCB0aGUgbmVzdGVkIGNoYXB0ZXIgYW5kIGVkaXRpb24gc3RydWN0dXJlIG9mIHRoZSBjaGFwdGVycyBtZXNzYWdlLgoKMjAxMi0wMy0yOCAyMzoxNTo0MSArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkgIGRvY3M6IGFkZCBvdmVydmlldyBvZiBHc3RUb2MgdXNhZ2UKCjIwMTItMDMtMTQgMjE6MTQ6MjMgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBBZGQgR3N0VG9jIGFuZCBHc3RUb2NTZXR0ZXIgc2VjdGlvbnMgd2l0aCByZWxhdGVkIGZ1bmN0aW9ucwoKMjAxMi0wMy0xNCAyMToxMzoyMiArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkgIGdzdGNoZWNrczogQWRkIHVuaXQgdGVzdCBmb3IgdGhlIEdzdFRvY1NldHRlcgoKMjAxMi0wMy0xNCAyMToxMjoyMiArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkgIGdzdGNoZWNrczogQWRkIHVuaXQgdGVzdCBmb3IgdGhlIEdzdFRvYwoKMjAxMi0wMy0xNCAyMDo0NTozNSArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuaDoKCSAgQWRkIG5ldyBHc3RUb2NTZXR0ZXIgaW50ZXJmYWNlCgoyMDEyLTAzLTE0IDIwOjQyOjU2ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBBZGQgbmV3IFRPQyBxdWVyeQoKMjAxMi0wMy0xNCAyMDo0MTo0OCArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFkZCBuZXcgVE9DIG1lc3NhZ2UKCjIwMTItMDMtMTQgMjA6NDA6MzIgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgQWRkIG5ldyBUT0MgYW5kIFRPQyBzZWxlY3QgZXZlbnRzCgoyMDEyLTAzLTE0IDIwOjAxOjUxICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJICBBZGQgZ2VuZXJpYyB0YWJsZSBvZiBjb250ZW50cyAoVE9DKSBzdXBwb3J0CgoyMDEyLTA0LTAxIDEyOjAxOjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHJldXNlIG1vcmUgY29kZQoKMjAxMi0wNC0wMSAxMTo0Mjo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IG1ha2UgZnVuY3Rpb24gdG8gZmluZCBtZW1vcnkgaW4gYSBidWZmZXIKCSAgTWFrZSBhIGZ1bmN0aW9uIHRvIGZpbmQgdGhlIG1lbW9yeSBibG9ja3MgZm9yIGEgcmVnaW9uIGluIGEgYnVmZmVyLgoKMjAxMi0wMy0zMSAyMToyNjoyMiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IGZpeCBtb3JlIG1pc3NpbmcgR1NUX09CSkVDVCAtPiBHX09CSkVDVCB1c2UKCjIwMTItMDMtMzEgMTg6MzQ6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogdXNlIGJ1ZmZlcl93cmFwCgoyMDEyLTAzLTMxIDE3OjEwOjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGFkZCBwZWVrX21lbW9yeSBtZXRob2QKCSAgQWRkIGEgcGVlcmtfbWVtb3J5IG1ldGhvZCB0aGF0IHNpbXBseSBmZXRjaGVzIHRoZSBtZW1vcnkgYXQgYW4gb2Zmc2V0IHdpdGhvdXQKCSAgcmVmY291bnRpbmcgb3IgbWVyZ2luZy4KCjIwMTItMDMtMzEgMTI6MDA6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBncmFtbWFyLnk6IGZpeCBjaGlsZHByb3h5IGNvZGUKCSAgSXQgdGFrZXMgR09iamVjdCBhbmQgbm90IEdzdE9iamVjdCBub3cKCjIwMTItMDMtMzAgMjI6NDY6MDIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkgIGNoaWxkcHJveHk6IGluY2x1ZGUgdGhlIGNoaWxkIG5hbWUgaW4gdGhlIHNpZ25hbAoKMjAxMi0wMy0zMCAyMjo0NDozMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlcjogdXBkYXRlIGZvciBjaGlsZHByb3h5IGFwaSBjaGFuZ2VzCgoyMDEyLTAzLTMwIDIyOjM2OjM1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogZml4IHNpZ25hbCBwYXJhbWV0ZXIgdHlwZXMKCjIwMTItMDMtMzAgMjI6MTc6MDkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IHVzZSBHT2JqZWN0IGluc3RlYWQgb2YgR3N0T2JqZWN0CgkgIFRoaXMgbWFrZXMgaXQgcHJvc3NpYmxlIHRvIGJlIHVzZWQgbW9yZSB3aWRlbHkuIEZpeCBpbXBsZW1lbnRhdGlvbnMgZm9yIHRoZSBBUEkKCSAgY2hhbmdlLgoKMjAxMi0wMy0zMCAyMjowMTo1NSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkgIGNoaWxkcHJveHk6IG1ha2UgZ2V0X2NoaWxkX2J5X25hbWUgdmlydHVhbAoJICBBbGxvd3MgaW1wbGVtZW50YXRpb25zIHRvIHVzZSBjdXN0b20gbmFtZS0+b2JqZWN0IG1hcHBpbmdzLgoKMjAxMi0wMy0zMCAyMjowMToyNiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IGZpeCBpbmRlbnRhdGlvbgoKMjAxMi0wMy0zMCAxODowNDo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogaW1wcm92ZSB0aGUgYnVmZmVyIG1lbW9yeSBtZXRob2RzCgkgIGdzdF9idWZmZXJfdGFrZV9tZW1vcnkgLT4gZ3N0X2J1ZmZlcl9pbnNlcnRfbWVtb3J5IGJlY2F1c2UgaW5zZXJ0IGlzIHdoYXQgdGhlCgkgIG1ldGhvZCBkb2VzLgoJICBNYWtlIGFsbCBtZXRob2RzIGRlYWwgd2l0aCByYW5nZXMgc28gdGhhdCB3ZSBjYW4gcmVwbGFjZSwgbWVyZ2UsIHJlbW92ZSBhbmQgbWFwCgkgIGEgY2VydGFpbiBzdWJzZXQgb2YgdGhlIG1lbW9yeSBpbiBhIGJ1ZmZlci4gV2l0aCB0aGUgbmV3IG1ldGhvZHMgd2UgY2FuIG1ha2UKCSAgc29tZSBjb2RlIG5pY2VyIGFuZCByZXVzZSBtb3JlIGNvZGUuIEJlaW5nIGFibGUgdG8gZGVhbCB3aXRoIGEgc3Vic2V0IG9mIHRoZQoJICBidWZmZXIgbWVtb3J5IGFsbG93cyB1cyB0byBvcHRpbWl6ZSBtb3JlIGNhc2VzIGxhdGVyIChtb3N0IG5vdGFibHkgUlRQIGhlYWRlcnMKCSAgYW5kIHBheWxvYWQgdGhhdCBjb3VsZCBiZSBpbiBkaWZmZXJlbnQgbWVtb3J5IG9iamVjdHMpLgoJICBNYWtlIHNvbWUgbW9yZSBjb252ZW5pZW50IG1hY3JvcyB0aGF0IGNhbGwgdGhlIG1vcmUgZ2VuZXJpYyByYW5nZSBtZXRob2RzLgoKMjAxMi0wMy0zMCAxNjo1MzowOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IHBsdWcgY2FwcyBsZWFrcwoKMjAxMi0wMy0zMCAxNjo1MzowNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kaGVscGVyOiBhbHNvIHVubWFwIGNvbGxlY3RlZCBtYXBwZWQgYnVmZmVycwoKMjAxMi0wMy0zMCAxNjo1MzowMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcGx1ZyBjYXBzIGxlYWsKCjIwMTItMDMtMzAgMTE6NTg6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBSZW5hbWUgOjpldmVudCgpIHRvIDo6c2lua19ldmVudCgpIGZvciBjb25zaXN0ZW5jeQoKMjAxMi0wMy0zMCAxMTo0OToxNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgYmFzZXNpbms6IGxvd2VyIEdTVF9CQVNFX1NSQ19GTEFHX0xBU1QKCSAgSXQgd291bGRuJ3QgbGVhdmUgdGhhdCBtdWNoIHJvb20gZm9yIHN1YmNsYXNzIHVzZXJzCgoyMDEyLTAzLTMwIDA4OjU1OjMzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBkZWZzIGZpbGUKCjIwMTItMDMtMjkgMTg6MDM6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkgIGJ5dGV3cml0ZXI6IEFjdHVhbGx5IGNvbW1pdCB0aGUgLmMgZmlsZSBjaGFuZ2VzIHRvbwoKMjAxMi0wMy0yOSAxNzo1OToyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgYnl0ZXdyaXRlcjogQWRkIHVuY2hlY2tlZC9pbmxpbmUgdmFyaWFudCBvZiBnc3RfYnl0ZV93cml0ZXJfcHV0X2J1ZmZlcigpCgoyMDEyLTAzLTI5IDE3OjUzOjQ3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBnc3RxdWVyeTogRml4IGFubm90YXRpb24KCjIwMTItMDMtMjkgMTc6NDQ6MDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogRmx1c2ggdGhlIGludGVybmFsIHF1ZXVlIHdoZW4gd2Ugc2VlIEdTVF9GTE9XX0ZMVVNISU5HCgkgIEVuc3VyZXMgdGhhdCB3ZSBkb24ndCBlbmQgdXAgd2l0aCBzdGFsZSBjb250ZW50cyAobGlrZSBHc3RRdWVyeSkgaW4KCSAgdGhlIGludGVybmFsIEdRdWV1ZSBhZnRlciBhbnkgYmxvY2tpbmcgdXBzdHJlYW0gdGhyZWFkIHJldHVybnMuCgoyMDEyLTAzLTI5IDE3OjQzOjE3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IERvbid0IHVucmVmIEdzdFF1ZXJ5IHRyYXZlbGxpbmcgdGhyb3VnaCB0aGUgcXVldWUKCSAgVW5saWtlIGV2ZW50cyBhbmQgYnVmZmVycywgdGhlIHJlZmVyZW5jZSBpcyBub3QgZ2l2ZW4gdG8gdXMKCjIwMTItMDMtMjkgMTc6MDg6NDkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBwYXJzaW5nIGFsbG9jYXRpb24gcXVlcnkgbmVlZCBub3QgcHJvdmlkZSByZWZmZWQgY2FwcwoJICAuLi4gaW4gbGluZSB3aXRoIG90aGVyIHF1ZXJ5IHBhcnNpbmcgZnVuY3Rpb24uCgoyMDEyLTAzLTI5IDE1OjQ1OjAwICswMjAwICBGYWJyaXppbyAoTWlzdG8pIE1pbG8gPG1pc3RvYmFhbkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBzcGVsbGluZyBmaXhlcwoKMjAxMi0wMy0yOSAxNToyODo0NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBnc3RlbGVtZW50OiBsb3dlciBHU1RfRUxFTUVOVF9GTEFHX0xBU1QKCSAgSXQgd291bGRuJ3QgbGVhdmUgdGhhdCBtdWNoIHJvb20gZm9yIHN1YmNsYXNzIHVzZXJzCgoyMDEyLTAzLTI5IDE1OjE4OjMzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IEZpeCB1bml0aWFsaXplZCB2YXJpYWJsZQoJICBnY2MgNC41IGNvbXBsYWlucyBvdGhlcndpc2UgOigKCjIwMTItMDMtMjkgMTQ6NTQ6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgkgIENvbmZsaWN0czoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmMKCjIwMTItMDMtMjkgMTQ6NDU6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFdha2UgdXAgYWxsIG5vdC1saW5rZWQgc3RyZWFtcyB3aGVuIGEgc3RyZWFtIHN3aXRjaGVzIGZyb20gbGlua2VkIHRvIG5vdC1saW5rZWQKCSAgV2UgcmVzZXQgYWxsIHRoZSB3YWl0aW5nIHN0cmVhbXMsIGxldCB0aGVtIHB1c2ggYW5vdGhlciBidWZmZXIgdG8KCSAgc2VlIGlmIHRoZXkncmUgbm93IGFjdGl2ZSBhZ2Fpbi4gVGhpcyBhbGxvd3MgZmFzdGVyIHN3aXRjaGluZwoJICBiZXR3ZWVuIHN0cmVhbXMgYW5kIHByZXZlbnRzIGRlYWRsb2NrcyBpZiBkb3duc3RyZWFtIGRvZXMgYW55CgkgIHdhaXRpbmcgdG9vLgoJICBBbHNvIGltcHJvdmUgbG9ja2luZyBhIGJpdCwgc3JjcmVzdWx0IG11c3QgYmUgcHJvdGVjdGVkIGJ5IHRoZQoJICBtdWx0aXF1ZXVlIGxvY2sgdG9vIGJlY2F1c2UgaXQncyB1c2VkL3NldCBmcm9tIHJhbmRvbSB0aHJlYWRzLgoKMjAxMi0wMy0yOSAxNDozMjoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogUmVjb21wdXRlIGhpZ2gtdGltZSB0b28gd2hlbiBmbHVzaGluZywgbm90IG9ubHkgaGlnaC1pZAoKMjAxMi0wMy0yOSAxMzozOTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogT25seSB3YWl0IHVudGlsIHRoZSBhY3RpdmUgcGFkJ3MgcnVubmluZyB0aW1lIGlzIHJlYWNoZWQgaWYgdGhlIGFjdGl2ZSBwYWQgYWxyZWFkeSBzYXcgZGF0YQoJICBPdGhlcndpc2Ugd2UgbWlnaHQgYmxvY2sgZm9yZXZlciBiZWNhdXNlIHVwc3RyZWFtIChlLmcuIG11bHRpcXVldWUpIGlzIHdhaXRpbmcKCSAgZm9yIHRoZSBwcmV2aW91c2x5IGFjdGl2ZSBzdHJlYW0gdG8gcmV0dXJuIGZvcmV2ZXIgKHdoaWNoIGlzIHdhaXRpbmcgaGVyZQoJICBpbiBpbnB1dHNlbGVjdG9yKSBiZWZvcmUgcHVzaGluZyBzb21ldGhpbmcgb24gdGhlIG5ld2x5IHNlbGVjdGVkIHN0cmVhbS4KCjIwMTItMDMtMjkgMTM6MzQ6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBkb2NzOiB1cGRhdGUgbW9yZSBkb2N1bWVudGF0aW9uCgoyMDEyLTAzLTI4IDE4OjEyOjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtZXZlbnRzLnhtbDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICByZXZpZXcgc29tZSBkb2NzCgoyMDEyLTAzLTI4IDE2OjQ0OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHNpbXBsaWZ5IGFuZCByZWZhY3RvciBfc3BhbiBhbmQgX21lcmdlCgkgIFVuaWZ5IHRoZSBfc3BhbiBhbmQgX21lcmdlIGNvZGUgcGF0aHMgYW5kIHNpbXBsaWZ5IG5vdyB0aGF0IHdlIG9ubHkgdXNlIHRoaXMKCSAgaW50ZXJuYWxseS4KCjIwMTItMDMtMjggMTU6MTY6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogd2UgYWx3YXlzIGNhbGwgX3NwYW4gd2l0aCB0aGUgYnVmZmVyIHNpemUKCjIwMTItMDMtMjggMTU6MTI6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogbW92ZSBzb21lIGNvZGUgYXJvdW5kCgoyMDEyLTAzLTI4IDE1OjA4OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHdlIGNhbGwgX3NwYW4gYWx3YXlzIHdpdGggMCBvZmZzZXQKCjIwMTItMDMtMjggMTM6MDg6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogcmVtb3ZlIGFsd2F5cyBGQUxTRSBmdW5jdGlvbiBhcmd1bWVudAoKMjAxMi0wMy0yOCAxNjozOTo1NCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZGVsYXkgYnVmZmVyIHVucmVmIHVudGlsIGJ1ZmZlciBubyBsb25nZXIgbmVlZGVkCgoyMDEyLTAzLTI4IDEyOjQ0OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogdW5pZnkgYnVmZmVyIG1lcmdlIG1ldGhvZHMKCSAgQWRkIGdzdF9idWZmZXJfYXBwZW5kKCkgd2hpY2ggYXBwZW5kcyB0aGUgbWVtb3J5IGJsb2NrcyBmcm9tIG9uZSBidWZmZXIgdG8KCSAgYW5vdGhlci4gUmVtb3ZlIHRoZSBvbGQgaW5lZmZpY2llbnQgX21lcmdlKCkgYW5kIF9qb2luKCkgbWV0aG9kcyB3aGljaCBmb3JjZWQgYQoJICBwcmVtYXR1cmUgbWVtY3B5IGluIG1vc3QgY2FzZXMuCgkgIFJlbW92ZSB0aGUgX2lzX3NwYW4oKSBhbmQgX3NwYW4oKSBtZXRob2RzIHRoZXkgYXJlIG5vdCBuZWVkZWQgYW55bW9yZSBub3cgdGhhdAoJICB3ZSBjYW4gX2FwcGVuZCgpLiBNZXJnaW5nIGFuZCBzcGFubmluZyB3aWxsIGJlIGRlbGF5ZWQgdW50aWwgbWFwcGluZyBvciBtYXliZQoJICBub3QgYXQgYWxsIHdoZW4gdGhlIGVsZW1lbnQgY2FuIGRlYWwgd2l0aCB0aGUgZGlmZmVyZW50IG1lbW9yeSBibG9ja3MuCgoyMDEyLTAzLTI3IDE1OjI0OjQ5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdzdHBhZDogRml4IHR5cG8gaW4gZG9jc3RyaW5nCgoyMDEyLTAzLTI3IDE1OjI0OjQ5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdzdHBhZDogRml4IHR5cG8gaW4gZG9jc3RyaW5nCgoyMDEyLTAzLTI3IDE1OjE2OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHJlLWVuYWJsZSBfc3BhbiBvZmZzZXQgY2FsY3VsYXRpb25zCgkgIHdoZW4gd2UgX3NwYW4gdHdvIGNvbXBsZXRlIGJ1ZmZlcnMsIHdlIGNhbiBjb3B5IG9mZnNldHMgYW5kIHRpbWVzdGFtcHMuCgoyMDEyLTAzLTI3IDE1OjAwOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIHRyYWNlOiBhZGQgcmVmY291bnQgdG8gdHJhY2UgZGVidWcKCjIwMTItMDMtMjcgMTQ6NTk6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWRkIG1vcmUgX2lzX3dyaXRhYmxlIGNoZWNrcwoJICBBZGQgc29tZSBjaGVja3MgdG8gYXNzZXJ0IG9uIHdyaXRhYmlsaXR5IGZvciBmdW5jdGlvbnMgdGhhdCBtb2RpZnkgbWV0YWRhdGEuCgoyMDEyLTAzLTI3IDEyOjQwOjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogcmVtb3ZlIGNvbnN0IGZyb20gZ2V0L3NldF9wYXJhbQoJICBSZW1vdmUgdGhlIGNvbnN0IGZyb20gdGhlIEdzdENhcHMgaW4gZ2V0L3NldF9wYXJhbS4gc2V0X3BhcmFtIG1vZGlmaWVzCgkgIHRoZSByZWZjb3VudCBvZiB0aGUgY2Fwcy4KCSAgRG9uJ3QgaW5jcmVtZW50IHRoZSByZWZjb3VudCBvZiB0aGUgY2FwcyByZXN1bHQgb2YgZ2V0X3BhcmFtIGxpa2Ugd2UKCSAgZG8gd2l0aCBvdGhlciBvYmplY3RzLgoJICBVcGRhdGUgc29tZSBhbm5vdGlhdGlvbnMuCgoyMDEyLTAzLTI3IDEyOjM5OjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogZml4IGFubm90YXRpb24gZm9yIF9yZWxlYXNlCgkgIF9yZWxlYXNlIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgYnVmZmVyCgoyMDEyLTAzLTI3IDEyOjMxOjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJICBidXM6IENoYW5nZSB0aGUgdGltZW91dCBhcmd1bWVudCB0eXBlIG9mIGdzdF9idXNfcG9sbCgpIGZyb20gR3N0Q2xvY2tUaW1lRGlmZiB0byBHc3RDbG9ja1RpbWUKCSAgVGhpcyBpcyBtb3JlIGNvbnNpc3RlbnQgd2l0aCB0aGUgb3RoZXIgR3N0QnVzIG1ldGhvZHMgdGhhdCBoYXZlIGEgdGltZW91dC4KCjIwMTItMDMtMjYgMTk6MTM6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiByZW1vdmUgb2xkIGNvZGUKCSAgUmVtb3ZlIGF0dGVtcHQgdG8gZGVsYXkgX21ha2Vfd3JpdGFibGUKCjIwMTItMDMtMjYgMTg6MDc6MzUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZW5zdXJlIHdyaXRhYmxlIGNhcHMgcHJpb3IgdG8gbW9kaWZpY2F0aW9uCgoyMDEyLTAzLTI2IDE3OjM4OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogY2hlY2sgbWluL21heF9idWZmZXJzCgoyMDEyLTAzLTI2IDE3OjM1OjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OmZpeCBjb3B5LWFuZC1wYXN0ZSBwcm9ibGVtCgoyMDEyLTAzLTI2IDExOjU0OjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgUmVwbGFjZSBtYXN0ZXIgd2l0aCAwLjExCgoyMDEyLTAzLTIzIDE4OjUxOjUyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogYWRkIGFuZCBpbXByb3ZlIGRlYnVnIG1lc3NhZ2VzCgkgIC4uLiBzbyB0aGV5IGVuZCB1cCBpbiBhIG1vcmUgZXhwZWN0ZWQgZGVidWcgY2F0ZWdvcnkgcmF0aGVyIHRoYW4gb2JsaXZpb24uCgoyMDEyLTAzLTIyIDE1OjU0OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIGRldmVsCgoyMDEyLTAzLTIyIDE1OjQ5OjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC1idWlsZC5zdGFtcDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3Quc3RhbXA6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTEuMwoKMjAxMi0wMy0yMiAxNToyMjo1NyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVtb3ZlIGF1dG9tYXRpYyBhbmQgdW5kb2N1bWVudGVkIHNldHRpbmcgb2YgYWx3YXlzX2luX3BsYWNlCgkgIC4uLiB3aGljaCBjb250cm9scyBob3cgdG8gKGZvcmNpYmx5KSBkZWFsIHdpdGggKG5vbi0pd3JpdGFibGUgZGF0YSBhbmQKCSAgaXMgbm90IG5lY2Vzc2FyaWx5IHJlbGF0ZWQgdG8gaWRlbnRpY2FsIGNhcHMuCgkgIEluIHBhcnRpY3VsYXIsIGl0IGlzIGFsc28gbm90IHNvIGhlbHBmdWwgYW55bW9yZSB3aXRoIGEgbW9yZSBhZHZhbmNlZAoJICBHc3RWaWRlb0ZpbHRlciBzdWJjbGFzcyB3aGljaCBhbHdheXMgaGFzIGEgdHJhbnNmb3JtX2lwIG1ldGhvZCBjdXJyZW50bHksCgkgIGV2ZW4gdGhvdWdoIGl0cyBzdWJjbGFzcyBtYXkgbm90IGhhdmUgYSBjb3JyZXNwb25kaW5nIF9pcCBtZXRob2QuCgoyMDEyLTAzLTIyIDEwOjQ1OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGNvbmZpZ3VyZS5hYwoKMjAxMi0wMy0yMiAwODozNToyNSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogZG9uJ3Qgc2hhZG93IGdsb2JhbCB2YXJpYWJsZQoKMjAxMi0wMy0yMSAxMjoxMDoyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJICBkaXN0IG5ldCBkaXJlY3Rvcnkgb25seSBvbmNlCgoyMDEyLTAzLTIxIDA5OjAwOjQ1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogT25seSBhbGxvdyBmaXhlZCBjYXBzIGluIHRoZSBhY2NlcHQtY2FwcyBxdWVyeQoKMjAxMi0wMy0yMCAxNzowODoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG8gcXVlcmllcyBtb3JlIGRpcmVjdGx5CgkgIEp1c3QgY2FsbCBvdXIgaW50ZXJuYWwgcXVlcnkgZnVuY3Rpb24gaW5zdGVhZCBvZiBnb2luZyB0aHJvdWdoIHRoZSBwYWQgYW5kIHRoZQoJICBxdWVyeSBoYW5kbGVyIGV0Yy4KCjIwMTItMDMtMjAgMTc6MDg6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogYWRkIHNvbWUgcGVyZm9ybWFuY2UgZGVidWcKCjIwMTItMDMtMjAgMTM6MTQ6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBwYWQ6IGltcHJvdmUgZG9jcyBvZiBnZXQvcHVsbF9yYW5nZQoJICBJbXByb3ZlIHRoZSBkb2NzIG9mIHRoZSBnZXQvcHVsbF9yYW5nZSBmdW5jdGlvbnMsIGRlZmluZSB0aGUgbGlmZXRpbWUgb2YgdGhlCgkgIGJ1ZmZlciBpbiBjYXNlIG9mIGVycm9ycyBhbmQgc2hvcnQgcmVhZHMuCgkgIE1ha2Ugc3VyZSB0aGUgY29kZSBkb2VzIHdoYXQgdGhlIGRvY3Mgc2F5LgoKMjAxMi0wMy0yMCAxMDoyMDoyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgYnVmZmVyOiBpbXByb3ZlIGdzdF9idWZmZXJfbmV3X3dyYXBwZWRfZnVsbCgpCgkgIE1ha2UgaXQgcG9zc2libGUgdG8gd3JhcCBhbGwga2luZHMgb2YgbWVtb3J5IGJ5IGV4cG9zaW5nIGFsbCBwcm9wZXJ0aWVzIHRvCgkgIGdzdF9idWZmZXJfbmV3X3dyYXBwZWRfZnVsbCgpLiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGFsc28gY3JlYXRlIHdyaXRhYmxlCgkgIG1lbW9yeSB3aXRob3V0IGEgZnJlZSBmdW5jdGlvbiBvciBtZW1vcnkgd2l0aCBleHRyYSBwYWRkaW5nLgoKMjAxMi0wMy0xOSAxMTo0NToyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBoYW5kbGUgc2VyaWFsaXplZCBxdWVyaWVzCgoyMDEyLTAzLTE2IDIyOjUxOjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBtYWtlIG1vcmUgc3R1ZmYgcHJpdmF0ZQoKMjAxMi0wMy0xNiAyMjoyNTozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBzbWFsbCBjbGVhbnVwcwoKMjAxMi0wMy0xNiAyMTozNzoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgcGFkOiBjaGFuZ2UgdGhlIHNlbWFudGljcyBvZiBnZXQvcHVsbF9yYW5nZSBhIGxpdHRsZQoJICBNYWtlIGl0IHNvIHRoYXQgb25lIGNhbiBzcGVjaWZ5IGEgYnVmZmVyIGZvciBnZXQvcHVsbF9yYW5nZSB3aGVyZSB0aGUgZG93bnN0cmVhbQoJICBlbGVtZW50IHNob3VsZCB3cml0ZSBpbnRvLiBXaGVuIHBhc3NpbmcgTlVMTCwgdXBzdHJlYW0gc2hvdWxkIGFsbG9jYXRlIGEgYnVmZmVyLAoJICBsaWtlIGluIDAuMTAuCgkgIFdlIGFsc28gbmVlZCB0byBjaGFuZ2UgdGhlIHByb2JlcyBhIGxpdHRsZSBiZWNhdXNlIGJlZm9yZSB0aGUgcHVsbCBwcm9iZSwgdGhlcmUKCSAgY291bGQgYWxyZWFkeSBiZSBhIGJ1ZmZlciBwYXNzZWQuIFRoaXMgdGhlbiBhbGxvd3MgdXMgdG8gdXNlIHRoZSBzYW1lIFBST0JFCgkgIG1hY3JvIGZvciBiZWZvcmUgYW5kIGFmdGVyIHB1bGxpbmcuCgkgIFdoaWxlIHdlJ3JlIGF0IHRoZSBwcm9iZXMsIG1ha2UgdGhlIHF1ZXJ5IHByb2JlIG1vcmUgcG93ZXJmdWwgYnkgaGFuZGxpbmcgdGhlCgkgIEdTVF9QQURfUFJPQkVfRFJPUCByZXR1cm4gdmFsdWUuIFJldHVybmluZyBfRFJPUCBmcm9tIGEgcXVlcnkgcHJvYmUgd2lsbCBub3cKCSAgcmV0dXJuIFRSVUUgdXBzdHJlYW0gYW5kIHdpbGwgbm90IGZvcndhcmQgdGhlIHByb2JlIHRvIHRoZSBwZWVyIG9yIGhhbmRsZXIuCgkgIEFsc28gaGFuZGxlIF9EUk9QIGZvciBnZXQvcHVsbF9yYW5nZSBwcm9wZXJseSBieSBub3QgZGlzcGF0Y2hpbmcgdG8gdGhlCgkgIHBlZXIvaGFuZGxlciBvciBieSBnZW5lcmF0aW5nIEVPUyB3aGVuIHRoZSBwcm9iZSByZXR1cm5zIERST1AgYW5kIG5vIGJ1ZmZlci4KCSAgTWFrZSBmaWxlc3JjIGhhbmRsZSB0aGUgbm9uLU5VTEwgYnVmZmVyIHBhc3NlZCBpbiB0aGUgZ2V0X3JhbmdlIGZ1bmN0aW9uIGFuZAoJICBza2lwIHRoZSBhbGxvY2F0aW9uIGluIHRoYXQgY2FzZSwgd3JpdGluZyBkaXJlY3RseSBpbnRvIHRoZSBkb3duc3RyZWFtIHByb3ZpZGVkCgkgIGJ1ZmZlci4KCSAgVXBkYXRlIHRlc3RzIGJlY2F1c2Ugbm93IHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRvIG5vdCBwYXNzIGEgcmFuZG9tIHZhbHVlIGluIHRoZQoJICBidWZmZXIgcG9pbnRlciB0byBnZXQvcHVsbF9yYW5nZQoKMjAxMi0wMy0xNiAyMTozNjozMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBwcm94eSBhbGxvY2F0aW9uIHF1ZXJ5CgoyMDEyLTAzLTE2IDE4OjM5OjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBmaXggZG9jcyBhIGxpdHRsZSwgYWxsb2NfYnVmZmVyIGlzIGdvbmUKCjIwMTItMDMtMTUgMjI6MDk6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVycG9vbDogc3BsaXQgYnVmZmVycG9vbCBjb25maWd1cmF0aW9uCgkgIE1ha2Ugc2VwYXJhdGUgbWV0aG9kcyB0byBjb250cm9sIHRoZSBidWZmZXJwb29sIGFuZCB0aGUgYWxsb2NhdG9yIHVzZWQgYnkgdGhlCgkgIGJ1ZmZlcnBvb2wuCgkgIE1ha2UgaXQgcG9zc2libGUgdG8gY2hhbmdlIHRoZSBhbGxvY2F0b3Igb2YgYSBwb29sLgoKMjAxMi0wMy0xNSAyMDoyMzo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcXVlcnk6IHJld29yayB0aGUgQUxMT0NBVElPTiBxdWVyeQoJICBTZXBhcmF0ZSB0aGUgYnVmZmVycG9vbCBhbmQgYWxsb2NhdG9yIGhpbnRzIGluIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5LCBzb21lCgkgIG9mIHRoZSB2YWx1ZXMgZG9uJ3QgYWx3YXlzIG1ha2Ugc2Vuc2UgdG9nZXRoZXIuCgkgIEtlZXAgdGhlIGJ1ZmZlcnBvb2wgYW5kIGl0cyBjb25maWd1cmF0aW9uIHRvZ2V0aGVyLgoJICBLZWVwIHRoZSBhbGxvY2F0b3IgYW5kIGl0cyBwYXJhbWV0ZXJzIHRvZ2V0aGVyLgoJICBBbGxvdyBmb3IgbXVsdGlwbGUgYnVmZmVycG9vbCBjb25maWd1cmF0aW9ucyBpbiB0aGUgcXVlcnkuCgoyMDEyLTAzLTE1IDE2OjUwOjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNvbW1lbnQgYW5kIGRlYnVnIGltcHJvdmVtZW50CgoyMDEyLTAzLTE1IDE2OjQ5OjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBpbXByb3ZlIGRlYnVnCgkgIGFsc28gZml4IGEgcG90ZW50aWFsIG1lbW9yeSBsZWFrCgoyMDEyLTAzLTE1IDE0OjI4OjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMi0wMy0xNSAxNDowMTo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgR3N0QnVmZmVyUG9vbFBhcmFtcyAtPiBHc3RCdWZmZXJQb29sQWNxdWlyZVBhcmFtcwoJICBCZWNhdXNlIHRob3NlIGZsYWdzIGFyZSBub3QgZnJvbSB0aGUgYnVmZmVycG9vbCBidXQgZm9yIHRoZSBhY3F1aXJlIGZ1bmN0aW9uLgoKMjAxMi0wMy0xNSAxMzoyODoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lbW9yeTogZ3JvdXAgYWxsb2NhdGlvbiBwYXJhbWV0ZXJzIGluIGEgc3RydWN0CgkgIEdyb3VwIHRoZSBleHRyYSBhbGxvY2F0aW9uIHBhcmFtZXRlcnMgaW4gYSBHc3RBbGxvY2F0aW9uUGFyYW1zIHN0cnVjdHVyZSB0byBtYWtlCgkgIGl0IGVhc2llciB0byBkZWFsIHdpdGggdGhlbSBhbmQgc28gdGhhdCB3ZSBjYW4gZXh0ZW5kIHRoZW0gbGF0ZXIgaWYgbmVlZGVkLgoJICBNYWtlIGdzdF9idWZmZXJfbmV3X2FsbG9jYXRlKCkgdGFrZSB0aGUgR3N0QWxsb2NhdGlvblBhcmFtcyBmb3IgYWRkZWQKCSAgZnVuY3Rpb25hbGl0eS4KCSAgQWRkIGJveGVkIHR5cGUgZm9yIEdzdEFsbG9jYXRpb25QYXJhbXMuCgoyMDEyLTAzLTE1IDAwOjI1OjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IG9ubHkgdXBkYXRlIGJ1ZmZlciBzaXplIG9uIHNob3J0IHJlYWQKCjIwMTItMDMtMTUgMDA6MjQ6NDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGZpeCBjb3B5IGZ1bmN0aW9uCgkgIENvcHkgdGhlIHN0cnVjdHVyZSB0b28uCgoyMDEyLTAzLTE1IDAwOjIzOjU3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGZpeCBtYXhzaXplIGFmdGVyIGFsaWduCgkgIHdoZW4gd2UgYWxpZ24gdGhlIGRhdGEgcG9pbnRlciwgbWFrZSBzdXJlIHRvIHVwZGF0ZSB0aGUgbWF4c2l6ZS4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZwoKMjAxMi0wMy0xNCAyMjo1ODozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWU6IHJlbW92ZSB1c2VsZXNzIFBST1hZX0FMTE9DQVRJT04gZmxhZwoKMjAxMi0wMy0xNCAyMTozMjoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogQWRkIDAgcGFkZGluZwoJICBDaGFuZ2UgZ3N0X2FsbG9jYXRvcl9hbGxvYygpIHNvIHRoYXQgd2UgY2FuIGFsc28gc3BpY2lmeSBmbGFncyBhbmQgcGFkZGluZy4KCSAgQWRkIDIgbmV3IGZsYWdzIHRvIG1hcmsgdGhlIG1lbW9yeSAwIHByZWZpeGVkL3BhZGRlZC4gVGhpcyBhbGxvd3MgdXMgdG8KCSAgcmVtb3ZlIHNvbWUgcmVzaXplcyBpbiB0aGUgYmFzZSBjbGFzc2VzLgoJICBXaGVuIGFsbG9jYXRpbmcgbWVtb3J5LCBtZW1zZXQgcHJlZml4IGFuZCBwYWRkaW5nIHdpdGggMCB3aGVuIHRoZSBmbGFncyB0ZWxsCgkgIHVzIHRvLgoJICBPbiByZXNpemUsIGNsZWFyIHRoZSB6ZXJvIHBhZGRpbmcgZmxhZ3MgaWYgd2UgY2FuJ3QgZ3VhcmFudGVlIHRoZSBtZW1vcnkgaXMKCSAgc3RpbGwgMCBmaWxsZWQuCgkgIFVwZGF0ZSB0ZXN0cy4KCjIwMTItMDMtMTQgMTk6Mzc6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBxdWVyeTogYWxzbyBpbmNsdWRlIHBhZGRpbmcgaW4gQUxMT0NBVElPTiBxdWVyeQoJICBOZWdvdGlhdGluZyBwYWRkaW5nIGlzIG5lZWRlZCBvbiBzZWNvbmQgdGhvdWdodCBzbyBpbmNsdWRlIGl0IGluIHRoZQoJICBBTExPQ0FUSU9OIHF1ZXJ5LgoJICBNYWtlIHRoZSBidWZmZXJwb29sIHRha2UgcGFkZGluZyBpbnRvIGFjY291bnQgd2hlbiBhbGxvY2F0aW5nLgoJICBNYWtlIGJhc2VzcmMgdGFrZSBwYWRkaW5nIGludG8gYWNjb3VudC4KCSAgVXNlIHBhZGRpbmcgYW5kIHByZWZpeCB3aGVuIGFsbG9jYXRpbmcgaW4gYmFzZXRyYW5zZm9ybS4KCjIwMTItMDMtMTQgMTg6NDU6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogdGFrZSBwcmVmaXggaW50byBhY2NvdW50IHdoZW4gYWxsb2NhdGluZwoJICBUYWtlIGludG8gYWNjb3VudCB0aGUgcHJlZml4IHRoYXQgd2UgcmVjZWl2ZWQgZnJvbSB0aGUgYWxsb2NhdGlvbiBxdWVyeSBhbmQgdXNlCgkgIGl0IHRvIGFsbG9jYXRlIGFuZCByZXNpemUgYSBsYXJnZXIgYnVmZmVyLgoKMjAxMi0wMy0xNCAxNzoxNjozNiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBmcmVlIG93bmVkIGRpc2NhcmRlZCBwb29sIGNvbmZpZwoKMjAxMi0wMy0xNCAxNjoyNzozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBwYWQ6IGltcGxlbWVudCBEUkFJTiBoYW5kbGluZwoJICBXaGVuIHdlIGZvcndhcmQgdGhlIERSQUlOIHF1ZXJ5IGFuZCB0aGVyZSBpcyBub3RoaW5nIHRvIGZvcndhcmQgaXQgdG8sIGFzc3VtZSB3ZQoJICBhcmUgZHJhaW5lZC4KCSAgV2hlbiBhIGJhc2VzaW5rIHJlY2VpdmVzIGEgZHJhaW4gcXVlcnksIHJlcGx5IHdpdGggVFJVRS4KCjIwMTItMDMtMTQgMTY6MTQ6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiBhZGQgbmV3IGRyYWluIHF1ZXJ5CgkgIFdpdGggdGhlIG5ldyBzZXJpYWxpemVkIGRvd25zdHJlYW0gcXVlcmllcyB3ZSBjYW4gaW1wbGVtZW50IGEgZHJhaW4gcXVlcnkgdGhhdAoJICBtYWtlcyBhbiBlbGVtZW50IHdhaXRzIHVudGlsIGEgZG93bnN0cmVhbSBlbGVtZW50IHJlcGxpZXMgdG8gdGhlIHF1ZXJ5LgoKMjAxMi0wMy0xNCAxNjowMToxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBtYWtlIHNlcmlhbGl6ZWQgcXVlcmllcyBwdXNoIHN0aWNreSBldmVudHMgZmlyc3QKCSAgQmVmb3JlIHdlIGNhbiBwcm9jZWVkIHdpdGggYSBzZXJpYWxpemVkIHF1ZXJ5LCB3ZSBuZWVkIHRvIGJlIHN1cmUgdGhhdCBhbGwKCSAgc3RpY2t5IGV2ZW50cyB3ZXJlIHB1c2hlZC4KCjIwMTItMDMtMTQgMTU6NDI6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWVzOiB3YXJuIHdoZW4gcmVjZWl2aW5nIGEgc2VyaWFsaXplZCBldmVudAoJICAuLiB1bnRpbCB3ZSBpbXBsZW1lbnQgaXQuCgoyMDEyLTAzLTE0IDE1OjQyOjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiBhZGQgc3VwcG9ydCBmb3Igc2VyaWFsaXplZCBxdWVyaWVzCgoyMDEyLTAzLTE0IDE1OjI5OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHRha2Ugc3RyZWFtIGxvY2sgb24gc2VyaWFsaXplZCBxdWVyaWVzCgoyMDEyLTAzLTE0IDE1OjE2OjU2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGVuZm9yY2UgY29ycmVjdCBxdWVyeSBkaXJlY3Rpb24KCjIwMTItMDMtMTQgMTQ6NTE6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiByZWdpc3RlciBxdWVyaWVzIGxpa2UgZXZlbnRzCgkgIEFsc28gcmVnaXN0ZXIgcXVlcmllcyB3aXRoIGEgUXVlcnlUeXBlIHRoYXQgYWxsb3dzIHVzIHRvIGNoZWNrIGlmIHRoZSBldmVudCBpcwoJICBzZW50IGluIHRoZSByaWdodCBkaXJlY3Rpb24uIEFkZCBhIHNlcmlhbGl6ZWQgcXVlcnkgdHlwZSBiZWNhdXNlIHdlIHdpbGwgbmVlZAoJICB0aGlzIGZvciB0aGUgYWxsb2NhdGlvbiBxdWVyeS4KCSAgUmVtb3ZlIHRoZSBRdWVyeVR5cGVEZWZpbml0aW9uIHN0dWZmLCBpdCBpcyBub3QgdXNlZCBhbnltb3JlIGFuZCB3ZSBub3cgdXNlCgkgIGN1c3RvbSBxdWVyaWVzIGFuZCBzZXBhcmF0ZSBBUEkgZm9yIHRoZW0uCgkgIFVwZGF0ZSBkZWZzLgoKMjAxMi0wMy0xNCAxMjo0MjowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBhZGQgbW9yZSBkZWJ1ZwoKMjAxMi0wMy0xMyAxNTo0MDozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiByZW1vdmUgb2xkIGNvbXBhdCBtb2RlCgoyMDEyLTAzLTEzIDE1OjQwOjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogc21hbGwgZG9jcyB1cGRhdGUKCjIwMTItMDMtMTMgMTA6MDQ6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiByZW1vdmUgZ3N0X2NhcHNfdW5pb24oKQoJICBSZW1vdmUgZ3N0X2NhcHNfdW5pb24oKSwgdXNlIGdzdF9jYXBzX21lcmdlKCkuIFRoaXMgZnVuY3Rpb24gd2FzIG5vdCB1c2VkCgkgIGFueW1vcmUgYW5kIGl0IGlzIHVuY2xlYXIgd2hhdCB0aGUgZGlmZmVyZW5jZSBpcyB3aXRoIF9tZXJnZSgpLgoKMjAxMi0wMy0xMiAyMzowNTowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYnVtcCBBU19MSUJUT09MIHZlcnNpb24KCSAgQVBJIHdhcyBhZGRlZCB0byBjb2xsZWN0cGFkczIKCjIwMTItMDMtMTIgMjM6MDI6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJhY2twb3J0IEFTX0xJQlRPT0wgdmVyc2lvbiBmcm9tIDAuMTAuMzYgcmVsZWFzZQoJICBNaWdodCBmaXggaXNzdWVzIHdpdGggbWlzc2luZyBzeW1ib2xzIGZvciBwZW9wbGUgd2hvIGluc3RhbGwgR1N0cmVhbWVyCgkgIGZyb20gc291cmNlIGFuZCBhdCBzb21lIHBvaW50IGp1bXBlZCBiYWNrIGFuZCBmb3J0aCBiZXR3ZWVuIGdpdCBtYXN0ZXIKCSAgYW5kIHRoZSAwLjEwLjM2IHJlbGVhc2UgKG9yIDAuMTAuIGJyYW5jaCkuCgoyMDEyLTAzLTEyIDIzOjA4OjAwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgZG9jczogZml4IGZ1bmN0aW9uIG5hbWUgYW5kIHR5cG8KCjIwMTItMDMtMTIgMTk6NTI6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZ2V0IHRlbXBsYXRlIGNhcHMgb25seSBvbmNlCgkgIEdldCB0aGUgdGVtcGxhdGUgY2FwcyBvZiB0aGUgcGFkcyBvbmx5IG9uY2UsIGF2b2lkcyB1bmVjZXNzYXJ5IHJlZgoJICBhbmQgdW5yZWZzLgoKMjAxMi0wMy0xMiAxODozNDozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGRlbGF5IF9tYWtlX3dyaXRhYmxlKCkgdW50aWwgbmVlZGVkIGluIF9ub3JtYWxpemUoKQoJICBEZWxheSBfbWFrZV93cml0YWJsZSgpIHVudGlsIHdlIGFjdHVhbGx5IGZvdW5kIGEgbGlzdCBhbmQgbmVlZCB0byB1cGRhdGUgdGhlCgkgIGNhcHMuCgoyMDEyLTAzLTEyIDE4OjI1OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogc2hvcnRjdXQgc2ltcGxpZnkgZWFybGllcgoJICBBIHNpbXBsZSBjYXBzIGlzIGFscmVhZHkgc2ltcGxpZmllZCwgbm8gbmVlZCB0byBjaGVjayBmb3IgZml4ZWRuZXNzLgoKMjAxMi0wMy0xMiAxODoyMjowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHNtYWxsIGNsZWFudXAsIHJlbW92ZSBjb25zdAoKMjAxMi0wMy0xMiAxODowMjoyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHNtYWxsIGNsZWFudXBzCgoyMDEyLTAzLTEyIDE2OjQwOjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogc21hbGwgZG9jIGltcHJvdmVtZW50CgoyMDEyLTAzLTEyIDE2OjE4OjQ1ICswMjAwICBTcmVlcmVuaiBCYWxhY2hhbmRyYW4gPHNyZWVyZW5qLmJhbGFjaGFuZHJhbkBpbnRlbC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogYnVtcCByZXF1aXJlZCBHTGliIHRvIDIuMzEuMTQKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MTkxMQoKMjAxMi0wMy0xMiAxMzo1MDo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgcG9ydGluZy10by0wLjExLnR4dCBhIGxpdHRsZQoKMjAxMi0wMy0xMiAxMjozNTowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGZpeCBzb21lIDAuMTEgRklYTUVzCgoyMDEyLTAzLTEyIDEyOjIxOjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogbWFrZSBfbm9ybWFsaXplIHRha2Ugb3duZXJzaGlwIG9mIGlucHV0CgkgIE1ha2UgZ3N0X2NhcHNfbm9ybWFsaXplKCkgdGFrZSBvd25lcnNoaXAgb2YgdGhlIGlucHV0IHNvIHRoYXQgaXQgY2FuIG1vcmUKCSAgaW50ZWxsaWdlbnRseSBkZWNpZGUgd2hlbiB0byBjb3B5IG9yIG5vdC4KCjIwMTItMDMtMTIgMTE6Mzg6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2FwczogX2RvX3NpbXBsaWZ5KCkgLT4gX3NpbXBsaWZ5KCkKCSAgUmVuYW1lIF9kb19zaW1wbGlmeSgpIHRvIF9zaW1wbGlmeSgpLiBUaGUgbmFtZSB3YXMgaW50cm9kdWNlZCBhcyBhIHJlcGxhY2VtZW50CgkgIG1ldGhvZCBmb3IgYSBkZXByZWNhdGVkIG1ldGhvZCBidXQgd2UgY2FuIG5vdyByZW5hbWUgaXQgYWdhaW4uCgkgIEZpeCBzb21lIGRvY3MuCgoyMDEyLTAzLTEyIDEwOjQyOjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBpbXByb3ZlIF9kb19zaW1wbGlmeQoJICBNYWtlIGdzdF9jYXBzX2RvX3NpbXBsaWZ5KCkgdGFrZSBvd25lcnNoaXAgb2YgdGhlIGlucHV0IGNhcHMgYW5kIHByb2R1Y2UgYQoJICBzaW1wbGlmaWVkIG91dHB1dCBjYXBzLiBUaGlzIHJlbW92ZXMgdGhlIHJlcXVpcmVtZW50IG9mIGhhdmluZyB3cml0YWJsZSBpbnB1dAoJICBjYXBzIGFuZCB0aGUgbWV0aG9kIGNhbiBtYWtlIHRoZSBjYXBzIHdyaXRhYmxlIG9ubHkgd2hlbiBuZWVkZWQuCgoyMDEyLTAzLTEyIDEwOjQxOjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogZml4IHVuaXQgdGVzdAoJICB3aXRoIHRoZSBuZXcgY2FwcyBBUEksIHRoZXJlIGlzIG1vcmUgc2hhcmluZyBhbmQgbGVzcyBjb3B5aW5nIGdvaW5nIG9uIHNvIHRoZQoJICB1bml0IHRlc3QgcmVmY291bnRzIGFyZSBkaWZmZXJlbnQuCgoyMDEyLTAzLTEyIDA5OjAzOjQyICswMDAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDxjaHJpc3RpYW4uc2NoYWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZ2VuZXJhbC54bWw6CgkgIHVwZGF0ZSBsaWNlbnNlIGxpbmsgdG8gcG9pbnQgdG8gMi4xIGxpY2Vuc2UsIGluc3RlYWQgb2YganVzdCBnZW5lcmljIGxncGwgZmlsZSwgd2hpY2ggaXMgYWx3YXlzIHRoZSBsYXRlc3QgYW5kIHRodXMgbm90IGNvcnJlY3QgZm9yIGdzdHJlYW1lcgoKMjAxMi0wMy0xMSAxODo1Nzo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBhdm9pZCB1c2luZyBpbi1wbGFjZSBvcHJhdGlvbnMKCSAgUmV3b3JrIHNvbWUgY2FwcyBvcGVyYXRpb25zIHNvIHRoZXkgZG9uJ3QgcmVseSBvbiB3cml0YWJsZSBjYXBzIGJ1dCBpbnN0ZWFkIHRha2UKCSAgb3duZXJzaGlwIG9mIHRoZSBpbnB1dCBjYXBzIGFuZCBkbyBfbWFrZV93cml0YWJsZSgpIG9ubHkgd2hlbiBuZWVkZWQuCgkgIFJlbW92ZSBzb21lIGNvbnN0IGZyb20gY2FwcyBmdW5jdGlvbnMsIGl0IGRvZXMgbm90IG1ha2UgbXVjaCBzZW5zZSBmb3IKCSAgcmVmY291bnRlZCBvYmplY3RzIGFuZCBkb2VzIG5vdCBhbGxvdyB1cyB0byByZXR1cm4gYSByZWZjb3VudCB0byB0aGUgY29uc3QgaW5wdXQKCSAgY2Fwcy4KCSAgUmV3b3JrIHRoZSBiYXNlIGNsYXNzZXMgZml4YXRlIHZtZXRob2RzIHRvIG5vdCBvcGVyYXRlIG9uIHRoZSBjYXBzIGluLXBsYWNlLgoJICBBbGwgdGhpcyBzYXZlcyB1cyBhcm91bmQgMzAlIG9mIGNhcHMgYW5kIHN0cnVjdHVyZSBjb3B5IGFuZCBuZXcgb3BlcmF0aW9ucy4KCjIwMTItMDMtMTEgMTc6MjI6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogYWRkIGFsbG9jYXRpb24gZGVidWcKCjIwMTItMDMtMTAgMDk6MjU6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgdHlwZWZpbmQ6IHJlbW92ZSBjb25zdCBmcm9tIHJlZmNvdW50ZWQgR3N0Q2FwcwoJICBIYXZpbmcgY29uc3Qgb24gcmVmY291bnRlZCBvYmplY3RzIHJlcXVpcmUgdXMgdG8gbWFrZSBjb3BpZXMgaW5zdGVhZCBvZiBzaW1wbHkKCSAgdGFraW5nIGEgcmVmLCBkb24ndCBkbyB0aGF0LgoKMjAxMi0wMy0xMCAwOToxNTo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeTogYXZvaWQgY29weSB3aGVuIGNhcHMgYXJlIGZpeGVkCgkgIEF2b2lkIGRvaW5nIGEgdXNlbGVzcyBjb3B5IHdoZW4gdGhlIGNhcHMgYXJlIGZpeGVkIGFuZCBzaW1wbGlmeSB3aWxsIG5vdCBkbwoJICBhbnl0aGluZy4KCjIwMTItMDMtMDkgMTY6MTQ6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogc21hbGwgb3B0aW1pemF0aW9ucwoJICBzaG9ydGN1dCBoZWF2eSB3b3JrIHdoZW4gYnVmZmVyX3Jlc2l6ZSBkb2VzIG5vdGhpbmcuCgkgIEF2b2lkIGFuIGV4dHJhIF9yZWYgd2hlbiBtYXBwaW5nIGEgYnVmZmVyLgoJICBBZGQgc29tZSBHX0xJS0VMWS4KCjIwMTItMDMtMDkgMTU6MDM6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcnBvb2wudHh0OgoJICBidWZmZXJwb29sOiBmaXggYXJyYXkgdHlwZXMKCjIwMTItMDMtMDkgMTQ6MzA6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlci50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVycG9vbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzCgoyMDEyLTAzLTA5IDExOjUzOjU0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFsc28gcHVzaCBzdGlja3kgZXZlbnRzIG9uIG5ldyBldmVudAoJICBNYWtlIGEgaGVscGVyIGZ1bmN0aW9uIGNoZWNrX3N0aWNreSB0byBjaGVjayBhbmQgcHVzaCBwZW5kaW5nIHN0aWNreSBldmVudHMuCgkgIE1vdmUgdGhlIGhhbmRsaW5nIG9mIHRoZSByZXN1bHQgb2YgcHVzaGluZyB0aGUgc3RpY2t5IGV2ZW50IGluc2lkZSB0aGUKCSAgcHVzaF9ldmVudCBmdW5jdGlvbiwgd2UgbmVlZCB0byBtYXJrIHRoZSBldmVudCBhcyByZWNlaXZlZCB3aGVuIGl0IHdhcyBwdXNoZWQKCSAgY29ycmVjdGx5LgoJICBNb3ZlIHRoZSBzdGlja3kgZXZlbnRzIGNvZGUgb3V0c2lkZSBvZiBnc3RfcGFkX3B1c2hfZXZlbnRfdW5jaGVja2VkIGFuZAoJICBtYWtlIGl0IHB1cmVseSBoYW5kbGUgc2VuZGluZyB0aGUgZXZlbnQgdG8gdGhlIHBlZXIuCgkgIHdoZW4gcHVzaGluZyBhIHN0aWNreSBldmVudCwgZmlyc3Qgc3RvcmUgaXQgb24gdGhlIHBhZC4gVGhlbiBjaGVjayBhbmQgcHVzaCBhbnkKCSAgcGVuZGluZyBzdGlja3kgZXZlbnRzIHdoZW4gd2UgZ2V0IGEgc2VyaWFsaXplZCBvciBzdGlja3kgZXZlbnQgb24gYSBzcmNwYWQuIFRoaXMKCSAgZml4ZXMgdGhlIGlzc3VlIHdoZXJlIHN0aWNreSBldmVudHMgYXJlIG5vdCBwdXNoZWQgd2hlbiBhbiBldmVudCBpcyBwdXNoZWQuCgoyMDEyLTAzLTA5IDExOjUyOjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHN0b3JlIHRoZSByZWNlaXZlZCByZXN1bHQgZnJvbSBfZm9yZWFjaAoJICBJZiB0aGUgZm9yZWFjaCBmdW5jdGlvbiBjaGFuZ2VzIHRoZSByZWNlaXZlZCBzdGF0ZSBvZiB0aGUgc3RpY2t5IGV2ZW50LCBtYWtlCgkgIHN1cmUgd2UgcmVtZW1iZXIgdGhhdC4KCjIwMTItMDMtMDkgMTE6NTI6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIGNvbW1lbnQKCjIwMTItMDMtMDkgMTE6NDk6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3Q6IGFkZCB0ZXN0IHRvIGNoZWNrIHN0aWNreSBldmVudHMgb3JkZXIKCSAgU3RpY2t5IGV2ZW50cyBwdXNoZWQgb24gYW4gdW5saW5rZWQgcGFkIHNob3VsZCBiZSBzdG9yZWQgb24gdGhlIHBhZC4gV2hlbiB0aGUKCSAgcGFkIGlzIHRoZW4gbGlua2VkIGFuZCBhbiBldmVudCBpcyBwdXNoZWQsIHRoZSBldmVudCBzaG91bGQgYmUgbWVyZ2VkIHdpdGggdGhlCgkgIGFscmVhZHkgZXhpc3Rpbmcgc3RpY2t5IGV2ZW50cyBhbmQgdGhlbiB0aGUgc3RpY2t5IGV2ZW50cyBzaG91bGQgYmUgcHVzaGVkIGluCgkgIHRoZSBvcmRlciB0aGF0IHRoZXkgd2VyZSBvcmlnaW5hbGx5IHB1c2hlZC4KCjIwMTItMDMtMDkgMTE6NDg6NDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGVzdDogZml4IHR5cG8gaW4gY29tbWVudAoKMjAxMi0wMy0wOCAyMDowODoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2Vlay5jOgoJICB0ZXN0czogcG9ydCBwaXBlbGluZS9zZWVrIHRlc3QgdG8gMC4xMQoJICBEb2Vzbid0IGZhaWwgaW4gMC4xMSBvZiBjb3Vyc2UsIGF0IGxlYXN0IG5vdCBvbiBteSBtYWNoaW5lLgoKMjAxMi0wMy0wOCAxOTo1NTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBjb21tb24KCSAgZ3N0L2dzdHBhZC5oCgkgIGdzdC9nc3R0YXNrLmMKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaAoKMjAxMi0wMy0wOCAxNjozMDo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkgIHBhZCwgdGFzazogaW1wcm92ZSBkZWJ1ZyBsb2dnaW5nCgoyMDEyLTAzLTA4IDE2OjI2OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgcGFkcywgY29sbGVjdHBhZHMyOiBnZXQgcmlkIG9mIHN1cGVyZmx1b3VzIGJyYWNrZXRzIGFyb3VuZCBzdGF0aWMgcmVjIG11dGV4IGNhbGxzCgkgIE1ha2VzIGl0IHBvc3NpYmxlIHRvIGRlZmluZSB0aG9zZSBjYWxscyB0byBzb21ldGhpbmcgZm9yIHRyYWNpbmcuCgoyMDEyLTAzLTA4IDE2OjI1OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgY29tbW9uOiB1cGRhdGUgY29tbW9uIG1vZHVsZQoJICBGb3IgbWFrZSBmb28vYmFyLmNoZWNrLW5vcmVwZWF0IHRhcmdldC4KCjIwMTItMDMtMDggMTU6MjM6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2Vlay5jOgoJICB0ZXN0czogYWRkIG1pbmltYWwgYmFzZXNyYyAhIHNpbmsgc2Vla2luZyB1bml0IHRlc3QKCSAgU2hvdWxkIHJlcHJvZHVjZSAnR1N0cmVhbWVyLVdBUk5JTkcgKio6IHdyb25nIFNUUkVBTV9MT0NLIGNvdW50IDAnCgkgIHdhcm5pbmdzICh3aXRoIG1ha2UgcGlwZWxpbmVzL3NlZWsudG9ydHVyZSBvciBwaXBlbGluZXMvc2Vlay5mb3JldmVyCgkgIGFueXdheSwgc2luY2UgaXQgYXBwZWFycyB0byBiZSByYWN5KS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MDg0NgoKMjAxMS0xMi0yNiAwMDoxODoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB2YWx1ZTogcmVtb3ZlIGdzdF92YWx1ZV9yZWdpc3Rlcl97c3VidHJhY3QsdW5pb24saW50ZXJzZWN0fV9mdW5jKCkgQVBJCgkgIFRoZXJlIGlzbid0IHJlYWxseSBhbnkgbmVlZCB0byBwcm92aWRlIHB1YmxpYyBBUEkgZm9yIHRoYXQuIEl0J3Mgbm90CgkgIHVzZWQgYW55d2hlcmUgaW4gcHJhY3RpY2UsIGFuZCB3ZSBhaW0gdG8gcHJvdmlkZSBhbiBBUEkgdGhhdCB3b3JrcwoJICBmb3IgR3N0Q2Fwcywgbm90IHNvbWUga2luZCBvZiBnZW5lcmljIHNldCBtYW5pcHVsYXRpb24gQVBJIGJhc2VkIG9uCgkgIEdWYWx1ZS4gTWFraW5nIHRoaXMgcHJpdmF0ZSBhbHNvIG1ha2VzIGl0IGVhc2llciB0byBvcHRpbWlzZSB0aGlzCgkgIGxhdGVyLiBXZSBjYW4gYWx3YXlzIHB1dCBpdCBiYWNrIGlmIHNvbWVvbmUgYWN0dWFsbHkgbmVlZHMgaXQuCgoyMDEyLTAzLTA4IDEwOjQ3OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBmaXggcmVmY291bnQgZXJyb3IKCjIwMTItMDMtMDggMDk6NDU6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiByZXR1cm4gQU5ZIGZvciBhIHBhZCB3aXRob3V0IHRlbXBsYXRlCgkgIEJlY2F1c2UgZ3N0X3BhZF9nZXRfcGFkX3RlbXBsYXRlX2NhcHMoKSByZXR1cm5zIEFOWSB3aGVuIHRoZXJlIGlzIG5vIHRlbXBsYXRlLAoJICB0aGUgcXVlcnkgY2FwcyBmdW5jdGlvbiBzaG91bGQgYWxzbyByZXR1cm4gQU5ZIHdoZW4gdGhlcmUgaXMgbm8gdGVtcGxhdGUgKGFuZCBubwoJICBwYWQgY3VycmVudCBjYXBzKSBpbnN0ZWFkIG9mIEVNUFRZLgoKMjAxMi0wMy0wOCAwOTo0NDoyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzbWFsbCBjbGVhbnVwCgoyMDEyLTAzLTA3IDE1OjM0OjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGFkZCBjb21tZW50CgoyMDEyLTAzLTA4IDEwOjMyOjAyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IG1lcmdlIG1pc3Rha2UKCjIwMTItMDMtMDggMTA6MTk6NTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYwoKMjAxMi0wMy0wNyAxMToyMzo1NiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFycmFuZ2UgZm9yIHByb3Blcmx5IGRpc2pvaW50IGZyYW1lIGZsYWdzCgoyMDEyLTAzLTA2IDE1OjE3OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGRlbGF5IHBvb2wgYWN0aXZhdGlvbgoJICBEZWxheSB0aGUgYWN0aXZhdGlvbiBvZiB0aGUgYnVmZmVycG9vbCB1bnRpbCB3ZSBhY3R1YWxseSBuZWVkIGEgYnVmZmVyIGZyb20gdGhlCgkgIHBvb2wuCgoyMDEyLTAzLTA2IDEyOjI4OjAyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4ICdzZWxmLWNvbXBhcmlzb24gYWx3YXlzIGV2YWx1YXRlcyB0byB0cnVlJwoJICBUaGlzIHdhcyByZWFsbHkgYSBidWcuCgoyMDEyLTAzLTA2IDEyOjI0OjUzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogRml4ICd1c2Ugb2YgbG9naWNhbCAnJiYnIHdpdGggY29uc3RhbnQgb3BlcmFuZCcgY29tcGlsZXIgd2FybmluZwoJICBUaGlzIGlzIGFjdHVhbGx5IGEgcmVhbCBidWcuCgoyMDEyLTAzLTA2IDEyOjIzOjE1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBGaXggJ2VxdWFsaXR5IGNvbXBhcmlzb24gd2l0aCBleHRyYW5lb3VzIHBhcmVudGhlc2VzJyBjb21waWxlciB3YXJuaW5nCgoyMDEyLTAzLTA2IDEyOjE2OjE5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBGaXggJ2NvbXBhcmlzb24gb2YgdW5zaWduZWQgZW51bSBleHByZXNzaW9uID49IDAgaXMgYWx3YXlzIHRydWUnIGNvbXBpbGVyIHdhcm5pbmcKCjIwMTItMDMtMDUgMTU6MjM6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZG9uJ3QgcHJvcG9zZV9hbGxvY2F0aW9uIGJlZm9yZSBuZWdvdGlhdGlvbgoJICBBbnN3ZXIgdGhlIGFsbG9jYXRpb24gcXVlcnkgd2l0aCBGQUxTRSB3aGVuIHdlIGFyZSBub3QgbmVnb3RpYXRlZCB5ZXQgYmVjYXVzZSBhdAoJICB0aGF0IHBvaW50IHdlIGhhdmUgbm8gaWRlYSBpZiB3ZSBuZWVkIHRvIHByb3h5IHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IG9yIG5vdC4KCjIwMTItMDMtMDUgMTQ6NDE6MTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggaGFuZGxpbmcgb2YgbXVsdGlwbGUgbmV3c2VnbWVudCBldmVudHMKCSAgUHJldmlvdXNseSBvbmx5IHRoZSBsYXN0IHdvdWxkIGJlIHB1c2hlZCwgd2hpY2ggd291bGQgY2F1c2UKCSAgaW52YWxpZCBydW5uaW5nIHRpbWVzIGRvd25zdHJlYW0uIFRoaXMgYWxzbyBmaXhlcyB0aGUgaGFuZGxpbmcKCSAgb2YgdXBkYXRlIG5ld3NlZ21lbnQgZXZlbnRzLgoKMjAxMi0wMy0wNSAxNDoyNTo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEFsc28gZmx1c2ggdGhlIGNsb3NlX3NlZ21lbnQKCSAgUHVzaGluZyB0aGlzIGFmdGVyIGZsdXNoaW5nIHdpbGwgY29uZnVzZSBkb3duc3RyZWFtLgoKMjAxMi0wMy0wNSAxNDoyMzoxNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFJlbW92ZSBvYnNvbGV0ZSBjb2RlIGFuZCBtb3ZlIGdhcCBoYW5kbGluZyB0byB0aGUgY29ycmVjdCBwbGFjZQoJICBUaGUgc2VnbWVudCBzdGFydCBhZGp1c3RtZW50IGNvZGUgaW4gcHVsbCBtb2RlIHNob3VsZCBuZXZlciB0cmlnZ2VyCgkgIGFueW1vcmUgYmVjYXVzZSB0aGUgYmlzZWN0aW9uIGNvZGUgZWFybGllciB3b3VsZCBoYXZlIGFscmVhZHkgbWFkZQoJICBzdXJlIHRoYXQgd2UncmUgYXQgdGhlIGRlc2lyZWQgcG9zaXRpb24uCgkgIEFsc28gbW92ZSB0aGUgZ2FwIGhhbmRsaW5nIHNvbWUgbGluZXMgYmVsb3cgYWZ0ZXIgc2VuZGluZyB0aGUgY3VycmVudGx5CgkgIGNvbmZpZ3VyZWQgc2VnbWVudHMuIE90aGVyd2lzZSB3ZSBtaWdodCBmaWxsIGdhcHMgaW4gYSBzZWdtZW50IHRoYXQgaXMKCSAgbm90IGNvbmZpZ3VyZWQgZG93bnN0cmVhbSB5ZXQuCgoyMDEyLTAzLTA1IDEzOjEyOjE4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogQ2xlYXIgc29tZSBtb3JlIHN0YXRlIHdoZW4gcmVjZWl2aW5nIEZMVVNIX1NUT1AKCSAgTGlrZSBwZW5kaW5nIHNlcmlhbGl6ZWQgZXZlbnRzIGFuZCB0aGUgY3VycmVudGx5IGNhY2hlZCBidWZmZXIuCgoyMDEyLTAzLTA1IDEzOjAwOjM4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogT25seSBxdWV1ZSBzZXJpYWxpemVkIGV2ZW50cyBmb3Igc2VuZGluZyB0aGVtIGxhdGVyCgoyMDEyLTAzLTA1IDAwOjM0OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBsaWJnc3RjaGVjazogZXhwb3J0IGdzdF9jb25zaXN0ZW5jeV9jaGVja2VyX2FkZF9wYWQoKQoJICBGaXggYnVpbGQgb2YgdGhlIGFkZGVyIHVuaXQgdGVzdCBpbiAtYmFzZSBhZ2Fpbi4KCjIwMTItMDMtMDIgMTc6MzI6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IHJlZmluZSBtZXRhZGF0YSBmaWx0ZXIgYW5kIHRyYW5zZm9ybQoJICBBZGQgYSB2bWV0aG9kIHRvIGZpbHRlciBtZXRhZGF0YSB0aGF0IHNob3VsZCBiZSBwYXNzZWQgdXBzdHJlYW0uIEJ5IGRlZmF1bHQsCgkgIGRvbid0IHBhc3MgYW55dGhpbmcuCgkgIEFkZCBhIHZtZXRob2QgdG8gdHJhbnNmb3JtIG1ldGFkYXRhIGZyb20gdGhlIGlucHV0IGJ1ZmZlciB0byB0aGUgb3V0cHV0IGJ1ZmZlci4KCSAgQnkgZGVmYXVsdCwgbm90aGluZyBpcyB0cmFuc2Zvcm1lZCBvciBjb3BpZWQuCgoyMDEyLTAzLTAyIDE3OjA0OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5oOgoJICBnc3Q6IGluY2x1ZGUgZ3N0bWV0YS5oCgoyMDEyLTAzLTAyIDE3OjAzOjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogYWRkIG1vcmUgZGVidWcgaW5mbwoKMjAxMi0wMy0wMiAxMzowMjo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTItMDMtMDIgMTM6MDI6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICB0ZXN0czogaW1wcm92ZSBtZXRhZGF0YSB0ZXN0CgoyMDEyLTAzLTAyIDEyOjQ1OjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiBhZGQgYm9vbGVhbiB0byBzaWduYWwgYSByZWdpb24gY29weQoJICBBZGQgYSBib29sZWFuIHRvIHRoZSBtZXRhZGF0YSBjb3B5IHRyYW5zZm9ybSB0aGF0IHNpZ25hbHMgaWYgYSBvbmx5IGEKCSAgcmVnaW9uIGlzIGNvcGllZC4KCjIwMTItMDMtMDIgMTI6MTY6MDMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgY29uc2l0ZW5jeWNoZWNrZXI6IGRvbid0IGZhaWwgb24gbXVsdGlwbGUgZmx1c2hfc3RhcnQgZXZlbnRzCgkgIFRoaXMgc2VlbXMgdG8gYmUgb2theSBhZnRlciBhIGlyYyBkaXNjdXNzaW9uLgoKMjAxMi0wMy0wMiAxMTo1Nzo1MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IHRyYW5zZm9ybSBkb2NzCgkgIFVzZSBnc3QtIHByZWZpeCBmb3IgbWV0YWRhdGEgdHJhbnNmb3JtIHR5cGVzLgoKMjAxMi0wMy0wMiAxMTowNDoyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnM6IGZpeCBjb21tZW50CgoyMDEyLTAzLTAyIDExOjA1OjQ4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIEFuZHJvaWQubWs6CgkqIE1ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0bWFyc2hhbC5saXN0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RtYXJzaGFsLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RtYXJzaGFsLmg6CgkgIGdzdDogUmVtb3ZlIGdzdG1hcnNoYWwuW2NoXSBjb21wbGV0ZWx5IGFuZCB1c2UgdGhlIGdlbmVyaWMgbWFyc2hhbGxlcgoJICBGaXhlcyBidWcgIzY3MTEzMC4KCjIwMTItMDMtMDIgMTA6NTE6NDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBnc3Q6IERvbid0IGluc3RhbGwgZ3N0bWFyc2hhbC5oCgkgIFRoZSBnZW5lcmljLCBGRkkgYmFzZWQgbWFyc2hhbGxlciBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIG9mIHRoZXNlCgkgIGFuZCB3ZSBkZWZpbml0ZWx5IHNob3VsZG4ndCBleHBvcnQgdGhlIG1hcnNoYWxsZXJzIGluIG91ciBwdWJsaWMgQVBJLgoKMjAxMi0wMy0wMSAxNzozOToxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJICBtZXRhOiBpbXByb3ZlIGRlYnVnZ2luZwoJICBBZGQgY2F0ZWdvcnkgZm9yIG1ldGFkYXRhIGRlYnVnCgoyMDEyLTAzLTAxIDE3OjM4OjU0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGltcHJvdmUgZGVidWdnaW5nCgoyMDEyLTAzLTAxIDE3OjM4OjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGltcHJvdmUgZGVidWdnaW5nCgoyMDEyLTAzLTAxIDE1OjE4OjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiByZW1vdmUgbWV0YWRhdGEgdGFnZ2VkIHdpdGggdGhlIG1lbW9yeSB0YWcKCSAgUmVtb3ZlIG1ldGFkYXRhIHRoYXQgZGVzY3JpYmVzIHRoZSBwYXJ0aWN1bGFyIG1lbW9yeSBvZiB0aGUgYnVmZmVyIGl0IGlzCgkgIGF0dGFjaGVkIHRvLiBXZSBuZWVkIHRvIGRvIHRoaXMgYmVjYXVzZSBpbiBub24tcGFzc3Rocm91Z2ggbW9kZSB3ZSB3aWxsIGFsbG9jYXRlCgkgIG5ldyBtZW1vcnkgZm9yIG91ciBvdXRwdXQgYnVmZmVyLgoKMjAxMi0wMy0wMSAxNToxNzozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IGFkZCB0YWcgZm9yIG1lbW9yeSBtZXRhZGF0YQoKMjAxMi0wMy0wMSAxNDo0OTozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IGFkZCBtZXRob2QgdG8gcmVtb3ZlIGFsbG9jYXRpb25fbWV0YQoJICBBbHNvIGdfcmV0dXJuX2lmX2ZhaWwgZm9yIG91dC1vZi1ib3VuZHMgYWNjZXNzIGluc3RlYWQgb2Ygc2lsZW50bHkgZmFpbGluZy4KCjIwMTItMDMtMDEgMTQ6MzA6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IGltcHJvdmUgcHJvcG9zZV9hbGxvY2F0aW9uCgkgIEltcHJvdmUgdGhlIHByb3Bvc2UgYWxsb2NhdGlvbiB2bWV0aG9kIGJ5IHBhc3NpbmcgdGhlIGRvd25zdHJlYW0gYWxsb2NhdGlvbgoJICBxdWVyeSB0byBpdC4gVGhpcyB3YXkgdGhlIHZtZXRob2QgaW1wbGVtZW50YXRpb24gY2FuIHVzZSBwcm9wZXJ0aWVzIG9mIHRoZQoJICBkb3duc3RyZWFtIGFsbG9jYXRpb24gdG8gZ2VuZXJhdGUgdGhlIHVwc3RyZWFtIHF1ZXJ5IHJlc3VsdC4gSWYgdGhlcmUgaXMgbm8KCSAgZG93bnN0cmVhbSBxdWV0eSwgaXQgbWVhbnMgdGhhdCB0aGUgZWxlbWVudCBpcyB3b3JraW5nIGluIHBhc3N0aHJvdWdoIG1vZGUuCgkgIEltcGxlbWVudCBhIGRlZmF1bHQgZGVjaWRlX2FsbG9jYXRpb24uCgoyMDEyLTAzLTAxIDExOjExOjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGNsZWFyIGFsbG9jYXRpb24gcGFyYW1ldGVycyBpbiBwYXNzdGhyb3VnaAoJICBDbGVhciB0aGUgYWxsb2NhdGlvbiBwYXJhbWV0ZXJzIHdoZW4gd2Ugb3BlcmF0ZSBpbiBwYXNzdGhyb3VnaC4KCjIwMTItMDMtMDEgMTE6MDY6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jYXBzZmlsdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSAgdGVzdHM6IGZpeCBvbGQgY2FwcyBpbiB0ZXN0cyBub3cgdGhhdCBjb3JlIHdhcm5zCgoyMDEyLTAzLTAxIDE0OjUxOjI2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBsaWJzOiBGaXggc29tZSBtZXJnZSBtaXN0YWtlcwoKMjAxMi0wMy0wMSAxNDo0MzowMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYwoJICBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYwoKMjAxMi0wMi0yOCAxMjowMzo0NiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IHNvbWUgZGVidWcgbWVzc2FnZSB0eXBvcwoKMjAxMi0wMi0yOSAyMTo1NzowMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuaDoKCSAgY29uc2l0ZW5jeWNoZWNrZXI6IGFkZCBoYW5kbGluZyBmb3Igc2luay1wYWRzCgkgIEFkZCBhIHBhZC1wcm9iZSBmb3Igc2luay1wYWRzLiBPbmUgY2FuIG5vdyBhZGQgZXh0cmEgcGFkcyAoYmVsb25naW5nIHRvIHRoZSBzYW1lCgkgIGVsZW1lbnQpIHRvIGEgY2hlY2tlci4gVGhpcyBhbGxvd3MgdXMgdG8gZXh0ZW5kIHRoZSBjaGVja3MuCgoyMDEyLTAyLTI5IDE3OjIwOjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1ldGE6IHNwbGl0IHJlZ2lzdHJhdGlvbiBvZiBBUEkgYW5kIGltcGxlbWVudGF0aW9uCgkgIFNwbGl0IG91dCB0aGUgcmVnaXN0cmF0aW9uIG9mIHRoZSBtZXRhZGF0YSBBUEkgYW5kIGl0cyBpbXBsZW1lbnRhdGlvbi4gTWFrZSBhCgkgIEdUeXBlIGZvciBlYWNoIG1ldGFkYXRhIEFQSS4gVGhpcyBhbGxvd3MgdXMgdG8gc3RvcmUgZXh0cmEgaW5mb3JtYXRpb24gd2l0aCB0aGUKCSAgQVBJIHR5cGUgc3VjaCBhcyB0aGUgdGFncy4KCSAgQ2hhbmdlIHRoZSBidWZmZXIgQVBJIHNvIHRoYXQgd2UgY2FuIGdldCB0aGUgbWV0YWRhdGEgdXNpbmcgdGhlIEFQSSBHVHlwZS4KCSAgQ2hhbmdlIHRoZSBxdWVyeSBBUEkgc28gdGhhdCB3ZSB1c2UgdGhlIG1ldGFkYXRhIEFQSSBHVHlwZSBpbiB0aGUgYWxsb2NhdGlvbgoJICBxdWVyeSBpbnN0ZWFkIG9mIGEgc3RyaW5nLgoJICBVcGRhdGUgbmV0YWRkcmVzcyBhbmQgdW5pdCB0ZXN0cwoKMjAxMi0wMi0yOSAxNjowMDoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbm9iamVjdDogc21hbGwgLmggaW5kZW50IGZpeAoKMjAxMi0wMi0yOSAxMjo0MTo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogcHJpbnQgYSBnX3dhcm5pbmcoKSBpZiBzb21lb25lIHRyaWVzIHRvIGNvbnN0cnVjdCAwLjEwLXN0eWxlIHJhdyBhdWRpby92aWRlbyBjYXBzCgoyMDEyLTAyLTI5IDA4OjQ0OjA0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGNvbnNpc3RlbmN5Y2hlY2tlcjogYWxzbyBjaGVjayBmb3IgZHVwbGljYXRlZCBmbHVzaF9zdGFydHMKCjIwMTItMDItMjggMjA6MzY6NTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IGFkZCBtb3JlIGxvZ2dpbmcKCjIwMTItMDItMjggMTY6MTc6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YTogYWRkIHJldHVybiB2YWxlIHRvIHRyYW5zZm9ybQoJICBBZGQgYSBib29sZWFuIHJldHVybiB2YWx1ZSBzbyB0aGF0IHdlIGNhbiBzZWUgd2hlbiBhIHRyYW5zZm9ybSBmYWlscy4KCjIwMTItMDItMjggMTI6NTI6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWV0YTogYWRkIG1ldGhvZCB0byBjaGVjayBmb3IgYSB0YWcKCjIwMTItMDItMjggMTI6NTE6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICB0ZXN0czogZml4IHVuaXQgdGVzdAoKMjAxMi0wMi0yOCAxMTozNDo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJICBtZXRhOiBhZGQgc3VwcG9ydCB0byB0YWdnaW5nIHRoZSBtZXRhZGF0YQoJICBBZGQgc3VwcG9ydCBmb3IgYWRkaW5nIHRhZ3MgdG8gdGhlIG1ldGFkYXRhLiB3aXRoIHNvbWUgc3RhbmRhcmQga2V5cywgdGhpcwoJICBzaG91bGQgbWFrZSBpdCBwb3NzaWJsZSB0byBkZXNjcmliZSB3aGF0IHRoZSBtZXRhZGF0YSByZWZlcnMgdG8uIFdlIHNob3VsZCBiZQoJICBhYmxlIHRvIHVzZSB0aGlzIGluZm9ybWF0aW9uIHRvIGRlY2lkZSBpZiBhIHRyYW5zZm9ybWF0aW9uIGRlc3Ryb3lzIHRoZSBtZXRhZGF0YQoJICBvciBub3QuCgoyMDEyLTAyLTI3IDEzOjM1OjEwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBTdXBwcmVzcyBkZXByZWNhdGlvbiB3YXJuaW5ncyBpbiBzZWxlY3RlZCBmaWxlcywgZm9yIGdfdmFsdWVfYXJyYXlfKiBtb3N0bHkKCjIwMTItMDItMjcgMTE6NDY6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIHRlc3RzOiBpbmNyZWFzZSBidXMgdGVzdCB0aW1lb3V0CgoyMDEyLTAyLTIxIDIwOjQzOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJICB0ZXN0czogbWFrZSBkYXRldGltZSB0ZXN0IG1vcmUgcmVsaWFibHkgd2hlbiBjb21wYXJpbmcgdHdvIGFsbW9zdCBpZGVudGljYWwgbm93cwoJICBBY2NvdW50IGZvciByb3VuZGluZyBlcnJvcnMgaW4gc29tZSBwbGFjZXMsIGFuZCB0aGF0IHR3byBub3dzIGFyZQoJICBub3QgYWx3YXlzIGVudGlyZWx5IGlkZW50aWNhbCwgc28gYWxsb3cgc29tZSBsZWV3YXkgd2hlbiBjb21wYXJpbmcKCSAgbWljcm9zZWNvbmRzIGFuZCBzZWNvbmRzLiBSYW4gaW50byB0aGlzIHRvbyBvZnRlbiwgZXNwLiB3aGVuIHRoZQoJICBzeXN0ZW0gaXMgdW5kZXIgbG9hZC4KCjIwMTItMDItMjcgMDk6NDg6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJICByZW1vdmUgc29tZSB1c2VsZXNzIGluY2x1ZGVzIGluIC5oCgoyMDEyLTAyLTI3IDA5OjAyOjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2xvY2s6IG1ha2UgbW9yZSBzdHVmZiBwcml2YXRlCgkgIEV4cG9zZSBtZXRob2RzIHRvIGdldCBhbmQgc2V0IHRoZSB0aW1lb3V0IGJlY2F1c2Ugc3ViY2xhc3NlcyB1c2VzIHRoaXMuCgoyMDEyLTAyLTI2IDIwOjQ1OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBzeXN0ZW1jbG9jazogbWFrZSBtb3JlIHN0dWZmIHByaXZhdGUKCjIwMTItMDItMjYgMjA6NDQ6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBtYWtlIG1vcmUgc3R1ZmYgcHJpdmF0ZQoKMjAxMi0wMi0yNiAxNjozMjozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJICBidXM6IG1ha2UgbW9yZSBmaWVsZHMgcHJpdmF0ZQoKMjAxMi0wMi0yNyAwMDowOTo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBmZHNpbms6IGZpeCBjb21waWxhdGlvbiBhZnRlciBtZXJnZQoKMjAxMi0wMi0yNyAwMDowODozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBORVdTCgkgIFJFTEVBU0UKCSAgY29uZmlndXJlLmFjCgkgIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHkKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWwKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYwoJICB3aW4zMi9jb21tb24vY29uZmlnLmgKCSAgd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jCgkgIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmgKCjIwMTItMDItMjYgMjM6MTE6MjMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IHJlc2N1ZSB0aGUgYW5ub3RhdGlvbiBmcm9tIGNvbGxlY3RwYWRzCgoyMDEyLTAyLTI2IDIzOjEwOjU4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBkb2NzOiBmaXggYSB0eXBvIGluIGNvbW1lbnQKCjIwMTItMDItMjYgMjI6NTc6MDIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IG1vdmUgIk1UIHNhdmUiIHRhZ3MgdG8gZG9jIGJvZHkKCSAgSXQgaXMgbm90IHVzZWZ1bCB0byBoYXZlICJNVCBzYWZlIiB0YWdzIHJhbmRvbWx5IGluIGJvZHksIHJldHVybnMgb3Igc2luY2UgcGFyYWdyYXBocy4KCjIwMTItMDItMjUgMTU6MTg6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rOiBpbXBsZW1lbnQgR3N0QmFzZVNpbms6OnF1ZXJ5IGluc3RlYWQgb2YgbWVzc2luZyB3aXRoIHRoZSBwYWQKCjIwMTItMDItMjUgMTU6MDg6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSAgZmRzaW5rOiBpbXBsZW1lbnQgU0VFS0lORyBxdWVyeQoJICBXZSBtYXkgb3IgbWF5IG5vdCBzdXBwb3J0IHNlZWtpbmcuIHN0ZG91dCB0byBhCgkgIHRlcm1pbmFsIGRvZXNuJ3Qgc3VwcG9ydCBzZWVraW5nLCBmb3IgZXhhbXBsZSwgYnV0CgkgIC4uLiAhIGZkc2luayA+IGZpbGUuZm9vIGp1c3QgbWlnaHQuCgoyMDEyLTAyLTI1IDE1OjA3OjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IGltcGxlbWVudCBTRUVLSU5HIHF1ZXJ5CgkgIFdlIG1heSBvciBtYXkgbm90IGRvIHNlZWtpbmcsIGRlcGVuZHMgb24gdGhlCgkgIG91dHB1dCBmaWxlL2RldmljZSByZWFsbHksIGl0IGRvZXNuJ3QgaGF2ZSB0bwoJICBiZSBhIGZpbGUgYWZ0ZXIgYWxsLgoKMjAxMi0wMi0yNSAxNTowNzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBhbnN3ZXIgU0VFS0lORyBxdWVyeQoJICBXZSBkb24ndCBkbyBzZWVraW5nLCBpbiBjYXNlIGFueW9uZSB3YW50cyB0byBrbm93LgoKMjAxMi0wMi0yNCAyMzozOTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IGZpeCBsc2VlaygpIHJldHVybiBjb2RlIGhhbmRsaW5nCgkgIGxzZWVrKCkgcmV0dXJucyB0aGUgb2Zmc2V0IGlmIHN1Y2Nlc3NmdWwsIGFuZCB0aGlzIGlzICE9IDAgYW5kCgkgIGRvZXMgbm90IGluZGljYXRlIGFuIGVycm9yLiBBbmQgaWYgaXQgZG9lcyBhY3R1YWxseSBmYWlsLCBkb24ndAoJICByZXR1cm4gRkFMU0UgKDApIGFzIGFuIGludCwgYnV0IC0xLiBOb25lIG9mIHRoZXNlIHRoaW5ncyBhcmUKCSAgbGlrZWx5IHRvIGhhdmUgbWFkZSBhIGRpZmZlcmVuY2UsIGV2ZXIuIEkgZG9uJ3QgdGhpbmsgdGhlIG9mZnNldAoJICBzZWVrIGNhbiBldmVyIGFjdHVhbGx5IGhhcHBlbiwgdGhlIGN1cnJlbnQgZmlsZSBwb3NpdGlvbiBhbmQgdGhlCgkgIGN1cnJlbnQgb2Zmc2V0IHNob3VsZCBhbHdheXMgYmUgaW5jcmVhc2VkIGluIGxvY2sgc3RlcCwgdW5sZXNzCgkgIHRoZXJlIHdhcyBhbiBlcnJvciBpbiB3aGljaCBjYXNlIHdlJ2QganVzdCBlcnJvciBvdXQuCgoyMDEyLTAyLTI0IDIzOjE5OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogZG9uJ3QgZm9yZ2V0IHRvIGNsZWFuIHVwIHJlZ2lzdHJ5IHRlbXAgZmlsZSBpbiBhbm90aGVyIGVycm9yIGNhc2UKCSAgQWxzbyBjbGVhbiB1cCB0ZW1wIGZpbGUgaWYgd2UgZ2V0IGFuIGVycm9yIGR1cmluZyB3cml0ZSgpIHJhdGhlcgoJICB0aGFuIGp1c3Qgd2hlbiBkb2luZyBmc3luYygpIG9yIGNsb3NlKCkuCgoyMDEyLTAyLTI0IDE1OjI0OjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkgIGF0b21pY3F1ZXVlOiBmaXggcmFjZQoJICBBZnRlciBhIHdyaXRlciBoYXMgd3JpdHRlbiB0byBpdHMgcmVzZXJ2ZWQgd3JpdGUgbG9jYXRpb24sIGl0IGNhbiBvbmx5IG1ha2UgdGhlCgkgIGxvY2F0aW9uIGF2YWlsYWJsZSBmb3IgcmVhZGluZyBpZiBhbGwgb2YgdGhlIHdyaXRlcnMgd2l0aCBsb3dlciBsb2NhdGlvbnMgaGF2ZQoJICBmaW5pc2hlZC4KCjIwMTItMDItMjQgMTI6NTE6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSAgYXRvbWljcXVldWU6IGZpeCBzdWJ0bGUgcmFjZQoJICBGaXggYSByYWNlIHdoZXJlIHRoZSByZWFkZXIgd291bGQgc2VlIHRoZSB1cGRhdGVkIHRoZSB0YWlsIHBvaW50ZXIgYmVmb3JlIHRoZQoJICB3cml0ZSBjb3VsZCB3cml0ZSB0aGUgZGF0YSBpbnRvIHRoZSBxdWV1ZS4gRml4IHRoaXMgYnkgaGF2aW5nIGEgc2VwYXJhdGUgcmVhZGVyCgkgIHRhaWwgcG9pbnRlciB0aGF0IGlzIG9ubHkgaW5jcmVtZW50ZWQgYWZ0ZXIgdGhlIHdyaXRlciB3cm90ZSB0aGUgZGF0YS4KCjIwMTItMDItMjQgMTE6MDA6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCByZWNvbmZpZ3VyZSBtZXRob2RzCgkgIFJlbmFtZSBnc3RfYmFzZV90cmFuc2Zvcm1fc3VnZ2VzdCB0byBnc3RfYmFzZV90cmFuc2Zvcm1fcmVjb25maWd1cmVfc2luayBiZWNhdXNlCgkgIHRoYXQgaXMgd2hhdCBpdCBkb2VzLiBBbHNvIHJlbW92ZSB0aGUgY2FwcyBhbmQgc2l6ZSBiZWNhdXNlIHRoYXQgaXMgbm90IG5lZWRlZC4KCSAgUmVuYW1lIGdzdF9iYXNlX3RyYW5zZm9ybV9yZWNvbmZpZ3VyZSB0byBnc3RfYmFzZV90cmFuc2Zvcm1fcmVjb25maWd1cmVfc3JjLgoJICBSZW1vdmUgc29tZSBvbGQgdW51c2VkIGNvZGUgaW4gY2Fwc2ZpbHRlci4KCjIwMTItMDItMjQgMTA6MjM6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWV0YTogZmxlc2ggb3V0IHRoZSBtZXRhZGF0YSB0cmFuc2Zvcm0KCSAgRmxlc2ggb3V0IHRoZSB0cmFuc2Zvcm0gbWV0aG9kLiBBZGQgYSB0eXBlIGFuZCBleHRyYSBpbmZvIHRvIHRoZSB0cmFuc2Zvcm0KCSAgZnVuY3Rpb24gc28gdGhhdCBpbXBsZW1lbnRhdGlvbiBjYW4gdHJhbnNmb3JtIHRoZSBtZXRhZGF0YS4KCSAgUmVtb3ZlIHRoZSBjb3B5IGZ1bmN0aW9uIGFuZCByZXBsYWNlIHdpdGggdGhlIG1vcmUgZ2VuZXJpYyB0cmFuc2Zvcm0uCgoyMDEyLTAyLTI0IDEwOjIzOjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSAgZG9jczogdXBkYXRlIGRvY3MKCjIwMTItMDItMjMgMDg6NDg6MjIgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIEZpeCBnYXAgaW4gTWFrZWZpbGUKCjIwMTItMDItMjMgMDg6NDg6MTAgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBzcGVsbGluZyBmaXgKCjIwMTEtMTItMjYgMTY6NDU6MjAgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogZml4IHNwZWxsaW5nIG9mIHdyaXRhYmxlCgoyMDEyLTAyLTIzIDE1OjMyOjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCB1c2VyX2RhdGEgdG8gR3N0TWFwSW5mbwoJICBBZGQgZXh0cmEgcG9pbnRlcnMgdG8gR3N0TWFwSW5mbyBzbyB0aGF0IGltcGxlbWVudGF0aW9ucyBjYW4gdXNlIHRoZXNlIHRvIHN0b3JlCgkgIGV4dHJhIGluZm8uCgoyMDEyLTAyLTIzIDE1OjMyOjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogaW1wcm92ZSBkb2NzCgoyMDEyLTAyLTIzIDEyOjA5OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkgIFVwZGF0ZSBORVdTIGFuZCBSRUxFQVNFIGFzIHdlbGwKCjIwMTItMDItMjMgMTE6NTk6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiByZW1vdmUgdHJhbnNmb3JtIGxvY2sKCjIwMTItMDItMjMgMTA6MzY6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBCdW1wIHZlcnNpb24gYWZ0ZXIgcmVsZWFzZXMKCjIwMTItMDItMjMgMTE6MDg6MjYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSB0cmFuc2Zvcm0gbG9jawoJICBUaGlzIGlzIG5vdCBuZWVkZWQgYW55bW9yZSBieSB0aGUgYmFzZWNsYXNzLiBzdWJjbGFzc2VzIHNob3VsZCBkbyB0aGVpciBvd24KCSAgbG9ja2luZyB3aGVuIG5lZWRlZC4KCjIwMTItMDItMjMgMTA6MTI6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zOiBjbGVhbnVwcwoJICBDbGVhbiB1cCB0aGUgc2V0Y2FwcyBmdW5jdGlvbi4KCSAgVGhlIHBhc3N0aHJvdWdoIHZhcmlhYmxlIGlzIHByb3RlY3RlZCB3aXRoIHRoZSBvYmplY3QgbG9jay4KCjIwMTItMDItMjIgMTU6MjY6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IGltcHJvdmUgcHJvcG9zZV9hbGxvY2F0aW9uCgkgIEFsd2F5cyBjYWxsIHRoZSBwcm9wb3NlX2FsbG9jYXRpb24gbWV0aG9kIGFuZCBwcm92aWRlIGEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbgoJICB0aGF0IHBhc3NlcyB0aGUgcXVlcnkgb24gaW4gcGFzc3Rocm91Z2ggbW9kZSBzbyB0aGF0IHN1YmNsYXNzZXMgY2FuIGFsc28gY2FsbAoJICB0aGlzLiBBbHNvIHBhc3MgaWYgdGhlIHRyYW5zZm9ybSBpcyBpbiBwYXNzdGhyb3VnaCBtb2RlIHNvIHRoYXQgdGhlCgkgIGltcGxlbWVudGF0aW9uIGNhbiBhZGp1c3QgaXRzIGFsZ29yaXRobS4KCjIwMTItMDItMjIgMTI6MjQ6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuczogaW1wcm92ZSBmaXhhdGVfY2FwcyBmdW5jdGlvbgoJICBNYWtlIGl0IHBvc3NpYmxlIHRvIGFsc28gaW1wbGVtZW50IG5vbi1pbnBsYWNlIGZpeGF0ZSBmdW5jdGlvbnMuIExldCB0aGUgZml4YXRlCgkgIGZ1bmN0aW9uIG1ha2UgdGhlIGNhcHMgd3JpdGFibGUgd2hlbiBuZWVkZWQgYmVjYXVzZSBzb21lIGZpeGF0ZSBmdW5jdGlvbnMgbWlnaHQKCSAgbm90IG5lZWQgdG8gbW9kaWZ5IHRoZSBjYXBzLgoKMjAxMi0wMi0yMiAwMjowMjo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJICBtZW1vcnk6IG1ha2UgX25ld193cmFwcGVkIHRha2UgdXNlcl9kYXRhIGFuZCBub3RpZnkKCSAgTWFrZSBpdCBwb3NzaWJsZSB0byBjb25maWd1cmUgYSBHRGVzdHJveU5vdGlmeSBhbmQgdXNlcl9kYXRhIGZvcgoJICBnc3RfbWVtb3J5X25ld193cmFwcGVkKCkgdGhpcyBhbGxvd3MgZm9yIG1vcmUgZmxleGlibGUgd3JhcHBpbmcgb2YgZm9yZWlnbgoJICBtZW1vcnkgYmxvY2tzLgoKMjAxMi0wMi0wMiAxMzo0NToyNSAtMDUwMCAgUnlhbiBMb3J0aWUgPGRlc3J0QGRlc3J0LmNhPgoKCSogYXV0b2dlbi5zaDoKCSAgYnVpbGQ6IGF2b2lkIHRvdWNoaW5nIC5wbyBmaWxlcyBkdXJpbmcgJ21ha2UnCgkgIEEgc2ltcGxlIHdvcmthcm91bmQgdG8gZGVhbCB3aXRoIEdOVSBnZXR0ZXh0IGF1dG9tYWtlIGludGVncmF0aW9uCgkgIGZhaWxpbmcgdG8gZGVhbCB3aXRoIGdpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2OTIwNwoKMjAxMi0wMi0yMSAyMTowNjoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IGRlZmF1bHQgdG8gc3luYy1zdHJlYW1zPXRydWUKCSAgSSB0aGluayB0aGlzIGlzIHRoZSBleHBlY3RlZCBiZWhhdmlvdXIsIGFuZCB3ZSBjb3VsZG4ndCBkbyB0aGlzCgkgIGluIDAuMTAgZm9yIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5IHJlYXNvbnMsIHNvIGNoYW5nZSBpdCBub3cuCgoyMDEyLTAyLTIxIDE2OjM5OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgdGVzdHM6IGZpeCBxdWV1ZSB1bml0IHRlc3QgYWZ0ZXIgcXVldWUgY2hhbmdlcwoKMjAxMi0wMi0yMSAxNjozODozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHJlbW92ZSBzb21lIG9sZCBjb2RlCgoyMDEyLTAyLTIxIDE2OjM3OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGhhbmRsZSBOVUxMIGNhbGxiYWNrcwoJICBXaGVuIHdlIGhhdmUgYSBtYXRjaGluZyBOVUxMIGNhbGxiYWNrLCBhbHNvIGNvbnNpZGVyIHRoZSAnY2FsbGJhY2snIG1hcnNoYWxsZWQsCgkgIHRoaXMgd2F5IGJsb2NraW5nIHByb2JlcyB3aXRoIGEgTlVMTCBjYWxsYmFjayBhY3R1YWxseSB3b3JrLgoKMjAxMi0wMi0yMSAxMjo1Mjo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHJlbW92ZSB3ZWlyZCBsaW5rIGJlaGF2aW91cgoJICBSZW1vdmUgdGhlIGxpbmsgZnVuY3Rpb25zIGFuZCBhbHdheXMgc3RhcnQgdGhlIHBhZCB0YXNrIG9uIHRoZSBzcmNwYWQuIElmCgkgIGFwcGxpY2F0aW9ucyBuZWVkIHRvIGF1dG9wbHVnIHRoZXkgY2FuIHB1dCBhIGJsb2NraW5nIHByb2JlIG9uIHRoZSBzcmNwYWQgbGlrZQoJICB0aGV5IHdvdWxkIHdpdGggYW55IG90aGVyIGVsZW1lbnQuCgoyMDEyLTAyLTIxIDEyOjUyOjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZha2VzcmM6IGhhbmRsZSBwdHMvZHRzCgoyMDEyLTAyLTIxIDEyOjQ2OjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogcmVtb3ZlIGN1c3RvbSBtYXJzaGFsbGVyCgoyMDEyLTAyLTIxIDEyOjQzOjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogYWxzbyBkZWJ1ZyBkdHMvcHRzCgoyMDEyLTAyLTIxIDEyOjEzOjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogZGVidWcgcHRzIGFuZCBkdHMKCjIwMTItMDItMjEgMTI6MTI6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiByZW1vdmUgY3VzdG9tIG1hcnNoYWxsZXIKCjIwMTEtMTEtMjQgMTg6NDA6NDAgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIFVuaXQgdGVzdCBmb3IgcXVldWUgc3JjIGNhcHMgbm90aWZpY2F0aW9uCgoyMDEyLTAyLTIwIDE0OjM3OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgdGVzdHM6IGZpeCB1c2VsZXNzIHNlZ21lbnQgdGVzdAoKMjAxMi0wMi0yMCAxNDoyOTozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGRvbid0IHVzZSBkdXJhdGlvbiBpbiBjbGlwcGluZwoJICBEb24ndCB1c2UgdGhlIGR1cmF0aW9uIGluIHRoZSBzZWdtZW50IGZvciBjYWxjdWxhdGluZyBjbGlwcGluZyB2YWx1ZXMuCgkgIFRoZSBkdXJhdGlvbiBpcyBleHByZXNzZWQgaW4gc3RyZWFtIHRpbWUgYW5kIGNsaXBwaW5nIGlzIGRvbmUgb24gdW5yZWxhdGVkCgkgIHRpbWVzdGFtcCB2YWx1ZXMuCgkgIFRoaXMgdXNlZCB0byBiZSBpbnRlcmVzdGluZyBmb3IgZWxlbWVudHMgdGhhdCB1c2VkIHRoZSBzZWdtZW50IHN0cnVjdHVyZSB0bwoJICBpbXBsZW1lbnQgc2Vla2luZyBiZWNhdXNlIHRoZW4gdGhleSB3b3VsZCB1c2Ugc3RyZWFtLXRpbWUgZm9yIHRoZSBzZWdtZW50CgkgIHN0YXJ0L3N0b3AgdmFsdWVzIGFuZCB0aGUgZHVyYXRpb24gY291bGQgYmUgdXNlZCBhcyBhIGZhbGxiYWNrIHdoZW4gdGhlIHN0b3AKCSAgcG9zaXRpb24gd2FzIG5vdCBzZXQuIE5vdyB0aGF0IHRoZSBjb21wbGV0ZSBzZWdtZW50IGV2ZW50IGlzIHBhc3NlZCBiZXR3ZWVuCgkgIGVsZW1lbnRzIHdlIGNhbm5vdCBkbyB0aGlzIGFueW1vcmUgYmVjYXVzZSBzb21lIGVsZW1lbnRzIG1pZ2h0IHN0b3JlIHRoZQoJICBkdXJhdGlvbiBhbmQgc3RhcnQvc3RvcCB2YWx1ZXMgd2l0aCBkaWZmZXJlbnQgdGltZSBiYXNlcyBpbiB0aGUgc2VnbWVudC4KCjIwMTItMDItMjAgMTQ6MjI6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBkZWJ1ZyBzZWdtZW50IGR1cmF0aW9uIGFzIHdlbGwKCjIwMTItMDItMjAgMTE6NDY6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogY29weSBtZXRhZGF0YSB3aGVuIHVzaW5nIGEgcG9vbAoJICBhbHNvIGNvcHkgdGhlIG1ldGFkYXRhIHdoZW4gd2UgYWxsb2NhdGVkIGEgbmV3IGJ1ZmZlciBmcm9tIGEgcG9vbAoKMjAxMi0wMS0yNiAwMzowMjo0OCAtMDUwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkgIG5ldHRpbWVwYWNrZXQ6IGZpeCBwcmludGYgZm9ybWF0IHdhcm5pbmcgaW4gZGVidWcgbWVzc2FnZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0NDkxCgoyMDEyLTAyLTE4IDAxOjA0OjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGZpeCBtb3JlIGRvY3MKCjIwMTItMDItMTcgMTU6NTM6NTggLTA4MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgZG9jIGZpeHVwcwoKMjAxMi0wMi0xNyAxNTowOTo1NiAtMDgwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogTW92ZSB2YXJpYWJsZSBhbmQgYXNzaWdubWVudCB0byB3aGVyZSBpdCdzIG5lZWRlZAoKMjAxMi0wMi0xNyAxNTowOTowNiAtMDgwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSGFuZGxlIHJldHVybiB2YWx1ZSBvZiBkZWNpZGVfYWxsb2NhdGlvbiB2bWV0aG9kCgkgIElmIGl0IGZhaWxzLCBwcm9wZXJseSBwcm9wYWdhdGUgdGhlIGVycm9yCgoyMDEyLTAyLTE3IDE1OjA4OjMyIC0wODAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogUmVtb3ZlIHVzZWxlc3MgYXNzaWdubWVudAoKMjAxMi0wMi0xNyAxNTowNzo1NiAtMDgwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEdyYWNlZnVsbHkgaGFuZGxlIE5VTEwgR3ZhbHVlCgkgIEF2b2lkcyB1bnJlZmVyZW5jaW5nIE5VTEwgcG9pbnRlcgoKMjAxMi0wMi0xOCAwMDowMzo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBtYWtlIHNvbWUgZXJyb3JzIGNyaXRpY2FsCgkgIFdoZW4gd2UgaGF2ZSBubyBjaGFpbiBmdW5jdGlvbiBvciB3aGVuIHdlIGFyZSBvcGVyYXRpbmcgdGhlIHBhZCBpbiB0aGUgd3JvbmcKCSAgbW9kZSwgZW1pdCBhIGNyaXRpY2FsIGluc3RlYWQgb2YgcG9zdGluZyBhbiBlcnJvciBtZXNzYWdlLiBUaGlzIGlzIGNlcnRhaW5seSBhCgkgIHByb2dyYW1taW5nIGVycm9yIGFuZCB3ZSBjYW5ub3QgYWx3YXlzIHBvc3QgYSBtZXNzYWdlIChsaWtlIHdoZW4gdGhlIHBhZCBoYXMgbm8KCSAgcGFyZW50KQoKMjAxMi0wMi0xOCAwMDowMzoxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGFsc28gZGVidWcgcG9zaXRpb24gb2Ygc2VnbWVudAoKMjAxMi0wMi0xNyAyMzo1OToyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgd2luMzI6IGJhY2sgdG8gZGV2ZWxvcG1lbnQKCjIwMTItMDItMTcgMTE6MDI6NDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMS4yID09PQoKMjAxMi0wMi0xNyAxMTowMToxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSRUxFQVNFIDAuMTEuMgoKMjAxMi0wMi0xNSAxNzoxMjowOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHR3ZWFrIHNvbWUgZG9jdW1lbnRhdGlvbgoKMjAxMi0wMi0xNSAxNzoxMTo1NCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHNpbXBsaWZ5IGFuZCBpbXByb3ZlIGZyYW1lIHN0YXRlIGhhbmRsaW5nCgkgIFVzZSBhIGZyYW1lIGZsYWcgdG8gc2lnbmFsIHRvIHN1YmNsYXNzIGl0IHNob3VsZCByZXNldCBhbnkgcmV0YWluZWQKCSAgc3RhdGUgdy5yLnQuIGZyYW1lIHBhcnNpbmcgc2luY2UgdGhlIGZyYW1lIGJlaW5nIHBhc3NlZCBpcyAnbmV3JywKCSAgaS5lLiBub3QgcmVsYXRlZCB0byBwcmV2aW91c2x5IHBhc3NlZCBhbmQgcHJvY2Vzc2VkIGRhdGEuCgoyMDEyLTAyLTE1IDEzOjE1OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkb24ndCBsZWFrIGV2ZW50CgkgIEluIHRoZSB1bmxpa2VseSBjYXNlIHdoZXJlIHRoZSBzdWJjbGFzcyBzZXQgdGhlIGV2ZW50IGZ1bmN0aW9uIHRvIE5VTEwsIGRvbid0CgkgIGxlYWsgdGhlIGV2ZW50LgoKMjAxMi0wMi0xNSAxMjoxOToxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWFrZSBhY3RpdmF0aW9uIGNvZGUgbW9yZSBsaWtlIG90aGVyCgkgIE1ha2UgdGhlIHBhZCBhY3RpdmF0aW9uIGNvZGUgbG9vayBtb3JlIGxpa2Ugb3RoZXIgYWN0aXZhdGlvbiBjb2RlLgoJICBPbmx5IHN0YXJ0IHRoZSBzaW5rcGFkIHRhc2sgd2hlbiB3ZSBkZWNpZGUgdG8gYWN0aXZhdGUgaW4gcHVsbCBtb2RlLCB3aGVuIHdlCgkgIGxhdGVyIGFkZCBzcmNwYWQgcHVsbG1vZGUgdGhpcyB3aWxsIGJlIG5lZWRlZC4KCjIwMTItMDItMTUgMTI6MTg6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBhZGQgbW9yZSBkZWJ1ZwoKMjAxMi0wMi0xNSAxMToxMToxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWRkIHNvbWUgbW9yZSBkZWJ1ZwoKMjAxMi0wMi0xNSAxMDo1ODowOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHRyYWNrIGNvbnN1bWVkIGlucHV0IHNpemUKCSAgLi4uIGFzIHVzZWQgYnkgc3Vic2VxdWVudCBpbnB1dCBkYXRhIHJhdGUgZXN0aW1hdGlvbiAoYW5kIHNlZWtpbmcpLgoKMjAxMi0wMi0xNSAxMDoxMTozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogY2hhaW4gdXAgdG8gcGFyZW50IGZvciBkZWZhdWx0cwoJICBDaGFpbiB1cCB0byB0aGUgcGFyZW50IGluc3RlYWQgb2YgdXNpbmcgdGhlIEZBTFNFIHJldHVybiB2YWx1ZSBmcm9tIHRoZSBldmVudAoJICBmdW5jdGlvbiAoYmVjYXVzZSBpdCdzIG90aGVyd2lzZSBpbXBvc3NpYmxlIHRvIHJldHVybiBhbiBlcnJvcikuCgoyMDEyLTAyLTE1IDEwOjEwOjUzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGRvbid0IGlnbm9yZSByZXR1cm4gdmFsdWUgd2hlbiBzdGFydGluZyBhIHRhc2sKCjIwMTItMDItMTQgMjA6MTc6MzcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBSZXZlcnQgImJhc2VwYXJzZTogcmVhbGx5IHByb3ZpZGUgdXBzdHJlYW0gdHMgdG8gc3ViY2xhc3MiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMjM2MzQ5MGVmNWE5ZmU4ZDQxNDM2OWQyNGZjYWE2NWE5ZGZhODNhYy4KCjIwMTItMDItMTQgMTk6MzM6NTAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZW1vdmUgZGVhZCBjb2RlIGFuZCBzdXBlcmZsdW91cyBsb29wIGxldmVsCgoyMDEyLTAyLTE0IDE5OjMzOjQ2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbW9kaWZ5IHJldmVyc2UgcGxheWJhY2sgaGFuZGxpbmcKCSAgLi4uIHNvIGFzIHRvIGFsbG93IHRoZSBwdXNoLW1vZGUgY2FzZSB0byBwcm92aWRlIGRhdGEgdG8gc3ViY2xhc3MKCSAgb24gYSBidWZmZXIgYnkgYnVmZmVyIGJhc2lzIChhcyBpbiByZWd1bGFyIGZvcndhcmQgY2FzZSksIHJhdGhlcgoJICB0aGFuIGFsbCBidWZmZXJzIG9mIGEgZnJhZ21lbnQgY2h1Y2tlZCB0b2dldGhlci4KCSAgQWxzbyByZWZhY3RvciBidWZmZXIgaGFuZGxpbmcgc29tZSBtb3JlLCBhbmQgYWRkIHNvbWUgZGVidWcuCgoyMDEyLTAyLTE0IDE5OjMzOjMzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVhbGx5IHByb3ZpZGUgdXBzdHJlYW0gdHMgdG8gc3ViY2xhc3MKCjIwMTItMDItMTQgMTM6MjQ6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogY2xlYW4gdXAgc3JjIHF1ZXJ5IGhhbmRsZXIKCjIwMTItMDItMTQgMTI6NTc6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogcGFzcyByZXN1bHRzIGZyb20gYWN0aXZhdGlvbgoKMjAxMi0wMi0xNCAxMDozNTowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTItMDItMTQgMTA6MzA6NDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMi0wMi0xMyAxODoyMjozNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IG1vZGlmeSBBUEkgdG8gYSBfZmluaXNoX2ZyYW1lIGJhc2VkIGFwcHJvYWNoCgkgIC4uLiB3aGljaCBhbGlnbnMgaXQgd2l0aCBvdGhlciBiYXNlY2xhc3MgaW4gdGhlIHdpbGQsIGFuZCBzaG91bGQgZ2l2ZQoJICBjb252ZXJ0ZXIgcGFyc2VycyBhIGJpdCBjbGVhbmVyIGZyZWVkb20uCgoyMDEyLTAyLTEzIDE4OjA5OjUxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHJldmVyc2UgcGxheWJhY2sKCSAgLi4uIGVzcGVjaWFsbHkgZm9yIGFsbC1rZXlmcmFtZSAoYXVkaW8pIGNhc2VzLgoKMjAxMi0wMi0xMyAxNjozMzowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZW1vcnk6IG1vcmUgd29yayBvbiByZWZjb3VudCBhbmQgd3JpdGFiaWxpdHkKCSAgUmVuYW1lIF9pc193cml0YWJsZSgpIHdpdGggX2lzX2V4Y2x1c2l2ZSBiZWNhdXNlIHRoZSB3cml0YWJpbGl0eSBkb2VzIG5vdCBkZXBlbmQKCSAgb24gdGhlIGFtb3VudCBvZiByZWZlcmVuY2VzIHRvIHRoZSBtZW1vcnkgb2JqZWN0IGFueW1vcmUuCgkgIEFkZCBhY2Nlc3NvciBtYWNyb3MgZm9yIHRoZSBtZW1vcnkgZmxhZ3MuCgkgIFJlbmFtZSB0aGUgR3N0QnVmZmVyIF9wZWVrX21lbW9yeSgpIG1ldGhvZCB0byBfZ2V0X21lbW9yeSgpIGFuZCByZXR1cm4gYQoJICByZWZlcmVuY2UgdG8gdGhlIG1lbW9yeSBub3cgdGhhdCB3ZSBjYW4gZG8gdGhpcyB3aXRob3V0IGFmZmVjdGluZyB3cml0YWJpbGl0eQoJICBvZiB0aGUgbWVtb3J5IG9iamVjdC4gTWFrZSBpdCBwb3NzaWJsZSB0byBhbHNvIG1ha2UgdGhpcyBmdW5jdGlvbiBtZXJnZSB0aGUKCSAgYnVmZmVyIG1lbW9yeS4KCSAgQWRkIG1ldGhvZHMgdG8gcmVwbGFjZSBtZW1vcnkgaW4gYSBidWZmZXIuIE1ha2Ugc29tZSBjb252aWVuY2UgbWFjcm9zIGZvciB0aGUKCSAgYnVmZmVyIG1lbW9yeSBmdW5jdGlvbnMuCgkgIEZpeCB1bml0IHRlc3RzLgoKMjAxMi0wMi0xMyAxNzoyMjo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWY6IHVwZGF0ZQoKMjAxMi0wMi0xMyAxNToxODoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IGZpeCB0eXBvcwoKMjAxMi0wMi0xMiAyMToxNzo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIGRvY3M6IGFkZCBhIHBhcmFncmFwaCBhYm91dCB0aGUgU1RSRUFNIENPTkZJRyBldmVudCB0byB0aGUgZGVzaWduIGRvY3MKCjIwMTItMDItMTIgMjE6MDQ6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogbWFrZSBfcGFyc2VfbnRoX3N0cmVhbV9jb25maWdfaGVhZGVyKCkgYW5kIF9wYXJzZV9zZXR1cF9kYXRhKCkgcmV0dXJuIGEgYm9vbGVhbgoJICBBcyB0aGV5IGNhbiBmYWlsIChvbmx5IG9uZSBvZiBzdHJlYW0gaGVhZGVycyBvciBzZXR1cCBkYXRhCgkgIGlzIHVzdWFsbHkgcHJlc2VudCkuCgoyMDEyLTAyLTEyIDIwOjUxOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IHJlbmFtZSBnc3RfZXZlbnRfe3NldCxwYXJzZX1fc3RyZWFtX2NvbmZpZ19jb2RlY19kYXRhKCkgdG8gX3NldHVwX2RhdGEoKQoJICBNb3JlIGdlbmVyaWMuCgoyMDEyLTAyLTEwIDE1OjAzOjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMi0wMi0xMCAxNDo1ODoxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgY2xlYW4gdXAgb2JqZWN0IGluaXQKCSAgTWFrZSBhbiBfaW5pdCBtZXRob2Qgd2hlcmUgdGhlIHBhcmVudCBtaW5pLW9iamVjdCBhbmQgb3RoZXIgZmllbGRzIGFyZQoJICBpbml0aWFsaXplZC4KCSAgQ2hlY2sgdGhhdCB0aGUgcGFzc2VkIHN0cnVjdHVyZSBkb2Vzbid0IGFscmVhZHkgaGF2ZSBhIHBhcmVudC4KCSAgVXNlIHRoZSBfbmV3X2N1c3RvbSAoKSBjb25zdHJ1Y3RvcnMKCjIwMTItMDItMDcgMTE6Mjg6NDEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBiaXRyYXRlIG1lY2hhbmljcyBzaG91bGQgbm90IGRlYWwgd2l0aCBkdXJhdGlvbiB1cGRhdGUKCSAgLi4uIHNpbmNlIHRoYXQgaXMgYWxyZWFkeSBoYW5kbGVkIGJ5IF91cGRhdGVfZHVyYXRpb24sIG9yIHNob3VsZCBub3QgYmUgZG9uZQoJICBhbHRvZ2V0aGVyIGlmIHRoZSBkdXJhdGlvbiBpcyBkZXRlcm1pbmVkIGJ5IG5vbi1lc3RpbWF0ZWQgbWVhbnMuCgkgIEZpeGVzICM2Njk1MDIuCgoyMDEyLTAyLTEwIDEyOjQ1OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgZG9jczogcHVzaF9ldmVudCBkb2Vzbid0IHJldHVybiBhIGZsb3cgdmFsdWUgYWZ0ZXIgYWxsCgoyMDEyLTAyLTEwIDEyOjA1OjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHNpbGVuY2UgcHJvYmUgZGVidWcgYSBsaXR0ZQoKMjAxMi0wMi0xMCAxMToyNDoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGltcGxlbWVudCBmYXN0ZXIgQUNDRVBUX0NBUFMgcXVlcnkKCjIwMTItMDItMTAgMTE6MDk6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdDogYWRkIHNvbWUgcGVyZm9ybWFuY2UgbG9nZ2luZwoJICBBZGQgc29tZSBwZXJmb3JtYW5jZSBsb2dnaW5nIGZvciBjYXBzIGNvcHkgYW5kIHRoZSBzbG93IGRlZmF1bHQgYWNjZXB0Y2FwcwoJICBpbXBsZW1lbnRhdGlvbgoKMjAxMi0wMS0xNCAxOToxNjowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LW1ldGFkYXRhLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1sYXRlbmN5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1xdWVyeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZG9jczogdXBkYXRlIGFuZCBpbXByb3ZlIGRvY3MKCjIwMTItMDItMDkgMDA6MTQ6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IHJlbW92ZSBnc3RfZWxlbWVudF9jbGFzc19pbnN0YWxsX3N0ZF9wcm9wcygpCgkgIEl0J3Mgb25seSB1c2VkIGluIG9uZSBwbGFjZSAocnRtcCksIGFuZCB0aGVyZSBub3QgdmVyeSB3ZWxsLgoKMjAxMi0wMi0wOCAyMzo0Nzo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGZha2VzcmMsIGlkZW50aXR5LCBmYWtlc2luazogZG8gbm90IGdlbmVyYXRlIGxhc3QtbWVzc2FnZSB1cGRhdGVzIGJ5IGRlZmF1bHQKCSAgRGVmYXVsdCB0byBub3QgY3JlYXRpbmcgbG90cyBvZiBvdmVyaGVhZCBieSBkb2luZyBhIGNvdXBsZSBvZgoJICBnX3N0cmR1cF9wcmludGYoKS9nX2ZyZWUoKSBwZXIgYnVmZmVyIG9yIGV2ZW50IGp1c3QgdG8gZ2VuZXJhdGUKCSAgYSBsYXN0LW1lc3NhZ2UgdXBkYXRlIHRoYXQgcmFyZWx5IGFueW9uZSBsaXN0ZW5zIHRvLiBUaGlzIG1lYW5zCgkgIHRoYXQgeW91IG5lZWQgdG8gZW5hYmxlIHNpbGVudD10cnVlIGV4cGxpY2l0bHkgaW4gb3JkZXIgdG8gZ2V0CgkgIGxhc3QtbWVzc2FnZSBkdW1wcyBpbiBnc3QtbGF1bmNoIC12IG5vdy4gT24gdGhlIHVwc2lkZSwgcGVvcGxlCgkgIHdvbid0IGluYWR2ZXJ0ZW50bHkgZW5kIHVwIGJlbmNobWFya2luZyBnX3N0cmR1cF9wcmludGYoKQoJICBwZXJmb3JtYW5jZSBpbnN0ZWFkIG9mIGdzdHJlYW1lciBkYXRhIGhhbmRsaW5nIHBlcmZvcm1hbmNlIGFueQoJICBtb3JlLgoJICBNYXliZSB0aGUgc2lsZW50IHByb3BlcnR5IHNob3VsZCBiZSByZW5hbWVkIHRvIGVuYWJsZS1sYXN0LW1lc3NhZ2UKCSAgb3Igc29tZXRoaW5nIGxpa2UgdGhhdD8KCjIwMTItMDItMDggMTU6MTY6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5jOgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5oOgoJICBHU1RfRkxPV19XUk9OR19TVEFURSAtPiBHU1RfRkxPV19GTFVTSElORwoKMjAxMi0wMi0wOCAxNTozNDoyOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiB1c2UgZGVmYXVsdCBxdWVyeSBmdW5jdGlvbiB0byBvcHRpb25hbGx5IGZvcndhcmQgcXVlcnkKCSAgLi4uIHJhdGhlciB0aGFuIHF1ZXJ5aW5nIHBlZXIgdW5jb25kaXRpb25hbGx5IHdpdGggcG9zc2libHkgdW5kZXNpcmFibGUKCSAgb3V0Y29tZSBpbiBjYXNlIG9mIGUuZy4gU0NIRURVTElORyBxdWVyeS4KCjIwMTItMDItMDggMTU6MDM6NTYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBjbGVhbiB1cCBhIGZldyBtaW5vciBleHRyYW5lb3VzIHRva2VucwoKMjAxMi0wMi0wNyAxMjo0ODo1MCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlbW92ZSBjbG9zaW5nIHNlZ21lbnQgaGFuZGxpbmcKCjIwMTItMDItMDggMTQ6NDU6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDEyLTAyLTA4IDE0OjMyOjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGZpeCByYWNlIGluIHBhZCBtb2RlIGNoYW5nZQoJICBGaXhlcyAjNjY4OTA5IGFuZCBwcmVzdW1hYmx5IGFsc28gIzY2OTQ4MwoKMjAxMi0wMi0wOCAxMjo1NzoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBlcnJvciB3aGVuIGFjdGl2YXRpb24gbW9kZSBpcyB3cm9uZwoJICBQb3N0IGFuIGVycm9yIHdoZW4gd2UgdHJ5IHRvIHB1c2ggb24gYSBwYWQgYWN0aXZhdGVkIGluIHB1bGwgbW9kZSBhbmQgcHVsbCBvbiBhCgkgIHBhZCBpbiBwdXNoIG1vZGUuCgoyMDEyLTAyLTA4IDA5OjMwOjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiByZW1vdmUgbWV0aG9kIGRlY2xhcmF0aW9uIHRvbwoKMjAxMi0wMi0wNyAxMzo0MToyMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgY2xvY2s6IHJlbW92ZSB1bmltcGxlbWVudGVkIHN0YXRzIHByb3BlcnR5IHdoaWxlIHdlIGNhbgoKMjAxMi0wMi0wNyAxMDo0NDowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBmYWtlc3JjOiByZW1vdmUgY3VzdG9tIG1hcnNoYWxsZXIKCSAgUmVtb3ZlIG91ciBjdXN0b20gbWFyc2hhbGxlci4KCSAgTWFrZSB0aGUgYnVmZmVyIGluIHRoZSBoYW5kb2ZmIHNpZ25hbCBzdGF0aWNfc2NvcGUgc28gdGhhdCBpdCBpcyBhY3R1YWxseQoJICB3cml0YWJsZS4KCjIwMTItMDItMDYgMDk6NDY6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0OiBpbXByb3ZlIGRlYnVnZ2luZwoKMjAxMi0wMS0wNCAxNzoxMDoxNSArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBmaXggY29tcGlsYXRpb24gd2l0aCAtLWRpc2FibGUtcmVnaXN0cnkKCSAgX19yZWdpc3RyeV9yZXVzZV9wbHVnaW5fc2Nhbm5lciBpcyBvbmx5IGRlZmluZWQgd2hlbgoJICBHU1RfRElTQUJMRV9SRUdJU1RSWSBpcyBub3QgZGVmaW5lZC4KCSAgZ3N0cmVnaXN0cnkuYzogSW4gZnVuY3Rpb24gJ2dzdF9yZWdpc3RyeV9zY2FuX3BsdWdpbl9maWxlJzoKCSAgZ3N0cmVnaXN0cnkuYzoxMTMxOjg6IGVycm9yOiAnX19yZWdpc3RyeV9yZXVzZV9wbHVnaW5fc2Nhbm5lcicgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyODQKCjIwMTItMDItMDIgMTc6MTg6MjIgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IHJlc2V0IHRoZSBFT1MgZGV0ZWN0aW9uIG1hY2hpbmVyeSBhZnRlciBzZW5kaW5nIGFuIEVPUyBtZXNzYWdlCgkgIFRoaXMgd2lsbCBhbGxvdyBkZXRlY3RpbmcgZnVydGhlciBFT1MsIGZvciBpbnN0YW5jZSBhZnRlciBsb29waW5nCgkgIGEgc3RyZWFtIHdpdGhvdXQgY2hhbmdpbmcgc3RhdGVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY4Mjg5CgoyMDEyLTAxLTA3IDIzOjAwOjEyIC0wNTAwICBSeWFuIExvcnRpZSA8ZGVzcnRAZGVzcnQuY2E+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvZ2VuLnNoOiBhbGxvdyBjYWxsaW5nIGZyb20gb3V0LW9mLXRyZWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzY2NAoKMjAxMi0wMi0wMiAxNjo1OToxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICB0cmFjZTogcHJpbnQgY2FwcyBpbiBkdW1wCgoyMDEyLTAyLTAyIDE2OjA0OjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMi0wMi0wMiAxNTo1Nzo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBhZGQgZGVidWcgYW5kIHRyYWNlIGZvciBHc3RNZW1vcnkKCjIwMTItMDItMDIgMTU6NTU6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJICB0cmFjZTogZG9uJ3QgY2hlY2sgcmFuZG9tIHBvaW50ZXJzIGZvciBvYmplY3RzCgkgIE9ubHkgc2VlIGlmIHRoZSB0cmFjZWQgcG9pbnRlciBpcyBhIEdPYmplY3Qgd2hlbiBpdCB3YXMgcmVnaXN0ZXJlZCB3aXRoIHRoZQoJICBzcGVjaWFsIG9mZnNldCBvZiAtMi4KCjIwMTItMDItMDIgMTU6NTQ6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSAgVXBkYXRlIGRlYnVnIGNhdGVnb3JpZXMKCSAgUmVtb3ZlIHNvbWUgY2F0ZWdvcmllcyBtYXJrZWQgZm9yIGRlbGV0aW9uLgoJICBBZGQgYSBjYXRlZ29yeSBmb3IgR3N0TWVtb3J5LgoKMjAxMi0wMi0wMiAxNTo1MjoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJICByZW1vdmUgVFJBQ0VfTkFNRSBmcm9tIGhlYWRlcnMKCjIwMTItMDItMDIgMTM6MTc6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWRkIG5ldyB0ZXN0CgoyMDEyLTAyLTAyIDEzOjE1OjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBkZW50aXR5OiByZW1vdmUgcHJlcGFyZV9vdXRwdXRfYnVmZmVyCgkgIENvcnJlY3RseSBtYXJrIHBhc3N0aHJvdWdoIG9uIHRoZSBiYXNlY2xhc3Mgc28gdGhhdCBpdCBjYW4gY29ycmVjdGx5IGRvIHRoZQoJICBhbGxvY2F0aW9uIG9mIHRoZSBvdXRwdXQgYnVmZmVycy4KCSAgUmVtb3ZlIG91ciBjdXN0b20gcHJlcGFyZV9vdXRwdXRfYnVmZmVyIGZ1bmN0aW9uIG5vdyB0aGF0IHRoZSBiYXNlY2xhc3MgaXMKCSAgc21hcnRlci4KCjIwMTItMDItMDIgMTM6MTA6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogaW1wcm92ZSBwcmVwYXJlX291dHB1dF9idWZmZXIKCSAgQ2xlYW4gdXAgdGhlIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBmdW5jdGlvbi4KCSAgUmV1c2UgdGhlIGlucHV0IGJ1ZmZlciB3aGVuIGl0IGlzIHdyaXRhYmxlIGFuZCB3aGVuIGRvaW5nIGFuCgkgIGluLXBsYWNlIGJ1dCBub24tcGFzc3Rocm91Z2ggdHJhbnNmb3JtLgoJICBNb3ZlIHRoZSBjb3B5LW1ldGFkYXRhIGZ1bmN0aW9uIGNhbGwgdG8gdGhlIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBkZWZhdWx0CgkgIGZ1bmN0aW9uLiBJZiBzdWJjbGFzc2VzIGltcGxlbWVudCBhIGN1c3RvbSBwcmVwYXJlX291dHB1dF9idWZmZXIsIHRoZXkgbXVzdCBhbHNvCgkgIGNvcHkgdGhlIG1ldGFkYXRhIHRoZW1zZWx2ZXMuCgkgIFJlbW92ZSBhIHVzZWxlc3MgbWVtb3J5IGNvcHkgYmVjYXVzZSBwcmVwYXJlX291dHB1dF9idWZmZXIgYWxyZWFkeSBkaWQgdGhhdC4KCjIwMTItMDItMDIgMTI6MzI6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBvbmx5IG1hcCB3aGVuIHVzaW5nIHRoZSBtZW1vcnkKCjIwMTItMDItMDIgMTI6MzI6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBwbHVnaW5zOiBwcm94eSBhbGxvY2F0aW9uIHF1ZXJ5CgoyMDEyLTAyLTAyIDEyOjMwOjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHNpbXBsaWZ5IGNvZGUKCSAgV2UgYWxyZWFkeSBjaGVja2VkIHBhc3N0aHJvdWdoIGEgZmV3IGxpbmVzIGFib3ZlLgoKMjAxMi0wMi0wMiAxMjowNzoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGFkZCBzb21lIHBlcmZvcm1jZSBkZWJ1ZyBpbmZvCgkgIEFkZCBzb21lIFBFUkZPUk1BTkNFIGRlYnVnIGxpbmVzIHdoZXJlIHdlIGNvcHkgYW5kIGRvIG90aGVyIHN1Ym9wdGltYWwgdGhpbmdzLgoKMjAxMi0wMi0wMiAxMjowNTozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBmbGFnIHRvIHByb3h5IGFsbG9jYXRpb24gcXVlcnkKCSAgQWRkIGEgZmxhZyB0byBmb3JjZSB0aGUgZGVmYXVsdCBxdWVyeSBoYW5kbGVyIHRvIGZvcndhcmQgdGhlIGFsbG9jYXRpb24gcXVlcnkKCSAgaW5zdGVhZCBvZiBkaXNjYXJkaW5nIGl0LgoJICBSZW9yZGVyIHRoZSBwYWQgZmxhZ3MgYSBiaXQuCgoyMDEyLTAyLTAyIDAxOjMwOjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZDogcGFzcyBleHRlbnNpb25zIGFzIGNvbW1hLXNlcGFyYXRlZCBsaXN0IGluIGEgc2ltcGxlIHN0cmluZwoJICBGaXggYW5ub3lpbmcgZ3N0X3R5cGVfZmluZF9yZWdpc3RlcigpIGZ1bmN0aW9uIHNpZ25hdHVyZS4gQSBzaW1wbGUKCSAgc3RyaW5nIHdpdGggY29tbWEtc2VwYXJhdGVkIGV4dGVuc2lvbnMgd29ya3MganVzdCBhcyB3ZWxsIGFuZCBzYXZlcwoJICBsaW5lcyBvZiBjb2RlLCBjYXN0cywgcmVsb2NhdGlvbnMgYW5kIHVsdGltYXRlbHkga2l0dGVucy4KCjIwMTItMDEtMzEgMTc6NDE6MTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZml4IHJhY2UgaW4gc3RhcnR1cAoJICBNYXJrIHJlbmVnb3RpYXRlIGJlZm9yZSBzdGFydGluZyB0aGUgcHVzaGluZyB0aHJlYWQuCgkgIERvIGFsc28gY2hlY2sgaWYgd2UgYXJlIHN0YXJ0aW5nIGluIHRoZSBnZXRfcmFuZ2UgZnVuY3Rpb24uCgoyMDEyLTAxLTMxIDE2OjI3OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZG9uJ3QgY3Jhc2ggb24gbWlzc2luZyB0ZW1wbGF0ZQoJICBTb21lIHJlcXVlc3QgcGFkcyBkb24ndCBoYXZlIGEgcGFkdGVtcGxhdGUgKG1vc3RseSB0aG9zZSBmcm9tIGVuY29kZWJpbikuIEF2b2lkCgkgIGNyYXNoaW5nIGluIHRoaXMgY2FzZS4KCjIwMTItMDEtMzEgMTI6MjA6NDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci90ZXh0LWNvbG9yLWV4YW1wbGUuYzoKCSAgY29udHJvbGxlcjogY29uc3RydWN0dXJlcyBmb3IgY29udHJvbCBzb3VyY2VzIHJldHVybiBHc3RDb250cm9sU291cmNlCgkgIERvbid0IHJldHVybiB0aGUgc3BlY2lmaWMgdHlwZXMuIEluIG1vc3QgY2FzZXMgdGhlcmUgaXMgbm8gc3BlY2lmaWMgYXBpIHRoZXJlCgkgIGFueXdheS4KCjIwMTItMDEtMzEgMTI6MTA6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIGRvbid0IGRvIGxvZ2ljIGluIGdfYXNzZXJ0Li4uCgoyMDEyLTAxLTMwIDE5OjE3OjAwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nYXJnYi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nYXJnYi5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nZGlyZWN0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdkaXJlY3QuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvdGV4dC1jb2xvci1leGFtcGxlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgY29udHJvbGxlcjogcmVuYW1lIGNvbnRyb2wtYmluZGluZ3MKCSAgZ3N0X2NvbnRyb2xfYmluZGluZ194eHggLT4gZ3N0X3h4eF9jb250cm9sX2JpbmRpbmcgZm9yIGNvbnNpc3RlbmN5LgoKMjAxMi0wMS0zMCAxNDo0ODo0NCAtMDIwMCAgSm/Do28gUGF1bG8gUGl6YW5pIEZsb3IgPGpvYW9waXphbmlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHByZXNldC5oOgoJICBGaXhlcyB0aGUgbGFjayBvZiBhbiBpbmNsdWRlIGRpcmVjdGl2ZSBpbiBnc3QvZ3N0cHJlc2V0LmgKCSAgSXQgYmxvY2tlZCB0aGUgYnVpbGQgb2YgZXh0ZXJuYWwgbGlicmFyaWVzIGRlcGVuZGluZyBvbiBnc3RyZWFtZXItY29yZSAobmFtZWx5LCBnc3RyZWFtZXJtbSkuCgkgIENvbXBsZXRlIGJ1ZyByZXBvcnQgYXQgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2OTAzNgoKMjAxMi0wMS0zMCAxODoxNzozNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xzb3VyY2U6IHNpbmsgdGhlIGZsb2F0aW5nIHJlZgoJICBjb250cm9sIHNvdXJjZXMgY2FuIGJlIHVzZWQgb24gc2V2ZXJhbCBjb250cm9sIGJpbmRpbmdzLgoKMjAxMi0wMS0zMCAxNzoxNToyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOyByZW1vdmUgSU5fQ0FQUyBidWZmZXIgZmxhZwoJICBUaGUgSU5fQ0FQUyBidWZmZXIgZmxhZyBpcyBkZXByZWNhdGVkIGFuZCBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCB0aGUgSEVBREVSCgkgIGZsYWcuCgoyMDEyLTAxLTMwIDE2OjA5OjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM7IHVwZGF0ZSBmb3IgbmV3IGFwaQoKMjAxMi0wMS0zMCAxNTo1OTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBxdWVyeTogcGFzcyBhbGxvY2F0b3IgaW4gcXVlcnkKCSAgUGxhY2UgdGhlIGFsbG9jYXRvciBvYmplY3QgaW4gdGhlIEFMTE9DQVRJT04gcXVlcnkgaW5zdGVhZCBvZiB0aGUgbmFtZS4gVGhpcwoJICBhbGxvd3MgdXMgdG8gZXhjaGFuZ2UgYWxsb2NhdG9ycyB0aGF0IGFyZSBub3QgaW4gdGhlIGdsb2JhbCBwb29sIG9mIGFsbG9jYXRvcnMuCgkgIFVwZGF0ZSBlbGVtZW50cyBmb3IgdGhlIG5ldyBhcGkKCjIwMTItMDEtMzAgMTU6NTc6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgbWVtb3J5IHR5cGUKCSAgQWRkIG1lbW9yeSB0eXBlIHdoZW4gcmVnaXN0ZXJpbmcgbWVtb3J5IGFsbG9jYXRvcnMuIEFkZCBnZXR0ZXIgZm9yIHRoZSBtZW1vcnkKCSAgdHlwZS4KCjIwMTItMDEtMjkgMjI6NTg6NTEgKzAwMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgdmFsdmU6IFJlcHVzaCBzdGlja3kgZXZlbnRzIGFmdGVyIGRpc2FibGluZyBkcm9wcGluZwoKMjAxMi0wMS0zMCAxMzoyODozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBib3hlZCBHVHlwZSBmb3IgdGhlIGFsbG9jYXRvcgoKMjAxMi0wMS0zMCAxMzowMjoxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVtb3J5OiBtYWtlIHRoZSBhbGxvY2F0b3IgcmVmY291bnRlZAoJICBBZGQgcmVmY291bnRpbmcgdG8gdGhlIEdzdEFsbG9jYXRvciBvYmplY3QuCgkgIFJlbW92ZSBjb25zdCBmcm9tIGZ1bmN0aW9ucyBiZWNhdXNlIHRoZSBhbGxvY2F0b3IgaXMgcmVmY291bnRlZCBub3cuCgkgIFJlbmFtZSB0aGUgdm1ldGhvZHMgZm9yIGNvbnNpc3RlbmN5CgkgIEV4cG9zZSB0aGUgY29uc3RydWN0b3IgZm9yIEdzdEFsbG9jYXRvciBhbmQgYWRkIGEgZGVzdHJveSBub3RpZnkgZm9yIHRoZQoJICB1c2VyX2RhdGEuIFRoaXMgc2hvdWxkIG1ha2UgaXQgcG9zc2libGUgdG8gY3JlYXRlIGFsbG9jYXRvcnMgdGhhdCBhcmUgbm90CgkgIHJlZ2lzdGVyZWQgYW5kIHNoYXJlZCBnbG9iYWxseSBhbG9uZyB3aXRoIHRoZSBwb3NzaWJpbGl0eSB0byBkZXN0cm95IHRoZW0KCSAgcHJvcGVybHkuCgkgIFVwZGF0ZSBkZWZzIHdpdGggbmV3IHN5bWJvbHMuCgoyMDEyLTAxLTMwIDEwOjMwOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBmb3IgZ2FwIGV2ZW50CgoyMDEyLTAxLTMwIDEwOjA3OjUxICswMTAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkgIGNvcmU6IGRvbid0IHNoaXAgZ3N0dHJhY2UuaCBwcml2YXRlIGhlYWRlcgoJICBJbmNsdWRlIGl0IGV4cGxpY2l0ZWx5IGluIGdzdC5jIGFuZCBubyBsb25nZXIgaW5jbHVkZSBpdCBpbiBnc3QuaC4KCSAgVGhhdCBoZWFkZXIgd2FzIG1hZGUgcHJpdmF0ZSBpbiAxOTY5Yjk0MjY3YjRmMzc3ZWEyNjYzODc2YWU4NzIwNzE3ODg5NjkzLgoKMjAxMi0wMS0yOCAxODo1MDoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IHJlcXVpcmUgYSB2YWxpZCBkdXJhdGlvbiBmb3IgdGhlIEdBUCBldmVudAoKMjAxMi0wMS0yOCAxODo0OTo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogcmVmIG5ldyBlbnVtIHR5cGUgaW4gZ3N0X2luaXQoKQoKMjAxMi0wMS0yNyAxODo1NzoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZG9jczogYWRkIHNvbWUgKG91dCkgYW5ub3RhdGlvbnMgZm9yIHN0cmVhbSBjb25maWcgcGFyc2VyIGZ1bmN0aW9ucwoKMjAxMi0wMS0yNyAxODo1NjowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBhZGQgY29uc3RydWN0b3IgYW5kIHBhcnNlIGZ1bmN0aW9uIGZvciBuZXcgR0FQIGV2ZW50CgkgIChXaGF0ZXZlciB5b3UgZG8sIGRvbid0IG1lbnRpb24gdGhlIGZpbGxlciBldmVudC4pCgoyMDEyLTAxLTI3IDE4OjM3OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBkb2NzOiBHU1RfRVZFTlRfU1RSRUFNX0NPTkZJRyBpcyBpbXBsZW1lbnRlZCBub3cKCjIwMTItMDEtMjcgMTc6NTc6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogbWVudGlvbiBjb2RlYyBkYXRhIC8gc3RyZWFtIGhlYWRlciBjaGFuZ2UgaW4gcG9ydGluZyBkb2NzCgoyMDEyLTAxLTI4IDE0OjM1OjUxICswMDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkgIFVzZSBtYWNyb3MgdG8gcmVnaXN0ZXIgYm94ZWQgdHlwZXMgdGhyZWFkIHNhZmVseQoKMjAxMi0wMS0yOCAwODozODowMyArMDEwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBVcGRhdGUgZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXIgdG8gMC4xMSBzdHlsZSBjYXBzCgkgIFBhc3MgdGhlIGRlc2lyZWQgY2FwcyBleHBsaWNpdGVseQoKMjAxMi0wMS0yNyAxOTowMDowMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogRml4IG1lbW9yeSBsZWFrCgoyMDEyLTAxLTI3IDE4OjUzOjQ1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBEb24ndCB1bnJlZiBwbHVnaW4gZmVhdHVyZXMgbXVsdGlwbGUgdGltZXMKCSAgZ3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfZnJlZSgpIHVucmVmcyB0aGVtIHRvby4KCjIwMTItMDEtMjcgMTc6NTA6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIG5ldyBzdHJlYW0gY29uZmlnIGZ1bmN0aW9ucyB0byBkb2NzCgoyMDEyLTAxLTI3IDE3OjQ5OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIHRlc3RzOiBmaXggc2ltcGxlLWxhdW5jaC1saW5lcyBjb21waWxhdGlvbgoJICBEb24ndCB1c2UgcmVtb3ZlZCBBUEkuCgoyMDEyLTAxLTI3IDE4OjQ2OjQ5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IEFkZCBwYWRkaW5nIHRvIHRoZSBwdWJsaWMgc3RydWN0CgoyMDEyLTAxLTI3IDE3OjQ1OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBkb24ndCByZWYgR1R5cGUgZm9yIHByaXZhdGUgZW51bSBmb3Igd2hpY2ggdGhlcmUncyBubyBHVHlwZSBhbnkgbW9yZQoKMjAxMi0wMS0yNyAxNzo0NToxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZvciBuZXcgYW5kIHJlbW92ZWQgQVBJCgoyMDEyLTAxLTI3IDE3OjM5OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGFkZCBjb25zdHJ1Y3QgYW5kIHBhcnNlIEFQSSBmb3IgdGhlIG5ldyBTVFJFQU0gQ09ORklHIGV2ZW50CgkgIGNvZGVjIGRhdGEgYW5kIHN0cmVhbSBoZWFkZXJzIGRvbid0IGJlbG9uZyBpbnRvIGNhcHMsIHNpbmNlIHRoZXkKCSAgYXJlIG5vdCBuZWdvdGlhdGVkLiBXZSBzaWduYWwgdGhlbSB1c2luZyB0aGUgU1RSRUFNIENPTkZJRyBldmVudAoJICBpbnN0ZWFkLgoKMjAxMi0wMS0yNyAxODoyNDo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgdHJhY2U6IHJlbW92ZSBmcm9tIHB1YmxpYyBoZWFkZXJzCgoyMDEyLTAxLTI3IDEyOjE2OjA1ICswMTAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPGFtb3JhbGVzQGZsdW1vdGlvbi5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBmaXggZG9jdW1lbmF0aW9uIHR5cG8KCjIwMTItMDEtMjcgMTc6NTA6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0cmFjZTogcmV3b3JrIGFsbG9jIHRyYWNpbmcKCSAgUmVtb3ZlIHRyYWNlLCB3ZSB1c2UgZGVidWcgbG9nIGZvciB0aGF0CgkgIE1ha2UgYWxsb2MgdHJhY2Ugc2ltcGxlciwgcmVtb3Zpbmcgc29tZSBtZXRob2RzLgoJICBBY3RpdmF0ZSBhbGxvYyB0cmFjZSB3aXRoIGEgR1NUX1RSQUNFPTMgZW52aXJvbm1lbnQgdmFyaWFibGUuCgkgIER1bXAgbGVha2VkIG9iamVjdHMgYXRleGl0LgoJICBQcm92aWRlIGFuIG9mZnNldCBpbiB0aGUgb2JqZWN0IHdoZXJlIHRoZSBHVHlwZSBjYW4gYmUgZm91bmQgc28gdGhhdCBtb3JlCgkgIHZlcmJvc2UgaW5mbyBjYW4gYmUgZ2l2ZW4gZm9yIG9iamVjdHMuCgkgIFJlbW92ZSAtVCBvcHRpb24gZnJvbSBnc3QtbGF1bmNoIGJlY2F1c2UgdHJhY2luZyBpcyBub3cgdHJpZ2dlcmVkIHdpdGggdGhlCgkgIGVudmlyb25tZW50IHZhcmlhYmxlLgoKMjAxMi0wMS0yNSAxMjozNTo0MyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogYW5zd2VyIGNhcHMgcXVlcmllcyB3aXRoIG91ciB0eXBlZm91bmQgY2FwcwoJICBUaGlzIGF2b2lkcyBtZXJlbHkgZm9yd2FyZGluZyB0aGUgZXZlbnQgdG8gdGhlIHNpbmssIGFuZCBnZXR0aW5nCgkgIHNvbWV0aGluZyB1c2VsZXNzIHN1Y2ggYXMgQU5ZLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3NTcxCgoyMDEyLTAxLTI3IDE2OjE4OjAwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIHR5cGVmaW5kOiBEbyB0eXBlZmluZGluZyBmcm9tIGEgc2VwYXJhdGUgdGhyZWFkIGFuZCBub3QgZnJvbSB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uCgoyMDEyLTAxLTI3IDE1OjMyOjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggbWVtb3J5IGxlYWsKCSAgdW5tYXAgdGhlIGJ1ZmZlciBtZW1vcnkgb24gZXJyb3JzLgoKMjAxMi0wMS0yNyAxNTozMjoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIHRyYWNlOiBtYWtlIGFsbG9jIHRyYWNlIHdvcmsgZm9yIG1pbmlvYmplY3QgYWdhaW4KCjIwMTItMDEtMjcgMTU6MDk6MzUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmMKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaAoKMjAxMi0wMS0yNyAxNTowMjo1MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IE1vdmUgcHJpdmF0ZSBmaWVsZHMgZnJvbSB0aGUgcHVibGljIHN0cnVjdHMgdG8gcHJpdmF0ZSBzdHJ1Y3RzCgkgIEZpeGVzIGJ1ZyAjNjY4NzY0LgoKMjAxMi0wMS0yNyAxMzowNTo0OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdhcmdiLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdkaXJlY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBubyBmYW5jeSB1dGY4IGNoYXJzIGluIHRoZSBnaSBhbm5vdGF0aW9ucwoKMjAxMi0wMS0yNyAxMjo1MDoyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgdGVzdHM6IGZpeCBzb21lIG1vcmUgbGVha3MKCjIwMTItMDEtMjcgMTI6MzM6MzIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBGaXggaGFuZGxpbmcgb2YgdGhlIG5ldyBzdHJlYW0tc3RhcnQgZXZlbnQKCjIwMTItMDEtMjcgMTE6MzI6MTIgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBnc3RwbHVnaW46IGFkZCBhIGZldyBjb25zdHMgdG8gcmVhZCBvbmx5IGRhdGEKCjIwMTItMDEtMjcgMTI6MjI6NDggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nYXJnYi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nZGlyZWN0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogYWRkIGdpIGFubm90YXRpb25zCgoyMDEyLTAxLTI3IDEyOjE0OjI4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB1dGlsczogRml4IHVuaXQgdGVzdAoKMjAxMi0wMS0yNyAxMjoxMDowOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB0ZXN0czogZml4IGxlYWtzCgoyMDEyLTAxLTI3IDExOjQwOjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGF2b2lkIG1lbW9yeSBsZWFrCgkgIFVucmVmIHRoZSBvbGQgbWVtb3J5IGluIG1ha2VfbWFwcGVkLgoJICBBZGQgc29tZSBkZWJ1ZyBpbmZvCgoyMDEyLTAxLTI3IDExOjQwOjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGF2b2lkIGNhcHMgbGVhawoKMjAxMi0wMS0yNyAxMTowMToyNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5L2Zha2V7c3JjLHNpbmt9OiBJbmNsdWRlIGV2ZW50IHR5cGUgbmFtZSBpbiB0aGUgZGVidWcgb3V0cHV0CgoyMDEyLTAxLTI3IDEwOjU0OjU2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IE1hcmsgdGhlIG5ldyBHQVAgZXZlbnQgYXMgbm9uLXN0aWNreQoKMjAxMi0wMS0yNyAxMDo0NjowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IERyb3AgdGhlIHN0cmVhbS1zdGFydCBhbmQgc3RyZWFtLWNvbmZpZyBldmVudHMgYnkgZGVmYXVsdAoKMjAxMi0wMS0yNyAxMDo0MjowOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQgcmViYXNlCgoyMDEyLTAxLTI3IDEwOjQxOjA3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBTZW5kIHRoZSBzdHJlYW0tc3RhcnQgZXZlbnQgYXMgZmlyc3QgZXZlbnQgZXZlcgoKMjAxMi0wMS0yNyAxMDozMDo0MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogQWRkIGNvbnN0cnVjdG9yIGFuZCBkb2NzIGZvciB0aGUgbmV3IFNUUkVBTV9TVEFSVCBldmVudAoKMjAxMi0wMS0yNiAxOToyODowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCB1c2VyIGRhdGEgdG8gY2hhaW4gZnVuY3Rpb25zCgoyMDEyLTAxLTI2IDE4OjU2OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCB0eXBvCgoyMDEyLTAxLTI2IDE4OjIyOjI5ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IHJlc3RvcmUgZGF0ZS90aW1lIHR5cGUgdG8gR3N0RGF0ZVRpbWUKCSAgVGhlIGNoYW5nZSB0byBHRGF0ZVRpbWUgd2FzIGFwcGFyZW50bHkgYWNjaWRlbnRhbCwgYW5kCgkgIGJyZWFrcyBwbHVnaW5zIHRyeWluZyB0byBmZWVkIGEgR3N0RGF0ZVRpbWUgdG8gdGhlIHRhZ2xpc3QgQVBpLgoKMjAxMi0wMS0yNiAxOToxMjoxNiArMDIwMCAgUGV0ZXJpcyBLcmlzamFuaXMgPHBlY2lza0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSAgZ3N0OiBnc3RfcGFyc2VfbGF1bmNoIG5vdyByZXR1cm5zIGEgZmxvYXRpbmcgcmVmZXJlbmNlCgoyMDEyLTAxLTI2IDE4OjUzOjUxICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0c3RydWN0dXJlOiBTZXQgInRyYW5zZmVyIG5vbmUiIHRvIHJldHVybiB2YWx1ZXMgdGhhdCBzaG91bGRuJ3QgYmUgZnJlZWQKCjIwMTAtMTItMDQgMTg6NTM6NTUgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogY2FsbCAtPnJlbGVhc2VfcGFkKCkgdG8gY2xlYW4gdXAgcGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzYwMTEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTQwMjU2MgoKMjAxMi0wMS0yNiAxNjozMTo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IGFkZCBzb21lIG1vcmUgZXZlbnRzCgkgIEFkZCBzb21lIG1vcmUgbmV3IGV2ZW50cyB0aGF0IHdlIHdhbnQgdG8gaW1wbGVtZW50IGxhdGVyLgoKMjAxMi0wMS0yNiAxNToxNToyMSArMDEwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDxhbW9yYWxlc0BmbHVtb3Rpb24uY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBnc3RtZW1vcnk6IGFkZCBtaXNzaW5nIHBhcmFtZXRlcgoKMjAxMi0wMS0yNiAxNDo1NzoxNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBGaXggY29tcGlsZXIgd2FybmluZwoKMjAxMi0wMS0yNiAxNDo1NTozMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBVc2UgY29ycmVjdCBzaXplIGZvciBjYXBzIGFsbG9jYXRpb24KCjIwMTItMDEtMjYgMTQ6NDU6MzAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogTWFrZSBHc3RDYXBzIHB1YmxpYyBzdHJ1Y3QgbW9yZSBvcGFxdWUgYnkgbW92aW5nIHRoZSBwcml2YXRlIHBvaW50ZXIgaW50byB0aGUgaW1wbGVtZW50YXRpb24KCjIwMTItMDEtMjYgMTQ6MzM6MTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICBjYXBzOiBTdG9yZSBhIHBvaW50ZXIgdG8gR3N0Q2FwcyBpbiBHc3RTdGF0aWNDYXBzCgkgIC4uLmluc3RlYWQgb2YgdXNpbmcgaGFja2lzaCBzdWJjbGFzcyBvZiBHc3RDYXBzLCB3aGljaCBhbHNvCgkgIGhhZCBzb21lIHRocmVhZC1zYWZldHkgcHJvYmxlbXMuCgoyMDEyLTAxLTI2IDEzOjI0OjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGV2ZW50OiByZW1vdmUgdGhlIHN0aWNreSBldmVudCBpbmRleAoJICBXZSBkb24ndCB1c2UgdGhlIHN0aWNreSBldmVudCBpbmRleCBhbnltb3JlLCBvcmRlcmluZyBvZiB0aGUgZXZlbnRzIGFyZSBob3cgdGhleQoJICB3ZXJlIHNlbnQgaW5pdGlhbGx5LgoJICBBZGQgc29tZSBtb3JlIHBhZGRpbmcgYmV0d2VlbiB0aGUgZXZlbnQgbnVtYmVycyBzbyB0aGF0IHdlIGNhbiBpbnNlcnQgbmV3IGV2ZW50cwoJICBsYXRlci4KCjIwMTItMDEtMjYgMTA6NDg6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIGRvY3M6IHJlbW92ZSBjb2xsZWN0cGFkcyBmcm9tIGRvY3MsIGZpeCBidWlsZAoKMjAxMi0wMS0yNiAxMDoyMjoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiB1c2UgR3N0VmFsdWVBcnJheSBpbnN0ZWFkIG9mIEdWYWx1ZUFycmF5IGZvciBzdG9yaW5nIG9wdGlvbnMgaW4gdGhlIGNvbmZpZwoJICBTaW5jZSBHVmFsdWVBcnJheSBpcyBkZXByZWNhdGVkLiBJdCdzIGFsbCBvbmx5IGludGVybmFsIGFueXdoZXJlIGhlcmUsCgkgIGJ1dCBpZiB3ZSB1c2UgR3N0VmFsdWVBcnJheSB0aGUgb3B0aW9uIHN0cmluZ3MgZ2V0IHNlcmlhbGl6ZWQgbmljZWx5CgkgIGluIHRoZSBkZWJ1ZyBsb2dzIGF0IGxlYXN0LgoKMjAxMi0wMS0yNiAwOToyNjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogZ3N0LWluc3BlY3Q6IHN1cHByZXNzIGRlcHJlY2F0aW9uIHdhcm5pbmdzIGZvciBHX1RZUEVfVkFMVUVfQVJSQVkKCSAgRm9yIG5vdyBhbnl3YXkuCgoyMDEyLTAxLTI2IDExOjQyOjI5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBjb2xsZWN0cGFkczI6IFVuaXQgdGVzdCBpcyB2YWxncmluZCBjbGVhbiBub3cKCjIwMTItMDEtMjYgMTE6NDA6NTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBGaXggdW5pdCB0ZXN0IHRvIGFjdHVhbGx5IHdvcmsgYWdhaW4KCjIwMTItMDEtMjYgMTE6Mzg6MjkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkczIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgY29sbGVjdHBhZHMyOiBQb3J0IGNvbGxlY3RwYWRzIHVuaXQgdGVzdCB0byBjb2xsZWN0cGFkczIKCSAgQ3VycmVudGx5IGZhaWxzIGJ1dCByZWFsbHkgc2hvdWxkbid0LgoKMjAxMi0wMS0yNiAxMTowMToyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBwcm9iZSBpZCB0byB0aGUgaW5mbwoKMjAxMi0wMS0yNiAxMDo0ODo1NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBjb2xsZWN0cGFkczogUmVtb3ZlIG9sZCBjb2xsZWN0cGFkcwoJICBTdGlsbCBoYXZlIHRvIHJlbmFtZSBjb2xsZWN0cGFkczIgdG8gY29sbGVjdHBhZHMgYmVmb3JlIHRoZSAxLjAgcmVsZWFzZS4KCjIwMTItMDEtMjYgMTA6MzA6MjUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgY29sbGVjdHBhZHMyOiBEb24ndCBmb3J3YXJkIENBUFMgZXZlbnQgYXV0b21hdGljYWxseQoKMjAxMi0wMS0yNSAxODo0OToxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IEZpeCBoYW5kbGluZyBvZiB0aGUgZXZlbnQgZnVuY3Rpb24gYW5kIGRvY3VtZW50IGl0CgkgIFRoZSBldmVudCBmdW5jdGlvbiBpcyBzdXBwb3NlZCB0byBmb3J3YXJkL2Ryb3AgdGhlIGV2ZW50IGluIGFueSBjYXNlCgkgIG5vdyBhbmQgdGFrZXMgb3duZXJzaGlwIG9mIHRoZSBldmVudC4KCjIwMTItMDEtMjUgMTg6MzY6NDIgKzAxMDAgIEphc29uIERlUm9zZSA8amRlcm9zZUBub3ZhY3V0LmNvbT4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBnc3RfcGFkX3RlbXBsYXRlX25ldygpIG5vdyByZXR1cm5zIGEgZmxvYXRpbmcgcmVmZXJlbmNlCgoyMDEyLTAxLTI1IDE5OjQxOjAzICswMjAwICBQZXRlcmlzIEtyaXNqYW5pcyA8cGVjaXNrQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBnc3RfcGlwZWxpbmVfbmV3IG5vdyByZXR1cm5zIGEgZmxvYXRpbmcgcmVmZXJlbmNlLgoKMjAxMi0wMS0yNSAxNzoyNzo0MCArMDIwMCAgUGV0ZXJpcyBLcmlzamFuaXMgPHBlY2lza0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0OiBnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24gcmV0dXJucyBhIG5ldyByZWZlcmVuY2UKCjIwMTItMDEtMjUgMTU6MTQ6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiB1c2UgR0FycmF5IGZvciBpbnRlcm5hbCBhcnJheXMgaW5zdGVhZCBvZiB0aGUgbm93LWRlcHJlY2F0ZWQgR1ZhbHVlQXJyYXkKCjIwMTItMDEtMjUgMTY6MDE6MDIgKzAyMDAgIFBldGVyaXMgS3Jpc2phbmlzIDxwZWNpc2tAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3Q6IENoYW5nZWQgaW50cm9zcGVjdGlvbiB0cmFuc2ZlciBmbGFnIHRvICh0cmFuc2ZlciBmbG9hdGluZykKCSAgZm9yIGdzdF9wYWRfbmV3LCBnc3RfZ2hvc3RfcGFkX25ldyBhbmQgZ3N0X2Jpbl9uZXcgY29uc3R1Y3RvcnMuIEZpeGVzCgkgIHNlZ2ZhdWx0cyBkdWUgb2YgdHJhbnNmZXIgZnVsbCBhbmQgZmxvYXRpbmcgcmVmIHByb2JsZW0uCgoyMDEyLTAxLTI1IDEzOjQ2OjEzICswMTAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXMgKGF0KSBhcGVzdGFhcnQgKGRvdCkgb3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjNDYzYmMwIHRvIDdmZGE1MjQKCjIwMTItMDEtMjQgMTQ6Mzc6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgZmxhZ3MgdG8gdGhlIG1hcGluZm8KCjIwMTItMDEtMjAgMTY6MTA6MjYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogbWFrZSBndWludDggKiBmb3IgZWFzeSB1c2FnZQoKMjAxMi0wMS0yMCAxNDo1Njo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZW1vcnk6IGFkZCBtZXRob2QgdG8gY3JlYXRlIG1hcHBlZCBtZW1vcnkKCSAgQWRkIGEgbWV0aG9kIHRvIGNyZWF0ZSBhIEdzdE1lbW9yeSB3aXRoIHRoZSBkZXNpcmVkIG1hcHBpbmcuIE1ha2VzIGEgY29weSBvZiB0aGUKCSAgbWVtb3J5IGlmIGl0IGlzIGN1cnJlbnRseSBpbiB1c2UuCgoyMDEyLTAxLTIwIDE0OjIzOjU3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvYWRhcHRlci9hZGFwdGVyX3Rlc3QuYzoKCSAgQWRkIG5ldyBHc3RNYXBJbmZvCgkgIFVzZSBhIHN0cnVjdHVyZSB0byBob2xkIGluZm8gYWJvdXQgdGhlIG1hcHBpbmcuIFRoZSBhcHBsaWNhdGlvbiB0aGVuIGtlZXBzIHRyYWNrCgkgIG9mIHRoaXMgc3RhdGUgYW5kIHdlIGNhbiB1c2UgaXQgdG8gdW5tYXAgdGhlIG1lbW9yeSBhZ2FpbiBsYXRlci4KCjIwMTItMDEtMjUgMTE6NDk6NTAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkgIGNvbnRyb2xiaW5kaW5nczogbmFtZSBpcyBub3QgYSBjb25zdAoJICBJdCBnZXRzIG1vZGlmaWVkIGR1cmluZyB0aGUgbGlmZSBvZiB0aGUgb2JqZWN0LiBGaXhlcyBidWlsZC4KCjIwMTItMDEtMjUgMTE6NDM6MTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMi0wMS0yNSAxMTozNzo0MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDJhNTkwMTYgdG8gYzQ2M2JjMAoKMjAxMi0wMS0yNCAyMTo1MzoxNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2FyZ2IuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2RpcmVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nZGlyZWN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgY29udHJvbGxlcjogY2xlYW51cCB0aGUgY29udHJvbC1iaW5kaW5nIGNvbnN0cnVjdGlvbgoJICBUaGlzIGlzIG5vdyBiaW5kaW5ncyBmaXJlbmRseSBhcyBfbmV3IGlzIGp1c3QgYSBjbGFzc2ljIGMgY29udmVuaWVuY2UgYW5kIGFsbAoJICB0aGUgd29yayBpcyBkb25lIGluIGEgY29uc3RydWN0b3IuIEFzIGEgc2lkZSBlZmZlY3QgX25ldyBuZXZlciBmYWlscy4KCSAgRml4IHRoZSB0ZXN0cy4KCjIwMTItMDEtMjQgMTQ6NDA6MzMgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBoYW5kbGUgTlVMTCBkZXN0IGluIGJpdG1hc2svYml0bWFzayBpbnRlcnNlY3Rpb24KCjIwMTEtMTItMDEgMTI6NDM6MDMgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHRlc3RzOiBhZGQgYmFzaWMgdGVzdHMgZm9yIG5ldyBzdGVwcGVkIHJhbmdlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1Mjk0CgoyMDExLTExLTMwIDE0OjQ1OjEyICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dmFsdWU6IGFkZCBzdGVwcGVkIHJhbmdlcwoJICBpbnQgYW5kIGludDY0IHJhbmdlcyBjYW4gbm93IGhhdmUgYW4gb3B0aW9uYWwgc3RlcCAoZGVmYXVsdGluZyB0byAxKS4KCSAgTWVtYmVycyBvZiB0aGUgcmFuZ2UgYXJlIHRob3NlIHZhbHVlcyB3aXRoaW4gdGhlIG1pbiBhbmQgbWF4IGJvdW5kcwoJICB3aGljaCBhcmUgYSBtdWx0aXBsZSBvZiB0aGlzIHN0ZXAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjUyOTQKCjIwMTEtMTEtMzAgMTc6NTg6MDcgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBnc3R1dGlsczogYWRkIGEgNjQgYml0IHZlcnNpb24gb2YgR0NEIGNhbGN1bGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjUyOTQKCjIwMTEtMTEtMDQgMTg6MjY6MTUgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBlbmZvcmNlIGlkZW50aWNhbCBiYXNpYyB0eXBlcyBpbiBsaXN0cywgYXJyYXlzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjI1ODcKCjIwMTItMDEtMjMgMTA6MzI6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkgIGJlbmNobWFya3M6IGFkZCBtaXNzaW5nIGluY2x1ZGUKCjIwMTItMDEtMjMgMTE6MDM6MDkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIG9iamVjdDogcmVnaXN0ZXIgYWxsIHByb3BlcnRpZXMgaW4gb25lIGdvCgoyMDEyLTAxLTIzIDExOjAyOjQ1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250cm9sbGVyLnR4dDoKCSAgZG9jczogdXBkYXRlIGNvbnRyb2xsZXIgYXBpIGRlc2lnbgoKMjAxMi0wMS0yMSAyMDowMzo1MiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nYXJnYi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nYXJnYi5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nZGlyZWN0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdkaXJlY3QuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL3RleHQtY29sb3ItZXhhbXBsZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY29udHJvbGxlcjogYWxsb3cgZGlmZmVyZW50IGNvbnRyb2xiaW5kaW5ncwoJICBNYWtlIGNvbnRyb2xiaW5kaW5nIGFuIGFic3RyYWN0IGJhc2VjbGFzcy4gTW92ZSBpbXBsZW1lbnRhdGlvbiB0byBjb250cm9sLQoJICBiaW5kaW5nLWRpcmVjdCBhbmQgYWRkIGEgY29udHJvbC1iaW5kaW5nLWFyZ2IuIEFkZCBhbiBleGFtcGxlLgoKMjAxMi0wMS0yMiAyMjo0NDo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBSZXBsYWNlIGRlcHJlY2F0ZWQgR1N0YXRpY011dGV4IHdpdGggR011dGV4CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjIyMDcKCjIwMTItMDEtMjIgMTU6MjM6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IGZpeCB0eXBvIGluIGdzdC1pbnNwZWN0IGRlYnVnIG1lc3NhZ2UKCjIwMTItMDEtMjIgMDE6Mzk6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGVycm9yLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFVzZSBHTGliJ3MgdHlwZSBmb3IgR0Vycm9yIGluc3RlYWQgb2Ygb3VyIG93bgoJICBXZSBpbnRyb2R1Y2VkIG91ciBvd24gd2hlbiBHTGliIGRpZG4ndCB3YW50IHRvIGFkZCBhIEdUeXBlCgkgIGZvciBHRXJyb3IuIEJ1dCBub3cgdGhhdCB0aGVyZSBpcyBvbmUsIHdlIGNhbiB1c2UgR0xpYidzCgkgIHVuY29uZGl0aW9uYWxseSBhbmQgcmVtb3ZlIG91ciB2ZXJzaW9uLgoKMjAxMi0wMS0yMiAwMToyNzo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogZml4IHNpemUgb2YgYXRvbWljIGNvdW50ZXIKCjIwMTItMDEtMjIgMDE6MjU6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcGx1Z2luLXNjYW5uZXIuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJICBVc2UgcmVjZW50IEdMaWIgQVBJIHVuY29uZGl0aW9uYWxseSBub3cgdGhhdCB3ZSBkZXBlbmQgb24gdGhlIGxhdGVzdCBHTGliCgoyMDEyLTAxLTIyIDAwOjQyOjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0cmFjZS5oOgoJICB0cmFjZTogZG9uJ3QgdXNlIGRlcHJlY2F0ZWQgR1N0YXRpY011dGV4IEFQSSBpbiAoc3RpbGwpIHB1YmxpYyBoZWFkZXIKCjIwMTItMDEtMjEgMTI6NTY6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHNjcmlwdHM6IHNldCBHSV9UWVBFTElCX1BBVEggaW4gZ3N0LXVuaW5zdGFsbGVkCgkgIFNvIHB5Z2kgZmluZHMvdXNlcyB0aGUgbG9jYWwgZy1pIGZpbGVzLgoKMjAxMi0wMS0yMCAxODowNjowNCArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluOgoJICBsaWJjaGVjazogbWFrZSB0aGUgZGVmaW5pdGlvbiBvZiBmYWlsIG5vdCBmYWlsIHdpdGggbm9uIEdDQyBjb21waWxlcnMKCjIwMTItMDEtMjAgMTQ6NDI6MzEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNvbnRyb2xsZXI6IGltcHJvdmUgY29udHJvbCBiaW5kaW5nIGhhbmRsaW5nCgkgIENoYW5nZSBfc2V0X2NvbnRyb2xfYmluZGluZyB0byBfYWRkX2NvbnRyb2xfYmluZGluZyBhbmQgdGFrZSBvd25lcnNoaXAuIEFkZCBhCgkgIF9yZW1vdmVfY29udHJvbF9iaW5kaW5nIGZ1bmN0aW9uLgoKMjAxMi0wMS0yMCAwODoyNzo1NyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjb250cm9sbGVyOiByZW1vdmUgY29udmVuaWVuY2UgYXBpIGZvciBjb250cm9sIHNvdXJjZXMKCSAgVGhpcyBpcyBuZWVkZWQgdG8gc3VwcG9ydCBtdWx0aXBsZSBraW5kcyBvZiBjb250cm9sLWJpbmRpbmdzLgoKMjAxMi0wMS0xOSAxNToxNzo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBoYW5kbGUgTlVMTCBmcm9tIGdldGNhcHMKCSAgSWYgdGhlIGdldGNhcHMgZnVuY3Rpb25zIHJldHVybnMgTlVMTCwgcmV0dXJuIEZBTFNFIGZyb20gdGhlIENBUFMgcXVlcnkuCgoyMDEyLTAxLTE5IDE1OjE3OjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaGFuZGxlIGxpc3RzIGNvcnJlY3RseQoKMjAxMi0wMS0xNyAxNjoyMzozMyAtMDUwMCAgQ29saW4gV2FsdGVycyA8d2FsdGVyc0B2ZXJidW0ub3JnPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIGJ1aWxkOiBhZGQgLS1kaXNhYmxlLWZhdGFsLXdhcm5pbmdzIGNvbmZpZ3VyZSBvcHRpb24KCSAgSXQncyByZWFzb25hYmxlIHRvIGJ1aWxkIGZyb20gZ2l0LCBidXQgbm90IHdhbnQgdG8gdHVybiBhbGwgY29tcGlsZXIKCSAgd2FybmluZ3MgaW50byBmYXRhbCBlcnJvcnMuICBGb3IgZXhhbXBsZSwgR05PTUUncyBqaGJ1aWxkIGhlbHBzIHBlb3BsZQoJICBnZXQgbmV3ZXIgdmVyc2lvbnMgb2Ygc29mdHdhcmUgdGhhbiBjYW1lIGZyb20gdGhlaXIgZGlzdHJpYnV0aW9uLCBidXQKCSAgdGhleSBtYXkgbm90IG5lY2Vzc2FyaWx5IHdhbnQgdG8gaGFjayBvbiBpdC4KCjIwMTItMDEtMTkgMTI6NTc6NDggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJICB0ZXN0czogY2xvY2tzdHJlc3M6IHBlcmZvcm0gc2FuaXR5IGNoZWNrIG9uIHRocmVhZCBudW1iZXIgYXJndW1lbnQKCjIwMTItMDEtMTkgMDk6MTI6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeSBpbXByb3ZlbWVudHMKCSAgTWFrZSB0aGUgbWVtb3J5IG9iamVjdCBzaW1wbHkgbWFuYWdlIHRoZSBkYXRhIHBvaW50ZXIgYW5kIHRoZSBtYXhzaXplIGFuZCBtb3ZlCgkgIHRoZSBvZmZzZXQgYW5kIHNpemUgaGFuZGxpbmcgdG8gY29tbW9uIGZ1bmN0aW9uYWxpdHkuCgkgIFVzZSB0aGUgUkVBRE9OTFkgZmxhZyB0byBzZXQgYSByZWFkb25seSBsb2NrLgoJICBSZW1vdmUgdGhlIGRhdGEgYW5kIHNpemUgZmllbGRzIGZyb20gdGhlIHVubWFwIG1ldGhvZC4gV2UgbmVlZCBhbiBleHBsaWNpdAoJICByZXNpemUgb3BlcmF0aW9uIGluc3RlYWQgb2YgdXNpbmcgdGhlIHVubWFwIGZ1bmN0aW9uLgoJICBNYWtlIGludGVybmFsIGhlbHBlciBsb2NrIGFuZCB1bmxvY2sgZnVuY3Rpb25zLgoJICBVcGRhdGUgdW5pdCB0ZXN0IGFuZCB1c2VycyBvZiB0aGUgb2xkIEFQSS4KCjIwMTItMDEtMTkgMTE6NDM6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBkb2NzOiBmaXggdHlwbyBpbiBidXMgZG9jcwoKMjAxMi0wMS0xMyAxNzo0NToxNyAtMDUwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkgIC5naXRpZ25vcmU6IGFkZCB2aXN1YWwgc3R1ZGlvIElERSBmaWxlcyBhbmQgT1MgWCAuRFNfU3RvcmUgZmlsZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Nzg5OQoKMjAxMi0wMS0xOSAwOToyNzowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzoKCSAgVXBkYXRlIGZvciBuZXcgZ3RocmVhZCBBUEkKCjIwMTItMDEtMTggMTY6NTI6NTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IEdJTyBjaGVjayBpcyBub3cgaW4gZ3N0LWdsaWIyLm00CgoyMDEyLTAxLTE4IDE2OjQ1OjUxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMDgwNzE4NyB0byAyYTU5MDE2CgoyMDEyLTAxLTE4IDE2OjE0OjUxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBSZXF1aXJlIEdMaWIgMi4zMS4xMCBhbmQgaW1wcm92ZSBHSU8gY2hlY2sKCjIwMTItMDEtMTggMTI6MDc6NDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBBbHdheXMgY2FsbCA6OnByb3Bvc2VfYWxsb2NhdGlvbiB2ZnVuYwoJICBBbmQgb25seSBmb3J3YXJkIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IGlmIHdlJ3JlIHdvcmtpbmcgaW4KCSAgcGFzc3Rocm91Z2ggbW9kZSBpZiBubyA6OnByb3Bvc2VfYWxsb2NhdGlvbiBpcyBpbXBsZW1lbnRlZC4KCSAgSW4gcGxhY2UgYnVmZmVyIHRyYW5zZm9ybWF0aW9ucyB3aWxsIGNoYW5nZSB0aGUgYnVmZmVyCgkgIGNvbnRlbnQgYW5kIHJlcXVpcmUgZXhwbGljaXQgaGFuZGxpbmcgb2YgYWxsIG1ldGFzLgoKMjAxMi0wMS0xOCAxMTozNzo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG9uJ3QgZm9yd2FyZCB0aGUgYWxsb2NhdGlvbiBxdWVyeSBieSBkZWZhdWx0CgkgIFRoaXMgaGFzIHRvIGJlIGhhbmRsZWQgZXhwbGljaXRlbHkgYnkgZWxlbWVudHMgdG8KCSAgbWFrZSBzdXJlIHRoYXQgdGhleSBzdXBwb3J0IGFsbCB0aGUgbWV0YXMgcGFzc2VkCgkgIGluIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5LgoJICBNZXRhcyBoYXZlIHRvIHN1cHBvcnRlZCBleHBsaWNpdGVseSwgb3RoZXJ3aXNlIHRoZQoJICBxdWVyeSB3aWxsIGZhaWwuIEFsbCBlbGVtZW50cyBpbiBhIGNoYWluIG5lZWQgdG8KCSAgc3VwcG9ydCBhIHNwZWNpZmljIG1ldGEgdG8gYWxsb3cgaXRzIHVzYWdlLgoKMjAxMi0wMS0xOCAwMTozMTo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkgIGdzdDogc3VwcHJlc3Mgc29tZSBtb3JlIGRlcHJlY2F0ZWQgdGhyZWFkIGFwaSB1bnRpbCB3ZSBmaXggaXQgdXAKCSAgV2hpY2ggc2hvdWxkIGJlIHNvb24sIHNpbmNlIHdlIGFscmVhZHkgZGVwZW5kIG9uIGFuIHVuc3RhYmxlIGdsaWIgZm9yIC1iYXNlLgoKMjAxMi0wMS0xOCAwMToxODozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlcyBmb3IgYXBpIGNoYW5nZXMKCjIwMTItMDEtMTcgMjM6NTc6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSAgY29uZmlndXJlOiByZW1vdmUgIC0tZGlzYWJsZS1uZXQgb3B0aW9uIGFuZCBhbHdheXMgYnVpbGQgbGliZ3N0bmV0CgkgIEl0IHNob3VsZCB3b3JrIGV2ZXJ5d2hlcmUgbm93LCBhbmQgLWJhc2UgYW5kIC1nb29kIGRlcGVuZCBvbgoJICB0aGUgR3N0TmV0TWV0YSBBUEkuCgoyMDEyLTAxLTE3IDIzOjUyOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBjb25maWd1cmU6IHJlbW92ZSBzb21lIHNvY2tldCBjcnVmdAoKMjAxMC0wNS0wNSAxNjozMzo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldDogcG9ydCB0byB1c2UgZ2lvJ3MgbmV0d29ya2luZyBBUEkKCSAgU29tZSB3YXJ0cyBzdGlsbCwgYnV0IGl0J3MgYSBzdGFydC4KCjIwMTItMDEtMTcgMTY6NTA6MTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBuZXQ6IEFkZCBHSU8gdG8gdGhlIGdpLXNjYW5uZXIgcGFja2FnZXMKCjIwMTItMDEtMTYgMTM6MzQ6MjggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuaDoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LnBjLmluOgoJICBuZXRhZGRyZXNzbWV0YTogVXNlIEdTb2NrZXRBZGRyZXNzIGluc3RlYWQgb2Ygb3VyIG93biB3cmFwcGVyIHR5cGUKCjIwMTItMDEtMTYgMTU6NTc6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogbWFrZSB3cml0YWJpbGl0eSBjaGVjayBpbnRvIGEgbWV0aG9kCgkgIFVzZSBhIG1ldGhvZCB0byBjaGVjayBmb3Igd3JpdGFiaWxpdHkgaW5zdGVhZCBvZiBhIG1hY3JvIHNvIHRoYXQgd2UgY2FuIGNoYW5nZQoJICB0aGUgaW1wbGVtZW50YXRpb24gbW9yZSBlYXNpbHkuCgoyMDEyLTAxLTE2IDEyOjI0OjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICB0ZXN0czogaW1wcm92ZSBtZW1vcnkgdGVzdAoKMjAxMi0wMS0xNiAxMjoyNDoyMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBpbXByb3ZlIGRvY3MKCjIwMTItMDEtMTEgMTA6NTk6NTMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGVuc3VyZSBhdXRvbWFnaWMgX3VubWFwIGluIHNvbWUgbW9yZSBjYXNlcwoKMjAxMS0xMS0xNSAxNzo0Mjo1NiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogYXV0b21hdGljYWxseSB1bm1hcCBvbiBjbGVhcmluZwoJICBXaGVuIF9jbGVhciBnZXRzIGNhbGxlZCBiZXR3ZWVuIF9tYXAgYW5kIF91bm1hcCwgYnVmZmVycwoJICB3aWxsIGJlIHVucmVmZmVkLiBJZiB0aGUgYWRhcHRlciB3YXMgbWFwcGVkLCBtZW1vcnkgbGVha3MKCSAgbWF5IG9jY3VyLgoJICBXaGlsZSBjYWxsaW5nIF9jbGVhciBiZXR3ZWVuIF9tYXAgYW5kIF91bm1hcCBkb2VzIG5vdCBzZWVtCgkgIGxpa2Ugc3VjaCBhIGdyZWF0IGlkZWEsIHRoaXMgaXMgcG9zc2libGUgaW4gdGhlIGF1ZGlvCgkgIGVuY29kZXIgYmFzZSBjbGFzcywgYXMgX2NsZWFyIG1heSBiZSBjYWxsZWQgaW4gX2ZpbmlzaF9mcmFtZS4KCSAgU2luY2UgdGhlIGF1ZGlvIGVuY29kZXIgcmVsaWVzIG9uIGZsdXNoaW5nIHRvIGtlZXAgdHJhY2sgb2YKCSAgdGltZXN0YW1wcywgZGVsYXlpbmcgZmx1c2hpbmcgdGlsbCBhZnRlciBoYW5kbGVfZnJhbWUgc2VlbXMKCSAgZGFuZ2Vyb3VzLgoJICBTbywgd2UgdW5tYXAgb24gY2xlYXIsIGFzIHRoZSBuZXh0IHVubWFwIHdpbGwgZG8gbm90aGluZy4KCSAgVGhpcyBtYWtlcyBfY2xlYXIgc2FmZSB0byBjYWxsIGJldHdlZW4gX21hcCBhbmQgX3VubWFwLAoJICB3aGlsZSBhdm9pZGluZyBsZWFraW5nIHRoZSBtYXBwZWQgYnVmZmVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0MTMzCgoyMDEyLTAxLTEzIDE0OjIwOjMzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBwcmV2ZW50IHVubGlrZWx5IGNhcHMgbGVhawoKMjAxMi0wMS0xMyAxMDo0MzoxMiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogcGx1ZyBmYWN0b3J5IGxlYWsgb24gZXJyb3IKCjIwMTItMDEtMTMgMDA6MjI6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYwoKMjAxMi0wMS0xMiAyMDo0NjoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBSZW1vdmUgR1NUX1RZUEVfREFURSwgb3VyIG93biBHRGF0ZSB0eXBlCgkgIFdoaWNoIHdlIGhhZCB0byBhZGQgYmVjYXVzZSBHTGliIGRpZG4ndCBoYXZlIGl0CgkgIGJhY2sgaW4gdGhlIGRheS4gUG9ydCBldmVyeXRoaW5nIHRvIHBsYWluIG9sZAoJICBHX1RZUEVfREFURSwgd2hpY2ggaXMgYWxzbyBhIGJveGVkIHR5cGUuIElkZWFsbHkKCSAgd2UnZCBqdXN0IHVzZSBHRGF0ZVRpbWUgZm9yIGV2ZXJ5dGhpbmcsIGJ1dCBpdAoJICBkb2Vzbid0IHN1cHBvcnQgbm90IHNldHRpbmcgc29tZSBvZiB0aGUgZmllbGRzCgkgIHVuZm9ydHVudGVseSAod2hpY2ggd291bGQgYmUgdmVyeSB1c2VmdWwgZm9yCgkgIHRhZyBoYW5kbGluZyBpbiBnZW5lcmFsLCBpZiB3ZSBjb3VsZCBleHByZXNzCgkgIDIwMTItMDEgZm9yIGV4YW1wbGUpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY2MzUxCgoyMDEyLTAxLTEyIDE5OjUzOjExICswMDAwICBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDBAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBjbGVhciBhZGFwdGVyIGluIHJlc2V0IHNvIGJhc2VwYXJzZSBpcyByZXVzYWJsZQoJICBHc3RCYXNlUGFyc2Ugd2FzIG5vdCBjbGVhcmluZyBpdHMgYWRhcHRlciBvbiByZXNldCBjYXVzaW5nCgkgIHByb2JsZW1zIHdoZW4gYSBwaXBlbGluZSB3ZW50IGZvciBleGFtcGxlIGZyb20gUExBWUlORyB0byBOVUxMCgkgIHN0YXRlIGFuZCB0aGVuIGJhY2sgdG8gUExBWUlORyBhZ2Fpbi4gVGhlIGRhdGEgZnJvbSB0aGUgbGFzdAoJICBzdHJlYW0gd291bGQgYmUgdXNlZCBpbiB0aGUgcGFyc2VyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3NDQ0CgoyMDEyLTAxLTEyIDE1OjUwOjUzICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdGluc3BlY3Q6IGZpeCBmZWF0dXJlcyBhbmQgbGlzdCBsZWFrcwoKMjAxMi0wMS0xMiAxMTowMzoxMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgQVBJIHRvIC5kZWYgZmlsZQoKMjAxMi0wMS0xMSAxMjoxOToyMCArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGdzdHN0cnVjdHVyZTogY2xhcmlmeSBfZ2V0IGRvY3MgYWJvdXQgdGhlIHJldHVybmVkIHJlZmVyZW5jZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3Njg5CgoyMDEyLTAxLTEwIDEzOjAwOjA3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTItMDEtMDYgMTY6Mzk6MDQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFNlbmQgY2FwcyBhZ2FpbiBhZnRlciBhY3RpdmF0aW9uCgkgIEF2b2lkcyBlbmRpbmcgdXAgaW4gY2FzZXMgd2hlcmUgdHlwZWZpbmQgZ2V0cyBhY3RpdmF0ZWQgaW4gcHVsbC1tb2RlCgkgIGFuZCBjYXBzIG5ldmVyIGdldCBzZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3MzM3CgoyMDEyLTAxLTA5IDE1OjU5OjA5ICswMDAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDxjaHJpc3RpYW4uc2NoYWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIEFkZCBsYXRlc3Qgc3BlY2ZpbGUgY2hhbmdlcwoKMjAxMi0wMS0wOSAxNTo1ODo0NSArMDAwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8Y2hyaXN0aWFuLnNjaGFsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkgIEFsc28gYWRkIGhlYWRlcmZpbGUKCjIwMTItMDEtMDkgMTU6NTc6NTEgKzAwMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPGNocmlzdGlhbi5zY2hhbGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBGaXggZG90ZmlsZSBBUEkgdG8gYmUgZXhwb3J0ZWQgc2luY2UgbWFjcm9zIGNhbid0IGJlIEdJIGJvdW5kCgoyMDEyLTAxLTA5IDEzOjE5OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJICB0ZXN0czogaWdub3JlIG5ldyBtZW1vcnkgdGVzdCBiaW5hcnkKCjIwMTItMDEtMDkgMDM6MTQ6NDEgLTA1MDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSAgRml4IHByaW50ZiBmb3JtYXQgYnVpbGQgd2FybmluZ3MKCjIwMTItMDEtMDkgMTM6MTA6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucyBmb3IgbmV3IHN0cmluZ3MKCjIwMTItMDEtMDYgMTU6MDE6MjQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBBbGxvdyBOVUxMIGRlc3Qgd2hlbiBzdWJ0cmFjdGluZyBiaXRtYXNrCgkgIEhhcHBlbnMgd2hlbiBjaGVja2luZyBmb3Igc3Vic2V0cyBvZiBjYXBzCgoyMDEyLTAxLTA2IDEzOjMyOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGVuc3VyZSB3cml0YWJsZSBtZW1vcnkgaW4gbWVtc2V0CgoyMDEyLTAxLTA2IDEzOjEwOjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGNoZWNrIHNlbWFudGljcyBvZiBuZXN0ZWQgbWFwcGluZ3MKCSAgQ291bnQgaG93IG1hbnkgbWFwcGluZ3MgYXJlIGN1cnJlbnRseSBhY3RpdmUgYW5kIGFsc28gd2l0aCB3aGF0IGFjY2VzcyBwYXR0ZXJuLgoJICBVcGRhdGUgdGhlIGRlc2lnbiBkb2Mgd2l0aCByZXN0cmljdGlvbnMgb24gdGhlIGFjY2VzcyBwYXR0ZXJucyBmb3IgbmVzdGVkCgkgIG1hcHBpbmdzLgoJICBDaGVjayBpZiBuZXN0ZWQgbWFwcGluZ3Mgb2JleSB0aGUgYWNjZXNzIG1vZGUgcmVzdHJpY3Rpb25zIG9mIHRoZSBkZXNpZ24gZG9jLgoJICBBZGQgdmFyaW91cyB1bml0IHRlc3RzIHRvIGNoZWNrIHRoZSBkZXNpcmVkIGJlaGF2aW91ci4KCjIwMTItMDEtMDYgMTM6MDY6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHVubWFwIHdpdGggdGhlIHJpZ2h0IGRhdGEgcG9pbnRlcgoJICBVc2UgdGhlIG9yaWdpbmFsIGRhdGEgcG9pbnRlciB0byB1bm1hcCB0aGUgYnVmZmVyIG1lbW9yeS4KCjIwMTItMDEtMDYgMTA6Mzk6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIGRvY3M6IGltcHJvdmUgbWVtb3J5IGRvY3MKCjIwMTItMDEtMDYgMDc6MDI6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBoYW5kbGUgLTEgc2l6ZSBpbiB1bm1hcAoJICBoYW5kbGUgLTEgaW4gdW5tYXAgY29ycmVjdGx5IHdoZW4gdGhlIG9mZnNldCBpcyBtb2RpZmllZC4KCjIwMTItMDEtMDYgMDY6NDM6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBpbXByb3ZlIHNlbWFudGljcyBvZiB1bm1hcAoJICBNYWtlIGFuIHVubWFwIGNhbGwgd2l0aCBhIGRpZmZlcmVudCBkYXRhIHBvaW50ZXIgdGhhbiB0aGUgbWFwIGNhbGwgdXBkYXRlIHRoZQoJICBvZmZzZXQgZmllbGQuIFRoaXMgYWxsb3dzIGZvciBib3RoIG9mZnNldCBhbmQgc2l6ZSBhZGp1c3RlbWVudHMgaW4gdGhlIHVubWFwCgkgIGNhbGwuCgoyMDExLTExLTI5IDE0OjIyOjQ0ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBkb24ndCBjb21wZW5zYXRlIGZvciByZW5kZXItZGVsYXkgdHdpY2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI5OAoKMjAxMi0wMS0wNSAxODoxNToyMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGFkZCBtb3JlIGNoZWNrcwoJICBBZGQgY2hlY2sgZm9yIG1hcHBpbmcgYW5kIHJlc2l6aW5nCgoyMDEyLTAxLTA1IDE3OjI4OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiB0YWtlIG9mZnNldCBpbnRvIGFjY291bnQKCSAgVGFrZSB0aGUgb2Zmc2V0IGludG8gYWNjb3VudCB3aGVtIG1hcHBpbmcgYW5kIHVubWFwcGluZyB0aGUgYnVmZmVyLgoKMjAxMi0wMS0wNSAxNzowMjo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSAgZG9jczogY2xhcmlmeSByZXNpemUgYW5kIGN1cnJlbnQgbWFwcGluZ3MKCjIwMTItMDEtMDUgMTY6NDE6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBjbGFyaWZ5IG5lc3RlZCBtYXBwaW5ncywgYWRkIHVuaXQgdGVzdAoKMjAxMi0wMS0wNSAxMjozMDowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgQVBJIHRvIC5kZWYgZmlsZQoKMjAxMi0wMS0wNSAxMzoyMjo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgdGVzdHM6IGFkZCBtb3JlIG1lbW9yeSB1bml0IHRlc3RzCgkgIENoZWNrIGZvciB1bm1hcCB3aXRoIGludmFsaWQgc2l6ZQoKMjAxMi0wMS0wNSAxMzoxMTowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIEdzdE1lbW9yeQoJICBBZGQgYSBHc3RNZW1vcnkgdW5pdCB0ZXN0CgkgIEFkZCBzb21lIG1vcmUgYXNzZXJ0cyBpbiBHc3RNZW1vcnkgdG8gY2F0Y2ggaW52YWxpZCBjYXNlcy4KCjIwMTItMDEtMDUgMTM6MDk6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogYWRkIG1hY3JvIHRvIGNoZWNrIGZvciBtZW1vcnkgcmVmY291bnQKCjIwMTItMDEtMDUgMTI6Mzk6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkgIGltcHJvdmUgZG9jcyBhIGxpdHRsZQoKMjAxMS0xMi0xNiAxMzoxMTozNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEFkZCB0ZXN0cyBmb3IgdGhlIGJpdG1hc2sgdHlwZQoKMjAxMS0xMi0xNiAxMjozOToxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogQWRkICJiaXRtYXNrIiBhcyBhbGlhcyBmb3IgKEdzdEJpdG1hc2spIHdoZW4gKGRlLSlzZXJpYWxpemluZyB2YWx1ZXMKCjIwMTEtMTItMTYgMTI6MzI6MjYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICB2YWx1ZTogQWRkIDY0LWJpdCBiaXRtYXNrIHR5cGUKCjIwMTItMDEtMDEgMTY6MzI6MjcgKzAxMDAgIElkYXIgVG9sbGVmc2VuIDxpdG9sbGVmc0BjaXNjby5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJICBidWlsZDogZG9uJ3Qgb3V0cHV0IGNvbmZpZ3VyZSBvcHRpb25zIHZpYSBhdXRvZ2VuIGlmICROT0NPTkZJR1VSRSBpcyBzZXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI5NgoKMjAxMi0wMS0wNSAwMDozMDozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LWkxOG4tYXBwLmg6CgkqIGdzdC9nc3QtaTE4bi1saWIuaDoKCSAgZ3N0OiBpbmNsdWRlIGxvY2FsZS5oIGJlZm9yZSBhbnkgb3RoZXIgaTE4biBoZWFkZXJzCgkgIFRoaXMgaXMgYWxzbyBob3cgd2UgZG8gaXQgaW4gLWJhc2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyOTAKCjIwMTItMDEtMDEgMTY6NDY6MDQgKzAxMDAgIElkYXIgVG9sbGVmc2VuIDxpdG9sbGVmc0BjaXNjby5jb20+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBnc3Rjb25maWcuaDogYWRkcyBhbmQgdXNlcyBTdW5Qcm8gdmlzaWJpbGl0eSBhdHRyaWJ1dGUgZm9yIHByb3BlciBmdW5jdGlvbiBleHBvcnRzCgkgIERlZmluZSBHU1RfRVhQT1JUIGZvciBTdW5Qcm8uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyODkKCjIwMTItMDEtMDEgMTY6NDc6MTQgKzAxMDAgIElkYXIgVG9sbGVmc2VuIDxpdG9sbGVmc0BjaXNjby5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBwbHVnaW5zOiBleHBsaWNpdGx5IGNhc3QgaW5pdGlhbGl6YXRpb24gdmFsdWVzIHRvIHRoZSBjb3JyZWN0IHR5cGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI4OAoKMjAxMi0wMS0wMSAyMDoxNzo0MSArMDEwMCAgSWRhciBUb2xsZWZzZW4gPGl0b2xsZWZzQGNpc2NvLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IGluY2x1ZGUgY29ycmVjdCBwb2xsLmggYmFzZWQgb24gYXV0b2NvbmYgdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3Mjg2CgoyMDEyLTAxLTA0IDIzOjQ2OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBjaGVjayBmb3Igc3lzL3BvbGwuaAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3Mjg2CgoyMDEyLTAxLTA0IDE5OjUwOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYTYyZjNkNCB0byAwODA3MTg3CgoyMDEyLTAxLTA0IDEwOjA0OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IG9ubHkgcmVzZXJ2ZSA2IGV4dHJhIGZsYWdzCgkgIE9ubHkgcmVzZXJ2ZSA2IGV4dHJhIGZsYWdzIGluc3RlYWQgb2YgMTAgc28gdGhhdCBtb3JlIG1lZGlhIHNwZWNpZmljIGZsYWdzCgkgIGFyZSBhdmFpbGFibGUuCgoyMDEyLTAxLTAzIDE1OjI1OjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBHU1RfRkxPV19VTkVYUEVDVEVEIC0+IEdTVF9GTE9XX0VPUwoKMjAxMi0wMS0wMyAxNTowNTo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSAgY29tcGF0OiByZXN0b3JlIFVORVhQRUNURUQKCjIwMTItMDEtMDMgMTU6MDM6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSAgZG9jczogZml4IHNvbWUgZG9jcwoKMjAxMi0wMS0wMyAxNDo0NTowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTItMDEtMDMgMTQ6NDM6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBhdm9pZCBleHBvc2luZyB0aGUgbGlzdHMgaW4gdGFncwoKMjAxMi0wMS0wMyAxMzo0MjoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IGFkZCBtaXNzaW5nIGZ1bmN0aW9ucwoJICBBZGQgbWlzc2luZyBhbmQgZXNzZW50aWFsIGZ1bmN0aW9ucyBub3cgdGhhdCB3ZSBjYW4ndCBkaXJlY3RseSB1c2UgR3N0U3RydWN0dXJlCgkgIG1ldGhvZHMgb24gdGhlIHRhZ2xpc3QgYW55bW9yZS4KCjIwMTItMDEtMDMgMTA6NDI6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgdmFsdWU6IGFkZCBtYWNybyB0byBjaGVjayBpZiBhIGd2YWx1ZSBob2xkcyBhIHNhbXBsZQoKMjAxMi0wMS0wMiAxNTo0Nzo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgIGRvY3M6IGZpeCBidWlsZCBvZiBkb2NzIGV4YW1wbGVzCgkgIFVwZGF0ZSBmb3IgcmVnaXN0cnkgbWV0aG9kIHJlbmFtZQoKMjAxMi0wMS0wMiAxNTozOTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdHVybiBhc3NlcnQgaW50byBhIHJlYWwgZXJyb3IKCSAgUG9zdCBhIHJlYWwgZXJyb3IgaW5zdGVhZCBvZiBqdXN0IGFzc2VydGluZy4KCjIwMTItMDEtMDIgMTU6Mzg6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaGFuZGxlIGxhdGVuY3kgZXZlbnQKCjIwMTItMDEtMDIgMDI6MzI6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZWdpc3RyeTogZ2V0IHJpZCBvZiBnc3RfZGVmYXVsdF9yZWdpc3RyeV8qKCkgY29udmVuaWVuY2UgbWFjcm9zCgkgIFRoZXkncmUgbm90IHJlYWxseSB3b3J0aCBpdDogaGFyZGx5IHNhdmUgYW55IHR5cGluZywgYW5kIGFyZW4ndAoJICBncmVhdCBmb3IgYmluZGluZ3Mgb3IgZ29iamVjdC1pbnRyb3NwZWN0aW9uLgoKMjAxMi0wMS0wMiAwMjoyMjo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZWdpc3RyeTogcmVuYW1lIGdzdF9yZWdpc3RyeV9nZXRfZGVmYXVsdCgpIHRvIGdzdF9yZWdpc3RyeV9nZXQoKQoJICBJdCdzIG5vdCByZWFsbHkgYSBkZWZhdWx0IGlmIHRoZXJlIGlzIG9ubHkgb25lIHRoYXQgY2FuJ3QgYmUgY2hhbmdlZC4KCSAgU2hvdWxkIHdlIHJldHVybiBhIHJlZiBsaWtlIGUuZy4gZ192b2x1bWVfbW9uaXRvcl9nZXQoKSBkb2VzPwoKMjAxMi0wMS0wMiAwMjoyMTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0dGFnbGlzdC5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYwoKMjAxMi0wMS0wMiAwMDoxNzoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdzOiBhZGQgR1NUX1RBR19MQU5HVUFHRV9OQU1FCgkgIEFQSTogR1NUX1RBR19MQU5HVUFHRV9OQU1FCgoyMDEyLTAxLTAxIDIwOjU5OjIyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250cm9sbGVyLnR4dDoKCSAgZG9jczogdXBkYXRlIGNvbnRyb2xsZXIgZGVzaWduIGRvYwoKMjAxMi0wMS0wMSAyMDo1NzozNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiByZW5hbWUgc29tZSB0ZXN0cwoKMjAxMi0wMS0wMSAyMDo1NToyMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogc3VwcG9ydCBjb250cm9sIG1hcHBpbmcgZm9yIGVudW1zCgkgIEFkZCBhIG1hcHBpbmcgZm9yIGVudW0gdHlwZXMgKHN1cHBvcnRpbmcgc3BhcnNlIGVudW1zKS4gQWRkIGEgdGVzdC4KCjIwMTItMDEtMDEgMjA6NDM6NTEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSAgY29udHJvbGxlcjogcmVtb3ZlIG5vbnNlbnNlIHBhcnRzIGZyb20gdGVzdCBvYmplY3QgcHJvcGVydHkgZGVzY3JpcHRpb25zCgoyMDEyLTAxLTAxIDE4OjU0OjIzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZTogZml4IGN1YmljIGludGVycG9sYXRpb24gZm9yIGFycmF5cwoKMjAxMi0wMS0wMSAxODo1MDo1NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkgIGF1ZGlvLWV4YW1wbGU6IGFsc28gcGxvdCByZXZlcnNlLXNhdwoKMjAxMi0wMS0wMSAxODo0MzoyMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBsZm9jb250cm9sc291cmNlOiBjbGVhbnVwcyBhbmQgZml4IHRyaWFuZ2xlIGNhbGN1bGF0aW9ucwoKMjAxMi0wMS0wMSAxODozNDoxMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJICBhdWRpby1leGFtcGxlOiBmaXggdGhlIGV4YW1wbGUKCSAgV2UgbmVlZCB0byBzY2FsZSB0aGUgZnJlcXVlbmN5IHZhbHVlcy4KCjIwMTItMDEtMDEgMTU6MTY6MDYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSAgbGZvY29udHJvbHNvdXJjZTogbWFrZSBjaGFpbmFibGUKCSAgTm93IHRoZSBwcm9wZXJ0aWVzIG9mIHRoaXMgY29udHJvbHNvdXJjZSBhcmUgaW4gdHVybiBjb250cm9sYWJsZS4gQWRkIGFuIGV4YW1wbGUKCSAgdG8gc2hvdyB0aGUgdXNhZ2UuCgoyMDEyLTAxLTAxIDE1OjAxOjIyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBhZGQgbG9nZ2luZyBhbmQgZml4IGFycmF5IGZ1bmN0aW9ucwoKMjAxMi0wMS0wMSAxNDo1NTozNSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBjbGVhbnVwIHRoZSB0ZXN0cwoKMjAxMi0wMS0wMSAxNDoyODo1NCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sbGVyOiBhZGQgbW9yZSBkZWJ1ZyBsb2dnaW5nCgoyMDExLTEyLTMxIDE3OjM3OjIwIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBjb252ZXJ0IE1ha2VmaWxlIHNwYWNlcyB0byB0YWJzCgoyMDExLTEyLTMxIDE1OjUyOjE4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSAgY29udHJvbGxlcjogYWxzbyB0ZXN0IGFycmF5IGZ1bmN0aW9ucwoJICBJbXByb3ZlIHRoZSBleGFtcGxlIHRvIGFsc28gY29sbGVjdCB2YWx1ZSBhcnJheXMgYW5kIHBsb3QgdGhlbS4KCjIwMTEtMTItMzEgMTU6MjY6MjYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBvYnNvbGV0ZSBGSVhNRSBjb21tZW50CgoyMDExLTEyLTMxIDA5OjU2OjUzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGZpeCB0ZXN0cwoJICBTZXQgYSBkZWZpbmVkIHZhbHVlIHRvIGNoZWNrIGZvciBuby1jaGFuZ2UuCgoyMDExLTEyLTMwIDE4OjM1OjQwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSAgY29udHJvbC1zb3VyY2VzOiB0dXJuIGludG8gR3N0T2JqZWN0cwoJICBUaGlzIGlzIGEgcHJlcGFyYXRpb24gZm9yIGNoYWluaW5nIHRoZW0uCgoyMDExLTEyLTMwIDE5OjM3OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtYXJzaGFsLmxpc3Q6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgcmVnaXN0cnk6IHJlbW92ZSBwYWRkaW5nIGFuZCBzaWduYWwgdmZ1bmNzCgkgIEFuZCBmaXggc2lnbmFsIEdUeXBlcyBhbmQgbWFyc2hhbGxlci4gTm8gb25lIHdpbGwgZXZlcgoJICBuZWVkIHRvIHN1YmNsYXNzIG91ciByZWdpc3RyeSwgc28ganVzdCByZW1vdmUgdGhlIHBhZGRpbmcKCSAgYW5kIHRoZSBzaWduYWwgdmZ1bmNzLgoKMjAxMS0xMi0zMCAxNTozOTo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IGRpc2FibGUgR3N0SW5kZXggdW5pdCB0ZXN0CgoyMDExLTEyLTMwIDE1OjMxOjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdG1lbWluZGV4LmM6CgkgIGluZGV4OiByZW5hbWUgR3N0QXNzb2NGbGFncyB0byBHc3RJbmRleEFzc29jaWF0aW9uRmxhZ3MKCSAgSnVzdCBpbiBjYXNlIHdlIHJlc3VycmVjdCB0aGlzIGxhdGVyLgoKMjAxMS0xMi0zMCAxNToyNDo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguaDoKCSogbGlicy9nc3QvYmFzZS9nc3RtZW1pbmRleC5jOgoJICBiYXNlOiBkaXNhYmxlIHVudXNlZCBpbmRleCBBUEkgYW5kIG1ha2UgZnVuY3Rpb25zIHN0YXRpYwoJICBJdCdzIHNpbXBseSBwcml2YXRlIGhlbHBlciBBUEkgZm9yIG5vdywgdW50aWwgc29tZW9uZQoJICBmaXhlcyB1cCBHc3RCYXNlUGFyc2Ugbm90IHRvIG5lZWQgaXQgYW55IG1vcmUuCgoyMDExLTEyLTMwIDE1OjI0OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogcmVtb3ZlIGluZGV4IEFQSSBmcm9tIC5kZWYgZmlsZQoKMjAxMS0xMi0zMCAxNTowNjozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBhZGQgTEFSR0UgcGFkZGluZyB0byBjbGFzcyBzdHJ1Y3R1cmUKCSAgRm91ciBzbG90cyBmb3IgZXhwYW5zaW9uIGlzIG5vdCBhIGxvdC4KCjIwMTEtMTItMzAgMTU6MDM6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmRleC5oOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguaDoKCSogbGlicy9nc3QvYmFzZS9nc3RtZW1pbmRleC5jOgoJKiBwbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2luZGV4ZXJzLy5naXRpZ25vcmU6CgkqIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5oOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgaW5kZXg6IHJlbW92ZSBHc3RJbmRleCBhbmQgR3N0SW5kZXhGYWN0b3J5IGZvciBub3cKCSAgVGhlcmUgYXJlIG1hbnkgZ29vZCB1c2UgY2FzZXMgZm9yIEdzdEluZGV4IGFuZCB3ZSB3YW50CgkgIHRvIGFkZCBpdCBiYWNrIGFnYWluIGluIHNvbWUgZm9ybSwgYnV0IHBvc3NpYmx5IG5vdCB3aXRoCgkgIHRoZSBjdXJyZW50IEFQSSwgd2hpY2ggaXMgdmVyeSBwb3dlcmZ1bCAobWF5YmUgdG9vIHBvd2VyZnVsKSwKCSAgYnV0IGFsc28gYSBiaXQgY29uZnVzaW5nLiBBdCB0aGUgdmVyeSBsZWFzdCB3ZSdkIG5lZWQgdG8KCSAgbWFrZSB0aGUgQVBJIGJpbmRpbmdzLWZyaWVuZGx5LgoKMjAxMS0xMi0zMCAxNzo1Nzo0MSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiB1bnJlZiB0aGUgdHdvIGNvdG5yb2xsZXIgdHlwZXMgaW4gX2RlaW5pdCgpCgoyMDExLTEyLTMwIDE3OjUxOjAxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogYWRkIG1vcmUgdGVzdHMgdG8gY29yZSBjb250cm9sbGVyIHN1aXRlCgkgIEV4dGVuZCB0aGUgZHVtbXkgY29udHJvbC1zb3VyY2UgdG8gYWxsb3cgdGVzdGluZyB0aGUgc3luYyBjb2RlIHBhdGguIEFkZCB0ZXN0CgkgIGZvciAxOjEgYW5kIDI6MSB2YWx1ZSA8LT4gY29udHJvbC1zb3VyY2Ugc3luYy4KCjIwMTEtMTItMzAgMTM6NTI6MDggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBhZGQgYSB0ZXN0IGZvciBiaW5kaW5ncyBjb250cm9sIHNvdXJjZXMgbXVsdGlwbGUgdGltZXMKCjIwMTEtMTItMzAgMTI6NTk6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdGgtY29tcGF0Lmg6CgkgIG1hdGgtY29tcGF0OiBtb3ZlIHN0YXRpYyB2YXJpYWJsZSBmb3IgTkFOIGludG8gI2lmbmRlZiBOQU4gYmxvY2sKCSAgQW5kIHVzZSBHX0dOVUNfVU5VU0VEIGluc3RlYWQgb2YgX19hdHRyaWJ1dGVfdXNlZF9fCgoyMDExLTEyLTMwIDEzOjMyOjE4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L21hdGgtY29tcGF0Lmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiB1c2UgTkFOIGluc3RlYWQgb2YgRlBfTkFOICh3aGljaCBpcyB0aGUgY2xhc3MpCgkgIEFsc28gYWRkIGEgZmFsbGJhY2sgZGVmaW5lIHRvIG1hdGgtY29tcGF0LmguCgkgIEZpeGVzICM2NjY4ODcKCjIwMTEtMTItMjkgMTY6NTY6NDYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0LXNlbGVjdG9yOiBEbyBub3QgZmFsc2Ugd2FybiBhYm91dCB1bmxpbmtlZCBwYWQKCSAgV2hlbiBvdXRwdXQtc2VsZWN0b3IgZGlkbid0IHJlY2VpdmUgYSBuZXdzZWdtZW50IGV2ZW50IGl0IHdvdWxkCgkgIHdhcm4gYWJvdXQgcGFkIGJlaW5nIHVubGlua2VkIHdoZW4gc3dpdGNoaW5nIHBhZHMuIE1ha2luZyB0aGUgbG9ncwoJICB3cm9uZyBhbmQgbWlzbGVhZGluZy4KCjIwMTEtMTItMjkgMTY6NDk6MzkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgoyMDExLTEyLTI4IDE1OjEzOjA5ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IEZpeCBsZWFrIGluIHBhZCBjaGVjawoKMjAxMS0xMi0yOCAxNDo1MTo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBkZWluaXQgbWV0YSBmbGFncyB0b28KCjIwMTEtMTItMjggMTI6MjU6NTkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IEluaXRpYWxpemUgbmV3IEdzdE1ldGFGbGFncyBpbiBpbml0X3Bvc3QoKQoKMjAxMS0xMi0wMSAxOTowNTo1OSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZ3N0cXVlcnk6IFNtYWxsIGRvYyBmaXh1cHMKCjIwMTEtMTItMTYgMDI6MjA6MjcgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RzYW1wbGUuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSAgd2luMzI6IGZpeCBleHBvcnRlZCB2YXJpYWJsZXMgZm9yIFZTIDIwMTAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NjIxOQoKMjAxMS0xMi0yNyAxMzo0ODozNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSAgdHJpZ2dlcmNvbnRyb2xzb3VyY2U6IGZpeCBjb250cm9sIHJlYWNoZXMgZW5kIG9mIG5vbi12b2lkIGZ1bmN0aW9uCgkgIFJldHVybiBOQU4gYW5kIGNoZWNrIHRoZSB2YWx1ZSBmdXJ0aGVyIHVwLgoJICBGaXhlcyAjNjY2ODkwCgoyMDExLTEyLTI3IDExOjQwOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogcXVpY2stZml4IGNvbXBpbGVyIHdhcm5pbmcgYnJlYWtpbmcgdGhlIGJ1aWxkCgkgIFRoaXMgaXMgbGlrZWx5IG5vdCB0aGUgcHJvcGVyIGZpeC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Njg5MAoKMjAxMS0xMi0yNyAxMTozNToyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIHRlc3RzOiBjYW4ndCBhY2Nlc3MgcHJpdmF0ZSByZWdpc3RyeSBzdHJ1Y3R1cmUgbWVtYmVycyBkaXJlY3RseSBhbnkgbG9uZ2VyCgoyMDExLTEyLTI3IDExOjI0OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogZml4IGNvbXBpbGVyIHdhcm5pbmcgaW4gaW50ZXJwb2xhdGlvbiBjb250cm9sIHNvdXJjZQoJICBnc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOjU0OiB3YXJuaW5nOiB0eXBlIHF1YWxpZmllcnMgaWdub3JlZAoJICBvbiBmdW5jdGlvbiByZXR1cm4gdHlwZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY2ODkwCgoyMDExLTEyLTI2IDE4OjQ0OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiByZW1vdmUgImZkIiBwcm9wZXJ0eQoJICBJdCdzIG5vIGxvbmdlciB1c2VmdWwsIHNpbmNlIHdlIGRvbid0IHVzZSBtbWFwIGFueSBtb3JlIGFueXdheSwKCSAgYW5kIHdlIG1pZ2h0IHVzZSBhIGRpZmZlcmVudCBBUEkgZm9yIEkvTyBpbiBmdXR1cmUgKHN1Y2ggYXMgR0lPKS4KCjIwMTEtMTItMjYgMTg6NDE6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IG1vdmUgcHJpdmF0ZSBiaXRzIGludG8gcHJpdmF0ZSBzdHJ1Y3QKCjIwMTEtMTItMjYgMTE6MjY6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBtaWNyby1vcHRpbWlzYXRpb246IGF2b2lkIHNvbWUgdW5uZWNlc3NhcnkgZ192YWx1ZV91bnNldCgpCgkgIFdlIGtub3cgdGhlcmUncyBub3RoaW5nIHRvIGRvIGhlcmUgYW5kIGNhbiBzYXZlIHVzIHRoZSBmdW5jdGlvbgoJICBjYWxscyBhbmQgR1ZhbHVlVGFibGUgbG9va3Vwcy4KCjIwMTEtMTItMjUgMjM6NDE6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQW5kcm9pZC5tazoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZHAtcHJpdmF0ZS5oOgoJKiBwa2djb25maWcvTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC5wYy5pbjoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbGlicy9nZHAuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSogd2luMzIvTUFOSUZFU1Q6CgkqIHdpbjMyL3ZzNi9nc3RyZWFtZXIuZHN3OgoJKiB3aW4zMi92czYvbGliZ3N0ZGF0YXByb3RvY29sLmRzcDoKCSAgbGliczogcmVtb3ZlIGdkcCBkYXRhcHJvdG9jb2wgbGlicmFyeQoJICBNYWRlIHByaXZhdGUgYW5kIG1vdmVkIHRvIGdkcCBwbHVnaW4gaW4gLWJhc2UgZm9yCgkgIHRoZSB0aW1lIGJlaW5nLCB1bnRpbCB3ZSBmaWd1cmUgb3V0IHdoYXQgd2UgZG8gd2l0aAoJICBnZHAgYW5kIDAuMTEuCgoyMDExLTEyLTI1IDIxOjAyOjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJICB0ZXN0czogZml4IHVudXNlZC12YXJpYWJsZSBjb21waWxlciB3YXJuaW5nCgoyMDExLTEyLTI1IDIxOjAxOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgZXhwb3J0cyBmb3IgbmV3IEFQSQoKMjAxMS0xMi0yNSAyMDo0OTo0MSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY29udHJvbGxlci50eHQ6CgkgIGRvY3M6IGFkZCB0aGUgc3RhcnQgb2YgYSBkZXNpZ24gZG9jdW1lbnQgZm9yIGNvbnRyb2xsZXIKCjIwMTEtMTItMjUgMTg6NDk6MDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IHNwbGl0IGFuZCBjbGVhbnVwIHRoZSB0ZXN0cwoJICBUaGUgY29udHJvbGxlciBvYmplY3Qgd2FzIG9uY2UgY29waWVkIGZyb20gYnV6enRhcmRzIHVuaXQgdGVzdHMuIENoYW5nZQoJICBUZXN0TW9ub1NvdXJjZSB0byBUZXN0T2JqIGFzIGl0IGlzIG5vdCBhIGZ1bGwgZmxlZGdlZCBlbGVtZW50LiBTcGxpdCB0aGUgdGVzdHMKCSAgaW50byBhIGNvcmUgYW5kIGxpYnJhcnkgdGVzdCBzdWl0ZS4KCjIwMTEtMTItMjIgMjM6NDg6MzAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlcHJpdmF0ZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlcHJpdmF0ZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bGlic2NwcC5jYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSAgY29udHJvbGxlcjogbW92ZSBHVmFsdWUgaGFuZGxpbmcgZnJvbSBjb250cm9sLXNvdXJjZXMgdG8gLWJpbmRpbmcKCSAgQ29udHJvbFNvdXJjZXMgYXJlIG5vdyBnZG91YmxlIGJhc2VkLiBBIGNvbnRyb2wgc291cmNlIGlzIG1hcHBlZCB0byBhCgkgIHBhcnRpY3VsbGFyIEdPYmplY3QgcHJvcGVydHkgdXNpbmcgYSBDb250cm9sQmluZGluZy4KCjIwMTEtMTItMjAgMjI6MzY6MTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBtb3ZlIEdzdENvbnRyb2xsZWRQcm9wZXJ0eSBpbnRvIGEgc2VwYXJhdGUgY2xhc3MKCSAgQWRkIGEgR3N0Q29udHJvbEJpbmRpbmcgY2xhc3MuIFRoaXMgaXMgYSBwcmVwYXJhdGlvbiBmb3IgbWFraW5nIHRoZQoJICBjb250cm9sc291cmNlcyBnZW5lcmF0ZSBkb3VibGUgdmFsdWVkIGNvbnRyb2wgY3VydmVzIGFuZCBkbyB0aGUgZ3BhcmFtc3BlYwoJICBtYXBwaW5nIGluIHRoZSBjb250cm9sIGJpbmRpbmcuIE5vdyB0aGUgQVBJIGluIEdzdE9iamVjdCBpcyBhZ2FpbiBtb3N0bHkKCSAgZm9yIGNvbnZlbmllbmNlLgoKMjAxMS0xMi0yNSAxMjo0Nzo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYwoKMjAxMS0xMi0yNSAxMjozOTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogcmV0dXJuIGFueSByZW1haW5pbmcgZGF0YSBvbiBFT1MgYmVmb3JlIHJldHVybmluZyBGTE9XX1VORVhQRUNURUQKCjIwMTEtMTItMjUgMTI6Mjk6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IG1pbm9yIGNvc21ldGljIGNoYW5nZXMKCSAgUmVuYW1lIHdvZmZzZXQgdmFyaWFibGUsIG1haW50YWluIHNlcGFyYXRlIGJ5dGVzX3JlYWQgaW4gYWRkaXRpb24KCSAgdG8gbGVuZ3RoIHZhcmlhYmxlLgoKMjAxMS0xMi0yNSAxMjoxMzo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IGZpeCB1cCBjb21waWxhdGlvbiBhZnRlciBtZXJnZQoKMjAxMS0xMi0yNSAxMTo1ODoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmMKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmMKCSAgRGl0IG5vdCBtZXJnZSBjb250cm9sbGVyIG9yIGJhc2V0cmFuc2Zvcm0gY2hhbmdlcy4KCjIwMTEtMTItMjQgMTQ6NTk6MTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBwb3J0aW5nLXRvLTAuMTEKCSAgVXBkYXRlIGdzdF9wYWRfZ2V0X2NhcHMgLT4gZ3N0X3BhZF9xdWVyeV9jYXBzIGNoYW5nZQoKMjAxMS0xMi0yMyAxNTozNzo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IGNsZWFudXAgbWV0YWRhdGEgaW4gcmVzZXRfYnVmZmVyCgkgIFVzZSB0aGUgcmVzZXRfYnVmZmVyIHZtZXRob2QgdG8gcmVtb3ZlIHRoZSB1bnBvb2xlZCBtZXRhZGF0YSBmcm9tIHRoZSBidWZmZXIuCgoyMDExLTEyLTIyIDE2OjAwOjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZjogdXBkYXRlIGZvciBuZXcgc3ltYm9scwoKMjAxMS0xMi0yMiAxNTo1NToyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGhhbmRsZSBtZXRhZGF0YSBpbiB0aGUgcG9vbAoJICBNYXJrIGFsbCBtZXRhZGF0YSBvbiB0aGUgYWxsb2NhdGVkIGJ1ZmZlcnMgd2l0aCBhIFBPT0xFRCBmbGFnLiBXaGVuIGEgYnVmZmVyCgkgIHJldHVybnMgdG8gdGhlIHBvb2wsIHJlbW92ZSBhbGwgbWV0YWRhdGEgdGhhdCBkaWQgbm90IGhhdmUgdGhlIFBPT0xFRCBmbGFnLiBUaGlzCgkgIG1ha2VzIHN1cmUgdGhhdCB3ZSBuZXZlciBsZWF2ZSB1bmtub3duIG1ldGFkYXRhIHRvIHRoZSBidWZmZXJzIGluIHRoZSBwb29sLgoKMjAxMS0xMi0yMiAxNTo1NDowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBmb3JlYWNoIGZ1bmN0aW9uIGZvciB0aGUgbWV0YWRhdGEKCjIwMTEtMTItMjIgMTU6NTM6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBzbWFsbCBkb2MgZml4CgoyMDExLTEyLTIyIDE1OjUyOjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiBhZGQgbWV0YWRhdGEgZmxhZ3MKCSAgQWRkIG1ldGFkYXRhIGZsYWdzIHNvIHRoYXQgd2UgY2FuIHNldCBleHRyYSBwcm9wZXJ0aWVzIG9mIHRoZSBtZXRhZGF0YQoKMjAxMS0xMi0wMiAxNDoxMDozMiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IG9ubHkgaGF2ZSBhIHRvcC1sZXZlbCBwaXBlbGluZSBkbyBwaXBlbGluZSBtYW5hZ2VtZW50CgkgIEZpeGVzICM2NjUzOTAuCgoyMDExLTEyLTIyIDExOjA4OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogZml4IEdUeXBlIG5hbWUgb2YgaW50ZXJwb2xhdGlvbiBtb2RlIGVudW0KCjIwMTEtMTItMjEgMTE6MTM6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmOiB1cGRhdGUKCjIwMTEtMTItMjEgMTE6MDg6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiByZW5hbWUgdmFyaWFibGUgZm9yIGNvbnNpc3RlbmN5CgkgIFJlbmFtZSB0aGUgdmFyaWFibGUgZm9yIEdTVF9DQVBTX05PTkUgdG8gX2dzdF9jYXBzX25vbmUgZm9yIGNvbnNpc3RlbmN5IGFuZCB0bwoJICBoaWUgdGhlIGZhY3QgdGhhdCBOT05FIGNhcHMgYXJlIGFsc28gYWNjaWRlbnRhbGx5IGVtcHR5IGNhcHMuCgoyMDExLTEyLTE5IDE0OjI3OjQ3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBJZiB0aGUgZmlsdGVyZWQgcGVlciBjYXBzIGFyZSBhbHJlYWR5IGVtcHR5IGVycm9yIG91dCBlYXJseQoKMjAxMS0xMi0yMCAxMzoyMTozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWY6IHVwZGF0ZSBkZWZzCgoyMDExLTEyLTIwIDEzOjE0OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogYWRkIEFOWSBhbmQgRU1QVFkgc2luZ2xldG9ucwoJICBBZGQgYSBzaW5nbGV0b24gZm9yIEFOWSBhbmQgRU1QVFkgY2FwcyBhbmQgbWFrZSB0aGUgR1NUX0NBUFNfQU5ZIGFuZAoJICBHU1RfQ0FQU19OT05FIHBvaW50IHRvIHRoZW0uIFRoaXMgbWFrZXMgdGhlIEFQSSBtb3JlIGNvbnNpc3RlbnQgbm93CgkgIHRoYXQgdGhlIG1hY3JvIGRvZXMgbm90IG1hZ2ljYWxseSBjcmVhdGUgYSByZWYuIEl0IGFsc28gc29sdmVzIHNvbWUgbGVha3MgaW4KCSAgcGxhY2VzIHdoZXJlIHRoZSBtYWNybyB3YXMgdXNlZCB0byByZWdpc3RlciBhIHBhZHRlbXBsYXRlLgoKMjAxMS0xMi0yMCAxMzoxMzowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSAgcmVtb3ZlIGNvbnN0IGluIGdzdF90eXBlX2ZpbmRfcmVnaXN0ZXIoKQoJICBSZW1vdmUgdGhlIGNvbnN0IGZyb20gdGhlIEdzdENhcHMgaW4gZ3N0X3R5cGVfZmluZF9yZWdpc3RlcigpIGJlY2F1c2UgdGhlCgkgIGZ1bmN0aW9uIHRha2VzIGEgcmVmIHRvIHRoZSBjYXBzLgoKMjAxMS0xMi0yMCAxMjo1OTozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDExLTEyLTIwIDExOjM4OjE5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogcmVtb3ZlIHVudXNlZCBwYXJlbnRfY2xhc3MgdmFycmlhYmxlIGZyb20gY29udHJvbHNvdXJjZQoKMjAxMS0xMi0xOSAyMzozMjo1NyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJICBjb250cm9sbGVyOiBjbGVhbnVwIGludGVycG9sYXRpb24gbW9kZXMKCSAgUmVtb3ZlIGRlcHJlY2F0ZWQvdW5pbXBsZW1lbnRlZCBtb2Rlcy4gVHVybiBpbnRlcnBvbGF0aW9uIG1vZGUgaW50byBhIGdvYmplY3QKCSAgcHJvcGVydHkuIFVwZGF0ZSBkb2NzIGFuZCBleGFtcGxlcy4KCjIwMTEtMTItMTkgMTE6MTM6NDUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlcHJpdmF0ZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkgIGNvbnRyb2xzb3VyY2VzOiByZWZhY3RvciBpbnRlcnBvbGF0aW9uIGNvbnRyb2wgc291cmNlCgkgIE1vdmUgbW9zdCBvZiB0aGUgY29kZSB0byBhIEdzdFRpbWVkVmFsdWVDb250cm9sU291cmNlLiBTcGxpdCBvdXQgdGhlIHRyaWdnZXIKCSAgJ2ludGVycG9sYXRpb24gbW9kZScgdG8gYSBuZXcgY29udHJvbCBzb3VyY2UgY2xhc3MuIE1vdmUgdGVzdHMgYW5kIGV4YW1wbGVzIHRvCgkgIG5ldyBhcGkuIFVwZGF0ZSBkb2NzLgoJICBGaXhlcyAjNjEwMzM4CgoyMDExLTEyLTE5IDIyOjAxOjAyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xzb3VyY2U6IGNsZWFuIHVwIGxmbyBjb250cm9sIHNvdXJjZQoJICBSZW1vdmUgcGFyZW50X2NsYXNzIGFuZCB1c2UgdmFyIGZyb20gR19ERUZJTkVfVFlQRSBtYWNyby4gUmVtb3ZlIHVudXNlZCBkaXNwb3NlCgkgIGltcGxlbWVudGF0aW9uLgoKMjAxMS0xMi0xOSAyMDo1Nzo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IGNvbGxlY3RwYWRzMiBmdW5jdGlvbiB0byAuZGVmIGZpbGUKCjIwMTEtMTItMTYgMTc6NTk6MjIgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgY29sbGVjdHBhZHMyOiBhZGQgY29udmVuaWVuY2UgY2xpcHBpbmcgZnVuY3Rpb24KCSAgLi4uIHdoaWNoIGFsc28gY29udmVydHMgdG8gcnVubmluZyB0aW1lOyB1c2VmdWwgZm9yIHR5cGljYWwgbXV4ZXIuCgoyMDExLTEyLTE5IDE3OjM4OjE4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBkbyBub3QgZGVsYXkgc3BhcnNlIHN0cmVhbSBuZXdzZWdtZW50IHVwZGF0ZXMKCjIwMTEtMTItMTkgMTc6MDA6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogbWFrZSBzdWJjbGFzc2VzIGFkZCBvdGhlciBmbGFncwoJICBBZGQgR1NUX01BUF9GTEFHX0xBU1Qgc28gdGhhdCBpbXBsZW1lbnRhdGlvbnMgY2FuIGFkZCBhZGRpdGlvbmFsIGZsYWdzIHdoZW4KCSAgbWFwcGluZyBtZW1vcnkuCgoyMDExLTEyLTE5IDEyOjMzOjE4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBzdWdnZXN0aW9uIGNvbXBhdGlibGUgd2l0aCB1cHN0cmVhbSBpcyBub3QgbXVjaCBvZiBhIHN1Z2dlc3Rpb24KCSAgLi4uIGluIHRoYXQgdXBzdHJlYW0gaXMgYWxyZWFkeSBjb21wbHlpbmcgd2l0aCB0aGF0IHN1Z2dlc3Rpb24uCgkgIEZpeGVzICM2NjYxNzQuCgoyMDExLTEyLTE1IDE0OjMxOjA1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogZGVsYXkgY29sbGVjdGluZyBidWZmZXIgaWYgYSBwYWQgbmV3bHkgc2V0IHdhaXRpbmcKCSAgLi4uIGFzIGNvbW1lbnRlZDsgbWFrZSBjb2RlIGNvcnJlc3BvbmQgdG8gaXQgKGFnYWluKS4KCjIwMTEtMTItMTUgMTY6MDY6MzAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiB1c2VyIHRoZSBwYXJlbnRfY2xhc3MgdmFycyBmcm9tIEdfREVGSU5FX1RZUEUKCjIwMTEtMTItMTQgMTI6MTM6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogYWxsb3cgTlVMTCBhcyBmaWx0ZXIgY2FwcyBhcmd1bWVudCB3aXRoIHF1ZXJ5X2NhcHMoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY2MTU0CgoyMDExLTEyLTEyIDEzOjA1OjM2ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBkbyBub3QgbWlzdGFrZSBzaG9ydCByZWFkcyBmb3IgRU9TCgkgIFdoaWxlIGxvY2FsIGZpbGVzeXN0ZW1zIHdpbGwgdXN1YWxseSBub3QgY2F1c2Ugc2hvcnQgcmVhZHMsCgkgIHRoaXMgbWF5IGhhcHBlbiBvbiBzZWVrYWJsZSBmaWxlcyBvbiBzb21lIHJlbW90ZSBmaWxlc3lzdGVtcy4KCSAgSW5zdGVhZCwgbG9vcCB0aWxsIHdlIGdldCB0aGUgcmVxdWVzdGVkIGFtb3VudCBvZiBkYXRhLCBvcgoJICBhbiBhY3R1YWwgRU9TIChpZSwgMCBieXRlcykuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU5MjEKCjIwMTEtMTEtMTQgMDI6MjY6MzEgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IENsZWFyIHF1ZXVlZCBmcmFtZXMgd2l0aCBvdGhlciBxdWV1ZXMKCjIwMTEtMTItMTIgMTI6MTE6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IHVzZSBuZXcgJ3RyYW5zZmVyIGZsb2F0aW5nJyBhbm5vdGF0aW9uIGZvciBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoKQoJICBSZXF1aXJlcyBnb2JqZWN0LWludHJvc3BlY3Rpb24gMS4zMS4xIChvbGRlciB2ZXJzaW9ucyB3aWxsCgkgIGVycm9yIG91dCB3aXRoIHRoYXQpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0MDk5CgoyMDExLTEyLTEyIDEyOjA5OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2NzLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL3NyLnBvOgoJICBwbzogdXBkYXRlIGxhbmd1YWdlcwoKMjAxMS0xMi0xMiAxMjowMDoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTItMTIgMTE6NTQ6NTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSogZ3N0L2dsaWItY29tcGF0LmM6CgkgIGdsaWItY29tcGF0OiBBZGQgbGljZW5zZSBib2lsZXJwbGF0ZSBmb3IgTEdQTAoKMjAxMS0xMi0xMCAwMToxNjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9MSU5HVUFTOgoJKiBwby9jcy5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NyLnBvOgoJKiBwby91ay5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTEtMTItMTAgMTE6MDg6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogc2F5IHdlIGhhbmRsZSBSRUNPTkZJR1VSRSBldmVudAoJICBXZSBoYW5kbGUgdGhlIFJFQ09ORklHVVJFIGV2ZW50IHNvIHJldHVybiBUUlVFIGZyb20gdGhlIGV2ZW50IGhhbmRsZXIuCgoyMDExLTEyLTEwIDExOjA3OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IGZvcndhcmQgb24gTlVMTCBwYWRzCgkgIFRoZSBpdGVyYXRvciBjYW4gcmV0dXJuIE5VTEwgaW4gc29tZSBjYXNlcywgYXZvaWQgcHVzaGluZyBvbiB0aG9zZQoJICBOVUxMIHBhZHMuCgoyMDExLTEyLTA3IDE2OjAxOjA3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cHJlc2V0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwcmVzZXQ6IGFsbG93IGFwcGxpY2F0aW9ucyB0byBzcGVjaWZ5IGFuIGV4dHJhIHByZXNldCBkaXIKCSAgQW4gZXh0cmEgYXBwbGljYXRpb24gcHJlc2V0IGRpciBoZWxwIHRvIG9yZ2FuaXplIHByZXNldHMgY3JlYXRlZCBmb3Igc3BlY2lhbAoJICBwdXJwb3Nlcy4gRml4ZXMgIzY2MDc2MAoJICBBUEk6IGdzdF9wcmVzZXRfc2V0X2FwcF9kaXIoKSwgZ3N0X3ByZXNldF9nZXRfYXBwX2RpcigpCgoyMDExLTEyLTA5IDEwOjAxOjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHN0b3Agd2hlbiBuZWdvdGlhdGlvbiBmYWlscwoKMjAxMS0xMi0wOCAxNzozMjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTItMDggMTg6MDA6MDAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEZpeCBjb2RlIHBhdGggdG8gY29tZSB1cCB3aXRoIHBvc3NpYmxlIGNhcHMgaWYgaW5jb21wYXRpYmxlIGNhcHMgYXJlIHByb3ZpZGVkIHRvIGJ1ZmZlcl9hbGxvYygpCgkgIFByZXZpb3VzIGNvZGUgY291bGQgYWxtb3N0IG5ldmVyIHdvcmsgYW5kIHRoaXMgc2hvdWxkIGJlIHNsaWdodGx5CgkgIGJldHRlci4KCjIwMTEtMTItMDggMTc6MjE6MzAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEZhbGwgYmFjayB0byB1cHN0cmVhbSBwcm92aWRlZCBjYXBzIGlmIHN1Z2dlc3RlZCBjYXBzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBzaW5rcGFkCgoyMDExLTEyLTA4IDE3OjA3OjA1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBGYWxsIGJhY2sgdG8gdXBzdHJlYW0gcHJvdmlkZWQgY2FwcyBpZiBmaXhhdGlvbiBvZiBzdWdnZXN0ZWQgY2FwcyBmYWlsZWQKCjIwMTEtMTItMDggMTc6MDI6MjggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFJlZmFjdG9yIGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MoKSBjb2RlCgkgIERvbid0IGNoZWNrIGlmIHVwc3RyZWFtIHByb3ZpZGVkIGNhcHMgYXJlIGNvbXBhdGlibGUgd2l0aCB1cHN0cmVhbQoJICBhbmQgZG9uJ3QgdHJ5IHRvIGZpeGF0ZSB0aGVzZSBjYXBzLiBUaGV5IG11c3QgYmUgZml4YXRlZCBpbiBhbnkgY2FzZS4KCjIwMTEtMTItMDggMDA6NDk6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZpbGVzIGZvciBsYXRlc3QgQVBJIGFkZGl0aW9ucwoKMjAxMS0xMi0wOCAwMDo0Nzo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICB0ZXN0czogZml4IHVwIHNlbGVjdG9yIHRlc3QgYWZ0ZXIgbWVyZ2UKCjIwMTEtMTItMDggMDA6Mzk6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGluZGV4ZmFjdG9yeS5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jCgkgIE5vdGU6IGRpZCBub3QgbWVyZ2UgYW55IG9mIHRoZSBiYXNldHJhbnNmb3JtIGNoYW5nZXMgZnJvbSAwLjEwLgoKMjAxMS0xMi0wNyAxNzo1Nzo0OSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvIG5vdCB1c2UgYSBieXRlIHZhbHVlIGluc3RlYWQgb2YgYSB0aW1lIHZhbHVlIHdoZW4gYmlzZWN0aW5nCgkgIFRoaXMgZml4ZXMgRkxBQyBzZWVraW5nIG9uIHNvbWUgRkxBQyBmaWxlcy4KCjIwMTEtMTItMDcgMTE6MDQ6NDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgc2VsZWN0b3I6IFB1c2ggbmV3c2VnbWVudCBldmVudHMgYmVmb3JlIGFueSBidWZmZXJzIGFyZSBwdXNoZWQgaW4gdGhlIHVuaXQgdGVzdAoKMjAxMS0xMi0wNyAxMTowMTo0OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRG9uJ3Qgc2VuZCBhIE5FV1NFR01FTlQgZXZlbnQgaWYgYSBidWZmZXIgYXJyaXZlZCBiZWZvcmUgdGhlIHNlZ21lbnQgd2FzIGNvbmZpZ3VyZWQKCjIwMTEtMTItMDcgMTE6MDE6MzEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogRG9uJ3Qgc2VuZCBsYXN0IHNlZ21lbnQvYnVmZmVyIHdoZW4gbm8gc2VnbWVudCB3YXMgY29uZmlndXJlZCB5ZXQKCjIwMTEtMTItMDcgMDk6NTA6NDAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IElmIHN1Z2dlc3RlZCBjYXBzIGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIHVwc3RyZWFtIHRyeSB0byBjb21lIHVwIHdpdGggY29tcGF0aWJsZSBjYXBzCgkgIEZpeGVzIGJ1ZyAjNjYyMTk5LgoKMjAxMS0xMi0wNiAyMzo1Mjo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkgIGluZGV4ZmFjdG9yeTogZml4IG1lbW9yeSBsZWFrCgkgIEludHJvZHVjZWQgYnkgY29tbWl0IGJkMzAyYmI2IHBsdWdpbmZlYXR1cmU6IGF2b2lkIGR1cGxpY2F0aW5nIGZlYXR1cmUtPm5hbWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTQ1OTQ2NgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1NzAzCgoyMDExLTEyLTA2IDE4OjA5OjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogcHV0IG5ldyBldmVudCBwcm9iZSB0eXBlIG5leHQgdG8gb3RoZXIgZXZlbnQgdHlwZXMKCjIwMTEtMTItMDUgMjE6MjA6NTIgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgQWRkIEdTVF9QQURfUFJPQkVfVFlQRV9IQU5ETEVfRkxVU0gKCjIwMTEtMTItMDYgMTQ6NTU6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogTWFrZSBldmVudC9idWZmZXIgdmVyYm9zZSBvdXRwdXQgY29uc2lzdGVudCB3aXRoIGlkZW50aXR5CgoyMDExLTEyLTA2IDE0OjU1OjExICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IFByaW50IGJ1ZmZlciBmbGFncyBpbiB0aGUgdmVyYm9zZSBvdXRwdXQKCjIwMTEtMTItMDYgMTQ6NTM6NDcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZha2VzcmM6IE1ha2UgZXZlbnQvYnVmZmVyIHZlcmJvc2Ugb3V0cHV0IGNvbnNpc3RlbnQgd2l0aCBpZGVudGl0eSBhbmQgcHJpbnQgYnVmZmVyIGZsYWdzCgoyMDExLTEyLTA2IDE0OjQ2OjQ2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogZG9uJ3QgaW5jbHVkZSBnbGliL2d0aHJlYWQuaCBkaXJlY3RseQoJICBUaGUgZ190aHJlYWQgZnVuY3Rpb25zIGFyZSBhdmFpbGFibGUgYWZ0ZXIgaW5jbHVkaW5nIGdsaWIuaCBhcyBwZXIgZG9jcy4KCjIwMTEtMTItMDYgMTQ6MjM6MzkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogcG9ydCB0aGUgdGVzdCB0byBuZXcgYXBpIGFzIHdlbGwKCjIwMTEtMTItMDYgMTQ6MjM6MTIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgY29udHJvbGxlcjogZml4IGdwb2ludGVyIHZzLiBncG9pbnRlciogbWVzcyB1cAoKMjAxMS0xMi0wNiAxNDoyNDoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmVtb3ZlIEdTVF9GTE9XX1JFU0VORAoJICBJdCBpcyB1bnVzZWQgYW5kIHVuZGVmaW5lZC4KCjIwMTEtMTItMDYgMTQ6MDE6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBiYXNlc3JjOiBhZGQgYXN5bmMgc3RhcnQgb3B0aW9uCgkgIEFkZCBhIG1ldGhvZCB0byBlbmFibGUgYXN5bmMgc3RhcnQgYmVoYXZpb3VyLiBUaGUgc3ViY2xhc3MgY2FuIHRoZW4gY29tcGxldGUgdGhlCgkgIHN0YXJ0IG9wZXJhdGlvbiBmcm9tIGFueSBvdGhlciB0aHJlYWQgYnkgY2FsaW5nIGdzdF9iYXNlX3NyY19zdGFydF9jb21wbGV0ZSgpLgoJICBUaGUgYmFzZSBjbGFzcyBjYW4gd2FpdCBmb3IgdGhlIHN0YXJ0IHRvIGNvbXBsZXRlIHdpdGgKCSAgZ3N0X2Jhc2Vfc3JjX3N0YXJ0X3dhaXQoKS4KCjIwMTEtMTItMDYgMTM6NTg6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgZml4IGNvbXBpbGF0aW9uCgoyMDExLTEyLTA2IDEzOjQ3OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IGNsZWFudXAgZXJyb3IgcGF0aAoKMjAxMS0xMi0wNiAxMzozOTowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBmaXggY29tcGlsYXRpb24KCjIwMTEtMTItMDYgMDg6NDg6NTcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGNvbnRyb2xsZXI6IHVzZSBfT0JKRUNUIGxvZ2dpbmcgdmFyaWFudHMgbW9yZQoKMjAxMS0xMi0wNiAwODozNTo1NyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiByZW1vdmUgR3N0VmFsdWVBcnJheQoJICBJbnN0ZWFkIHBhc3MgdGhlIHZhbHVlcyBhcyBhcmd1bWVudHMuIFRoaXMgc2ltcGxpZmllcyB0aGF0IGNvZGUgYW5kIGhlbHBzCgkgIGJpbmRpbmdzLgoKMjAxMS0xMi0wNiAwODozNToxMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBjb250cm9sbGVyOiByZW1vdmUgZ3N0X29iamVjdF9nZXRfdmFsdWVfYXJyYXlzCgkgIE9uZSBjYW4gZWFzaWxseSBsb29wIG92ZXIgdGhlIGNvbnRyb2xsZWQgcHJvcGVydGllcyBtYW51YWxseS4gVGhpcyBpcyBzdGVwIDEgaW4KCSAgcmVtb3ZpbmcgR3N0VmFsdWVBcnJheS4KCjIwMTEtMTItMDQgMDc6MzM6MzIgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGNvcnJlY3QgcmV0dXJuIHZhbHVlIGluIGdzdF9wdXNoX3N0aWNreQoKMjAxMS0xMi0wNSAxMTowNzoyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBtYWtlIHNvbWUgbWFjcm9zIGludG8gaW5saW5lIGZ1bmN0aW9ucwoKMjAxMS0xMi0wNSAxMDoyNDozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIG1ha2Ugc29tZSBtb3JlIG1hY3JvcyBhcyBpbmxpbmUgZnVuY3Rpb25zCgkgIE1ha2Ugc29tZSBtYWNyb3MgYXMgaW5saW5lIGZ1bmN0aW9ucyBmb3IgYWRkZWQgdHlwZSBjaGVja2luZy4KCSAgVVNlIG5ldyBnc3RfY2Fwc190YWtlKCkgaW4gdHlwZWZpbmQKCjIwMTEtMTItMDUgMTA6MjM6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiByZW1vdmUgc29tZSBvbGQgbWV0aG9kcwoKMjAxMS0xMi0wNCAyMToxOTowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogYWxsb3cgbm9uLWpvaW5hYmxlIHRocmVhZHMgaW4gcHJpdmF0ZSBnX3RocmVhZF9jcmVhdGUoKSBjb3B5CgkgIExvb2tzIGxpa2Ugc29tZSB0ZXN0cyB1c2Ugbm9uLWpvaW5hYmxlIHRocmVhZHMgYWZ0ZXIgYWxsLgoKMjAxMS0xMi0wNCAxNTo0MjowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiByZW1vdmUgcmVtb3ZlZCB0YWcgbGlzdCBmdW5jdGlvbnMgZnJvbSBkb2NzIGFzIHdlbGwKCjIwMTEtMTItMDQgMTU6Mzg6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdG9iamVjdC5oCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmgKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jCgkgIHRvb2xzL2dzdC14bWxpbnNwZWN0LmMKCjIwMTEtMTItMDQgMTQ6Mzg6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIFN1cHByZXNzIGRlcHJlY2F0aW9uIHdhcm5pbmdzIGluIHNlbGVjdGVkIGZpbGVzLCBmb3IgZ19zdGF0aWNfcmVjX211dGV4XyogbW9zdGx5CgkgIEdTdGF0aWNSZWNNdXRleCBpcyBwYXJ0IG9mIG91ciBBUEkvQUJJLCBub3QgbXVjaCB3ZSBjYW4gZG8gaGVyZSBpbiAwLjEwLgoKMjAxMS0xMi0wNCAxMzozNTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgV29yayBhcm91bmQgZGVwcmVjYXRlZCB0aHJlYWQgQVBJIGluIGdsaWIgbWFzdGVyCgkgIEFkZCBwcml2YXRlIHJlcGxhY2VtZW50cyBmb3IgZGVwcmVjYXRlZCBmdW5jdGlvbnMgc3VjaCBhcwoJICBnX211dGV4X25ldygpLCBnX211dGV4X2ZyZWUoKSwgZ19jb25kX25ldygpIGV0Yy4sIG1vc3RseQoJICB0byBhdm9pZCB0aGUgZGVwcmVjYXRpb24gd2FybmluZ3MuIFdlIGNhbid0IGNoYW5nZSBtb3N0IG9mCgkgIHRoZXNlIGluIDAuMTAgYmVjYXVzZSB0aGV5J3JlIHBhcnQgb2Ygb3VyIEFQSSBhbmQgQUJJLgoKMjAxMS0xMi0wNCAxMzowOTo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOgoJICBiZW5jaG1hcmtzOiBnX3RocmVhZF9jcmVhdGUoKSBpcyBkZXByZWNhdGVkIGluIEdMaWIgbWFzdGVyLCB1c2UgZ190aHJlYWRfdHJ5X25ldygpIGluc3RlYWQKCjIwMTEtMTItMDQgMTM6MDQ6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0OiBpbml0aWFsaXNlIEdFcnJvciB2YXJpYWJsZXMgdG8gTlVMTAoKMjAxMS0xMi0wNCAxMTo0MzoxMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGRlZnMgZmlsZXMKCjIwMTEtMTItMDQgMTE6NDI6MzkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZ3N0cXVlcnk6IEZpeCB1bml0aWFsaXplZCB2YXJpYWJsZQoKMjAxMS0xMi0wNCAxMTozMjo1NyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIGdzdHNlZ21lbnQ6IEluaXRpYWxpemUgd2l0aCBwcm9wZXIgdHlwZQoKMjAxMS0xMi0wMyAxNzo0MDo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXBsdWdpbi1zY2FubmVyLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIGdfdGhyZWFkX2luaXQoKSBpcyBkZXByZWNhdGVkIGluIGdsaWIgbWFzdGVyCgkgIEl0J3Mgbm90IG5lZWRlZCBhbnkgbG9uZ2VyLgoKMjAxMS0xMi0wMyAxNjowMjozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIHRhZ3NldHRlcjogdXBkYXRlIGZvciB0aHJlYWQgQVBJIGRlcHJlY2F0aW9ucyBpbiBnbGliIG1hc3RlcgoKMjAxMS0xMi0wMyAxNTozNjo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiB1cGRhdGUgZm9yIHRocmVhZCBBUEkgZGVwcmVjYXRpb25zIGluIGdsaWIgbWFzdGVyCgoyMDExLTEyLTAzIDE1OjE4OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IHJlbW92ZSBnc3RfdGFnX2xpc3RfZ2V0X3tjaGFyLHVjaGFyfQoJICBUaG9zZSBhcmUgdW51c2VkIGFuZCBzaG91bGQgbmV2ZXIgYmUgdXNlZCBhbnl3aGVyZSBhbnl3YXkKCSAgcmVhbGx5LgoKMjAxMS0xMi0wMyAxNDowNjo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiByZW1vdmUgc29tZSBtYWNyb3MgdGhhdCBubyBsb25nZXIgZXhpc3QKCjIwMTEtMTItMDMgMTM6NTg6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIGdfdGhyZWFkX2NyZWF0ZSgpIGlzIGRlcHJlY2F0ZWQgaW4gR0xpYiBtYXN0ZXIsIHVzZSBnX3RocmVhZF90cnlfbmV3KCkgaW5zdGVhZAoKMjAxMS0xMi0wMyAwNzowNjoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVzZSBkdHMgYW5kIHB0cyBmb3Igc3luYwoJICBGaXJzdCB1c2UgRFRTLCB0aGVuIGZhbGwgYmFjayB0byBQVFMgZm9yIHN5bmNocm9uaXphdGlvbi4KCjIwMTEtMTItMDMgMDc6MDE6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBzbWFsbCBjbGVhbnVwcwoKMjAxMS0xMi0wMyAwNjo0NToyNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1lcmdlIHByZXJvbGwgZnVuY3Rpb25zCgkgIElubGluZSBhIGZ1bmN0aW9uIHRoYXQgaXMgb25seSBjYWxsZWQgZnJvbSBvbmUgcGxhY2UgdG8gbWFrZSB0aGluZ3MgYSBsaXR0bGUKCSAgZWFzaWVyIHRvIGZvbGxvdy4KCjIwMTEtMTItMDMgMDY6Mjk6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtb3JlIGNsZWFudXBzCgkgIERvbid0IHBhc3MgYXJvdW5kIHRoZSBvYmplY3QgdHlwZSwgd2UgY2FuIGZpbmQgdGhhdCB2ZXJ5IGVmZmljaWVudGx5IGZyb20gdGhlCgkgIG9iamVjdCBpdHNlbGYgbm93LgoKMjAxMS0xMi0wMiAyMzoxMzoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNsZWFuIHVwIG1ldGhvZCBuYW1lcwoKMjAxMS0xMi0wMiAyMjo1MDo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1lcmdlIHJlbmRlcl9vYmplY3QgaW50byBjaGFpbgoJICBNZXJnZSB0aGUgcmVuZGVyX29iamVjdCBjb2RlIHdpdGggdGhlIGNoYWluIG1ldGhvZC4gSXQgaXMgb25seSBjYWxsZWQgZnJvbSB0aGVyZQoJICBhbmQgdGhlcmUgYXJlIHF1aXRlIGEgZmV3IHZhcmlhYmxlcyB0aGF0IGNhbiBiZSByZXVzZWQgdG8gbWFrZXMgdGhpbmdzIGxlc3MKCSAgY29uZnVzaW5nLgoKMjAxMS0xMi0wMiAyMjozNjozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHJlbW92ZSBvYnNvbGV0ZSBjb2RlCgkgIFJlbW92ZSBzb21lIG1vcmUgY29kZSBub3cgdGhhdCB0aGUgcmVuZGVyX29iamVjdCBldGhvZCBpcyBvbmx5CgkgIGNhbGxlZCB3aXRoIGJ1ZmZlcnMgb3IgYnVmZmVybHN0cy4KCjIwMTEtMTItMDIgMjI6MjA6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGJhc2VzaW5rOiBjbGVhbiB1cCBldmVudCBoYW5kbGluZwoJICBBZGQgbmV3IHdhaXRfZW9zIHZtZXRob2QgdG8gd2FpdCBmb3IgdGhlIGVvcyB0aW1lb3V0IGJlZm9yZSBwb3N0aW5nIHRoZSBFT1MKCSAgbWVzc2FnZSBvbiB0aGUgYnVzLgoJICBBZGQgZGVmYXVsdCBldmVudCBoYW5kbGVyLiBNb3ZlIHRoZSBkZWZhdWx0IGV2ZW50IGFjdGlvbnMgaW4gdGhlcmUuIENhbGwgdGhlCgkgIGV2ZW50IHZtZXRob2QgZnJvbSB0aGUgcGFkIGV2ZW50IGhhbmRsZXIuIFN1YmNsYXNzZXMgYXJlIG5vdyBzdXBwb3NlZCB0byBjaGFpbgoJICB1cCB0byB0aGUgcGFyZW50IGV2ZW50IGhhbmRsZXIgb3IgdW5yZWYgdGhlIGV2ZW50IGFuZCBkbyB0aGVpciBvd24gdGhpbmcuCgkgIEF2b2lkIHBhc3NpbmcgdW51c2VkIHBhcmFtZXRlcnMgdG8gZnVuY3Rpb25zLgoKMjAxMS0xMi0wMiAxMzoxOTozOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiB1bmxvY2sgY2xvY2sgd2FpdCB3aGVuIGFwcHJvcHJpYXRlCgkgIC4uLiBub3RhYmx5IEZMVVNIIGFuZCBzdGF0ZSBjaGFuZ2UgdG8gUkVBRFkuCgoyMDExLTEyLTAyIDEzOjM1OjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogc21hbGwgY2xlYW51cAoJICBBdm9pZCBwYXNzaW5nIGFyb3VuZCB0aGUgc2VnbWVudC4KCjIwMTEtMTItMDIgMTM6Mjg6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IHJlbW92ZSBjbGlwX3NlZ21lbnQKCSAgV2Ugb25seSBuZWVkIG9uZSBzZWdtZW50IG5vdyB0aGF0IHRoZSBwcmVyb2xsIHF1ZXVlIGlzIGdvbmUuCgoyMDExLTEyLTAyIDEyOjQyOjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbW9yZSBjbGVhbnVwcwoJICBSZW1vdmUgc29tZSB1bm5lZWRlZCBmdW5jdGlvbnMsIGlubGluZSB0aGUgY29kZS4KCSAgUmVtb3ZlIHRoZSBxdWV1ZV9vYmplY3QgZnVuY3Rpb25zLCB3ZSBjYW4gcHJvY2VlZCB3aXRoIHRoZSByZW5kZXJpbmcKCSAgaW1tZWRpYXRlbHkuCgoyMDExLTEyLTAyIDEyOjIwOjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiByZW1vdmUgb2Jzb2xldGUgY29kZQoJICBSZW1vdmUgdGhlIHByZXJvbGwgcXVldWUgYW5kIHByb2NlZWQgZGlyZWN0bHkgdG8gdGhlIHJlbmRlcmluZyBvZiBvYmplY3RzLgoKMjAxMS0xMi0wMSAyMzozNToyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0YnVzLmMKCSAgZ3N0L2dzdGV2ZW50LmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCjIwMTEtMTItMDEgMTg6NTA6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBtYWtlIHNvbWUgdGFncyBvZiB0eXBlIEdzdFNhbXBsZQoJICBNYWtlIHRoZSBpbWFnZSBhbmQgYXR0YWNobWVudCB0YWdzIG9mIHR5cGUgR3N0U2FtcGxlIHNvIHRoYXQgd2UgY2FuIGluY2x1ZGUKCSAgZXh0cmEgY2FwcyBhbmQgaW5mbyBhbG9uZyB3aXRoIHRoZSBidWZmZXIgZGF0YS4KCjIwMTEtMTItMDEgMTg6NDk6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzYW1wbGUuaDoKCSAgc2FtcGxlOiByZW1vdmUgY29uc3QKCSAgVGhlIHdyaXRhYmlsaXR5IG9mIHRoZSBzdHJ1Y3R1cmUgaXMgZW5zdXJlZCBieSB0aGUgcmVmY291bnQgb2YgdGhlIHBhcmVudAoJICBtaW5pb2JqZWN0IGFuZCB3ZSdyZSBmaW5lIGlmIHRoZSBwYXJlbnQgaXMgd3JpdGFibGUuCgoyMDExLTEyLTAxIDE2OjQ2OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNpbmsuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlc2luazogbGFzdC1idWZmZXIgLT4gbGFzdC1zYW1wbGUKCSAgUmVuYW1lIHRoZSBsYXN0LWJ1ZmZlciBwcm9wZXJ0eSB0byBsYXN0LXNhbXBsZSBhbmQgbWFrZSBpdCByZXR1cm4gdGhlIG5ldwoJICBHc3RTYW1wbGUgdHlwZSBzbyB0aGF0IHdlIGNhbiBpbmNsdWRlIGNhcHMgYW5kIHRpbWluZyBpbmZvIGluIG9uZSBuaWNlIGJ1bmRsZS4KCjIwMTEtMTItMDEgMTY6Mzc6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzYW1wbGU6IGFkZCBuZXcgc2FtcGxlIG1pbmlvYmplY3QKCSAgQWRkIGEgbmV3IHNpbXBsZSBtaW5pb2JqZWN0IHRoYXQgaXMgYSBjb21iaW5hdGlvbiBvZiBhIEdzdEJ1ZmZlciwgR3N0Q2FwcywKCSAgR3N0U2VnbWVudCBhbmQgb3RoZXIgYXJiaXRyYXJ5IGluZm8gb3JnYW5pemVkIGluIGEgR3N0U3RydWN0dXJlLiBUaGlzIG9iamVjdCBjYW4KCSAgYmUgdXNlZCB0byBleGNoYW5nZSBzYW1wbGVzIGJldHdlZW4gYW4gZWxlbWVudCBhbmQgdGhlIGFwcGxpY2F0aW9uIG9yIGZvcgoJICBzdG9yaW5nIGFsYnVtIGFydCBpbiB0YWdzIGV0Yy4KCjIwMTEtMTItMDEgMTY6MjU6MDcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogdXNlIEdTVF9NRVNTQUdFX1NPVVJDRV9OQU1FKCkgd2hpY2ggYWxzbyB0YWtlcyBjYXJlIG9mIHNyYz1OVUxMLgoKMjAxMS0xMi0wMSAxNTozNToyNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnM6IGFkZCBzb21lIG1vcmUgZGVidWcKCjIwMTEtMTItMDEgMTU6MzU6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYWRkIHNvbWUgbW9yZSBkZWJ1ZwoKMjAxMS0xMi0wMSAxNTozNDowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBjb3B5IGZsYWcgZm9yIG1ldGEKCSAgQWRkIGEgZmxhZyB0byBjb250cm9sIGlmIHRoZSBtZXRhIHNob3VsZCBiZSBjb3BpZWQgb3Igbm90IGluc3RlYWQgb2YgYWx3YXlzCgkgIGNvcHlpbmcuCgoyMDExLTExLTI5IDE5OjA4OjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcmVtb3ZlIG9sZCBwcm9wZXJ0eQoKMjAxMS0xMS0zMCAxMzo1OTo0NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQWx3YXlzIGludGVyc2VjdCB0aGUgc3VnZ2VzdGVkIHNpbmsgY2FwcyB3aXRoIHRoZSBwZWVyIGNhcHMKCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgd2UgZ2V0IGNvcnJlY3QgYW5kIGNvbXBsZXRlIGNhcHMuIFRoZSBzdWdnZXN0ZWQgY2FwcwoJICBjb3VsZCBiZSBpbmNvbXBsZXRlLCBlLmcuIHZpZGVvL3gtcmF3LXJnYiB3aXRob3V0IGFueSBmaWVsZHMsIGFuZCBieQoJICBpbnRlcnNlY3Rpbmcgd2l0aCB0aGUgcGVlciBjYXBzIHdlIGdldCBzb21ldGhpbmcgdXNhYmxlLgoJICBGaXhlcyBidWcgIzY2MjE5OS4KCjIwMTEtMTEtMzAgMTI6Mzk6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogbW92ZSBGSVhNRSBsb2cgbGV2ZWwgYWZ0ZXIgV0FSTklORwoJICBTbyBpdCdzIG5vdyBFUlJPUiA8IFdBUk5JTkcgPCBGSVhNRSA8IElORk8gYW5kICo6NSBiZWNvbWVzICo6Ni4KCjIwMTEtMTEtMzAgMDA6MjQ6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiB3YXJuIGFuZCBmYWlsIGluc3RlYWQgb2YgY3JlYXRpbmcgbmV3c2VnbWVudCBldmVudHMgaW4gR1NUX0ZPUk1BVF9VTkRFRklORUQKCjIwMTEtMTEtMjkgMTU6NTM6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjoga2VlcCB0aGUgZWxlbWVudCBmbGFncyB1cC10by1kYXRlCgkgIEtlZXAgdGhlIHJlcXVpcmUvcHJvdmlkZV9jbG9jayBmbGFncyB1cCB0byBkYXRlLgoKMjAxMS0xMS0yOSAxMTo0NzozNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBzb3VyY2UgYW5kIHNpbmsgcGFkcyBwcm94eSBjYXBzCgoyMDExLTExLTI4IDIxOjE1OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMS0yOCAxODoyMzo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIHVwZGF0ZSBmb3IgaW5kZXhhYmxlIGNoYW5nZQoKMjAxMS0xMS0yOCAxODoxMjozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50OiBhZGQgaW5kZXhhYmxlIGZsYWcKCSAgUmVtb3ZlIHRoZSBpc19pbmRleGFibGUgbWV0aG9kIGNoZWNrIGFuZCB1c2UgYW4gZWxlbWVudCBmbGFnIHRvIGNoZWNrIGlmIHRoZQoJICBlbGVtZW50IGNhbiB1c2UgYW4gaW5kZXguCgoyMDExLTExLTI4IDE3OjUwOjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMS0xMS0yOCAxNzoyMjo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZWxlbWVudDogdXNlIGZsYWdzIGZvciByZXF1aXJlL3Byb3ZpZGUgY2xvY2sKCSAgUmVtb3ZlIHRoZSBfcmVxdWlyZS9fcHJvdmlkZV9jbG9jaygpIG1ldGhvZHMgYW5kIHVzZSBlbGVtZW50IGZsYWdzIHRvIG1hcmsKCSAgZWxlbWVudHMgaW5zdGVhZCBvZiBsb29raW5nIGF0IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgdm1ldGhvZC4KCjIwMTEtMTEtMjggMTY6NTQ6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgZWxlbWVudDogY2xlYW4gdXAgZWxlbWVudCBmbGFncwoJICBDbGVhbiB1cCB0aGUgZWxlbWVudCBmbGFncwoKMjAxMS0xMS0yOCAxNTozNToyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogYWRkIHN0aWNreSBjdXN0b20gcXVhcmsKCjIwMTEtMTEtMjggMTQ6MjQ6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiBfQ0FQU19GTEFHU18gLT4gQ0FQU19GTEFHXwoKMjAxMS0xMS0yOCAxMjozMDoxNSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0ZWxlbWVudDogYWRkIGdzdF9lbGVtZW50X2NsYXNzX2FkZF9wYWRfdGVtcGxhdGVfZnJvbV9zdGF0aWMKCSAgVGhpcyBmdW5jdGlvbiBoZWxwcyBlbnN1cmUgdGhlIHBhZCB0ZW1wbGF0ZSBpcyB1bnJlZmZlZAoJICB3aXRob3V0IGhhdmluZyB0byBjb21wbGljYXRlIHRoZSBjYWxsaW5nIGNvZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjI2NjQKCjIwMTEtMTEtMjggMTM6NTQ6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogSGFuZGxlIHN0aWNreSBldmVudCBlcnJvcnMKCSAgVXNlIEdzdEZsb3dSZXR1cm4gdG8gaW50ZXJuYWxseSBwYXNzIGV2ZW50cyBiZXR3ZWVuIHBhZHMuCgkgIFdoZW4gd2Ugc3RpY2t5IGV2ZW50cyBjYXVzZSBhbiBlcnJvciwgdHJhbnNsYXRlIHRoaXMgZXJyb3IgaW50byBhIEdzdEZsb3dSZXR1cm4uCgkgIENhcHMgZXZlbnRzIHdpbGwsIGZvciBleGFtcGxlLCBnZW5lcmF0ZSBhIE5PVF9ORUdPVElBVEVEIHJldHVybiB3aGVuIHRoZSBldmVudAoJICBmdW5jdGlvbiByZXR1cm5zIGFuIGVycm9yLgoJICBUaGlzIGFsbG93cyB1cyB0aGVuIHRvIHJlZnVzZSBzZW5kaW5nIGJ1ZmZlcnMgaWYgb25lIG9mIHRoZSBzdGlja3kgZXZlbnRzIGlzCgkgIHJlZnVzZWQgYW5kIGdlbmVyYXRlIGEgY29ycmVjdCBlcnJvciByZXR1cm4gdmFsdWUuCgoyMDExLTExLTI4IDEzOjUyOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJICB0ZXN0czogZG9uJ3QgcmV0dXJuIEZBTFNFIGZyb20gZXZlbnRzCgkgIFJldHVybmluZyBGQUxTRSBmcm9tIHRoZSBldmVudCBoYW5kbGVyIHNodXRzIGRvd24gdGhlIHNlbmRlci4KCjIwMTEtMTEtMjggMTM6NTE6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3Q6IGZpeCByZWZjb3VudCBlcnJvcgoKMjAxMS0xMS0yOCAxMToxNToyNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJICBnc3RtZXRhOiBTb21lIG1vcmUgZG9jcwoKMjAxMS0xMS0yOCAxMDo1NToyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogYWRkIGN1c3RvbSBkb3duc3RyZWFtIHN0aWNreSBldmVudAoKMjAxMS0xMS0yOCAwMToxMjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCB1cCBjb21tZW50IGFmdGVyIG1lcmdlIGZyb20gMC4xMAoKMjAxMS0xMS0yOCAwMToxMTo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTEtMjggMDE6MTA6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggcmVmYWN0b3Jpbmcgb2YgZHJhaW5pbmctb24tZW9zLCBtdW5nZSBmbG93IHJldHVybiB0byBGTE9XX09LCgoyMDExLTExLTI4IDAxOjAwOjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IHVwIG5ldyBidWZmZXJsaXN0IGNvZGUgZm9yIDAuMTEKCjIwMTEtMTEtMjggMDA6NDA6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYwoKMjAxMS0xMS0wMyAxMDozNDo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCBidWZmZXJsaXN0IHN1cHBvcnQKCSAgV2Ugd2FudCB0byBtYWludGFpbiBidWZmZXIgbGlzdHMgaWYgcG9zc2libGUuCgoyMDExLTExLTAzIDEzOjAyOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogc3BsaXQgb3V0IGRyYWluaW5nIG9mIHF1ZXVlIG9uIEZMT1dfVU5FWFBFQ1RFRCBpbnRvIHNlcGFyYXRlIGZ1bmN0aW9uCgoyMDExLTExLTAzIDA4OjU1OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcGFzcyBpdGVtIHR5cGUgZW51bSB0byBfZW5xdWV1ZSBpbnN0ZWFkIG9mIHNpbXBsZSBpc2J1ZmZlciBib29sZWFuCgkgIEF2b2lkcyBzb21lIHVubmVjZXNzYXJ5IEdTVF9JU19FVkVOVCgpCgoyMDExLTExLTI3IDIwOjMyOjE0ICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogZml4IGNvbXBpbGF0aW9uIHdhcm5pbmcKCSAgR1NUX1NUQVRJQ19DQVBTIGlzIG1pc3NpbmcgaW5pdGlhbGl6ZXIgZm9yIEdzdE1pbmlPYmplY3QncyBuX3dlYWtfcmVmcyBhbmQKCSAgd2Vha19yZWZzIHJlc3VsdGluZyBpbiBjb21waWxhdGlvbiB3YXJuaW5nIChsbHZtLWdjYyAgLVdhbGwpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjQ5MjcKCjIwMTEtMTEtMjcgMjI6MjY6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgoyMDExLTExLTI3IDIwOjM2OjMxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICB3YXJuaW5nczogYXZvaWQgc2V0LWJ1dC11bnVzZWQgd2FybmluZ3Mgd2l0aCBsb2FkLXNhdmUgZGlzYWJsZWQKCjIwMTEtMTEtMjYgMTc6MzQ6MTIgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBicm9rZW4gZGVmYXVsdCBjYXBzIHF1ZXJ5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjQ4ODAKCjIwMTEtMTEtMjYgMTk6NTE6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgoyMDExLTExLTI2IDE5OjQ1OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuaDoKCSAgdXJpOiBmaXggd3JvbmcgR19HTlVDX01BTExPQwoJICBfZ2V0X3Byb3RvY29scygpIHBvaW50cyB0byBjb25zdCBtZW1vcnkgaW4gMC4xMAoJICBkZXNwaXRlIHRoZSBub24tY29uc3QgcmV0dXJuIHZhbHVlLgoKMjAxMS0xMS0yNiAxOTo0NDoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0YnVmZmVyLmgKCSAgZ3N0L2dzdGJ1ZmZlcmxpc3QuaAoJICBnc3QvZ3N0Y2Fwcy5oCgkgIGdzdC9nc3RkYXRldGltZS5oCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oCgkgIGdzdC9nc3RldmVudC5oCgkgIGdzdC9nc3RnaG9zdHBhZC5oCgkgIGdzdC9nc3RpbmRleGZhY3RvcnkuaAoJICBnc3QvZ3N0aXRlcmF0b3IuaAoJICBnc3QvZ3N0bWVzc2FnZS5oCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmgKCSAgZ3N0L2dzdHBpcGVsaW5lLmgKCSAgZ3N0L2dzdHF1ZXJ5LmgKCSAgZ3N0L2dzdHNlZ21lbnQuaAoJICBnc3QvZ3N0c3RydWN0dXJlLmgKCSAgZ3N0L2dzdHRhZ2xpc3QuaAoJICBnc3QvZ3N0dXJpLmgKCSAgZ3N0L2dzdHZhbHVlLmgKCSAgbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaAoJICBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaAoJICBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaAoJICBOb3RlOiBjYW4ndCB1c2UgR19HTlVDX01BTExPQyB3aXRoIEdzdENhcHMgcmV0dXJuCgkgIHZhbHVlcyBpbiAwLjExIGJlY2F1c2Ugb2YgdGhlIEVNUFRZK0FOWSBzaW5nbGV0b25zLgoKMjAxMS0xMS0yNiAxODo1ODozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBsaWJzOiBzcHJpbmtsZSBzb21lIEdfR05VQ19NQUxMT0MKCSAgTWF5YmUgZ2NjIGNhbiBkbyBzb21ldGhpbmcgY2xldmVyIHdpdGggdGhhdCwgb3IgYXQgbGVhc3QKCSAgd2FybiB1cyBpZiB3ZSBkb24ndCBzYXZlIHRoZSByZXR1cm4gdmFsdWUgc29tZXdoZXJlLgoKMjAxMS0xMS0yNiAxODo1Nzo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHBvbGwuaDoKCSogZ3N0L2dzdHByZXNldC5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBnc3Q6IHNwcmlua2xlIHNvbWUgR19HTlVDX01BTExPQwoJICBNYXliZSBnY2MgY2FuIGRvIHNvbWV0aGluZyBjbGV2ZXIgd2l0aCB0aGF0LCBvciBhdCBsZWFzdAoJICB3YXJuIHVzIGlmIHdlIGRvbid0IHNhdmUgdGhlIHJldHVybiB2YWx1ZSBzb21ld2hlcmUuCgoyMDExLTExLTI1IDIzOjU0OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMS0yNSAyMzoxNToyMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nIGRvY3MuCgoyMDExLTExLTE2IDAxOjA0OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGFkZCBnc3RfYnVmZmVyX3tzZXQsZ2V0fV9xZGF0YSgpCgkgIEFsbG93cyBwZW9wbGUvdXMgdG8gYXR0YWNoIGFyYml0cmFyeSBtZXRhZGF0YSB0byBidWZmZXJzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0NzIwCgkgIEFQSTogZ3N0X2J1ZmZlcl9zZXRfcWRhdGEoKQoJICBBUEk6IGdldF9idWZmZXJfZ2V0X3FkYXRhKCkKCjIwMTEtMTEtMjUgMDc6MTE6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggYmxvY2tpbmcgcHJvYmUgZW1pc3Npb24KCSAgSWYgd2UgYXJlIGRlYWxpbmcgd2l0aCBhIGJsb2NraW5nIHByb2JlLCBvbmx5IHRoZW4gY2hlY2sgaWYgb25lIHRoZQoJICBibG9ja2luZyBmbGFncyBvZiB0aGUgaG9vayBtYXRjaGVzLgoJICBBZGQgc29tZSBtb3JlIGRlYnVnLgoJICBNYWtlIHRoZSBwYWQgdW5pdCB0ZXN0IGxlc3MgcmFjeS4KCjIwMTEtMTEtMjQgMTc6NDc6MDkgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIEFkZCB0ZXN0IGZvciBQQURfUFJPQkVfVFlQRV9CTE9DSyBhbmQgUEFEX1BST0JFX1RZUEVfQkxPQ0tJTkcKCjIwMTEtMTEtMjUgMDU6NTQ6MDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGZpeCBkZWJ1ZyBvZiBxdWVyeSByZXN1bHQKCjIwMTEtMTEtMjQgMjI6NTI6MTkgKzAxMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGZpeCB0eXBvIGluIGRvYwoJICBDYXVzZXMgYSB3YXJuaW5nIGZyb20gdGhlIGludHJvc3BlY3Rpb24gc2Nhbm5lci4KCjIwMTEtMTEtMjQgMjE6MzY6MTIgKzAxMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jYXBzZmlsdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICBjaGVjazogZHJvcCBjYXBzIGFyZ3VtZW50IGZyb20gZ3N0X2NoZWNrX3NldHVwX3tzcmMsc2lua31fcGFkCgkgIENhbGxpbmcgc2V0X2NhcHMgYXQgdGhhdCBwb2ludCBpcyBub3QgdXNlZnVsIGluIDAuMTAgKEZJWE1FIGNvbW1lbnQhKSwgYW5kIGluCgkgIDAuMTEgaXQgaXMgdG90YWxseSBwb2ludGxlc3M6IHRoZSBjYXBzIGV2ZW50IGRvZXNuJ3Qgc3RpY2sgdG8gYSBmbHVzaGluZyBwYWQuCgoyMDExLTExLTI0IDE0OjA3OjE0ICswMTAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkZWZzOiB1cGRhdGUgZm9yIGJ5dGVfd3JpdGVyX3B1dF9idWZmZXIKCjIwMTEtMTEtMjQgMTE6MjM6MDcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RwYWQuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jCgoyMDExLTExLTI0IDExOjE1OjI5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBSZW1vdmUgZ193YXJuaW5nKCkgaWYgcGFkIGFjY2VwdGVkIGNhcHMgdGhhdCBhcmUgbm90IGEgc3Vic2V0IG9mIHRoZSBwYWQgY2FwcwoJICBUaGlzIGNoZWNrIGlzIGNvcnJlY3QgYnV0IHVuZm9ydHVuYXRlbHkgaXQncyBpbXBvc3NpYmxlIHRvIGltcGxlbWVudAoJICBpbiBhIHRocmVhZHNhZmUgd2F5IGJlY2F1c2UgdGhlIGNhcHMgY291bGQgaGF2ZSBjaGFuZ2VkIGluIHRoZSBtZWFudGltZS4KCSAgRml4ZXMgYnVnICM2NTk2MDYuCgoyMDExLTEwLTAzIDEyOjM0OjIwICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBjaGVjayBmaWxsZWQgc3RhdGUgb2YgcXVldWVzIGV2ZW4gaWYgYW5vdGhlciBvbmUgaXMgZW1wdHkKCSAgVGhpcyB3aWxsIGF2b2lkIGEgY2FzZSB3aGVyZSBvdmVycnVuIGlzIG5ldmVyIHNpZ25hbGxlZCBpZiBzb21lCgkgIHN0cmVhbSBuZXZlciBwcm9kdWNlcyBhbnkgZGF0YSwgY2F1c2luZyBwbGF5YmluMiB0byBub3QgZW5kIHByZXJvbGwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjA3NzgKCjIwMTEtMTEtMjQgMDk6MzE6MTQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogQ2hlY2sgZm9yIGRhdGFmbG93IHdpdGggaW5jb21wYXRpYmxlIGNhcHMKCSAgVGhpcyB0ZXN0IGN1cnJlbnRseSBmYWlscywgYnV0IGlzIHRoZXJlIHRvIGVuc3VyZSB3ZSBmaXggdGhpcyBpc3N1ZQoJICBhbmQga2VlcCBpdCBmaXhlZCwgc2luY2UgaXQgY29tcGxldGVseSBicmVha3MgZGVsYXllZCBuZWdvdGlhdGlvbgoJICB1c2UtY2FzZXMuCgkgIFRoaXMgYmVoYXZpb3VyIHN0YXJ0ZWQgYnJlYWtpbmcgc2luY2UKCSAgZGQ2NWFhZTlhMTc3ZjdiMTFkY2VmMGY2OTBhNzhkNjk4ZjY2N2NkNAoKMjAxMS0xMS0yNCAwOTozMTowMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBBZGQgY29tbWVudHMgdG8gZ3N0cGFkIHRlc3RzCgoyMDExLTExLTI0IDA5OjMwOjE0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IFJlbW92ZSAiI2lmIDAiIGJsb2NrIGZvciBiZWhhdmlvdXIgdGhhdCBub3cgd29ya3MKCjIwMTEtMTEtMjQgMDk6Mjg6MzIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogUmVtb3ZlIGNvbW1lbnRlZCBibG9jawoJICBUaGlzIGJlaGF2aW91ciBpcyBhY3R1YWxseSB0ZXN0ZWQgaW4gdGVzdF9wdXNoX3VubGlua2VkCgoyMDExLTExLTI0IDAxOjA2OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBtYWtlIGdzdC1pbnNwZWN0IHByaW50IGEgbmFzdHkgZGVidWcgbWVzc2FnZSBmb3Igbm9uLWdyYXRhIHByb3BlcnR5IHR5cGUKCSAgVHJ5IHRvIGVyYWRpY2F0ZSBwcm9wZXJ0aWVzIG9mIGxvbmcvdWxvbmcvY2hhci91Y2hhciB0eXBlLgoKMjAxMS0xMS0yMyAxNzo1MDoxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBldmVudDogYWRkIFNUSUNLWV9NVUxUWSBldmVudHMKCSAgQWRkIGEgbmV3IGV2ZW50IGZsYWcgZm9yIHN0aWNreSBldmVudHMgc28gdGhhdCBtdWx0aXBsZSBldmVudHMgb2YgdGhhdCB0eXBlIGNhbgoJICBiZSBzdG9yZWQgb24gYSBwYWQgYXQgdGhlIHNhbWUgdGltZS4gQ2hhbmdlIHRoZSBfZ2V0X3N0aWNreV9ldmVudCgpIGZ1bmN0aW9uIHRvCgkgIGxvb3Agb3ZlciB0aGUgbXVsdGlwbGUgZXZlbnRzIG9mIGEgdHlwZS4KCSAgQ2hhbmdlIHRoZSBmb3JlYWNoIGZ1bmN0aW9uIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gcmVtb3ZlZCBhbmQgbW9kaWZ5IHRoZSBzdGlja3kKCSAgZXZlbnRzIG9uIGEgcGFkLgoJICBVc2UgYW4gdmFyaWFibGUgc2l6ZSBhcnJheSBub3cgdG8gc3RvcmUgdGhlIGV2ZW50cy4gVGhpcyBjb3VsZCBsYXRlciBiZQoJICBvcHRpbWl6ZWQgc29tZSBtb3JlLgoKMjAxMS0xMS0yMyAxNzozOTo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBoYW5kbGUgTlVMTCBtZXNzYWdlIHNyYyBpbiBkZWJ1ZwoKMjAxMS0xMS0yMyAxNzozODoyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IGF2b2lkIHJlYWRpbmcgcGFzdCB0aGUgYXJyYXkKCSAgV2hlbiB0aGUgZm9yZWFjaCBmdW5jdGlvbiB0b2xkIHVzIHRvIHJlbW92ZSB0aGUgYnVmZmVyIGZyb20gdGhlIGxpc3QsIGRlY3JlYXNlCgkgIHRoZSBsZW5ndGggb2YgdGhlIGFycmF5IG9yIGVsc2Ugd2UgbWlnaHQgcmVhZCBwYXN0IHRoZSBsYXN0IGl0ZW0gaW4gdGhlIGFycmF5LgoKMjAxMS0xMS0yMyAxMzo0Mjo1NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFJldHVybiB0ZW1wbGF0ZSBjYXBzIGluc3RlYWQgb2Ygb3RoZXIgc2lkZSdzIHBlZXIgY2FwcyBpZiBnZXRfc2lua19jYXBzIHZmdW5jIGlzIG5vdCBpbXBsZW1lbnRlZAoJICBVc2luZyBnc3RfcGFkX3Byb3h5X2dldF9jYXBzKCkgYnJlYWtzIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggb2xkCgkgIHBhcnNlcnMgYmVjYXVzZSBpdCB3aWxsIHByb3BhZ2F0ZSB0aGUgb3RoZXIgc2lkZSdzIGZpZWxkcyBsaWtlICJwYXJzZWQiCgkgIGFuZCAiZnJhbWVkIiBhbmQgYWxzbyBicmVha3MgcGFyc2VyL2NvbnZlcnRlcnMuCgkgIEZpeGVzIGJ1ZyAjNjY0MjIxLgoKMjAxMS0xMS0yMyAxMTowMzoxOSArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgYnl0ZXdyaXRlcjogYWRkIG1ldGhvZCB0byB3cml0ZSBvdXQgYSBidWZmZXIKCSAgSW4gMC4xMCwgdGhpcyBjYW4gYmUgZG9uZSB3aXRoIGEgb25lLWxpbmVyIGJ5IHVzaW5nIEdTVF9CVUZGRVJfREFUQS9TSVpFIHdpdGgKCSAgcHV0X2RhdGEuIEEgMC4xMSB1c2VyIGhhcyB0byByZXNvcnQgdG8gZ3N0X2J1ZmZlcl9tYXAsIHdoaWNoIGlzIGxlc3MgY29udmVuaWVudAoJICBhbmQgbWlnaHQgcmVxdWlyZSBhIG1lbWNweSBpbnRlcm5hbGx5LgoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfYnVmZmVyKCkKCjIwMTEtMTEtMjMgMDg6MTc6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdGFrZSBwZWVycGFkIGNvcnJlY3RseQoJICBEb24ndCB0YWtlIHRoZSBwZWVycGFkIHRvbyBlYXJseSwgaXQgbWlnaHQgY2hhbmdlIGJlY2F1c2Ugb2YgdGhlCgkgIHByb2Jlcy4KCjIwMTEtMTEtMjIgMTg6MzI6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiByZXdvcmsgc3RpY2t5IGV2ZW50cwoJICBSZXdyaXRlIHN0aWNreSBldmVudHMsIHRyeWluZyB0byBtYWtlIGl0IGEgYml0IG1vcmUgc2ltcGxlLgoJICBXaGVuIHN0aWNreSBldmVudHMgYXJlIHB1c2hlZCBvbiBhIHNyY3BhZCwgc3RvcmUgdGhlbSBpbiB0aGUgc3RpY2t5IGV2ZW50CgkgIGFycmF5IGFuZCBtYXJrIHRoZSBldmVudCB3aXRoIHJlY2VpdmVkID0gRkFMU0UuCgkgIFdoZW4gdGhlIHN0aWNreSBldmVudCBpcyBzdWNjZXNzZnVsbHkgc2VudCB0byB0aGUgcGVlciBwYWQsIG1ha2UKCSAgcmVjZWl2ZWQgPSBUUlVFLgoJICBLZWVwIGEgUEVORElOR19FVkVOVFMgcGFkIGZsYWcgdGhhdCBpcyBzZXQgd2hlbiBvbmUgb2YgdGhlIGV2ZW50cyBpcyBpbgoJICB0aGUgcmVjZWl2ZWQgPSBGQUxTRSBzdGF0ZSBmb3Igc29tZSByZWFzb24uCgkgIHdoZW4gYWN0aXZhdGluZyBhIHNpbmtwYWQsIG1hcmsgYWxsIGV2ZW50cyByZWNlaXZlZCA9IEZBTFNFIG9uIHRoZSBwZWVyCgkgIHNyY3BhZC4KCSAgV2hlbiBwdXNoaW5nIGEgYnVmZmVyLCBjaGVjayB0aGUgUEVORElOR19FVkVOVFMgZmxhZyBhbmQgaWYgaXQgaXMgc2V0LCBwdXNoIGFsbAoJICBldmVudHMgdG8gdGhlIHBlZXIgcGFkIGZpcnN0LgoKMjAxMS0xMS0yMiAxODozMjoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWxzbyBsZXQgY2FwcyBldmVudHMgZ28gdGhyb3VnaAoKMjAxMS0xMS0yMiAxNjo0MzozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGQgbmV3IGZsYWdzCgoyMDExLTExLTIxIDE4OjU2OjE5ICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiBmaXggcmV0dXJuIHR5cGUgb2YgX21hcCgpIHRvIGdjb25zdHBvaW50ZXIKCSAgRml4ZXMgY29tcGlsZXIgd2FybmluZ3Mgb24gT1NYOgoJICBnc3RhZGFwdGVyLmg6ODI6IHdhcm5pbmc6IHR5cGUgcXVhbGlmaWVycyBpZ25vcmVkIG9uIGZ1bmN0aW9uIHJldHVybiB0eXBlCgkgIGdzdGFkYXB0ZXIuYzo0MTI6IHdhcm5pbmc6IHR5cGUgcXVhbGlmaWVycyBpZ25vcmVkIG9uIGZ1bmN0aW9uIHJldHVybiB0eXBlCgkgIGNvbnN0IGdwb2ludGVyIGlzIG5vdCB0aGUgc2FtZSBhcyBnY29uc3Rwb2ludGVyIG9yIGNvbnN0IHZvaWQgKi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDQ5MQoKMjAxMS0xMS0yMiAxMjo0NjozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBkZWZzIGZpbGVzCgoyMDExLTExLTIyIDEyOjQ1OjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgcGFkZCByZXR1cm4gdmFsdWUgZnJvbSBfbWluaV9vYmplY3RfcmVwbGFjZSgpCgoyMDExLTExLTIxIDE4OjU2OjE5ICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBGaXggcHJpbnRmIGZvcm1hdCBjb21waWxlciB3YXJuaW5ncyBvbiBPU1gvNjRiaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDQ5MQoKMjAxMS0xMS0yMSAxNzo0Njo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IGltcHJvdmUgcGFkIHRlc3RzCgoyMDExLTExLTIxIDE3OjQzOjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBsb2NraW5nIG9yZGVyIGVycm9yCgoyMDExLTExLTIxIDE3OjQzOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBmaXggcHJpbnQgZm9ybWF0CgoyMDExLTExLTIxIDE1OjQ3OjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogQWRkIGRlc3Ryb3kgbm90aWZ5IHRvIHBhZCBmdW5jdGlvbnMKCSAgQWRkIF9mdWxsIHZhcmlhbnRzIG9mIHRoZSBwYWQgZnVuY3Rpb24gc2V0dGVycyB0aGF0IHRha2UgYSBkZXN0cm95IG5vdGlmeS4KCSAgTWFrZSBzb21lIG1hY3JvcyB0aGF0IG1ha2UgdGhlIG9sZCBtZXRob2QgbmFtZSBwYXNzIE5VTEwgdG8gdGhpcyBuZXcKCSAgZnVuY3Rpb24uCgoyMDExLTExLTIxIDEzOjI5OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgcGFkOiBNZXJnZSBwYWQgbW9kZSBhY3RpdmF0aW9uIGZ1bmN0aW9ucwoJICBBZGQgdGhlIHBhZCBtb2RlIHRvIHRoZSBhY3RpdmF0ZSBmdW5jdGlvbiBzbyB0aGF0IHdlIGNhbiByZXVzZSB0aGUgc2FtZSBmdW5jdGlvbgoJICBmb3IgYWxsIGFjdGl2YXRpb24gbW9kZXMuIFRoaXMgbWFrZXMgdGhlIGNvcmUgbG9naWMgc21hbGxlciBhbmQgYWxsb3dzIGZvciBzb21lCgkgIGVsZW1lbnRzIHRvIG1ha2UgdGhlaXIgYWN0aXZhdGlvbiBjb2RlIGVhc2llci4gSXQgd291bGQgYWxsb3cgdXMgdG8gYWRkIG1vcmUKCSAgc2NoZWR1bGluZyBtb2RlcyBsYXRlciB3aXRob3V0IGhhdmluZyB0byBhZGQgbW9yZSBhY3RpdmF0ZSBmdW5jdGlvbnMuCgoyMDExLTExLTE4IDE4OjA4OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGRvY3M6IHVwZGF0ZSBkZXNpZ24gZG9jCgkgIGFsc28gZml4IGRlZmF1bHQgYWxpZ25tZW50IHZhbHVlICgwID09IG5vLWFsaWdubWVudCkKCjIwMTEtMTEtMTggMTc6Mjc6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgcXVlcnk6IGltcHJvdmUgc2NoZWR1bGluZyBxdWVyeQoJICBUdXJucyBzb21lIGJvb2xlYW4gYXJndW1lbnRzIGluIHRoZSBzY2hlZHVsaW5nIHF1ZXJ5IHRvIGZsYWdzLCB3aGljaCBhcmUgZWFzaWVyCgkgIHRvIGV4dGVuZCBhbmQgbWFrZXMgdGhlIGNvZGUgZWFzaWVyIHRvIHJlYWQuCgkgIE1ha2UgZXh0cmEgbWV0aG9kcyBmb3IgY29uZmlndXJpbmcgYW5kIHF1ZXJ5aW5nIHRoZSBzdXBwb3J0ZWQgc2NoZWR1bGluZyBtb2Rlcy4KCSAgVGhpcyBzaG91bGQgbWFrZSBpdCBlYXNpZXIgdG8gYWRkIG5ldyBtb2RlcyBsYXRlci4KCjIwMTEtMTEtMTggMTQ6MDg6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IG1vdmUgZmxhZ3MgY2xvc2VyIHRvIGJ1ZmZlcmluZyBxdWVyeQoKMjAxMS0xMS0xOCAxMzo0Njo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBwYWQ6IGFkZCBwYXJlbnQgdG8gYWN0aXZhdGUgZnVuY3Rpb25zCgoyMDExLTExLTE4IDEyOjM1OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgcGFkOiBmaXggc2NoZWR1bGluZyBtb2RlIGVudW1zCgkgIEdzdFBhZEFjdGl2YXRlTW9kZSAtPiBHc3RQYWRNb2RlCgkgIEdTVF9QQURfQUNUSVZBVEVfKiAtPiBHU1RfUEFEX01PREVfKgoKMjAxMS0xMS0xNyAxNjoxNDozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZml4IGZvciBuZXcgZ2V0cmFuZ2UgbWV0aG9kIHNpZ25hdHVyZQoJICBnc3RfdHlwZV9maW5kX2hlbHBlcl9nZXRfcmFuZ2VfZXh0IC0+IGdzdF90eXBlX2ZpbmRfaGVscGVyX2dldF9yYW5nZQoKMjAxMS0xMS0xNyAxMjo0MDo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkgIHBhZDogYWRkIHBhcmVudCB0byBvdGhlciBmdW5jdGlvbnMKCSAgQWRkIHBhcmVudCB0byBjaGFpbiwgY2hhaW5fbGlzdCwgZ2V0cmFuZ2UgYW5kIGV2ZW50IGZ1bmN0aW9ucy4KCjIwMTEtMTEtMTcgMDg6MjE6MDUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogbW92ZSBmaWVsZHMgb3V0IG9mIHJlc2VydmVkIGFuZCByZXN0b3JlIHBhZGRpbmcKCSAgRG8gdGhlIDAuMTEgQUJJIGNoYW5nZXMuIEFkZCBleHRyYSBmaWVsZHMgZm9yIGRlc3Ryb3lfbm90aWZ5IGFuZCBkcm9wIHRoZSBxZGF0YQoJICBoYWNrLiBSZW5hbWUgX2FkZF9wYWRfZnVsbCB0byBfYWRkX3BhZCBhbmQgcmVtb3ZlIHRoZSBvbGQgX2FkZF9wYWQuCgoyMDExLTExLTE2IDE3OjQ5OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBhZGQgcGFyZW50IHRvIGludGVybmFsIGxpbmtzCgoyMDExLTExLTE2IDE3OjIyOjU2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBwYWQ6IGFkZCBwYXJlbnQgdG8gdGhlIHF1ZXJ5IGZ1bmN0aW9uCgoyMDExLTExLTE2IDEyOjM2OjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBHc3RQYWRGbGFnczogcmVuYW1lIGZsYWdzIEdTVF9QQURfKiAtPiBHU1RfUEFEX0ZMQUdfKgoKMjAxMS0xMS0xNiAxMjoxMDo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgcGx1Z2luczogcmVtb3ZlIG9ic29sZXRlIHBhcmVudCBjaGVja3MKCjIwMTEtMTEtMTYgMTI6MDg6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBrZWVwIHRoZSBwYXJlbnQgYWxpdmUgd2hlbiByZXF1ZXN0ZWQKCSAgQWRkIGEgbmV3IHBhZCBmbGFnIE5FRURfUEFSRU5UIHRoYXQgZW5zdXJlcyB0aGF0IHRoZSBwYXJlbnQgb2YgYSBwYWQgaXMKCSAgcmVmZmVkIGFuZCBub3QgTlVMTCB3aGVuIHRoZSBldmVudCwgcXVlcnkgYW5kIGludGVybmFsIGxpbmtzIGZ1bmN0aW9ucwoJICBhcmUgY2FsbGVkLgoJICBXaGVuIGEgcGFkIGlzIGFkZGVkIHRvIGFuIGVsZW1lbnQgYXV0b21hdGljYWxseSBtYWtlIHN1cmUgdGhlIE5FRURfUEFSRU5UIGZsYWcKCSAgaXMgZW5hYmxlZC4KCjIwMTEtMTEtMTYgMTA6Mjk6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZG9uJ3QgcmVxdWlyZSBwYXJlbnQgZWxlbWVudCB0byBwcm94eQoKMjAxMS0xMS0xNiAxMDoxNjo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMS0xMS0xNSAxODoxNjoyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHBhZDogbW92ZSBxdWVyeSBjb252ZW5pZW5jZSBmdW5jdGlvbnMgdG9nZXRoZXIKCSAgTW92ZSB0aGUgY2FwcyBjb252ZW5pZW5jZSBmdW5jdGlvbnMgdG8gdGhlIG90aGVyIHF1ZXJ5IGZ1bmN0aW9ucy4KCjIwMTEtMTEtMTUgMTc6NTA6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgX3F1ZXJ5X3BlZXJfKigpIC0+IF9wZWVyX3F1ZXJ5XyooKQoKMjAxMS0xMS0xNSAxNzo0MDoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIF9hY2NlcHRfY2FwcygpIC0+IF9xdWVyeV9hY2NlcHRfY2FwcygpCgoyMDExLTExLTE1IDE3OjExOjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgX3BlZXJfZ2V0X2NhcHMoKSAtPiBwZWVyX3F1ZXJ5X2NhcHMoKQoKMjAxMS0xMS0xNSAxNjo0NjozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogX2dldF9jYXBzKCkgLT4gX3F1ZXJ5X2NhcHMoKQoKMjAxMS0xMS0xNSAxNjoxNjo1MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZml4IGRvY3MKCjIwMTEtMTEtMTUgMTY6MTM6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGZpeCB0aGUgcHJveHkgZnVuY3Rpb25zCgkgIGZpeCB0aGUgcHJveHkgZnVuY3Rpb25zIGZvciBxdWVyeV9hY2NlcHRfY2FwcyBhbmQgcXVlcnlfY2FwcyB0byB1c2UgdGhlIHBhZAoJICBmb3J3YXJkIGhlbHBlciBmdW5jdGlvbnMgd2hpY2ggY29ycmVjdGx5IGZvcndhcmRzIG9uIHRoZSBpbnRlcm5hbGx5IGxpbmtlZCBwYWRzLgoKMjAxMS0xMS0xNSAxNjoxMzoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBpbXByb3ZlIHNvbWUgZmxhZyBtYWNyb3MKCjIwMTEtMTEtMTUgMTY6MTM6MTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGRlYnVnIGxpbmUKCjIwMTEtMTEtMTUgMTE6MjA6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHBhZDogcmVtb3ZlIGdldGNhcHMgYW5kIHVzZSBjYXBzIHF1ZXJ5CgkgIFJlbW92ZSB0aGUgZ2V0Y2FwcyBmdW5jdGlvbiBvbiB0aGUgcGFkIGFuZCB1c2UgdGhlIENBUFMgcXVlcnkgZm9yCgkgIHRoZSBzYW1lIGVmZmVjdC4KCSAgQWRkIFBST1hZX0NBUFMgdG8gdGhlIHBhZCBmbGFncy4gVGhpcyBpbnN0cnVjdHMgdGhlIGRlZmF1bHQgY2FwcyBldmVudCBhbmQgcXVlcnkKCSAgaGFuZGxlcnMgdG8gcGFzcyBvbiB0aGUgQ0FQUyByZWxhdGVkIHF1ZXJpZXMgYW5kIGV2ZW50cy4gVGhpcyBzaW1wbGlmaWVzIGEgbG90CgkgIG9mIGVsZW1lbnRzIHRoYXQgcGFzc3Ryb3VnaCBjYXBzIG5lZ290aWF0aW9uLgoJICBNYWtlIHR3byB1dGlsaXR5IGZ1bmN0aW9ucyB0byBwcm94eSBjYXBzIHF1ZXJpZXMgYW5kIGFnZ3JlZ2F0ZSB0aGUgcmVzdWx0LiBOZWVkcwoJICB0byB1c2UgdGhlIHBhZCBmb3J3YXJkIGZ1bmN0aW9uIGluc3RlYWQgbGF0ZXIuCgkgIE1ha2UgdGhlIF9xdWVyeV9wZWVyXyB1dGlsaXR5IGZ1bmN0aW9ucyB1c2UgdGhlIGdzdF9wYWRfcGVlcl9xdWVyeSgpIGZ1bmN0aW9uIHRvCgkgIG1ha2Ugc3VyZSB0aGUgcHJvYmVzIGFyZSBlbWl0ZWQgcHJvcGVybHkuCgoyMDExLTExLTE0IDExOjI2OjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBhZGQgY2FwcyBxdWVyeQoKMjAxMS0xMS0xNCAwOTo1NzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IHJlbW92ZSBHU1RfUVVFUllfTEFTVAoKMjAxMS0xMS0xNCAxMDoyNzowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgZml4IGRvY3MKCjIwMTEtMTEtMTIgMTA6Mjk6MzAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgY29udHJvbGxlcjogcmVtb3ZlIGZ1bmN0aW9ucyB0byBhZGQvcmVtb3ZlIGNvbnRyb2xsZWQgcHJvcGVydGllcwoJICBNYWtlIHRoYXQgaW1wbGl6aXQgd2l0aCBhdHRhY2hpbmcvZGV0YWNoaW5nIGNvbnRyb2xzb3VyY2VzLiBUaGlzIGlzIGEgbG90IGVhc2llcgoJICBhbmQgaGFzIGxlc3MgaW52YWxpZCBzdGF0ZSAoY29udHJvbGxlZCBwcm9wZXJ0eSB3aXRob3V0IGNvbnRyb2wgc291cmNlKS4KCjIwMTEtMTEtMTMgMjM6MjU6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBwbHVnaW5zLCB0b29sczogdXBkYXRlIGZvciBnZXRfcHJvdG9jb2xzKCkgcmV0dXJuIHZhbHVlIGNoYW5nZQoKMjAxMS0xMS0xMyAyMzoxNDoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+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+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3Rjb250cm9sbGVyLmM6CgkqIGdzdC9nc3Rjb250cm9sbGVyLmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2xpYi5jOgoJICBjb250cm9sbGVyOiBtb3ZlIHRvIGNvcmUvZ3N0b2JqZWN0CgkgIE1vdmUgdGhlIGNvbnRyb2xsZXIgdG8gZ3N0b2JqZWN0IGFzIGEgc2ltcGxlIGRlbGVnYXRlLiBUaGUgY29udHJvbGxlciBhbmQKCSAgY29udHJvbHNvdXJjZSBhcmUgbm90IGNsYXNzZXMgaW4gY29yZS4gVGhlIGNvbnRyb2xzb3VyY2VzIHN0YXkgc2VwYXJhdGUgYXMgYSBsaWIKCSAgZm9yIG5vdy4gVGhpcyB3YXkgd2UgY2FuIGF2b2lkIHRoZSBxZGF0YSBsb29rdXBzLgoJICBBbHNvIHJlbW92ZSBjb250cm9sbGVyX2luaXQoKS4gVGhlcmUgaXMgbm8gbW9yZSBuZWVkIHRvIGxpbmsgdG8gY29udHJvbGxlciBmb3IKCSAgZWxlbWVudHMuCgkgIEFsc28gc2FuaXRpemUgdGhlIEFQSS4gV2Ugbm93IGhhdmUgZnVuY3Rpb25zIHRvIGFkZCBwcm9wZXJ0aWVzIGxpa2Ugd2UgaGFkCgkgIG1ldGhvZHMgdG8gcmVtb3ZlIHRoYXQuIFRoYXQgYXZvaWRzIHRoZW4gcmVmIGNvdW50IGhhY2tzIHdlIGhhZCBpbiBfbmV3LgoKMjAxMS0xMS0wMyAxODoyMzoxMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHNtYWxsIGNsYXJpZmljYXRpb24KCjIwMTEtMTEtMDMgMTg6MjI6MTYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBtaXNzaW5nIHJlbmFtZSBpZmFjZS0+aW50ZXJmYWNlIGluIHRoZSBkb2NzCgoyMDExLTExLTA0IDE5OjE3OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGZpeCB0aGUgaXRlcmF0b3IgY29weQoKMjAxMS0xMS0wNCAxOToxMToxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0YmluLmMKCjIwMTEtMTEtMDMgMTU6MzY6NTkgKzAwMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IE9ubHkgdXNlIHRoZSBjYWNoZWQgdHJhbnNmb3JtIG9uIHN0cmljdGx5IGVxdWFsIGNhcHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MzMzMwoKMjAxMS0xMS0wMyAxNTozNTozMiArMDAwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiBBZGQgZ3N0X2NhcHNfaXNfc3RyaWN0bHlfZXF1YWwKCjIwMTEtMTEtMDQgMTg6NDc6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICB0ZXN0czogZml4IHRlc3RzCgkgIFNpbmNlIGJsb2NrcyBhcmUgbm90IG9uIGJvdGggZGlyZWN0aW9ucywgd2UgbmVlZCB0byBjaGVjayBpbiB0aGUgYmxvY2sgY2FsbGJhY2sKCSAgaWYgd2UgYXJlIG5vdCBibG9ja2luZyBvbiBhbiB1cHN0cmVhbSBldmVudCBhbmQgbGV0IGl0IHBhc3MuCgoyMDExLTExLTA0IDE4OjE5OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9iZXMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbWFrZSBwcm9iZXMgd29yayBvbiBhbGwgcGFkcwoJICBmaXhlcyAjNjQ0OTA3CgoyMDExLTEwLTE1IDIyOjUyOjI1ICswMzAwICBQZXRlcmlzIEtyaXNqYW5pcyA8cGVjaXNrQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBpbnRyb3NwZWN0aW9uOiBhZGQgVmFsdWUgYW5ub3RhdGlvbnMgZm9yIEdTVF9TRUNPTkQsIEdTVF9NU0VDT05ELCBHU1RfVVNFQ09ORCwgR1NUX05TRUNPTkQgY29uc3RhbnRzCgkgIGdvYmplY3QtaW50cm9zcGVjdGlvbiB3b24ndCBwYXJzZSB0aGVtIHByb3Blcmx5IG90aGVyd2lzZS4KCSAgU3RpbGwgbmVlZCB0byBmb3JjZSB0aGUgcmlnaHQgdHlwZSB0aG91Z2ggKGVpdGhlciBHc3RDbG9ja1RpbWUgb3IKCSAgZ3VpbnQ2NCksIGJ1dCBUeXBlOiB4eXogaGFzIG5vIGVmZmVjdCBmb3IgbWUgaGVyZSwgc28gc29tZW9uZSB3aXRoCgkgIGEgbmV3ZXIgZy1pIG5lZWRzIHRvIHRlc3QgdGhpcy4KCSAgU29tZSBvdGhlciBkZWZpbmVzIGFyZSBhbHNvIG1pc3NpbmcsIGUuZy4gR1NUX0NMT0NLX1RJTUVfTk9ORS4KCjIwMTEtMTEtMDQgMDA6MDM6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHN1cHByZXNzIHVudXNlZCB2YXJpYWJsZSB3YXJuaW5ncyBpZiBnc3QgZGVidWdnaW5nIGlzIGRpc2FibGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjI5NTIKCjIwMTEtMTEtMDQgMDA6MDI6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGZpeCB0eXBvIGFyb3VuZCBHTElCX0VYVFJBX0NGTEFHUyBpbiBHU1RfQUxMX0NYWEZMQUdTCgoyMDExLTExLTAzIDIzOjA4OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogdXNlIHN0YXRpY2FsbHkgYWxsb2NhdGVkIEdRdWV1ZQoKMjAxMS0xMS0wMyAyMjo1ODo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogdXNlIHN0YXRpY2FsbHkgYWxsb2NhdGVkIEdRdWV1ZQoJICBCZWNhdXNlIHdlIGNhbi4KCjIwMTEtMTEtMDMgMjI6NTE6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgY29sbGVjdHBhZHMyOiB1c2UgZmxhZ3MgZW51bSBpbnN0ZWFkIG9mIGd1aW50IGluIHN0cnVjdHVyZQoKMjAxMS0xMS0wMyAwODo0NzoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IHVzZSBzdGF0aWNhbGx5IGFsbG9jYXRlZCBHUXVldWUKCjIwMTEtMTEtMDMgMTc6NDk6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIGZpeCByZXF1ZXN0IHBhZAoJICBNYWtlIGFsbCByZXF1ZXN0IHBhZHMgdGFrZSBfJXUgaW4gdGhlIHRlbXBsYXRlLgoJICBGaXggdXAgdW5pdCB0ZXN0cy4KCjIwMTEtMTEtMDMgMTY6NDk6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSAgZGVmOiB1cGRhdGUgZGVmcwoKMjAxMS0xMS0wMyAxNjo0NjozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmg6CgkgIG5ldDogYWRkIG5ldCBhZGRyZXNzIG1ldGFkYXRhCgoyMDExLTExLTAzIDE0OjI2OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkgIG5ldHRpbWU6IGNsZWFuIHVwIGhlYWRlcgoKMjAxMS0xMS0wMyAxNDoxNDo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IGRvbid0IHVzZSBsb2NrL3VubG9ja19mdWxsCgoyMDExLTExLTAzIDExOjMwOjUyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RnaG9zdHBhZC5jCgoyMDExLTExLTAyIDEyOjM3OjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHNtYWxsIGNsZWFudXAKCjIwMTEtMTAtMjUgMTc6MjY6NTAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IERvbid0IGNhY2hlIGludGVybmFsIHByb3h5IHBhZCB0YXJnZXQKCSAgVGhlIGludGVybmFsIHByb3h5IHBhZCB0YXJnZXQgaXMgc2ltcGx5IGEgY2FjaGUgb2YgdGhlIGludGVybmFsIHByb3h5IHBhZAoJICBwZWVyLiBUaGlzIHBhdGNoIHVzZXMgdGhlIHdlbGwgaW1wbGVtZW50IEdzdFBhZCBwZWVyIGhhbmRsaW5nIHRvIG9idGFpbiB0aGUKCSAgdGFyZ2V0LiBUaGlzIGZpeGVzIGlzc3VlcyB3aXRoIHRhcmdldCBub3QgYmVpbmcgc2V0IGluIGJvdGggZGlyZWN0aW9uIHdoZW4KCSAgdHdvIGdob3N0cGFkcyBhcmUgbGlua2VkIHRvZ2V0aGVyIChlbXB0eSBiaW4pLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4NTE3CgoyMDExLTExLTAyIDEyOjA2OjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiByZW1vdmUgX2ZvdW5kX3RhZ3NfIEFQSQoJICByZW1vdmUgZ3N0X2VsZW1lbnRfZm91bmRfdGFncygpIGFuZCBnc3RfZWxlbWVudF9mb3VuZF90YWdzX2Zvcl9wYWQoKSwgdGhleSBhcmUKCSAgbm90aGluZyBtb3JlIHRoYW4gYSB3cmFwcGVyIGFyb3VuZCBnc3RfcGFkX3B1c2hfZXZlbnQoKQoKMjAxMS0xMS0wMiAxMDoyOTowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBjb21tb24KCSAgY29uZmlndXJlLmFjCgoyMDExLTEwLTMwIDIxOjMzOjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGltcHJvdmUgZG9jcwoKMjAxMS0xMC0yOSAwOTo0MzowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IG1ha2UgR3N0U2VnbWVudCBhcmd1bWVudCBjb25zdAoKMjAxMS0xMC0yOSAwOTo0MTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHJlbW92ZSBtZXRhdGltaW5nIGZyb20gZG9jcwoKMjAxMS0xMC0yOSAwOToyNjo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhc2s6IGFwaSBjbGVhbnVwCgkgIGdzdF90YXNrX2NyZWF0ZSgpIC0+IGdzdF90YXNrX25ldygpCgoyMDExLTEwLTI5IDA5OjAyOjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IGNsZWFudXAgQVBJCgkgIGdzdF9zdHJ1Y3R1cmVfZW1wdHlfbmV3KCkgLT4gZ3N0X3N0cnVjdHVyZV9uZXdfZW1wdHkoKQoJICBnc3Rfc3RydWN0dXJlX2lkX2VtcHR5X25ldygpIC0+IGdzdF9zdHJ1Y3R1cmVfbmV3X2lkX2VtcHR5KCkKCSAgZ3N0X3N0cnVjdHVyZV9pZF9uZXcoKSAtPiBnc3Rfc3RydWN0dXJlX25ld19pZCgpCgoyMDExLTEwLTI5IDA4OjM4OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogcmVtb3ZlIHRpbWluZyBtZXRhZGF0YQoJICBUaGlzIGlzIG5vdyBvbiBidWZmZXJzIGJ5IGRlZmF1bHQKCjIwMTEtMTAtMjkgMDg6MjQ6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJsaXN0OiBjbGVhbiB1cCBBUEkKCSAgZ3N0X2J1ZmZlcl9saXN0X2xlbigpIC0+IGdzdF9idWZmZXJfbGlzdF9sZW5ndGgoKQoJICBnc3RfYnVmZmVyX2xpc3Rfc2l6ZWRfbmV3KCkgLT4gZ3N0X2J1ZmZlcl9saXN0X25ld19zaXplZCgpCgoyMDExLTExLTAxIDE0OjE3OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBzaW1wbGlmeSBnc3RfYWRhcHRlcl90YWtlX2xpc3QoKQoJICBVc2UgYSBzdGFjay1hbGxvY2F0ZWQgR1F1ZXVlIHRvIGFzc2VtYmxlIG91ciBHTGlzdC4KCjIwMTEtMTEtMDEgMTA6NTY6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogbWVudGlvbiBHc3RBY3RpdmF0ZU1vZGUgcmVuYW1lIGluIHBvcnRpbmcgZG9jCgoyMDExLTExLTAxIDAwOjI1OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogcmVuYW1lIEdzdEFjdGl2YXRlTW9kZSB0byBHc3RQYWRBY3RpdmF0ZU1vZGUKCSAgVGhlc2UgbWlnaHQgYmUgdXNlZnVsOgoJICBzZWQgLWkgLWUgJ3MvR3N0QWN0aXZhdGVNb2RlL0dzdFBhZEFjdGl2YXRlTW9kZS9nJyBgZ2l0IGdyZXAgR3N0QWN0aXZhdGVNb2RlIHwgc2VkIC1lICdzLzouKi8vJyB8IHNvcnQgLXVgCgkgIHNlZCAtaSAtZSAncy9HU1RfQUNUSVZBVEVfL0dTVF9QQURfQUNUSVZBVEVfL2cnICAgIGBnaXQgZ3JlcCBHU1RfQUNUSVZBVEVfICAgfCBzZWQgLWUgJ3MvOi4qLy8nIHwgc29ydCAtdWAKCjIwMTEtMTEtMDEgMDA6MTM6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9iZXMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogcmVuYW1lIEdzdFByb2JlVHlwZSBhbmQgR3N0UHJvYmVSZXR1cm4gdG8gR3N0UGFkUHJvYmV7VHlwZSxSZXR1cm59CgkgIEJldHRlciBub3cgdGhhbiBsYXRlciBpbiB0aGUgY3ljbGUuIFRoZXNlIG1pZ2h0IGNvbWUgaW4gaGFuZHk6CgkgIHNlZCAtaSAtZSAncy9Hc3RQcm9iZVJldHVybi9Hc3RQYWRQcm9iZVJldHVybi9nJyAgIGBnaXQgZ3JlcCBHc3RQcm9iZVJldHVybiAgfCBzZWQgLWUgJ3MvOi4qLy8nIHwgc29ydCAtdWAKCSAgc2VkIC1pIC1lICdzL0dTVF9QUk9CRV8vR1NUX1BBRF9QUk9CRV8vZycgICAgICAgICAgYGdpdCBncmVwIEdTVF9QUk9CRV8gICAgICB8IHNlZCAtZSAncy86LiovLycgfCBzb3J0IC11YAoJICBzZWQgLWkgLWUgJ3MvR3N0UHJvYmVUeXBlL0dzdFBhZFByb2JlVHlwZS9nJyAgICAgICBgZ2l0IGdyZXAgR3N0UHJvYmVUeXBlICAgIHwgc2VkIC1lICdzLzouKi8vJyB8IHNvcnQgLXVgCgoyMDExLTEwLTMxIDIzOjMyOjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0YWdsaXN0OiByZW1vdmUgZ3N0X3RhZ19saXN0X2dldF8qbG9uZyooKQoJICBObyBvbmUgdXNlcyB0aGlzIG9yIHNob3VsZCBldmVyIG5lZWQgdG8gdXNlIGl0LCBzaW5jZQoJICB0aGUgc2l6ZSBpcyBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgYW55d2F5LiBJZiBub3JtYWwKCSAgaW50ZWdlcnMgZG9uJ3QgZG8sIG9uZSBzaG91bGQgdXNlIDY0LWJpdCBpbnRlZ2Vycy4KCjIwMTEtMTAtMzEgMTk6MDQ6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFVwZGF0ZSAuZGVmIGZpbGUgZm9yIHJlbW92ZWQvY2hhbmdlZCBBUEkKCjIwMTEtMTAtMzEgMTk6MjM6NDEgKzAxMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IGNyYXNoL3dhcm5pbmcgaW4gZmluZF90cmFuc2Zvcm0gd2hlbiBwYWQgaXMgdW5saW5rZWQKCSAgTG9va3MgbGlrZSB0aGUgcmV2ZXJ0IGNvbmZsaWN0IGluIGNvbW1pdCBhNDQyNzEgd2FzIHJlc29sdmVkIGluY29ycmVjdGx5LgoKMjAxMS0xMC0zMSAxNzo0NTo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBtYWtlIEdMSUJfRVhUUkFfQ0ZMQUdTIG92ZXJ3cml0YWJsZQoJICBNYWtlICdtYWtlIEdMSUJfRVhUUkFfQ0ZMQUdTPS4uLicgd29yay4KCjIwMTEtMTAtMzEgMTQ6MTY6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0ZmlsdGVyLmM6CgkqIGdzdC9nc3RmaWx0ZXIuaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIGZpbHRlcjogcmVtb3ZlIGdzdF9maWx0ZXJfcnVuKCkgYW5kIGRlcHJlY2F0ZWQgZmlsdGVyIGZ1bmMKCSAgSWYgc29tZW9uZSB3YW50cyB0byByZXN1cnJlY3QgdGhpcywgcGxlYXNlIHVzZSBhIGxlc3MKCSAgZ2VuZXJpYyBuYW1lIHNwYWNlIGZvciBpdC4KCjIwMTEtMTAtMzEgMTQ6MDM6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYwoKMjAxMS0xMC0zMCAxMDoyNjoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdzZXR0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRhZ2xpc3Q6IHJlbmFtZSBfbmV3KCkgdG8gX25ld19lbXB0eSgpIGFuZCBuZXdfZnVsbCooKSB0byBuZXcqKCkKCjIwMTEtMTAtMzAgMjE6NTQ6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGZpbHRlci5jOgoJKiBnc3QvZ3N0ZmlsdGVyLmg6CgkgIGZpbHRlcjogZGVwcmVjYXRlIGdzdF9maWx0ZXJfcnVuKCkKCSAgSXQncyBub3QgcmVhbGx5IHVzZWQgb3V0c2lkZSBvZiBjb3JlIGF0IGFsbCwgYW5kIGhhcwoJICBzZXJpb3VzIG5hbWVzcGFjZSBpc3N1ZXMuIElmIGFueW9uZSBmZWVscyB0aGUgbmVlZCB0bwoJICByZXZpdmUgdGhpcyBvbmUsIHBsZWFzZSB1c2UgYSBsZXNzIGdlbmVyaWMgbmFtZSBzcGFjZS4KCSAgQVBJOiBkZXByZWNhdGUgZ3N0X2ZpbHRlcl9ydW4oKQoJICBBUEk6IGRlcHJlY2F0ZSBHc3RGaWx0ZXJGdW5jCgoyMDExLTEwLTMwIDIxOjM5OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogZG9uJ3QgdXNlIHNvb24tdG8tYmUtZGVwcmVjYXRlZCBnc3RfZmlsdGVyX3J1bigpCgkgIExpbmVzLW9mLWNvZGUgc2F2aW5ncyBhcmUgbmVnbGlnaWJsZSBhbnl3YXkuCgoyMDExLTEwLTMwIDIxOjIxOjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICBwbHVnaW5mZWF0dXJlOiBkZXByZWNhdGUgZ3N0X3BsdWdpbl9mZWF0dXJlX3R5cGVfbmFtZV9maWx0ZXIoKQoJICBJdCdzIG9ubHkgdXNlZCBpbnRlcm5hbGx5IGFueXdheSBhbmQgdGhlIGhlbHBlciBzdHJ1Y3QKCSAgaGFzIG5hbWVzcGFjZSBpc3N1ZXMuCgkgIEFQSTogZGVwcmVjYXRlZCBnc3RfcGx1Z2luX2ZlYXR1cmVfdHlwZV9uYW1lX2ZpbHRlcigpCgkgIEFQSTogZGVwcmVjYXRlZCBHc3RUeXBlTmFtZURhdGEKCjIwMTEtMTAtMzAgMTA6MDU6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogbWFrZSBvcGFxdWUKCSAgSGlkZSB0aGUgZmFjdCB0aGF0IGl0J3MganVzdCBhIEdzdFN0cnVjdHVyZSBmcm9tIHRoZSBBUEkuIFdlCgkgIG1heSB3YW50IHRvIGNoYW5nZSB0aGlzIGluIGZ1dHVyZSAoZS5nLiB0byBhZGQgcmVmY291bnRpbmcpLgoJICBBbHNvLCBpdCBjYXVzZWQgcHJvYmxlbXMgZm9yIGJpbmRpbmdzICh0aG91Z2ggdGhhdCdzIG1vc3RseQoJICB0aGUgd2F5IHdlIHR5cGVkZWZlZCBpdCB0byBHc3RTdHJ1Y3R1cmUpLgoKMjAxMS0xMC0zMCAxMDowMDoyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTAtMzAgMDk6NTg6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFnbGlzdDogYWRkIHRvX3N0cmluZyBhbmQgbmV3X2Zyb21fc3RyaW5nIGZ1bmN0aW9ucwoJICBXZSB3YW50IHRvIG1ha2UgR3N0VGFnTGlzdCBvcGFxdWUgYW5kIG5vdCBoYXZlIHBlb3BsZSB1c2UKCSAgR3N0U3RydWN0dXJlIEFQSSBvbiBpdC4KCSAgQVBJOiBnc3RfdGFnX2xpc3RfdG9fc3RyaW5nKCkKCSAgQVBJOiBnc3RfdGFnX2xpc3RfbmV3X2Zyb21fc3RyaW5nKCkKCjIwMTEtMTAtMzAgMDk6MzE6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgoyMDExLTEwLTMwIDAxOjQ2OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGF2b2lkIHBvaW50bGVzcyB0YWcgbmFtZSAtPiBxdWFyayBsb29rdXBzCgkgIFdlIG5ldmVyIGdldCBhIHRhZyBuYW1lIHF1YXJrIGZyb20gYSBjYWxsZXIsIGl0J3MgYWx3YXlzIGEKCSAgc3RyaW5nLCBmcm9tIHdoaWNoIHdlJ2xsIHRyeSB0byBsb29rIHVwIG91ciB0YWcgaW5mbyBpbiB0aGUKCSAgaGFzaCB0YWJsZSwgc28gY2hhbmdlIHRoZSBoYXNoIHRhYmxlIGtleSBmcm9tIHF1YXJrIHRvIHN0cmluZy4KCSAgQXZvaWRzIGEgYnVuY2ggb2YgcG9pbnRsZXNzIHN0cmluZyA9PiBxdWFyayBsb29rdXAgaW4gdGhlCgkgIGdsb2JhbCBxdWFyayB0YWJsZS4gV2UgbmVlZCB0byBkbyBhbiBleHRyYSBzdHJpbmcgPT4gcXVhcmsKCSAgY29udmVyc2lvbiBub3cgd2hlbiB3ZSBjb3B5IGEgdGFnbGlzdCwgYnV0IGluIHRoYXQgY2FzZSB3ZSdyZQoJICBpbiBhIHNsb3cgcGF0aCBhbnl3YXkuCgoyMDExLTEwLTMwIDAwOjQ0OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhZ2xpc3Q6IGFkZCBnc3RfdGFnX2xpc3RfaXNfZXF1YWwoKQoJICBBUEk6IGdzdF90YWdfbGlzdF9pc19lcXVhbCgpCgoyMDExLTEwLTI5IDIzOjUyOjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBpZGVudGljYWwgc3RydWN0dXJlcyBhcmUgZGVmaW5pdGVseSBlcXVhbAoKMjAxMS0xMC0yOSAyMDowNjo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBmaXggc3RyaW5nIGZvciBHU1RfVEFHX0FSVElTVF9TT1JUTkFNRQoJICBGb3IgaGlzdG9yaWNhbCByZWFzb25zIGl0IHdhcyBtYXBwZWQgdG8gYSBtdXNpY2JyYWlueiBwcmVmaXgsCgkgIGJ1dCBpdCdzIG5vdCByZWFsbHkgbXVzaWNicmFpbnotc3BlY2lmaWMgYXQgYWxsLgoKMjAxMS0xMC0yOSAxOTo1OTowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGVsZW1lbnRmYWN0b3J5OiBtb3ZlIHByaXZhdGUgZnVuY3Rpb25zIGZvciByZWdpc3RyeSB0byBwcml2YXRlIGhlYWRlcgoKMjAxMS0xMC0yOCAyMTo0MDo0NyArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggaW52YWxpZCBhY2Nlc3MgdG8gdW5yZWZmZWQgYWxsb2NhdGlvbiBxdWVyeQoKMjAxMS0xMC0yOCAxNjo0NToyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBmaXggZG9jcyBzb21lIG1vcmUKCjIwMTEtMTAtMjggMTY6Mjc6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCjIwMTEtMTAtMjggMTY6MDg6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICB0ZXN0czogZml4IHNlZ21lbnQgY2hlY2sKCjIwMTEtMTAtMjggMTU6NTI6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBzZWdtZW50OiByZW1vdmUgR1NUX1NFRUtfVFlQRV9DVVIKCjIwMTEtMTAtMjggMTU6NTI6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogaW1wcm92ZSBkb2NzCgoyMDExLTEwLTI4IDEzOjAyOjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRld3JpdGVyOiBBZGQgcGFkZGluZwoKMjAxMS0xMC0yOCAxMzowMjoxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+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+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IFVzZSBwaXBlbGluZSBjYXRlZ29yeSBmb3Igb25lIG1vcmUgbG9nIG1lc3NhZ2UKCSAgTWFrZXMgZGVidWdnaW5nIGVhc2llci4KCjIwMTEtMTAtMDcgMTY6MzY6MTAgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgR1NUX1BUUl9GT1JNQVQ6IEFkZCBHc3RCdWZmZXIgcHRyIGZvcm1hdCBhbmQgdXNlIGluIEdTVF9TQ0hFRFVMSU5HCgkgIEdzdEJ1ZmZlciBwb2ludGVycyBjYW4gbm93IGJlIHByaW50ZWQgdXNpbmcgR1NUX1BUUl9GT1JNQVQuIFRoaXMgaXMgdXNlZAoJICBpbiB0aGUgdmVyeSB1c2VmdWwgR1NUX1NDSEVEVUxJTkcgZGVidWcgbG9ncyBpbiBnc3RwYWQuYyBhbmQgYWxsb3dzIGZvcgoJICBlYXNpZXIgYW5kIG1vcmUgaW5mb3JtYXRpb24gdHJhY2tpbmcgb2YgYnVmZmVyIHByb2dyZXNzIHRocm91Z2ggYQoJICBwaXBlbGluZSB3aXRoIGp1c3QgZGVidWcgbG9nZ2luZy4KCjIwMTEtMTAtMDcgMTM6NTU6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJICB0ZXN0czogZml4IGNvbXBpbGVyIHdhcm5pbmdzIGluIHNpbmtzIHRlc3QKCjIwMTEtMTAtMDcgMTM6NTQ6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bGlic2NwcC5jYzoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZTogbWFrZSBHc3REYXRhUXVldWUgcHJpdmF0ZSBBUEkgZm9yIG11bHRpcXVldWUKCSAgVGhlcmUncyBubyBjb2RlIHRoYXQgdXNlcyBpdCBvdGhlciB0aGFuIG11bHRpcXVldWUsIHNvIG1ha2UgaXQgcHJpdmF0ZQoJICB0byBtdWx0aXF1ZXVlIGZvciBub3cuIFRoYXQgd2F5IHdlIGNhbiBhbHNvIGRvIG9wdGltaXNhdGlvbnMgdGhhdAoJICByZXF1aXJlIEFQSS9BQkkgYnJlYWtzLiBJZiBhbnlvbmUgZXZlciB3YW50cyB0byB1c2UgaXQsIHdlIGNhbiBzdGlsbAoJICBtYWtlIGl0IHB1YmxpYyBhZ2Fpbi4KCjIwMTEtMTAtMDYgMTc6Mjc6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTEwLTA2IDE3OjI2OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBsaXN0CgoyMDExLTEwLTA2IDE0OjM0OjA5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogc2VuZCBkdXJhdGlvbiBtZXNzYWdlIHdoZW4gdXBkYXRpbmcgaW50ZXJuYWwgZHVyYXRpb24KCjIwMTEtMTAtMDYgMTQ6MDQ6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIGxpc3QKCjIwMTEtMTAtMDYgMTA6NTk6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgdXBkYXRlIHBvcnRpbmcgbGlzdAoKMjAxMS0xMC0wNSAyMDowNjo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgbGlzdAoKMjAxMS0xMC0wNSAxMzo0Mzo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgcG9ydGluZyBzdGF0dXMKCjIwMTEtMTAtMDUgMTE6MjA6MzcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgZ3N0YnVmZmVycG9vbDogVXNlIGdsaWIgY29tcGF0IG1hY3JvcyBmb3IgYXRvbWljIHBvaW50ZXJzCgoyMDExLTEwLTA0IDE4OjU1OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHVwZGF0ZSBwb3J0aW5nIGxpc3QKCjIwMTEtMTAtMDQgMTg6NTU6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogaW1wcm92ZSBkb2NzCgoyMDExLTEwLTA0IDE3OjM5OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMC0wNCAxNzozNjoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICB1cGRhdGUgcG9ydGluZyBsaXN0CgoyMDExLTEwLTA0IDE1OjU1OjA1ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBnc3RldmVudDogc3BlY2lmeSAodHJhbnNmZXIpIGZvciBnc3RfZXZlbnRfbmV3X3NlZ21lbnQKCjIwMTEtMTAtMDQgMTM6MTY6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgYWRkIHBvcnRpbmcgbGlzdAoKMjAxMS0wOS0yNiAxNDozNjo0NiArMDQwMCAgU3RhcyBTZXJnZWV2IDxzdHNwQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUmV0dXJuIHN1Y2Nlc3MgaWYgb3B0aW9uYWwgc3RhcnQvc3RvcCBtZXRob2QgaXMgbm90IHByb3ZpZGVkCgkgIFRoaXMgYWxsb3dzIHRvIG5vdCBpbXBsZW1lbnQgdGhlIG9wdGlvbmFsIHN0YXJ0L3N0b3AgbWV0aG9kcy4KCjIwMTEtMTAtMDMgMTA6MDY6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYwoKMjAxMS0xMC0wMyAwOToyOToxMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZ3N0cXVlcnk6IE1ha2UgZGVidWdnaW5nIG1lc3NhZ2UgbW9yZSBpbmZvcm1hdGl2ZQoJICBGb3IgYWxsIHRoZSBuZXdjb21lcnMgb3V0IHRoZXJlIHdobyBzdGlsbCBkb24ndCBrbm93IHRoZSB2YWx1ZXMgb2YKCSAgR3N0UXVlcnlUeXBlIGVudW0gYnkgaGVhcnQuLi4KCSAgLi4uIGFuZCBvbGQtdGltZXJzIHdobyd2ZSBnb3QgYmV0dGVyIHRoaW5ncyB0byBkbyA6KQoKMjAxMS0wOS0zMCAxNToyNToyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1ha2UgZXN0aW1hdGluZyB0aGUgcG9zaXRpb24gaW4gcXVlcnkgaGFuZGxlciBhY3R1YWxseSB3b3JrCgkgIE5vIHBvaW50IGVzdGltYXRpbmcgaWYgd2UgZG9uJ3Qgc2V0IHRoZSByZXN1bHQgYWZ0ZXJ3YXJkcy4KCjIwMTEtMDktMjYgMTM6MTQ6NDIgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhbnN3ZXIgcG9zaXRpb24gcXVlcnkgaW4gc3RyZWFtIHRpbWUgYW5kIHRyeSB1cHN0cmVhbSBmaXJzdAoJICBMZXQgdGhlIGRlbXV4ZXIgaGF2ZSBmaXJzdCBzYXkgYXMgd2VsbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1OTQ4NQoKMjAxMS0wOS0zMCAxNDo1MjowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Lmg6CgkgIGdzdC5oOiBpbmNsdWRlIGhlYWRlciBmb3IgYXRvbWljIHF1ZXVlCgoyMDExLTA5LTMwIDE0OjUwOjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkgIHRlc3RzOiBhZGQgbWluaW1hbCB0ZXN0IGZvciBHc3RBdG9taWNRdWV1ZQoJICBKdXN0IG5ldyArIGZyZWUuCgoyMDExLTA5LTI5IDE4OjA2OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgdXBkYXRlIHJlbGVhc2Ugbm90ZXMKCSAgQ2hhbmdlIHRoZSBtYWlsIGFkZHJlc3NlcyB0byB0aGUgZnJlZWRlc2t0b3Agb25lcwoKMjAxMS0wOS0yOSAxNzowNDo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBiYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjExLjEgPT09CgoyMDExLTA5LTI5IDE2OjUwOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUkVMRUFTRSAwLjExLjEKCjIwMTEtMDktMjggMTg6NDY6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogZml4IG1lbW9yeSBhbGlnbm1lbnQKCSAgRml4IGNvbXBpbGF0aW9uIHdoZW4gUE9TSVhfTUVNQUxJR04gaXMgbm90IHNldC4KCSAgRGVidWcgdGhlIGNvbmZpZ3VyZWQgYWxpZ25tZW50LgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYwMzAwCgoyMDExLTA5LTI4IDE4OjQ0OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGltcHJvdmUgZGVidWcKCjIwMTEtMDktMjggMTE6Mjg6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgdHJhbnNmb3JtOiBmaXggYWZ0ZXIgbWVyZ2UKCjIwMTEtMDktMjggMTE6MjQ6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA5LTI4IDExOjE2OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgZG9jczogZml4IHNvbWUgbW9yZSBkb2NzCgoyMDExLTA5LTI2IDE5OjUyOjEzICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBzZW5kIGRlbGF5ZWQgZXZlbnRzIGVhcmxpZXIKCSAgU29tZSBlbGVtZW50cyAoc3VjaCBhcyB2aWRlb3JhdGUpIG1pZ2h0IHB1c2ggYnVmZmVycyBlYXJseSwKCSAgZm9yIGluc3RhbmNlIGluIGluIHRyYW5zZm9ybV9pcC4gV2Ugd2FudCBldmVudHMgKGFuZCBpbiBwYXJ0aWN1bGFyCgkgIGFueSBORVdTRUdNRU5UIGV2ZW50KSB0byBiZSBwdXNoZWQgYmVmb3JlIHRoYXQuCgkgIFRoaXMgZml4ZXMgdHJhbnNtYWdlZGRvbiB3ZWRnaW5nIG9uIGNvbnZlcnRpbmcgYSBmaWxlIHN0YXJ0aW5nCgkgIHdpdGggYSBub24gemVybyBvZmZzZXQgdG8gT2dnLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYwMTY1CgoyMDExLTA5LTI2IDIwOjQ3OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJICBkb2NzOiBmaXggZG9jcwoKMjAxMS0wOS0yNiAxOToyNToyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDktMjYgMTk6MjQ6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBzZWdtZW50OiBpbXByb3ZlIEFQSSBkb2NzIGEgbGl0dGxlCgoyMDExLTA5LTI2IDAwOjMwOjQ3ICswMzAwICBSYWltbyBKw6RydmkgPHJhaW1vLmphcnZpQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGdzdDogRml4IGNvbXBpbGVyIHdhcm5pbmdzIG9uIDY0IGJpdCBtaW5ndy13NjQKCSAgRml4ZXMgYnVnICM2NjAwODMuCgoyMDExLTA5LTI1IDE2OjEwOjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOgoJICBleGFtcGxlczogZml4IGJvZ3VzIGdfb2JqZWN0X3VucmVmIGluIGhlbGxvd29ybGQgZXhhbXBsZQoJICBHTWFpbkxvb3AgaXMgbm90IGEgR09iamVjdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTQyNDE0MwoKMjAxMS0wOS0yMyAxMzowOToyNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0Y2Fwcy5jCgkgIGdzdC9nc3RwYWQuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgoyMDExLTA5LTIxIDEzOjQzOjQ4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBVcGRhdGUgY29tbW9uIHRvIDAuMTEgYnJhbmNoCgoyMDExLTA5LTIwIDEzOjA0OjA2ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBkZWxheSBzZXJpYWxpemVkIGV2ZW50cyB3aGVuIHNyYyBjYXBzIGFyZSBub3Qgc2V0IHlldAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU5NTcxCgoyMDExLTA5LTEzIDE3OjA0OjMxICswNDAwICBTdGFzIFNlcmdlZXYgPHN0c3BAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFNldCBjYXBzIG9uIHBhZCBiZWZvcmUgY2hlY2tpbmcgaWYgdGhlIHBhZCBpcyBsaW5rZWQKCSAgVGhpcyBhbGxvd3MgdGhlIHNldGNhcHMgaGFuZGxlciBhbmQgbm90aWZ5OjpjYXBzIHRvIGxpbmsKCSAgdGhlIHBhZCBkb3duc3RyZWFtIGFuZCBkb2Vzbid0IHJlcXVpcmUgaGFja3MgdG8gYWx3YXlzCgkgIHByb3ZpZGUgYSBwZWVyIHRvIHRoZSBwYWQsIGxpa2UgaW4gZGVjb2RlYmluMi4KCjIwMTEtMDktMTUgMTE6NDk6NDMgLTA3MDAgIEZhYnJpemlvIChNaXN0bykgTWlsbyA8bWlzdG9iYWFuQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHVzZSBnX3ZhbHVlX3Rha2Vfc3RyaW5nKCkgYW5kIGdzdF92YWx1ZV9nZXRfY2FwcygpIGluc3RlYWQgb2YgYWNjZXNzaW5nIGludGVybmFsIGZpZWxkcwoKMjAxMS0wOS0xNiAxMzozODo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIG1vcmUgZGVidWcgbG9nZ2luZyBmb3Igb3RoZXIgY2hhaW4gZnVuY3Rpb24gY29kZSBwYXRoIGFzIHdlbGwKCjIwMTEtMDktMTYgMTM6MTM6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCB1cCBwcmludGYgZm9ybWF0IGluIGRlYnVnIG1lc3NhZ2UKCSAgV2hpY2ggSSBtZXNzZWQgdXAuCgoyMDExLTA5LTE1IDEzOjIwOjE1ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBtYWtlIHNvbWUgZGVidWcgdHJhY2VzIG1vcmUgdXNlZnVsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTkxMzkKCjIwMTEtMDktMTQgMjI6NTQ6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9nc3RjdnN0ZXN0LnNoOgoJICBzY3JpcHRzOiByZW1vdmUgZ3N0Y3ZzdGVzdC5zaAoKMjAxMS0wOS0xMyAyMzowNDowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgbGZvY29udHJvbHNvdXJjZTogZml4IGNsYW5nIGNvbXBpbGVyIHdhcm5pbmcKCSAgQ2FzdCBlbnVtIHRvIGludCBiZWZvcmUgY2hlY2tpbmcgZm9yIG5lZ2F0aXZlIHZhbHVlcywgd2hpY2ggYXJlCgkgIGltcG9zc2libGUgYWNjb3JkaW5nIHRvIHRoZSBlbnVtIGxpc3QuCgkgIGdzdGxmb2NvbnRyb2xzb3VyY2UuYzo2NTI6NDU6IGVycm9yOiBjb21wYXJpc29uIG9mIHVuc2lnbmVkIGVudW0gZXhwcmVzc2lvbiA8IDAKCSAgaXMgYWx3YXlzIGZhbHNlIFstV2Vycm9yLC1XdGF1dG9sb2dpY2FsLWNvbXBhcmVdCgkgIGlmICh3YXZlZm9ybSA+PSBudW1fd2F2ZWZvcm1zIHx8IHdhdmVmb3JtIDwgMCkgewoJICB+fn5+fn5+fiBeIH4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1MzEzNwoKMjAxMS0wOS0xMyAyMTo1ODoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIHRlc3RzOiBtYWtlIHN1cmUgZmlsZXNyYyByZXR1cm5zIGVzY2FwZWQgVVJJcyBldmVuIGlmIHRoZSBpbnB1dCB3YXMgdW5lc2NhcGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTQ2NzMKCjIwMTEtMDktMTAgMTg6MTU6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogbW92ZSBsb2cgbWVzc2FnZXMgZm9yIGNhcHMgY3JlYXRpb24vZnJlZWluZyBpbnRvIFRSQUNFIGNhdGVnb3J5CgkgIFJlZHVjZSBTUEFNIGZvciBHU1RfQ0FQUzo1LgoKMjAxMS0wOS0wOSAxMjo1NjoyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogT25seSBkbyB0aGUgc3Vic2V0IGNoZWNrIGluIGdzdF9wYWRfYWNjZXB0X2NhcHMoKSBpZiB0aGUgcGFkIGNsYWltcyB0byBhY2NlcHQgdGhlIGNhcHMKCjIwMTEtMDktMDcgMTc6MjE6NTUgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGJhc2VzaW5rOiBtYWtlIGl0IGVhc3kgdG8gb3ZlcnJpZGUgdGhlIHBhZCBxdWVyeQoJICBBZGQgYSB2bWV0aG9kIHRvIGhhbmRsZSB0aGUgcGFkIHF1ZXJ5LgoJICBJbnN0YWxsIGEgZGVmYXVsdCBoYW5kbGVyIGZvciB0aGUgcGFkIHF1ZXJ5LgoJICBVc2UgdGhlIG5ldyBxdWVyeSBmdW5jdGlvbiBpbiBmaWxlc2luawoKMjAxMS0wOS0wOCAxNDozOTozMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgUmV2ZXJ0ICJSZXZlcnQgImJhc2V0cmFuc2Zvcm06IFVzZSBjaGVjayBmb3Igc3Vic2V0cyBhbmQgbm90IG5vbi1lbXB0eSBpbnRlcnNlY3Rpb24gdG8gY2hlY2sgaWYgY2FwcyBhcmUgY29tcGF0aWJsZSIiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMGJjNmQ0OWM5NTAyMTBiZjQyMjYxNWZiOGRjOThjNWFkY2Q1ZTQ1Ni4KCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoKMjAxMS0wOS0wOCAxNDozMTo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAiUmV2ZXJ0ICJwYWQ6IENoZWNrIGZvciBzdWJzZXRzLCBub3Qgbm9uLWVtcHR5IGludGVyc2VjdGlvbnMgdG8gY2hlY2sgaWYgY2FwcyBhcmUgY29tcGF0aWJsZSIiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMmJmYWRhNTU4MWUzNWEyZDM3MTg4ZjQ4YTJjNzQ0MjY0NGYxMGJiMy4KCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0cGFkLmMKCSAgRm9yIDAuMTEgd2Ugd2FudCB0byBlbmZvcmNlIHRoYXQgb25seSBzdWJzZXRzIG9mIHRoZSBwYWQKCSAgY2FwcyBhcmUgYWxsb3dlZC4gVGhpcyBicmVha3MgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IKCSAgc29tZSBlbGVtZW50cywgd2hpY2ggaXMgd2h5IHdlIG9ubHkgcHJpbnQgYSB3YXJuaW5nIGluCgkgIDAuMTAuCgoyMDExLTA5LTA4IDE0OjMwOjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0cGFkLmMKCjIwMTEtMDktMDggMTQ6Mjk6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogVXNlIGdzdF9wYWRfYWNjZXB0X2NhcHMoKSBpbnN0ZWFkIG9mIG1hbnVhbGx5IGNoZWNraW5nIHdoZW4gY29uZmlndXJpbmcgYSBzaW5rcGFkIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGQzY2FkMjhkYTkzNmIwMzdkODc3ZGM3MGMwMjI4NmI4MWI2ODAyODQuCgkgIEl0IGNhdXNlcyBwZXJmb3JtYW5jZSBwcm9ibGVtcyBiZWNhdXNlIGFjY2VwdGNhcHMoKSBwcm9wYWdhdGVzIGRvd25zdHJlYW0uCgoyMDExLTA5LTA4IDE0OjIzOjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dAoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0CgkgIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0CgkgIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVybGlzdC50eHQKCSAgZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dAoJICBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dAoJICBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQKCSAgZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQKCSAgZ3N0L2dzdGNhcHMuYwoJICBnc3QvZ3N0ZXZlbnQuaAoJICBnc3QvZ3N0Z2hvc3RwYWQuYwoJICBnc3QvZ3N0aW50ZXJmYWNlLmMKCSAgZ3N0L2dzdHBhZC5jCgkgIGdzdC9nc3RwYWQuaAoJICBnc3QvZ3N0dXRpbHMuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmMKCSAgdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jCgkgIHRvb2xzL2dzdC1sYXVuY2guMS5pbgoKMjAxMS0wOS0wOCAxMzo0MToxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogVXNlIGdzdF9wYWRfYWNjZXB0X2NhcHMoKSBpbnN0ZWFkIG9mIG1hbnVhbGx5IGNoZWNraW5nIHdoZW4gY29uZmlndXJpbmcgYSBzaW5rcGFkCgoyMDExLTA5LTA4IDEzOjQwOjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBQcmludCBhIGdfd2FybmluZygpIGlmIHBhZCBhY2NlcHQgY2FwcyB0aGF0IGFyZSBub3QgYSBzdWJzZXQgb2YgaXRzIGNhcHMKCSAgSW4gMC4xMSBvbmx5IHN1YnNldHMgYXJlIHN1cHBvcnRlZCBhZ2FpbiBhcyBkb2N1bWVudGVkIGluc3RlYWQgb2YgYWxzbwoJICBhbGxvd2luZyBub24tZW1wdHkgaW50ZXJzZWN0aW9ucy4KCjIwMTEtMDktMDggMTM6MjY6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIFJldmVydCAiYmFzZXRyYW5zZm9ybTogVXNlIGNoZWNrIGZvciBzdWJzZXRzIGFuZCBub3Qgbm9uLWVtcHR5IGludGVyc2VjdGlvbiB0byBjaGVjayBpZiBjYXBzIGFyZSBjb21wYXRpYmxlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDVlNWNjNWU4OWU3ZTI4NThhNjM1MmZhNGM4MWEzNzRmNmU1YTYyOTcuCgkgIFNlZSBidWcgIzY1ODU0MS4KCjIwMTEtMDktMDggMTM6MjY6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogQ2hlY2sgZm9yIHN1YnNldHMsIG5vdCBub24tZW1wdHkgaW50ZXJzZWN0aW9ucyB0byBjaGVjayBpZiBjYXBzIGFyZSBjb21wYXRpYmxlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDBjNWQ1MDIwNzMyNmQ3NGE0ODA1YmNkODk4YmZhYzg4NzU0MGYxMmIuCgkgIFNlZSBidWcgIzY1ODU0MS4KCjIwMTEtMDktMDcgMTM6MTQ6MzggKzAyMDAgIFBpb3RyIEZ1c2lrIDxmb3hAc2NlbmUucGw+CgoJKiBSRUFETUU6CgkqIGRvY3MvUkVBRE1FOgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1hY3RpdmF0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJsaXN0LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZnJhbWVzdGVwLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RlbGVtZW50LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbGF0ZW5jeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW0tc3RhdHVzLnR4dDoKCSogZG9jcy9mYXEvTWFrZWZpbGUuYW06CgkqIGRvY3MvZmFxL2RlcGVuZGVuY2llcy54bWw6CgkqIGRvY3MvZmFxL2dlbmVyYWwueG1sOgoJKiBkb2NzL21hbnVhbC9NYWtlZmlsZS5hbToKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtY2xvY2tzLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1pbml0LnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJKiBkb2NzL21hbnVhbC9kaWFncmFtcy1nZW5lcmFsLnN2ZzoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJKiBkb2NzL21hbnVhbC9pbnRyby1nc3RyZWFtZXIueG1sOgoJKiBkb2NzL3B3Zy9NYWtlZmlsZS5hbToKCSogZG9jcy9wd2cvYWR2YW5jZWQtdGFnZ2luZy54bWw6CgkqIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6CgkqIGRvY3MvcHdnL2ludHJvLXByZWZhY2UueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1iYXNlLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItc291cmNlLnhtbDoKCSogZG9jcy9yYW5kb20vYXV0b3BsdWcyOgoJKiBkb2NzL3JhbmRvbS9iYmIvb3B0aW9uYWwtcHJvcGVydGllczoKCSogZG9jcy9yYW5kb20vYmJiL3N0cmVhbXNlbGVjdGlvbjoKCSogZG9jcy9yYW5kb20vY2FwczoKCSogZG9jcy9yYW5kb20vY29tcGFueS9ndmFkZWMudHh0OgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2RyYWZ0LWJ1ZmZlcnBvb2xzLnR4dDoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9lbWJlZGRlZC50eHQ6CgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvbWVkaWEtZGV2aWNlLWRhZW1vbi50eHQ6CgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcGx1Z2luZG9jcy50eHQ6CgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDoKCSogZG9jcy9yYW5kb20vZW9zOgoJKiBkb2NzL3JhbmRvbS9oaWVyYXJjaHk6CgkqIGRvY3MvcmFuZG9tL2kxOG46CgkqIGRvY3MvcmFuZG9tL2ludGVyZmFjZXM6CgkqIGRvY3MvcmFuZG9tL25lZ290aWF0aW9uOgoJKiBkb2NzL3JhbmRvbS9vbWVnYS9zY2hlZC9jaGFpbnM6CgkqIGRvY3MvcmFuZG9tL29tZWdhL3Rlc3RpbmcvZnJhbWV3b3JrOgoJKiBkb2NzL3JhbmRvbS9wbHVnaW5zOgoJKiBkb2NzL3JhbmRvbS9ydHA6CgkqIGRvY3MvcmFuZG9tL3Nsb21vL2NvbnRyb2xsZXIudHh0OgoJKiBkb2NzL3JhbmRvbS9zb3VyY2VzOgoJKiBkb2NzL3JhbmRvbS9zdHJlYW1oZWFkZXI6CgkqIGRvY3MvcmFuZG9tL3Rlc3Rpbmcvc3ludGF4OgoJKiBkb2NzL3JhbmRvbS90eXBlczI6CgkqIGRvY3MvcmFuZG9tL3VyYWV1cy9nc3RyZWFtZXJfYW5kX21pZGkudHh0OgoJKiBkb2NzL3JhbmRvbS92aXMtdHJhbnNmb3JtOgoJKiBkb2NzL3JhbmRvbS93dGF5L2NhcHMtbmVnb2NpYXRpb246CgkqIGRvY3MvcmFuZG9tL3d0YXkvdGhyZWFkaW5nOgoJKiBkb2NzL3JhbmRvbS93dGF5L3RocmVhZHNfaGlsZXZlbDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW50ZXJmYWNlLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHdpbjMyL1JFQURNRS50eHQ6CgkgIGRvY3MsIGdzdDogdHlwbyBmaXhlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4NDQ5CgoyMDExLTA5LTA3IDE1OjA3OjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIGRvY3M6IGZpeCBtYWtlIGRpc3RjaGVjawoJICBObyBwb2ludCByZW1vdmluIHRob3NlIGVtcHR5IG92ZXJyaWRlIGZpbGVzIGZyb20gZ2l0LCB0aGV5J2xsCgkgIGp1c3QgYmUgcmUtY3JlYXRlZCBsYXRlciwgc28gbGV0J3MgdGVsbCBndGstZG9jIGFib3V0IHRoZW0sIHNvCgkgIGl0IGNhbiBjbGVhbiB0aGVtIHVwIHByb3Blcmx5LgoKMjAxMS0wOS0wNyAxNjowMjozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSWYgdGhlcmUncyBubyBwZWVyIHdlIHN0aWxsIGhhdmUgdG8gdHJhbnNmb3JtIEFOWSBjYXBzIGluIGdldGNhcHMoKQoJICBPdGhlcndpc2UgZWxlbWVudHMgbGlrZSBjYXBzZmlsdGVyIHdpbGwgcmV0dXJuIEFOWSBjYXBzIGlmIG5vCgkgIHBlZXIgaXMgcHJlc2VudCBpbnN0ZWFkIG9mIHRoZSBmaWx0ZXIgY2Fwcy4gVGhlIHRyYW5zZm9ybV9jYXBzKCkKCSAgdmZ1bmMgY291bGQgZG8gdHJhbnNmb3JtYXRpb25zIHRvIHRoZSB0ZW1wbGF0ZSBjYXBzIHRoYXQgZG8gbm90CgkgIHJlc3VsdCBpbiB0aGUgdW5tb2RpZmllZCB0ZW1wbGF0ZSBjYXBzLgoKMjAxMS0wOS0wNyAxNDowNTowMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgZG9jczogY2xlYW51cCBtYWtlZmlsZXMKCSAgUmVtb3ZlIGNvbW1lbnRlZCBvdXQgcGFydHMgdGhhdCB3ZSBkb24ndCBuZWVkLiBSZW1vdmUgInRoZSB3aW5nbyBhZGRpdGlvbiIgLSBubwoJICBzbyB1c2VmdWwgYWZ0ZXIgYWxsLiBOYXJyb3cgZG93biBmaWxlLWdsb2JzIGZvciBwbHVnaW4gZG9jcy4KCjIwMTEtMDktMDcgMTM6NTA6MDggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBkb2NzOiBlc2NhcGUgJSBpbiBkb2NibG9iCgoyMDExLTA5LTAyIDE5OjQ2OjA2ICswNDAwICBTdGFzIFNlcmdlZXYgPHN0YXNAc3Rhcy4obm9uZSk+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IFVzZSBnc3RfcGFkX3NldF9jYXBzKCkgaW5zdGVhZCBvZiBtYW51YWxseSBjaGFuZ2luZyBjYXBzCgkgIGdzdF9wYWRfc2V0X2NhcHMoKSBkb2VzIGVzc2VudGlhbGx5IHRoZSBzYW1lIGJ1dCBhZGRpdGlvbmFsbHkgY2FsbHMKCSAgdGhlIHBhZCdzIHNldGNhcHMgZnVuY3Rpb24uCgkgIEZpeGVzIGJ1ZyAjNjU4MDc2LgoKMjAxMS0wOS0wNiAyMToyNDoxMCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYTM5ZWI4MyB0byAxMWYwY2Q1CgoyMDExLTA5LTA2IDE1OjM5OjUyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2MDVjZDlhIHRvIGEzOWViODMKCjIwMTEtMDktMDYgMTI6MTc6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFVzZSBjaGVjayBmb3Igc3Vic2V0cyBhbmQgbm90IG5vbi1lbXB0eSBpbnRlcnNlY3Rpb24gdG8gY2hlY2sgaWYgY2FwcyBhcmUgY29tcGF0aWJsZQoKMjAxMS0wOS0wNiAxMjoxOTo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQ2hlY2sgZm9yIHN1YnNldHMsIG5vdCBub24tZW1wdHkgaW50ZXJzZWN0aW9ucyB0byBjaGVjayBpZiBjYXBzIGFyZSBjb21wYXRpYmxlCgkgIFBhZHMgc2hvdWxkIG9ubHkgYWNjZXB0IGNhcHMgdGhhdCBhcmUgYSBzdWJzZXQgb2YgdGhlIHBhZCBjYXBzLCBlLmcuCgkgIHRoZXkgc2hvdWxkIGFjY2VwdCBvbmx5IGNhcHMgdGhhdCBoYXZlIGEgbm9uLWVtcHR5IGludGVyc2VjdGlvbiBhbmQKCSAgYXQgbGVhc3QgYWxsIGZpZWxkcyBvZiB0aGUgcGFkIGNhcHMuCgkgIFdpdGhvdXQgdGhpcyBhIHBhZCB0aGF0IHdhbnRzIGZvciBleGFtcGxlCgkgICJ2aWRlby94LWgyNjQsc3RyZWFtLWZvcm1hdD1ieXRlLXN0cmVhbSIKCSAgd2lsbCBiZSBoYXBweSB0byBhY2NlcHQKCSAgInZpZGVvL3gtaDI2NCIuCgoyMDExLTA4LTI5IDE3OjA2OjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtaW5pb2JqZWN0OiBjaGFuZ2UgdG8gR1NUX0RFRklORV9NSU5JX09CSkVDVF9UWVBFCgkgIEFwcGVuZCBfVFlQRSB0byB0aGUgbWFjcm8gZm9yIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIgc2ltaWxhciBtYWNyb3MuCgoyMDExLTA4LTI5IDE1OjM0OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgaW5pdDogYWRkIF9nZXRfdHlwZSgpIGZ1bmN0aW9ucwoJICBSZW1vdmUgZ3N0X21pbmlfb2JqZWN0X3JlZ2lzdGVyKCkgYW5kIGFkZCBhIEdTVF9ERUZJTkVfTUlOSV9PQkpFQ1QgbWFjcm8gdG8KCSAgZGVmaW5lIGEgX2dldF90eXBlKCkgZnVuY3Rpb24gZm9yIHRoZSBib3hlZCBtaW5pb2JqZWN0LgoJICBSZW1vdmUgYSBidW5jaCBvZiBjdXN0b20gX2dldF90eXBlKCkgZnVuY3Rpb25zIGFuZCByZXBsYWNlIHRoZW0gd2l0aCB0aGUKCSAgbWluaW9iamVjdCBtYWNyby4KCSAgUmVuYW1lIHNvbWUgX2luaXQgbWV0aG9kIHRvIF9wcml2XypfaW5pdGlhbGl6ZSgpIGxpa2UgdGhlIHJlc3Qgb2YgdGhlbS4KCSAgSW5zcGlyZWQgYnkgcGF0Y2ggZnJvbSBKb2hhbiBEYWhsaW4gYW5kIHNlZSBidWcgIzY1NzYwMwoKMjAxMS0wOC0yOSAxMzoyNzoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0OiBhZGQgc29tZSBfcHJpdiBwcmVmaXhlcyB0byBwcml2YXRlIG1ldGhvZHMKCjIwMTEtMDgtMjkgMTI6Mzg6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pLW9iamVjdDogdXNlIHJlZi91bnJlZiBkaXJlY3RseSBpbiBib3hlZCBjb3B5L2ZyZWUKCSAgR0xpYiB3aWxsIG5vdCBjYWxsIG91ciBjb3B5L2ZyZWUgd2l0aCBhIE5VTEwgb2JqZWN0CgoyMDExLTA4LTI2IDE0OjM3OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RtZXNzYWdlLmMKCSAgZ3N0L2dzdHF1ZXJ5LmMKCSAgZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmMKCSAgZ3N0L2dzdHNlZ21lbnQuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaAoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYwoKMjAxMS0wOC0yNiAxNDoxODozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZTogcmVuYW1lIGFsbG9jYXRpb24gdm1ldGhvZHMKCSAgTmFtZSB0aGUgYWxsb2NhdGlvbiB2bWV0aG9kIG9uIHNyY3BhZCBkZWNpZGVfYWxsb2NhdGlvbiBiZWNhdXNlIHNvdXJjZSBwYWRzIHdpbGwKCSAgaGF2ZSB0byBkZWNpZGUgd2hhdCBhbGxvY2F0aW9uIHBhcmFtZXRlcnMgd2lsbCBiZSB1c2VkLgoJICBOYW1lIHRoZSBhbGxvY2F0aW9uIHZtZXRob2Qgb24gc2lua3BhZHMgcHJvcG9zZV9hbGxvY2F0aW9uIGJlY2F1c2UgdGhleSB3aWxsCgkgIG5lZWQgdG8gY29uZmlndXJlIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IHdpdGggYSBwcm9wb3NlZCB2YWx1ZXMgZm9yIHVwc3RyZWFtLgoKMjAxMS0wOC0yNiAxNDoxNzoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBpbXByb3ZlIGZsYWdzCgkgIFJlbmFtZSBEUk9QIHRvIERFQ09ERV9PTkxZLgoJICBBZGQgRFJPUFBBQkxFIGZsYWcgdG8gbWFyayBidWZmZXJzIHRoYXQgY2FuIGJlIGRyb3BwZWQgdG8gc2F2ZSBiYW5kd2lkdGggd2l0aG91dAoJICBkZXN0cm95aW5nIHRoZSBzdHJlYW0uCgoyMDExLTA4LTI2IDE0OjA5OjQ3ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkgIGRvY3M6IGFkZCBzaW5jZSAwLjEwLjM2IG9uIHRoZSBuZXcgX05PTkUgZW51bSB2YWx1ZXMKCjIwMTEtMDgtMjYgMDA6MTM6MTYgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL2ZyYW1lc3RlcDEuYzoKCSAgc3RlcHBpbmc6IHVzZSB0aGUgcHJvcGVyIGFyZ3VtZW50IG9yZGVyCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjYgMDA6MDY6MTIgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkgIGZpbGVpbmRleDogZXhwbGljaXRseSBjYXN0IHRvIHRoZSBlbnVtIHR5cGVzCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjYgMDA6MDA6MjUgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZXI6IHVzZSBHU1RfVFlQRV9GSU5EX05PTkUgaW5zdGVhZCBvZiAwCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjM6NTM6NTggKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBsZm9jb250cm9sc291cmNlOiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIGVudW0gdHlwZQoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIzOjQ5OjM4ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZDogYWRkIEdTVF9UWVBFX0ZJTkRfTk9ORSBhbmQgdXNlIGl0CgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjM6MjY6MDggKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXNlIHRoZSBlbnVtIHZhbHVlcyBmb3IgMCBhbmQgZG9uJ3QgYWJ1c2Ugb24gZ2Jvb2xlYW4gY29pbmNpZGVuY2UKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMzowNjo1NiArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwdXQgdGhlIGFyZ3VtZW50cyBvZiBnX3JldHVybl92YWxfaWZfZmFpbCBpbiB0aGUgcHJvcGVyIG9yZGVyCgoyMDExLTA4LTI1IDIyOjQ4OjU0ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSAgcGFyc2U6IHVzZSBHU1RfUEFSU0VfRkxBR19OT05FIGluc3RlYWQgb2YgMAoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIyOjQyOjA4ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjI6Mjk6NDUgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogbWlub3IgY2hhbmdlcyByZWxhdGVkIHRvIGVudW0gdHlwZXMKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMjowNToyNiArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0cmFjZS5oOgoJICB0cmFjZTogYWRkIEdTVF9BTExPQ19UUkFDRV9OT05FIGZvciBjb25zaXN0ZW5jeSBhbmQgdXNlIGl0CgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjE6NTI6MDUgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjE6NDk6MjkgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIHRhZ3NldHRlcjogdXNlIEdTVF9UQUdfTUVSR0VfVU5ERUZJTkVEIGluc3RlYWQgb2YgRkFMU0UKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMTozMDo1NyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogdXNlIEdTVF9TRUVLX0ZMQUdfTk9ORSBpbnN0ZWFkIG9mIDAKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMToyNTo0NiArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIGVudW0gdHlwZXMKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMToxODoxNSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBtaW5vciBjaGFuZ2VzIHJlbGF0ZWQgdG8gZW51bSB0eXBlcwoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIxOjAzOjUzICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkdGVtcGxhdGU6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlcwoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTE2IDIzOjAwOjQ3ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIGVudW0gdHlwZQoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTE2IDIyOjUxOjI5ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIHJpZ2h0IGVudW0gdHlwZXMKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0xNiAyMjo0MTozMiArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZXhwbGljaXRseSBjYXN0IHRvIHRoZSBlbnVtIHR5cGUKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0xNiAyMjozNzowOCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGluZGV4LmM6CgkgIGluZGV4OiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIGVudW0gdHlwZQoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTE2IDIyOjI5OjU5ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkgIGZvcm1hdDogdXNlIEdTVF9GT1JNQVRfVU5ERUZJTkVEIGFuZCBmZXcgY2FzdHMgdG8gR3N0Rm9ybWF0CgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjYgMTM6MDI6MzQgKzAxMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IEZpeCBib2RnZWQgcHJldmlvdXMgY29tbWl0CgoyMDExLTA4LTI2IDEyOjM3OjQzICswMTAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogVXNlIEdzdFBhZERpcmVjdGlvbiBpbiB0aGUgcXVlcnkgdmZ1bmMKCSAgV2ltIHN1Z2dlc3RlZCB0aGF0IHVzaW5nIEdzdFBhZERpcmVjdGlvbiBpbnN0ZWFkIG9mIGEgR3N0UGFkIGluIHRoZQoJICBhcmd1bWVudHMgdG8gdGhlIG5ldyBxdWVyeSB2ZnVuYyB3b3VsZCBiZSBtb3JlIGNvbnNpc3RlbnQgd2l0aCB0aGUgb3RoZXIKCSAgZnVuY3Rpb25zLgoKMjAxMS0wOC0yNiAxMzo0MDo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiByZW5hbWUgX0NMSVAgdG8gX0RST1AgZmxhZwoJICBXZSBjYW4gYWxzbyB1c2UgYSBmbGFnIHRvIGluZGljYXRlIHRoYXQgYSBmcmFtZSBzaG91bGQgYmUgZGVjb2RlZCBidXQgbm90CgkgIGRpc3BsYXllZCByZWdhcmRsZXNzIG9mIHRoZSB0aGUgc2VnbWVudCBib3VuZGFyaWVzIHNvIHdlIHVzZSB0aGUgbW9yZSBnZW5lcmljCgkgIF9EUk9QLgoKMjAxMS0wOC0yNiAxMjoyODoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogcmVtb3ZlIHNvbWUgdW51c2VkIHZhcmlhYmxlcwoKMjAxMS0wOC0yNiAxMTo0NDoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogYWRkIHZtZXRob2QgdG8gY29uZmlndXJlIHVwc3RyZWFtIGJ1ZmZlcnBvb2wKCSAgQWRkIGEgdm1ldGhvZCB0aGF0IGNhbiBiZSBpbXBsZW1lbnRlZCB0byBpbmZsdWVuY2UgdGhlIGJ1ZmZlcnBvb2wgdGhhdCB1cHN0cmVhbQoJICBlbGVtZW50cyB3aWxsIHVzZS4KCjIwMTEtMDgtMjYgMTE6MjQ6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IHVzZSBwYWQgZGlyZWN0aW9uIGxpa2Ugb3RoZXIgdm1ldGhvZHMKCjIwMTEtMDgtMjYgMTE6MDk6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmgKCjIwMTEtMDgtMjYgMTA6NTc6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmg6CgkgIHVyaTogc29tZSBkb2MgZml4ZXMKCjIwMTEtMDgtMjUgMTE6MDI6MTYgKzAxMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBCYXNlVHJhbnNmb3JtOiBBZGQgYSBxdWVyeSB2ZnVuYwoKMjAxMS0wNy0yMCAxNDowNToyNyArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogZG9uJ3QgYXNzdW1lIF9nZXRfY2FwcyBzdGlsbCBoYXMgdG8gYmUKCSAgX3NldF9jYXBzIG9ubHkgZ2V0cyBjYWxsZWQgd2hlbiB0aGUgYnVmZmVyIGlzIGFjdHVhbGx5IHB1c2hlZCwgc28gdGhlcmUKCSAgaXMgYSByZWFzb25hYmx5IGJpZyB3aW5kb3cgYmV0d2VlbiB3aGVuIHRoZSBpbml0aWFsIGNhcHMgYXJlIHJldHJpZXZlZAoJICBhbmQgd2hlbiB0aGUgY2FwcyBhcmUgc2V0IG9uIG91ciBzcmMgcGFkLiBTbyB3ZSBjYW4ndCBhc3N1bWUgdGhlIG5vdAoJICBoYXZpbmcgbmVnb3RpYXRlZCBjYXBzIG9uIG91ciBzcmMgcGFkIG1lYW5zIF9nZXRfY2FwcyBzdGlsbCBoYXMgdG8gYmUKCSAgY2FsbGVkLgoJICBJbnN0ZWFkIHNpbXBseSBhbHdheXMgc3VnZ2VzdCB0aGUgbmV3IGNhcHMgb24gYnVmZmVyX2FsbG9jLgoKMjAxMS0wOC0yNSAxODowNDoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBhZGQgY2xpcCBmbGFnCgoyMDExLTA4LTI1IDE2OjIxOjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IHJld29yayBmbGFncyBhIGxpdHRsZQoJICBSZW9yZGVyIGJ1ZmZlciBmbGFncyBhbmQgYWRkIHNvbWUgbmV3IG9uZXMuCgkgIFJlbW92ZSB0aGUgbWVkaWEgc3BlY2lmaWMgZmxhZ3MsIHdlIGNhbiBub3cgZWFzaWx5IGRvIHRoaXMgd2l0aCB0aGUgRkxBR19MQVNUCgkgIGZsYWcgYmVjYXVzZSB3ZSBkb24ndCBleHRlbmQgZnJvbSBHc3RCdWZmZXIgYW55bW9yZS4KCjIwMTEtMDgtMjUgMTY6MjA6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBidWZmZXI6IGFsd2F5cyBjb3B5IGFsbCBidWZmZXIgZmxhZ3Mgd2hlbiBhc2tlZAoJICBEb24ndCB0cnkgdG8gYmUgc21hcnQgYW5kIGNvcHkgb25seSBhIHN1YnNldCBvZiBidWZmZXIgZmxhZwoKMjAxMS0wOC0yNSAxNjoxOTo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1cGRhdGUgZGVmcwoKMjAxMS0wOC0yNSAxNDowOTozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IHBsdXJhbGl6ZSB0aGUgYnVmZmVyIGZsYWdzCgoyMDExLTA4LTI1IDEyOjM4OjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOgoJICBiYXNlc2luazogcmVtb3ZlIHByZXJvbGwtcXVldWUtbGVuIHByb3BlcnR5CgkgIFJlbW92ZSB0aGUgcHJlcm9sbC1xdWV1ZS1sZW4gcHJvcGVydHkgYW5kIG1vdmUgaXRzIHZhcmlhYmxlcyB0byBhIHByaXZhdGUKCSAgc2VjdGlvbiBzbyB0aGF0IHdlIGNhbiByZW1vdmUgdGhlbSBsYXRlci4KCjIwMTEtMDgtMjQgMTA6NDM6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdG9iamVjdC5jCgoyMDExLTA4LTIzIDE4OjE5OjUzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGVuc3VyZSBzdGFydF90aW1lIHJlc2V0IHVwb24gZmx1c2gKCjIwMTEtMDgtMjMgMTE6NTU6MTcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBhbHNvIHJlbW92ZSB0aGUgY2FzdCBhcyB0aGlzIGlzIGNhdXNpbmcgdGhlIHRyb3VibGUKCjIwMTEtMDgtMjMgMTE6NDE6MDIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiB1c2UgdGhlIGF0b21pYyBtYWNyb3MgdG8gZGVhbCB3aXRoIHRoZSBnbGliIGNoYW5nZSBpbiB0aGUgaW1wbC4KCjIwMTEtMDgtMjIgMTI6NDk6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgb2JqZWN0OiBtYWtlIF9yZXBsYWNlIGxpa2UgdGhlIG1pbmlvYmplY3QgdmVyc2lvbgoKMjAxMS0wOC0yMiAxMjozMzozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0YnVmZmVyLmgKCSAgZ3N0L2dzdGNhcHMuYwoJICBnc3QvZ3N0Y2Fwcy5oCgkgIGdzdC9nc3RldmVudC5jCgoyMDExLTA4LTIyIDEyOjE5OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHZhbHVlOiByZW1vdmUgb3VyIEZPVVJDQyBHVHlwZQoJICBSZW1vdmUgb3VyIGN1c3RvbSBmb3VyY2MgR1ZhbHVlLgoKMjAxMS0wOC0yMSAxNDowNzowOCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIG9iamVjdDogbWFrZSBnc3Rfb2JqZWN0X3JlcGxhY2UoKSBhdG9taWMKCjIwMTEtMDgtMjAgMTQ6MDc6NTUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGRvY3M6IG1vcmUgY2xhcmlmaWNhdGlvbiBmb3IgZWxlbWVudCBkb2NzCgkgIERvbid0IHN1Z2dlc3QgZGVwcmVjYXRlZCBtZXRob2QgaW4gdGhlIGRlc2N0aW9uIGRvY3MgYW5kIHRyeSB0byBiZSBtb3JlIGhlbHBmdWwKCSAgaW4gb3RoZXIgcGxhY2VzIGJ5IHN1Z2dlc3RpbmcgcmVsYXRlZCBmdW5jdGlvbnMuCgoyMDExLTA4LTIwIDA5OjU2OjAxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBkb2NzOiBzbWFsbCBjbGFyaWZpY2F0aW9uIGluIHRoZSBnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQgZG9jcwoJICBNYWtlIGl0IG1vcmUgb2J2aW91cyB0aGF0IG9uZSBzaG91bGQgcGFzcyB0aGUgdGVtcGxhdGUgbmFtZS4KCjIwMTEtMDgtMTggMjA6NDY6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkb24ndCB1c2UgPT0gaW4gZGVidWcgc3RyaW5nCgkgIEl0IG1lc3NlcyB1cCBHU1RfREVCVUc9Kjo1IG1ha2UgZm9vL2Jhci52YWxncmluZCwgYmVjYXVzZQoJICBvdXIgTWFrZWZpbGUgbG9va3MgZm9yICc9PScgYXMgbWFya2VyIG9mIHZhbGdyaW5kIG91dHB1dC4KCjIwMTEtMDgtMTggMjA6NDQ6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggY3Jhc2ggb24gc2VlayBmcm9tIHN0cmVhbWluZyB0aHJlYWQgb24gbmV3c2VnbWVudCBldmVudAoJICBFdmVudCBpZiBpdCdzIG5vdCBhbGxvd2VkLCB3ZSBjYW4gZWFzaWx5IHByZXZlbnQgaXQsIHNvIGxldCdzIGRvCgkgIHRoYXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTY3NzEKCjIwMTEtMDgtMTcgMTc6NTY6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZTogYWRkIG1ldGhvZCB0byBmaXhhdGUgb25lIGZpZWxkCgoyMDExLTA4LTE3IDE3OjE2OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGFkZCBkZWZhdWx0IGZpeGF0ZSBmdW5jdGlvbgoJICBBZGQgYSBkZWZhdWx0IGZpeGF0ZSBmdW5jdGlvbiB3aGljaCBkb2VzIGdzdF9jYXBzX2ZpeGF0ZSgpIGJlY2F1c2UKCSAgZ3N0X3BhZF9maXhhdGUoKSBkb2VzIG5vdCBkbyB0aGF0IGFueW1vcmUuCgoyMDExLTA4LTE3IDA5OjI1OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgZG9jczogaW1wcm92ZSBzb21lIGRvY3MKCjIwMTEtMDgtMTYgMTg6Mjk6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiByZXR1cm4gcHJvY2Vzc2VkIG51bWJlciBvZiBieXRlcwoJICBNYWtlIF9maWxsLCBfZXh0cmFjdCBhbmQgX21lbXNldCByZXR1cm4gdGhlIGFjdHVhbCBudW1iZXIgb2YgYnl0ZXMgdGhhdCB3ZXJlCgkgIGhhbmRsZWQgaW4gY2FzZSB0aGUgYnVmZmVyIHNpemUgaXMgbGVzcyB0aGFuIHRoZSBzcGVjaWZpZWQgc2l6ZS4KCjIwMTEtMDgtMTYgMTc6MTk6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGRvY3M6IGZpeCB0eXBvIGluIGVsZW1lbnQgZmFjdG9yeSBkb2N1bWVudGF0aW9uCgoyMDExLTA4LTE2IDE3OjMyOjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIGJ1ZmZlcjogcmVuYW1lIFBSRVJPTEwgLT4gTElWRSBmbGFnCgkgIFJlbmFtZSB0aGUgR1NUX0JVRkZFUl9GTEFHX1BSRVJPTEwgdG8gR1NUX0JVRkZFUl9GTEFHX0xJVkUgYW5kIGdpdmUgdGhlIG5ldyBmbGFnCgkgIGEgbWVhbmluZy4gVGhlIG9sZCBQUkVST0xMIGZsYWcgbmV2ZXIgaGFkIGEgY2xlYXIgbWVhbmluZy4KCjIwMTEtMDgtMTUgMjE6MDU6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZml4IGNvbXBpbGVyIHdhcm5pbmcgcmVwb3J0ZWQgYnkgSUNDCgkgIFRoZSBNQVggbWFjcm8gZXhwYW5kcyB0byBjb2RlIHRoYXQgY2hlY2tzIGlmIGFuIHVuc2lnbmVkIGludGVnZXIgaXMgPCAwLgoJICBGaXhlcyB3YXJuaW5nICMxODY6IHBvaW50bGVzcyBjb21wYXJpc29uIG9mIHVuc2lnbmVkIGludGVnZXIgcmVwb3J0ZWQgYnkgSUNDLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2MjY1CgoyMDExLTA4LTEwIDExOjM5OjIzICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogZXhwbGljaXRseSBjYXN0IHRvIHRoZSBlbnVtIHR5cGUKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2MjY1CgoyMDExLTA4LTEwIDExOjA3OjQ5ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBnc3RzdGF0ZTogZXhwbGljaXRseSBjYXN0IHRvIHRoZSBlbnVtIHR5cGUKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2MjY1CgoyMDExLTA4LTA5IDIzOjQyOjI2ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgcmlnaHQgZW51bSB0eXBlcwoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTYyNjUKCjIwMTEtMDgtMDkgMjM6MzM6NDMgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RlcnJvci5jOgoJICBnc3RlcnJvcjogZXhwbGljaXRseSBjYXN0IHRvIHRoZSByaWdodCBHc3RHRXJyb3IgY29kZSBlbnVtIHR5cGVzCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjI2NQoKMjAxMS0wOC0wOSAyMzoyNjoxMyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogdXNlIEdTVF9TVEFURV9WT0lEX1BFTkRJTkcgZm9yIEdzdFN0YXRlIGluc3RlYWQgb2YgMAoJICBGaXhlcyBhIHdhcm5pbmcgcmVwb3J0ZWQgYnkgSUNDLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2MjY1CgoyMDExLTA4LTA5IDIyOjQ4OjUzICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiBkZWZpbmUgR1NUX0NBUFNfRkxBR1NfTk9ORSBmb3IgY29uc2lzdGVuY3kgd2l0aCBvdGhlciBlbnVtZXJhdGlvbnMKCSAgVXNlIHRoZW0gdG8gZml4IHdhcm5pbmdzIHdoZW4gYnVpbGRpbmcgd2l0aCBJQ0MuCgkgIEFQSTogR1NUX0NBUFNfRkxBR1NfTk9ORQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2MjY1CgoyMDExLTA4LTA5IDIyOjI5OjQ0ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogdXNlIEdzdERlYnVnTGV2ZWwgZW51bSB0eXBlIHRvIGZpeCBhIHdhcm5pbmcgYnVpbGRpbmcgd2l0aCBJQ0MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjI2NQoKMjAxMS0wOC0xNSAxNjo0NTozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBtYWtlIGZpeGF0ZSBjYXBzIGJlaGF2ZSBsaWtlIG90aGVyIGZ1bmN0aW9ucwoJICBJbnN0YWxsIGEgZGVmYXVsdCBmaXhhdGUgY2FwcyBmdW5jdGlvbiBvbiBwYWRzIGxpa2UgYWxsIHRoZSBvdGhlciBwYWQgZnVuY3Rpb25zLgoKMjAxMS0wOC0xNSAxNjo0NTowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgZm9yIG5ldyBzeW1ib2xzCgoyMDExLTA4LTE1IDE0OjQzOjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wOC0xNSAxNDo0MDozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBjYXBzOiBhZGQgZml4YXRlIGZ1bmN0aW9uCgkgIEFkZCBhIGZpeGF0ZSBmdW5jdGlvbiBhbmQgdXNlIGl0IGluIGdzdHBhZC5jCgoyMDExLTA4LTE1IDE0OjMyOjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgc3RydWN0dXJlOiBhZGQgZnVuY3Rpb24gdG8gZml4YXRlCgkgIEFkZCBhIGZ1bmN0aW9uIHRvIGZpeGF0ZSBhIHN0cnVjdHVyZSBhbmQgdXNlIGl0IGZvciB0aGUgZGVmYXVsdCBmaXhhdGUgZnVuY3Rpb24KCSAgaW4gZ3N0cGFkLmMuCgoyMDExLTA4LTE1IDEzOjE3OjQ0ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBGYXJzaWdodCBhbmQgTmljZSBzdXBwb3J0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTY1NTcKCjIwMTEtMDgtMTUgMTQ6MTc6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGRlZmF1bHQgYWNjZXB0Y2FwcwoJICBNYWtlIHRoZSBhY2NlcHRjYXBzIGZ1bmN0aW9uIGJlaGF2ZSBsaWtlIGFsbCB0aGUgb3RoZXIgZnVuY3Rpb25zIHdpdGggYSBkZWZhdWx0CgkgIGltcGxlbWVudGF0aW9uLiBEb24ndCB0cnkgdG8gY2hhaW4gdXAgdG8gdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gd2hlbiBpdCB3YXMKCSAgc2V0IHRvIE5VTEwgZXhwbGljaXRseSBidXQgcmV0dXJuIEZBTFNFIGluc3RlYWQuCgkgIEZpeCBzb21lIGRvY3MKCjIwMTEtMDgtMTUgMTM6MjQ6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBmaXggc29tZSBtYWNyb3MKCSAgUmVtb3ZlIGEgcmF0aGVyIHVzbGVzcyBtYWNybyB0byBjaGVjayBpZiBhIHBhZCBtb2RlIGlzIGFjdGl2ZSBhbmQKCSAgYWRkIEdTVF9QQURfSVNfQUNUSVZFKCkuCgoyMDExLTA4LTE1IDEyOjE4OjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmcgZG9jCgoyMDExLTA4LTE1IDEyOjE2OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IHJlbW92ZSBnc3RfcGFkX2dldF9uZWdvdGlhdGVkX2NhcHMoKQoJICBSZW1vdmUgZ3N0X3BhZF9nZXRfbmVnb3RpYXRlZF9jYXBzKCksIGl0IGRvZXMgbm90IHJlYWx5IGRvIHdoYXQgaXQgc2F5cywKCSAgZ3N0X3BhZF9nZXRfY3VycmVudF9jYXBzKCkgcmV0dXJucyB0aGUgY3VycmVudGx5IG5lZ290aWF0ZWQgY2FwcyBvbiB0aGUgcGFkCgkgIGNvcnJlY3RseS4KCjIwMTEtMDgtMTIgMTk6Mjc6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggZGVhZGxvY2sgaW4gZXJyb3IgcGF0aAoJICBEb24ndCBsb2NrIHRoZSBzYW1lIGxvY2sgdHdpY2UuIFNwb3R0ZWQgYnkgSm9zZXAgVG9ycmUgVmFsbGVzLgoKMjAxMS0wOC0xMiAxMjo0NTowMSArMDMwMCAgUGV0ZXJpcyBLcmlzamFuaXMgPHBlY2lza0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEZpeCBnc3RfaXRlcmF0b3JfbmV4dCgpIGVsZW1lbnQgYW5ub3RhdGlvbgoKMjAxMS0wOC0xMSAwOTozMToyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIGRvY3M6IGZpeCB0eXBvIGluIFBXRwoJICBSQkcgLT4gUkdCLiBTcG90dGVkIGJ5IFdpbGwgVGhvbXBzb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTYzMjYKCjIwMTEtMDgtMTEgMTA6MDk6NDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IHJlbW92ZWQgbm9uLXNlbnNlIGNvbW1lbnQKCjIwMTEtMDgtMTAgMTc6MDc6NTQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYwoJICBnc3QvZ3N0ZWxlbWVudGRldGFpbHMuaAoJICBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYwoJICB0b29scy9nc3QtcnVuLmMKCjIwMTEtMDgtMDggMTk6MzY6MDQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZGV0YWlscy5oOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnk6IG1vdmUgdXRmLTggdmFsaWRhdGlvbiB0byByZWdpc3RyeSBzYXZpbmcgdGltZQoJICBJbnN0ZWFkIG9mIGNoZWNraW5nIGZvciB2YWxpZCB1dGYtOCBlbGVtZW50LWRldGFpbHMgZXZlcnkgdGltZSB3ZSBjcmVhdGUKCSAgZWxlbWVudHMgKGZyb20gcGx1Z2luLWluaXQgb3IgcmVnaXN0cnkpLCBkbyBpdCBiZWZvcmUgd2Ugc2F2ZSB0aGUgcmVnaXN0cnkuCgkgIEZpeGVzICM2NTYxOTMuCgoyMDExLTA4LTEwIDExOjAxOjU4ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgRml4IGFuZCBjbGFyaWZ5IGRlYnVnIHN0YXRlbWVudHMKCSAgRml4ZXMgYnVpbGQgb24gTWFjT1NYCgkgIFNpZ25lZC1vZmYtYnk6IEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKMjAxMS0wOC0wNSAxMDo1OTo0MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogQ2xhcmlmeSBkb2MKCjIwMTEtMDgtMDcgMDk6MTQ6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICBkb2NzOiBmaXggaGVsbG93b3JsZCBjb21waWxlIGNvbW1hbmQgbGluZSBmb3IgbmV3ZXIgZ2NjCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTYwOTIKCjIwMTEtMDgtMDYgMTg6MjA6NTEgKzAyMDAgIFNoYXVuIEhvb3BlcyA8aG9vcGVzMDFAc3R1ZGVudC51d2EuZWR1LmF1PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogaW1wcm92ZSBkb3QgZmlsZSBmbG93IGxheW91dAoJICBJdGVyYXRlIHNvdXJjZS0gYW5kIHNpbmstcGFkcyBzZXBhcmF0ZWx5IHRvIGVuc3VyZSB0aGF0IHRoZSBncmFwaCByZWZsZWN0cyB0aGUKCSAgdXBzdHJlYW0vZG93bnN0cmVhbSBvcmRlci4gRml4ZXMgIzY0MzI2OQoKMjAxMS0wOC0wNiAxNDoxNzo1MCArMDIwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzIChhdCkgYXBlc3RhYXJ0IChkb3QpIG9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBnc3RyZWFtZXIuc3BlYzogbWFrZSBidWlsZGFibGUgYW5kIHBhcmFsbGVsCgoyMDExLTA4LTA1IDEyOjEyOjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1ydW4uYzoKCSAgdG9vbHM6IG1ha2UgdW52ZXJzaW9uZWQgd3JhcHBlciBsb29rIGZvciAtMC4xMCB0b29scyBvbmx5CgkgIERvbid0IHdhbnQgKGluY29tcGF0aWJsZSkgMC4xMSB0b29scyB0byBiZSBwaWNrZWQgdXAgYnkgYWNjaWRlbnQuCgoyMDExLTA4LTA0IDE4OjAwOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBiYXNlc3JjOiBhZGQgYWxsb2Mgdm1ldGhvZAoJICBNYWtlIGFuIGFsbG9jIHZtZXRob2Qgc28gdGhhdCBzdWJjbGFzc2VzIGNhbiBvdmVycmlkZSBvciBjYWxsIHRoZSBkZWZhdWx0CgkgIGltcGxlbWVudGF0aW9uIHdoZW4gdGhleSB3YW50LgoKMjAxMS0wOC0wNCAxNzoyNjozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBkZWZzCgoyMDExLTA4LTA0IDE3OjEyOjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGNsZWFudXBzIGFuZCBtYXJrIHJlY29uZmlndXJlCgkgIERvbid0IGFidXNlIHRoZSByZXN1bHQgdmFyaWFibGUuCgkgIE1hcmsgdGhlIHNyY3BhZCB3aXRoIGEgcmVjb25maWd1cmUgc28gdGhhdCBuZWdvdGlhdGlvbiBoYXBwZW5zLgoKMjAxMS0wOC0wNCAxNzoxMjoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBtZXRob2QgdG8gbWFyayByZWNvbmZpZ3VyZQoKMjAxMS0wOC0wNCAxNjo1Njo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiByZW1vdmUgbmVnb3RpYXRpb24gZnJvbSB0aGUgc3RhdGUgY2hhbmdlCgkgIFJlbW92ZSB0aGUgbmVnb3RpYXRpb24gZnJvbSB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uLCBpdCBjYXVzZXMgZGF0YSB0cmFuc2ZlcgoJICBhbmQgYnVmZmVycG9vbCBuZWdvdGlhdGlvbiwgd2hpY2ggaXMgbm90IHN1cHBvc2VkIHRvIGJlIGRvbmUuIFNpbmNlIHdlIGhhdmUgdGhlCgkgIHJlY29uZmlndXJlIHN0YXRlIG9uIHRoZSBwYWQsIHRoZSBjcmVhdGUgZnVuY3Rpb24gd2lsbCBkbyB0aGUgbmVnb3RpYXRpb24gYXMKCSAgc29vbiBhcyBpdCBnZXRzIGluIHRoZSBzdHJlYW1pbmcgdGhyZWFkLgoKMjAxMS0wOC0wNCAxNjozNDo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgYmFzZXNyYzogZXhwb3NlIHNldF9jYXBzIG1ldGhvZAoJICBFeHBvc2UgYSBwcmV2aW91c2x5IHN0YXRpYyBtZXRob2Qgc28gdGhhdCBjdXN0b20gbmVnb3RpYXRlIGltcGxlbWVudGF0aW9uIGNhbgoJICBjYWxsIGl0IGFuZCBkbyB0aGUgcmlnaHQgdGhpbmcuCgoyMDExLTA4LTA0IDEzOjQ4OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFBBVVNFRDwtPlBMQVkgZG9lc24ndCBjaGFuZ2UgcG9vbCBzdGF0ZQoJICBEb24ndCBjaGFuZ2UgdGhlIHN0YXRlIG9mIHRoZSBidWZmZXJwb29sIHdoZW4gZ29pbmcgYmV0d2VlbiBQQVVTRUQgYW5kIFBMQVlJTkcsCgkgIGl0IHdpbGwgZGVhbGxvYyBhbmQgcmVhbGxvYyBhbGwgYnVmZmVycywgd2hpY2ggaXMgY2xlYXJseSB0b28gaW52YXNpdmUuIFdlIHdpbGwKCSAgbmVlZCB0byBhZGQgc29tZSBvdGhlciB3YXkgb2YgdW5ibG9ja2luZyB0aGUgYnVmZmVycG9vbC4KCjIwMTEtMDgtMDQgMTE6MDA6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIGZpeCBkZWZhdWx0IGFsaWdubWVudAoJICBBIDAgYWxpZ25tZW50IGlzIHRoZSBkZWZhdWx0LgoKMjAxMS0wOC0wNCAxMDo1NDoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJwb29sOiBhZGQgZ3N0X2J1ZmZlcl9wb29sX2lzX2FjdGl2ZSgpCgoyMDExLTA4LTAzIDExOjU3OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIGJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTEuMCA9PT0KCjIwMTEtMDgtMDIgMjA6NTU6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSRUxFQVNFIDAuMTEKCjIwMTEtMDgtMDMgMTE6MDQ6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZy10by0wLjExOiBBZGQgc2VjdGlvbiBhYm91dCBHc3RJdGVyYXRvcgoKMjAxMS0wOC0wMSAxODoxMjoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGRvbid0IGFkZCB0aGUgc2FtZSBvcHRpb24gdHdpY2UKCSAgTWFrZSBzdXJlIHRoYXQgd2Ugb25seSBhZGQgYW4gb3B0aW9uIHRvIHRoZSBhcnJheSBvbmNlLgoKMjAxMS0wNy0zMCAxNDowNDo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJwb29sOiBhZGQgbWV0aG9kIHRvIGNoZWNrIGZvciBhbiBvcHRpb24KCSAgQWRkIGEgbWV0aG9kIHRvIGNoZWNrIGlmIGFuIG9wdGlvbiBpcyBzdXBwb3J0ZWQgb24gdGhlIGJ1ZmZlcnBvb2wuCgoyMDExLTA3LTI5IDE3OjEwOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVycG9vbDogYWRkIG9wdGlvbnMgQVBJIHRvIGJ1ZmZlcnBvb2wKCSAgTWFrZSBpdCBwb3NzaWJsZSB0byBxdWVyeSB0aGUgc3VwcG9ydGVkIG9wdGlvbnMgb2YgYSBidWZmZXJwb29sIGFuZCBlbmFibGUKCSAgb3B0aW9ucy4gVGhpcyBpcyBhIGJpdCBtb3JlIGdlbmVyaWMgdGhhbiB0aGUgQVBJIHRvIGVuYWJsZSBtZXRhZGF0YS4gVGhlIHB1cnBvc2UKCSAgaXMgdG8gbWFrZSBpdCBwb3NzaWJsZSB0byBhZGQgbmV3IGN1c3RvbSBjb25maWcgb3B0aW9ucyB0byB0aGUgY29uZmlndXJhdGlvbiBvZgoJICB0aGUgYnVmZmVycG9vbCB3aGVuIHN1cHBvcnRlZC4KCjIwMTEtMDctMjggMTI6MTE6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogZG9uJ3QgdXNlIEdfQ09OU1RfUkVUVVJOCgkgIEl0J3MgYmVlbiBkZXByZWNhdGVkIGluIG5ld2VyIEdMaWIgdmVyc2lvbnMKCjIwMTEtMDctMjggMTI6MDE6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtcG9zaXRpb24ueG1sOgoJICBtYW51YWw6IHVwZGF0ZSBmb3IgcG9zaXRpb24vZHVyYXRpb24gcXVlcnkgQVBJIGNoYW5nZQoKMjAxMS0wNy0yNyAwMDoyODo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL2ZyYW1lc3RlcDEuYzoKCSAgdGVzdHM6IHVwZGF0ZSBmb3IgcXVlcnkgQVBJIGNoYW5nZXMKCjIwMTEtMDctMjcgMDA6Mjg6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgcGx1Z2luczogdXBkYXRlIGZvciBxdWVyeSBBUEkgY2hhbmdlcwoKMjAxMS0wNy0yNyAwMDoyNjo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlOiB1cGRhdGUgZm9yIHF1ZXJ5IEFQSSBjaGFuZ2VzCgoyMDExLTA3LTI3IDAwOjE3OjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGdzdDogZml4IGF3a3dhcmQgZGVzdF9mb3JtYXQgaW5vdXQgcGFyYW1ldGVyIGluIHF1ZXJ5IHV0aWxpdHkgZnVuY3Rpb25zCgkgIFRoZSBpZGVhIHdhcyBvcmlnaW5hbGx5IHRoYXQgaWYgb25lIHBhc3NlZCAmZGVzdF9mbXQgd2l0aAoJICBkZXN0X2ZtdD1HU1RfRk9STUFUX0RFRkFVTFQsIHRoZW4gdGhlIGNvZGUgYW5zd2VyaW5nIHRoZSBxdWVyeQoJICBjb3VsZCBjaGFuZ2UgZGVzdF9mbXQgdG8gdGhlIGFjdHVhbCBkZWZhdWx0IGZvcm1hdCB1c2VkLiBIb3dldmVyLAoJICBpbiBtb3JlIHRoYW4gaGFsZiBhIGRlY2FkZSBvZiBHU3RyZWFtZXIgMC4xMCBubyBwaWVjZSBvZiBjb2RlIGluCgkgIEdTdHJlYW1lciBoYXMgZXZlciB1c2VkIHRoYXQgZmVhdHVyZSwgbm9yIGFyZSB0aGVyZSB0aGF0IG1hbnkKCSAgdXNlcnMgb2YgdGhpcyBBUEkgdGhhdCBhY3R1YWxseSBjaGVjayB3aGV0aGVyIHRoZSBmb3JtYXQgcmV0dXJuZWQKCSAgaXMgdGhlIG9yaWdpbmFsIGZvcm1hdCBwYXNzZWQgYmVmb3JlIHVzaW5nIHRoZSB2YWx1ZXMgcmV0dXJuZWQuCgkgIEFsc28sIGl0J3MganVzdCBhbm5veWluZy10by11c2UgQVBJIGluIGl0cyBvd24gcmlnaHQuCgkgIEZvciBhbGwgdGhlc2UgcmVhc29ucywgbWFrZSBpdCBzbyB0aGF0IHRoZSBkZXN0aW5hdGlvbiBmb3JtYXQgaXMKCSAgcGFzc2VkIGRpcmVjdGx5IGFuZCBjYW4ndCBiZSBjaGFuZ2VkIGJ5IHRoZSBlbGVtZW50IHF1ZXJpZWQuCgoyMDExLTA3LTI3IDEyOjUwOjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNy0yNyAxMjo0OTo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBhZGQgbW9yZSBjb21tZW50cwoKMjAxMS0wNy0yNyAxMjo0NToxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnM6IGFsc28gcGFzcyBhbGxvY2F0aW9uIHF1ZXJ5IGluIGluX3BsYWNlCgkgIFdoZW4gd2UgYXJlIGRvaW5nIGFuIGluX3BsYWNlIHRyYW5zZm9ybSwgZG9uJ3QgZG8gdGhlIGFsbG9jYXRpb24gcXVlcnkgYnV0IGxldAoJICB0aGUgdXBzdHJlYW0gZWxlbWVudCBkZWNpZGUuCgoyMDExLTA3LTI2IDIyOjQxOjU5IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBiYXNlOiBhZGQgbWlzc2luZyAob3V0KSBhbm5vdGF0aW9uIGZvciBieXRlIHJlYWRlci93cml0ZXIgZnVuY3Rpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTUzODEKCjIwMTEtMDctMjcgMTA6MDk6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBmaXggZy1pIGFubm90YXRpb24gZm9yIF9jcmVhdGUoKSBhbmQgX21ha2UoKSB0byBhbGxvdyBOVUxMIG9iamVjdCBuYW1lcwoKMjAxMS0wNy0yNiAxODo0ODoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbXByb3ZlIHRoZSBnZXRjYXBzIGZ1bmN0aW9uCgkgIFJlZmFjdG9yIGNhbGxpbmcgdGhlIEdFVENBUFMgZnVuY3Rpb24gYW5kIGNoZWNrcy4KCSAgTW92ZSB0aGUgZmlsdGVyIGNvZGUgaW4gb25lIHBsYWNlLgoJICBXaGVuIHVzaW5nIGZpeGVkIHBhZCBjYXBzLCBnZXQgdGhlIGN1cnJlbnRseSBjb25maWd1cmVkIGNhcHMgYW5kIHRoZW4gZmFsbGJhY2sKCSAgdG8gdGhlIEdFVENBUFMgZnVuY3Rpb24uIFdlIHVzZWQgdG8gc2ltcGx5IGlnbm9yZSB0aGUgR0VUQ0FQUyBmdW5jdGlvbiwgd2hpY2gKCSAgcmVzdWx0ZWQgaW4gdHJhbnNmb3JtIGVsZW1lbnRzIHJldHVybmluZyB0aGUgdGVtcGxhdGUgY2FwcyBpbnN0ZWFkIG9mIGRvaW5nIHRoZQoJICBjYXBzIHRyYW5zZm9ybS4KCjIwMTEtMDctMjYgMTU6NDM6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogb25seSB1cGRhdGUgY2FwcyB3aGVuIGNoYW5nZWQKCSAgT25seSBjYWxsIHRoZSBldmVudCBmdW5jdGlvbiB3aXRoIHRoZSBjYXBzIGV2ZW50IHdoZW4gdGhlIGNhcHMgY2hhbmdlZC4KCjIwMTEtMDctMjYgMTQ6Mzc6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvCgoyMDExLTA3LTI2IDEyOjIxOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1ha2UgaXQgZWFzeSB0byBvdmVycmlkZSB0aGUgcGFkIHF1ZXJ5CgkgIEFkZCBhIHZtZXRob2QgdG8gaGFuZGxlIHRoZSBwYWQgcXVlcnkuCgkgIEluc3RhbGwgYSBkZWZhdWx0IGhhbmRsZXIgZm9yIHRoZSBwYWQgcXVlcnkuCgkgIEFkZCBhIHZtZXRob2QgdG8gc2V0dXAgdGhlIGFsbG9jYXRpb24gcHJvcGVydGllcy4KCSAgVXNlIHRoZSBuZXcgcXVlcnkgZnVuY3Rpb24gaW4gZmlsZXNpbmsKCjIwMTEtMDctMjYgMTI6MjA6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgYmFzZXNyYzogaW1wcm92ZSBkb2NzCgoyMDExLTA3LTI2IDEyOjIwOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBhbGxvY2F0aW9uIHF1ZXJ5IGp1c3QgYmVjYXVzZQoKMjAxMS0wNy0yNSAxNToyMToyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IGltcHJvdmUgZGVidWdnaW5nCgoyMDExLTA3LTI1IDEyOjUzOjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0OiBhdm9pZCByYWNlIGluIGJ1ZmZlcnBvb2wgcmVsZWFzZQoJICBBdm9pZCBwbGF5aW5nIHdpdGggdGhlIHJlZmNvdW50IHRvIGRlY2lkZSB3aGVuIGEgYnVmZmVyIGhhcyBiZWVuIHJlY3ljbGVkIGJ5IHRoZQoJICBkaXNwb3NlIGZ1bmN0aW9uLiBUaGUgcHJvYmxlbSBpcyB0aGF0IHdlIHRoZW4gdGVtcG9yYXJpbHkgY2FuIGhhdmUgYSBidWZmZXIgd2l0aAoJICBhIHJlZmNvdW50ID4gMSBiZWluZyBhY3F1aXJlZCBmcm9tIHRoZSBwb29sLCB3aGljaCBpcyBub3Qgd3JpdGFibGUuIEluc3RlYWQgdXNlCgkgIGEgc2ltcGxlIGJvb2xlYW4gcmV0dXJuIHZhbHVlIGZyb20gdGhlIGRpc3Bvc2UgZnVuY3Rpb24gdG8gaW5mb3JtIHRoZSBjYWxsZWQKCSAgdGhhdCB0aGUgb2JqZWN0IHdhcyByZWN5Y2xlZCBvciBub3QuCgoyMDExLTA3LTI1IDEyOjQ5OjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHVzZSBERUJVRyBpbnN0ZWFkIG9mIEVSUk9SIGZvciBsb2dnaW5nCgkgIERvbid0IHVzZSB0aGUgRVJST1IgbG9nIGNhdGVnb3J5IGJlY2F1c2UgdGhlIGFsbG9jYXRpb24gZmFpbHVyZSBtaWdoIG9ubHkgYmUKCSAgYmFjYXVzZSBvZiBhIHN0YXRlIGNoYW5nZS4KCjIwMTEtMDctMjUgMTI6MTQ6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBzdGFydCB3aXRoIHJhaXNlZCBjb250cm9sIHNvY2tldAoJICBJbiB0aGUgaW5hY3RpdmUgc3RhdGUsIHRoZSBjb250cm9sIHNvY2tldCBzaG91bGQgYmUgaW4gdGhlIHJhaXNlZCBzdGF0ZSwgd2Ugd2lsbAoJICByZWxlYXNlIGl0IHdoZW4gd2Ugc3RhcnQuCgoyMDExLTA3LTI0IDExOjI0OjQ0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1jbG9jay54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLWNoYWluZm4ueG1sOgoJICBwd2Q6IGRpc2NvbnRpbm91cyBldmVudCAtPiBuZXdzZWdtZW50IGV2ZW50CgkgIEZpeCBhIDAuOCBsZWZ0b3ZlciBhcyBtZW50aW9uZWQgb24gYnVnICM2MjExMjEuCgoyMDExLTA3LTI0IDA5OjA1OjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgdGFsayBhYm91dCB0aGUgYmFzZXRyYW5zZm9ybSBzaW5rX2V2ZW50IHZtZXRob2QKCjIwMTEtMDctMjMgMDg6MDA6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJICBjb250cm9sbGVyOiBmaXggYnVpbGQgZmFpbHVyZSBkdWUgdG8gY29tcGlsZXIgd2FybmluZwoJICBQcmVzdW1hYmx5IHdpdGggbmV3ZXIgR0xpYiB2ZXJzaW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU1MTU1CgoyMDExLTA3LTIyIDIxOjE3OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCBzaW5rIGV2ZW50IGhhbmRsaW5nCgkgIEltcGxlbWVudCB0aGUgc2luayBldmVudCBoYW5kbGluZyBsaWtlIHRoZSBzcmMgZXZlbnQgaGFuZGxlci4gTWFrZSB0aGUgZGVmYXVsdAoJICBpbXBsZW1lbnRhdGlvbiBwYXJzZSBhbmQgZm9yd2FyZCB0aGUgZXZlbnQuIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gYWN0dWFsbHkKCSAgcmV0dXJuIGFuIGVycm9yIHZhbHVlIGZyb20gdGhlIGV2ZW50IGhhbmRsZXIuCgoyMDExLTA3LTIyIDE5OjE5OjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGhhbmRsZSBmYWlsdXJlcwoJICBIYW5kbGUgZmFpbHVyZSB0byBhY3RpdmF0ZSB0aGUgYnVmZmVycG9vbC4KCjIwMTEtMDctMjIgMTk6MTE6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zOiBpbXByb3ZlIGRlYnVnZ2luZy4KCjIwMTEtMDctMjEgMTg6NTA6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBhZGQgcmVzZXRfYnVmZmVyIHZtZXRob2QKCSAgQWRkIGEgdm1ldGhvZCB0byByZXNldCBhIGJ1ZmZlciB0byBpdHMgb3JpZ2luYWwgc3RhdGUuIEFkZCBhIGRlZmF1bHQKCSAgaW1wbGVtZW50YXRpb24gdGhhdCByZXNldHMgdGhlIGZsYWdzLCB0aW1lc3RhbXBzIGFuZCBvZmZzZXRzLgoJICBBZGQgc29tZSBtb3JlIGRvY3MuCgoyMDExLTA3LTIxIDE3OjQyOjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBiYXNldHJhbnM6IFJlbW92ZSByZWYgaW4gcGFzc3Rocm91Z2gKCSAgUmVtb3ZlIHRoZSByZXF1aXJlbWVudCB0byBoYXZlIHRvIHJldHVybiBhIHJlZiB0byB0aGUgaW5wdXQgYnVmZmVyIHdoZW4gaW4KCSAgcGFzc3Rocm91Z2ggbW9kZS4gVGhpcyBzYXZlcyBhIGZldyByZWYvdW5yZWYgY3ljbGVzIGFuZCBmaXhlcyBhbm90aGVyIDAuMTEKCSAgRklYTUUuCgoyMDExLTA3LTIxIDE3OjI5OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBtYWtlIG5ldyAgY29weV9tZXRhZGF0YSB2bWV0aG9kCgkgIE1ha2UgYSBuZXcgY29weV9tZXRhZGF0YSB2bWV0aG9kIGFuZCBtb3ZlIHRoZSBjb2RlIHRvIGNvcHkgdGhlIHRpbWVzdGFtcHMsIGZsYWdzCgkgIGFuZCBvZmZzZXRzIGludG8gYSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLiBUaGlzIHdpbGwgYWxsb3cgdXMgdG8gZ2l2ZSB0aGUKCSAgc3ViY2xhc3NlcyBhIGNoYW5jZSB0byBvdmVycmlkZSB0aGUgY29weSBtZXRob2QuCgoyMDExLTA3LTIxIDE2OjQ5OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jCgoyMDExLTA3LTIxIDE2OjM5OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuczogYXZvaWQgaW50ZXJtZWRpYXRlIG1ldGhvZAoJICBTaW1wbHkgY2FsbCB0aGUgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIG1ldGhvZCBpbnN0ZWFkIG9mIGNhbGxpbmcgYW4gaW50ZXJtZWRpYXRlCgkgIGZ1bmN0aW9uLgoKMjAxMS0wNy0yMSAxNjozMDowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBtb3ZlIHRoZSBtZXRhZGF0YSBjb3B5IGNvZGUKCSAgTW92ZSB0aGUgbWV0YWRhdGEgY29weSBjb2RlIHRvIHRoZSBkZWZhdWx0IHByZXBhcmVfb3V0cHV0X2J1ZmZlciBpbXBsZW1lbnRhdGlvbi4KCjIwMTEtMDctMjEgMTU6NDk6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogbW92ZSBwcmVwYXJlX291dHB1dF9idWZmZXIgY29kZQoJICBNb3ZlIHRoZSBjb2RlIGZvciBwcmVwYXJlX291dHB1dF9idWZmZXIgdG8gYSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLiB0aGlzIGFsbG93cwoJICB1cyB0byBzaW1wbGlmeSBzb21lIHRoaW5ncyBhbmQgaGF2ZSBzdWJjbGFzc2VzIGNhbGwgaW50byB0aGUgZGVmYXVsdAoJICBpbXBsZW1lbnRhdGlvbiB3aGVuIG5lZWRlZC4KCjIwMTEtMDctMjEgMTU6NDg6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogb25seSBnZXQgc2l6ZSBmb3IgZGVidWcKCjIwMTEtMDctMjEgMTQ6MTg6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zOiBmaXggY29tbWVudCBhbmQgd2FybgoJICBFbWl0IGEgd2FybmluZyBpbiB0aGUgZGVidWcgbG9nIHdoZW4gc29tZXRoaW5nIHNlZW1zIHdlaXJkLgoKMjAxMS0wNy0yMSAxNDoxNDo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBvbmx5IGdldCBjYXBzIGZvciBzaXplIHRyYW5zZm9ybQoJICBEZWxheSBnZXR0aW5nIHRoZSBjYXBzIHVudGlsIHdlIG5lZWQgdG8gY2FsbCB0aGUgdHJhbnNmb3JtX3NpemUgZnVuY3Rpb24uCgoyMDExLTA3LTIxIDEzOjU2OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBiYXNldHJhbnM6IHJlbW92ZSB1c2VsZXNzIHZhcmlhYmxlcyBmcm9tIHByZXBhcmVfb3V0cHV0X2J1ZmZlcgoJICBSZW1vdmUgdGhlIGNhcHMgYW5kIHNpemUgZnJvbSB0aGUgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIGZ1bmN0aW9uLiB3aXRoCgkgIGJ1ZmZlcnBvb2xzIGFuZCBjYXBzbmVnbyBkb25lIGRpZmZlcmVudGx5LCB3ZSBkb24ndCBuZWVkIHRoaXMgaW4gbW9zdCBjYXNlcyBhbmQKCSAgaWYgd2UgZG8sIHdlIGNhbiBzaW1wbHkgdXNlIHRoZSB0cmFuc2Zvcm1fc2l6ZSBmdW5jdGlvbiBhbmQgZ2V0IHRoZSBjYXBzIGZyb20KCSAgdGhlIHNyY3BhZC4KCjIwMTEtMDctMTggMTc6MjI6NDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkgIGRvY3M6IGNsYXJpZnkgY2xvY2tzIGRvY3MgaW4gbWFudWFsCgkgIEFmdGVyIGEgcXVlc3Rpb24gb24gdGhlIG1haWxpbmcgbGlzdCwgbWVudGlvbiB0aGF0ICpmbHVzaGluZyogc2Vla3MgcmVzZXQgdGhlCgkgIHJ1bm5pbmcgdGltZS4KCjIwMTEtMDctMTYgMjI6MDA6MTUgKzAzMDAgIFJhbHVjYSBFbGVuYSBQb2RpdWMgPHJhbHVjYWVsZW5hMTk4NUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgZG9jczogcmVtb3ZlZCBkb3VibGUgbmVnYXRpb24gaW4gZXZlbnQvbWVzc2FnZSBzZXEgbnVtIGRlc2NyaXB0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTQ3NTEKCjIwMTEtMDctMTYgMTI6MjE6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICB0ZXN0czogbWFrZSBzdXJlIG5vbi1BU0NJSSBjaGFycyBpbiBmaWxlbmFtZXMgYXJlIGVzY2FwZWQgd2hlbiBjcmVhdGluZyBVUklzIGZyb20gdGhlbQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU0NjczCgoyMDExLTA3LTE1IDE2OjA0OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRvbid0IGFjY2lkZW50YWxseSBkaXNhYmxlIHRoZSBwb29sCgkgIFdoZW4gd2Ugc2V0IGEgcG9vbCBhbmQgaXQgaXMgdGhlIHNhbWUgYXMgdGhlIG9sZCBwb29sLCBkb24ndCBkaXNhYmxlIHRoZSBwb29sLgoKMjAxMS0wNy0xNSAxMzoyNzoxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGNhbGwgcmVsZWFzZV9idWZmZXIgYWZ0ZXIgYWxsb2MKCSAgQWZ0ZXIgd2UgYWxsb2NhdGVkIGEgbmV3IGJ1ZmZlciwgY2FsbCB0aGUgcmVsZWFzZV9idWZmZXIgdm1ldGhvZCB0byBwdXQgdGhlIG5ldwoJICBidWZmZXIgaW4gdGhlIHBvb2wgaW5zdGVhZCBvZiBhc3N1bWluZyB0aGF0IHRoZSBwb29sIHVzZXMgdGhlIGRlZmF1bHQKCSAgcmVsZWFzZV9tZXRob2QgaW1wbGVtZW50YXRpb24uCgoyMDExLTA3LTE1IDExOjUyOjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogYWRkIG1hY3JvIHRvIGNoZWNrIGZvciBmbHVzaGluZwoKMjAxMS0wNy0xNSAxMTo1MTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBpbXByb3ZlIGRlYnVnIG1lc3NhZ2UKCjIwMTEtMDctMTQgMTI6NDU6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggcHJpbnRmIGZvcm1hdCBpbiBkZWJ1ZyBtZXNzYWdlCgoyMDExLTA3LTEzIDExOjM5OjE1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVuc2V0IFBMQVlJTkcgdHJhbnNpdGlvbiBmbGFnIHdoZW4gdHJhbnNpdGlvbiBjb21wbGV0ZWQKCjIwMTEtMDctMTIgMTQ6MDc6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IHJlc2l6ZSBmdW5jdGlvbiBzb21lIG1vcmUKCSAgRG9uJ3QgcmVtb3ZlIG1lbW9yeSBibG9ja3MgZnJvbSB0aGUgYnVmZmVyIHdoZW4gd2UgY2xpcCBhbmQgcmVzaXplLCBpbnN0ZWFkIHNldAoJICB0aGUgbWVtb3J5IG9mZnNldCBhbmQgc2l6ZSB0byAwLiBUaGlzIGFsbG93cyB1cyB0byBtYWtlIHRoZSBidWZmZXIgbGFyZ2VyIGFnYWluCgkgIGxhdGVyLgoKMjAxMS0wNy0xMiAxMzo0MDozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGltcHJvdmUgc2l6ZSBoYW5kbGluZwoJICBBbHNvIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSBtdWx0aXBsZSBlbXB0eSBtZW1vcnkgYmxvY2tzIGFyZSBpbiB0aGUgYnVmZmVyLgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0aGlzLgoKMjAxMS0wNy0xMiAxMjowMDo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCBfcmVzaXplIHNvbWUgbW9yZQoJICBBZGQgbW9yZSBkZWJ1Zy4KCSAgQWxvdyByZXNpemUgdG8gMCBieXRlcy4KCSAgRG8gY2xpcHBpbmcgY29ycmVjdGx5LgoJICBBZGQgbW9yZSB1bml0IHRlc3RzLiBBbHNvIGFkZCBhIGZhaWxpbmcgdGVzdDogd2hlbiB3ZSByZXNpemUgdG8gMCBhbmQgdGhlbgoJICB0cnkgdG8gcmVzaXplIGJhY2sgdG8gdGhlIG9yaWdpbmFsIHNpemUgaXQgZmFpbHMgYmVjYXVzZSB0aGUgbWVtb3J5IHdhcwoJICByZW1vdmVkLgoKMjAxMS0wNy0xMSAxODowMDo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggbmVnYXRpdmUgb2Zmc2V0cyBzb21lIG1vcmUKCSAgQWxsb3cgZm9yIG5lZ2F0aXZlIG9mZnNldHMgd2hlbiBkb2luZyBtZW1vcnkgY29weSBhbmQgc2hhcmUuCgkgIEFkZCBmYXN0IHBhdGggaW4gdGhlIF9nZXRfc2l6ZXMoKSBmdW5jdGlvbi4KCSAgRml4IHJlc2l6ZSBmb3IgbmVnYXRpdmUgb2Zmc2V0IGFuZCBleHBhbmRpbmcgdGhlIGJ1ZmZlci4KCSAgQWRkIHNvbWUgdW5pdCB0ZXN0cy4KCjIwMTEtMDctMTEgMTY6NDM6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogYWRkIGRlZnMgZm9yIG5ldyBtZXRob2RzCgoyMDExLTA3LTExIDE2OjQyOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCBfcmVzaXplIGJldHRlcgoKMjAxMS0wNy0xMSAxNjoxNzo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogYWRkIGFwaSB0byBnZXQgdGhlIGN1cnJlbnQgbWVtb3J5IG9mZnNldAoJICBBbHNvIHJldHVybiB0aGUgb2Zmc2V0IGluIGEgR3N0TWVtb3J5IGJsb2NrIHdpdGggdGhlIGdldF9zaXplcygpIG1ldGhvZC4gVGhpcwoJICBhbGxvd3MgdXMgdG8gZmlndXJlIG91dCBob3cgbXVjaCBwcmVmaXggdGhlcmUgaXMgdW51c2VkLgoJICBDaGFuZ2UgdGhlIHJlc2l6ZSBmdW5jdGlvbiBzbyB0aGF0IGEgbmVnYXRpdmUgb2Zmc2V0IGNhbiBiZSBnaXZlbi4gVGhpcyB3b3VsZAoJICBtYWtlIGl0IHBvc3NpYmxlIHRvIHJlc2l6ZSB0aGUgYnVmZmVyIHNvIHRoYXQgdGhlIHByZWZpeCBiZWNvbWVzIGF2YWlsYWJsZS4KCSAgQWRkIGdzdF9idWZmZXJfZ2V0X3NpemVzKCkgdG8gcmV0dXJuIHRoZSBvZmZzZXQgYW5kIG1heHNpemUgYXMgd2VsbCBhcyB0aGUgc2l6ZS4KCSAgQWxzbyBjaGFuZ2UgdGhlIGJ1ZmZlciByZXNpemUgbWV0aG9kIHNvIHRoYXQgd2UgY2FuIHNwZWNpZnkgYSBuZWdhdGl2ZSBvZmZzZXQKCSAgdG8gcmVtb3ZlIHByZWZpeCBieXRlcy4KCjIwMTEtMDctMTEgMTQ6NDA6MDcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIHNvbWUgbWVtb3J5IHdyYXBwZWQgYnVmZmVyIGFsbG9jYXRpb24gaGVscGVycwoKMjAxMS0wNy0xMSAxMjoxMToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3Q6IGNsZWFudXAgaGVhZGVycwoKMjAxMS0wNy0xMSAxMTo0MDowOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGVhdCBpbmNvbWluZyBjYXBzIGV2ZW50CgkgIC4uLiBhcyBpdCBpcyB0eXBpY2FsbHkgdXAgdG8gYmFzZWNsYXNzIHRvIHNldCBwcm9wZXIgc3JjIGNhcHMuCgoyMDExLTA3LTExIDExOjM3OjI4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhdm9pZCBpbmFkdmVydGVudGx5IGRyb3BwaW5nIGFuIGV2ZW50CgkgIC4uLiBwYXJ0aWN1bGFybHkgYSBub24tc3RpY2t5IHNlcmlhbGl6ZWQgZXZlbnQgdGhhdCBoYXBwZW5zIHRvIHBhc3MKCSAgd2hlbiBhbiBldmVudCB1cGRhdGUgaXMgcGVuZGluZy4KCjIwMTEtMDctMDQgMTI6NTg6NTQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdHJ5IGhhcmRlciB0byBhcnJhbmdlIGluY3JlYXNpbmcgcG9zaXRpb24gcmVwb3J0aW5nCgkgIC4uLiByYXRoZXIgdGhhbiBoYXZpbmcgYSBtb21lbnRhcnkgZGVjcmVhc2luZyBvbmUgd2hpbGUgdHJhbnNpdGlvbmluZwoJICB0byBQTEFZSU5HLgoJICBGaXhlcyAjNjI4MDIxLgoKMjAxMS0wNy0wOCAxNjowNzoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgQVBJIHRvIC5kZWYgZmlsZQoKMjAxMS0wNy0wNiAxNToxMzozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBtYWtlIGlkeCBhcmd1bWVudCB0byBnc3RfYnVmZmVyX3Rha2VfbWVtb3J5KCkgc2lnbmVkCgkgIFNpbmNlIC0xIGlzIGFjY2VwdGFibGUsIGl0IHNob3VsZCBiZSBzaWduZWQuCgoyMDExLTA3LTA3IDE0OjU3OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IGludmFsaWQgbWVtb3J5IGFjY2VzcyBpbiBkZWJ1ZyBtZXNzYWdlcwoJICBEb24ndCB1c2UgYnVmZmVycyB0aGF0IHdlJ3ZlIGdpdmVuIGF3YXkgb3IgdW5yZWZlZCBpbiBkZWJ1ZyBtZXNzYWdlcy4KCjIwMTEtMDctMDcgMTE6MTQ6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZml4IGFmdGVyIG1lcmdlCgoyMDExLTA3LTA3IDExOjEzOjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jCgoyMDExLTA3LTA2IDE2OjA4OjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIG1lbXNldCBmdW5jdGlvbgoKMjAxMS0wNy0wNiAxMjowOToyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IGd1YXJkcyBmb3IgZ3N0X2J1ZmZlcl90YWtlX21lbW9yeSgpCgkgIFNpbmNlIGlkeCA9IC0xIG1ha2VzIGl0IGRlZmF1bHQgdG8gaWR4PWxlbiwgbGVuIGlzIGFsc28KCSAgYSB2YWxpZCBpbnB1dCBpZHguCgoyMDExLTA3LTA1IDE2OjM4OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGFkZCBjbGFzcyByZWYvdW5yZWYKCjIwMTEtMDctMDUgMTY6MzI6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgdGVzdDogZGlzYWJsZSBmYWlsaW5nIHVuaXQgdGVzdHMKCSAgRGlzYWJsZSB1bml0IHRlc3RzIHRoYXQgYXJlIGZhaWxpbmcgdW50aWwgc29tZW9uZSBwb3J0cyB0aGlzIHRvIDAuMTEKCjIwMTEtMDctMDUgMTY6MjA6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHF1ZXVlOiBmaXggdW5pdCB0ZXN0CgkgIFNldCB0aGUgcmlnaHQgcG9zaXRpb24gbWVtYmVyIGluIHRoZSBzZWdtZW50IGV2ZW50LgoJICBBZGQgc29tZSBkZWJ1ZyB0byBxdWV1ZS4KCjIwMTEtMDctMDUgMDA6MTA6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBnc3Q6IG1ha2UgY29tcGlsZXIgd2FybiBhYm91dCB1bnN0YWJsZSBBUEkgaWYgR1NUX1VTRV9VTlNUQUJMRV9BUEkgaXMgbm90IGRlZmluZWQKCSAgQW5kIGRlZmluZSBpdCBpbiBvdXIgb3duIGJ1aWxkLgoKMjAxMS0wNy0wNSAwMDoxMjoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZpbGVzIGZvciBsYXRlc3QgQVBJIGNoYW5nZXMvYWRkaXRpb25zCgoyMDExLTA2LTMwIDE3OjM5OjM3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkbyBub3Qgc25lYWtpbHkgbWVzcyB3aXRoIGN1cnJlbnQgb2Zmc2V0IHdoZW4gdXBkYXRpbmcgbGVuZ3RoCgoyMDExLTA2LTI4IDIyOjE4OjQ2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiB1bnJlZiBhbGxvY2F0aW9uIHF1ZXJ5IHdoZW4gbm8gbG9uZ2VyIG5lZWRlZAoKMjAxMS0wNi0yOCAxOTowMTo1NyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogYXZvaWQgaXRlcmF0aW5nIG92ZXIgYSBzaW5nbGUgTlVMTCBwYWQKCjIwMTEtMDYtMjAgMjM6Mjg6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGludGVyZmFjZS5jOgoJKiBnc3QvZ3N0aW50ZXJmYWNlLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGludGVyZmFjZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIFJlbW92ZSBHc3RJbXBsZW1lbnRzSW50ZXJmYWNlCgkgIEl0IHdhcyBhIGJpdCB0b28gY2xldmVyLCBhbmQgZGlkbid0IHJlYWxseSB3b3JrIGFzIGFuIEFQSSwKCSAgY29uZnVzaW5nIHBlb3BsZSB0byBubyBlbmQuIEJldHRlciBpbXBsZW1lbnQgc3BlY2lmaWMgbWV0aG9kcwoJICB3aGV0aGVyIGFuIGludGVyZmFjZSBpcyB1c2FibGUvYXZhaWxhYmxlL3JlYWR5IG9uIHRoZSBpbnRlcmZhY2UKCSAgaXRzZWxmLCBvciBldmVuIGFkZCBHRXJyb3IgYXJndW1lbnRzLCByYXRoZXIgdGhhbiB0cnkgdG8gaGF2ZQoJICBwZXItaW5zdGFuY2UgaW50ZXJmYWNlcy4KCjIwMTEtMDYtMjUgMTM6NTE6NTIgLTA3MDAgIEVtbWFudWVsIFBhY2F1ZCA8ZW1tYW51ZWwucGFjYXVkQGxhcHAuaW4ycDMuZnI+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBDaGVjayBmb3IgUFJfU0VUX05BTUUgYmVmb3JlIHVzaW5nCgkgIEZpeGVzOiAjNjUzMTcyLgoJICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCjIwMTEtMDYtMjMgMTE6Mjc6NTIgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2OWI5ODFmIHRvIDYwNWNkOWEKCjIwMTEtMDYtMjMgMTg6MDM6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBhZGQgbWV0aG9kIHRvIGNoZWNrIGZvciBtZXRhZGF0YQoJICBBZGQgYSBtZXRob2QgdG8gY2hlY2sgaWYgYSBjZXJ0YWluIG1ldGFkYXRhIGlzIHN1cHBvcnRlZCBpbiB0aGUgQUxMT0NBVElPTgoJICBxdWVyeS4KCjIwMTEtMDYtMjIgMTg6MDc6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJICBkb2NzOiB1cGRhdGUgZGVzaWduIGRvY3MgYSBsaXR0bGUKCSAgVXBkYXRlIHRoZSBkZXNpZ24gZG9jIHdpdGggdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHZpZGVvbWV0YWRhdGEuCgoyMDExLTA2LTIyIDE3OjEyOjM0ICswMjAwICBLb29wIE1hc3QgPGt3bSBhdCBGcmVlQlNELm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogdXNlICYgaW5zdGVhZCBvZiAmJiBmb3IgbWFza2luZyBiaXRzCgkgIFNlZSAjNjUzMTM3CgoyMDExLTA2LTIyIDE3OjA5OjUyICswMjAwICBLb29wIE1hc3QgPGt3bSBhdCBGcmVlQlNELm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZW1vdmUgcmVkdW5kYW50ICgpCgkgIFNlZSAjNjUzMTM3CgoyMDExLTA2LTIyIDE3OjA1OjI3ICswMjAwICBLb29wIE1hc3QgPGt3bSBhdCBGcmVlQlNELm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHNlZWtzdG9wCgkgIFNlZSAjNjUzMTM3CgoyMDExLTA2LTIyIDE2OjU4OjUzICswMjAwICBLb29wIE1hc3QgPGt3bSBhdCBGcmVlQlNELm9yZz4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGNhc3QgdG8gcmlnaHQgdHlwZQoJICBTZWUgIzY1MzEzNwoKMjAxMS0wNi0yMiAxNjozODowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICB1cmk6IHJlbW92ZSBzb21lIF9mdWxsIHZhcmlhbnRzCgoyMDExLTA2LTIyIDE2OjE2OjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgdGFnczogUmVtb3ZlIGNyYXp5IHRhZyBtZXNzYWdlcwoJICBEb24ndCBtaXggbWVzc2FnZXMgYW5kIHBhZHMgYW5kIHRhZ3MuCgkgIE1ha2UgdGhlIHNpbmsgcG9zdCB0YWcgbWVzc2FnZXMgd2hlbiBhIHRhZyBldmVudCBpcyByZWNlaXZlZC4KCSAgU2luY2UgdGFncyBhcmUgc3RpY2t5IG9uIHBhZHMgbm93LCB0aGV5IGNhbiBiZSByZXRyaWV2ZWQgZnJvbSB0aGVyZQoJICB3aGVuIG5lZWRlZC4KCjIwMTEtMDYtMjIgMTI6Mjg6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgY2FwczogSGlkZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzCgkgIE1ha2UgdGhlIEFycmF5IG9mIHN0cnVjdHVyZXMgcHJpdmF0ZS4gVGhpcyBzaG91bGQgYWxsb3cgdXMgdG8gaW1wbGVtZW50CgkgIHRoZSBhcnJheSBtb3JlIGVmZmljaWVudGx5IG9yIHdpdGggc29tZSBwcmVhbGxvY2F0ZWQgc3RydWN0dXJlcyB3aGVuCgkgIHdlIHdhbnQgdG8gbGF0ZXIuCgkgIEFkZCBhIG5ldyBtZXRob2QgdG8gY2xlYW4gdXAgYSBzdGF0aWMgc3RydWN0dXJlIHNvIHRoYXQgd2UgY2FuIHJlbW92ZSBzb21lIGNvZGUKCSAgdGhhdCBwb2tlcyBpbnRvIHRoZSBwcml2YXRlIGJpdHMgb2YgdGhlIGNhcHMuCgoyMDExLTA2LTIyIDEyOjI2OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBuZWdvdGlhdGlvbiBkZXNpZ24gZG9jCgoyMDExLTA2LTIyIDExOjQyOjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIG1lbW9yeTogcmVuYW1lIEdzdE1lbW9yeUFsbG9jYXRvciAtPiBHc3RBbGxvY2F0b3IKCSAgc2ltcGxpZnkgdGhlIG5hbWUgb2YgdGhlIGFsbG9jYXRvciBvYmplY3QuCgoyMDExLTA2LTIxIDE3OjU0OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGNvbmZpZ3VyZS5hYwoJICB3aW4zMi9jb21tb24vY29uZmlnLmgKCSAgd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaAoKMjAxMS0wNi0yMSAxNzo0NzozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVycG9vbC50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBidWZmZXJwb29sIGRlc2lnbiBkb2MKCjIwMTEtMDYtMjEgMTc6NDc6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaW1wcm92ZSBkZWJ1Z2dpbmcKCjIwMTEtMDYtMjEgMTU6MTU6NDQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbWFudWFsL2NvbW11bmljYXRpb24ucG5nOgoJICBpbWFnZXM6IHN0cmlwIGltYWdlcyBvZiBleHRyYSB0ZXh0IHRhZ3MKCjIwMTEtMDYtMjEgMTI6MzI6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiByZXR1cm4gZW1wdHkgbWV0YWRhdGEgYXJyYXkKCSAgUmV0dXJuIGEgc3RyaW5nIGFycmF5IHdpdGggTlVMTCBpbnN0ZWFkIG9mIE5VTEwgZnJvbSB0aGUgZGVmYXVsdCBnZXRfbWV0YXMKCSAgZnVuY3Rpb24uCgoyMDExLTA2LTIxIDEyOjMxOjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHVzZSBldmVudCBmdW5jdGlvbiBkaXJlY3RseQoJICBXZSB3aWxsIG5ldmVyIGdvIGluIHRoaXMgY29kZSBwYXRoIGZvciBDQVBTIGV2ZW50cyBzbyBkaXJlY3RseSBjYWxsIHRoZSBldmVudAoJICBmdW5jdGlvbi4KCjIwMTEtMDYtMjEgMTA6Mjk6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbm90aWZ5IGNhcHMgYWZ0ZXIgd2Ugc3RvcmUgdGhlIG5ldyBjYXBzCgkgIG5vdGlmeSBjYXBzIGFmdGVyIHdlIHN0b3JlIHRoZSBuZXcgY2FwcyBzbyB0aGF0IHRoZSBuZXcgY2FwcyBhcmUgYWN0dWFsbHkKCSAgdmlzaWJsZSBmb3IgdGhlIGFwcC4KCjIwMTEtMDYtMjAgMTc6MzI6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogYWN0aXZhdGUgdGhlIGJ1ZmZlcnBvb2wKCSAgYWx3YXlzIGFjdGl2YXRlIHRoZSBidWZmZXJwb29sLCBldmVuIGlmIHdlIGdldCBpdCBmcm9tIHRoZSBhbGxvY2F0aW9uCgkgIHF1ZXJ5LgoKMjAxMS0wNi0yMCAxNzozMjoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhbHdheXMgYWN0aXZhdGUgdGhlIHBvb2wgd2UgZ2V0CgkgIEFjdGl2YXRlIHRoZSBwb29sIHdoZW4gd2UgZ2V0IGl0IGZyb20gdGhlIGFsbG9jYXRpb24gcXVlcnkuCgoyMDExLTA2LTIwIDE2OjQ3OjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBpbnByb3ZlIGFsbG9jYXRpb24gaGFuZGxpbmcKCSAgQWRkIHZtZXRob2QgZm9yIHN1YmNsYXNzZXMgdG8gaW5mbHVlbmNlIHRoZSBwb29sIGFuZCBhbGxvY2F0b3IuCgkgIExvZyB3aGVuIHF1ZXJ5IGZhaWxzLgoJICBSZXNwZWN0IG5lZ290aWF0ZWQgYWxsb2NhdG9yIGFuZCBhbGlnbm1lbnQuCgoyMDExLTA2LTIwIDE2OjQ2OjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IEltcHJvdmUgbG9nZ2luZwoJICBMb2cgd2hlbiB0aGluZ3MgZmFpbC4KCSAgRml4IGEgcXVlcnkgbGVhay4KCjIwMTEtMDYtMjAgMTY6NDQ6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGltcHJvdmUgZGVidWcKCSAgTG9nIGEgZGVidWcgbGluZSB3aGVuIHRoZXJlIGlzIG5vIHRhcmdldCBwYWQgYW5kIHdoZW4gdGhpcyBtYWtlcyB0aGUgZGVmYXVsdAoJICBpbXBsZW1lbnRhdGlvbiBmYWlsLgoJICBUYWtlIHRoZSBpbnRlcm5hbCBwYWRzIGRpcmVjdGx5IHdoZW4gd2UgY2FuLgoKMjAxMS0wNi0yMCAxNTo0MDo1MSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogYnVtcCByZXF1aXJlZCBHTGliIHRvIDIuMjYKCjIwMTEtMDYtMjAgMTM6MjY6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBhZGQgZnVuY3Rpb24gdG8gc2V0IG1ldGFkYXRhIGFwaQoJICBBZGQgYSBmdW5jdGlvbiB0byByZXRyaWV2ZSBhbiBhcnJheSBvZiBzdXBwb3J0ZWQgbWV0YWRhdGEgYXBpcyBmcm9tIHRoZSB0aGUKCSAgYnVmZmVycG9vbC4KCSAgQWRkIGZ1bmN0aW9ucyB0byBjb25maWd1cmUgYW5kIHF1ZXJ5IHRoZSBjb25maWd1cmVkIG1ldGFkYXRhIGFwaXMgaW4gYQoJICBidWZmZXJwb29sIGNvbmZpZ3VyYXRpb24uCgoyMDExLTA2LTE5IDEzOjE1OjE5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBNaW5vciBmaXggdG8gZG9jcwoJICBBZGRzIG1pc3NpbmcgcGFyYW1ldGVyIHRvIGRvY3Mgb2YgZ3N0X2J1ZmZlcl9jb3B5X3JlZ2lvbgoKMjAxMS0wNi0xOCAxNzozNTo0MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlIGRvX2V2ZW50X2FjdGlvbnMKCSAgZG9fZXZlbnRfYWN0aW9ucyB3YXMgYWx3YXlzIHVzZWQgYXMgVFJVRQoKMjAxMS0wNi0xOCAxNDozODo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJ1bXAgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHJlcXVpcmVtZW50IHRvID49IDAuNi44CgkgIEZvciAtLWFkZC1pbml0LXNlY3Rpb24KCjIwMTEtMDYtMTYgMTc6Mjc6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgQnVtcCBnaXQgdmVyc2lvbiBhZnRlciB1bnBsYW5uZWQgMC4xMC4zNSByZWxlYXNlCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwLjM1JwoKMjAxMS0wNi0xNCAxNzo1NzoyMSArMDIwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEZpeCB0eXBvIGluIGRvY3VtZW50YXRpb24KCSAgRml4ZXMgIzY1MjU3Ny4KCjIwMTEtMDYtMTYgMTA6NTU6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIFJldmVydCAidXRpbHM6IHJlbW92ZSBzb21lIG1hY3JvcyBub3cgaW4gZ2xpYiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBkZTI5YWU3YjkyOWNlZGJmNmI5ODM4ZWE1M2IwNWVmYWJkY2U0Y2U3LgoJICBSZS1hZGRzIEdGTE9BVF9UT19MRSwgR0ZMT0FUX1RPX0JFLCBHRE9VQkxFX1RPX0xFLCBhbmQgR0RPVUJMRV9UT19CRS4KCSAgVHVybnMgb3V0IHRoZXNlIGFyZW4ndCBpbiBHTGliIHlldCBhZmVyIGFsbCAoc2luY2Ugd2UgZGlkbid0CgkgIGFjdHVhbGx5IG9wZW4gYSBidWcgdG8gZ2V0IHRoZW0gYWRkZWQuLikKCj09PSByZWxlYXNlIDAuMTAuMzUgPT09CgoyMDExLTA2LTE1IDE5OjE1OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4zNQoJICBUaGlzIGlzIGFuIGFkLWhvYyByZWxlYXNlIHRoYXQgaXMgYWxtb3N0IGlkZW50aWNhbCB0byAwLjEwLjM0OgoJICAqIHdvcmsgYXJvdW5kIEdMaWIgYXRvbWljIG9wcyBBUEkgY2hhbmdlCgkgICogc29tZSBtaW5vciB3aW4zMi9taW5ndyBmaXhlcwoJICAqIGRvbid0IHVzZSBHX0NPTlNUX1JFVFVSTiBpbiBwdWJsaWMgaGVhZGVycwoKMjAxMS0wNi0xNSAxNjo1NjozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBmaXggcmVmY291bnRpbmcgcHJvYmxlbQoKMjAxMS0wNi0wOSAxNzoxMzozNSArMDEwMCAgSmF2aWVyIEphcmTDs24gPGpqYXJkb25AZ25vbWUub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgVXNlICJjb25zdCIgaW5zdGVhZCBHX0NPTlNUX1JFVFVSTgoJICBHX0NPTlNUX1JFVFVSTiB3aWxsIGJlIGRlcHJlY2F0ZWQgc29vbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1MjIxMQoKMjAxMS0wNi0wNCAwMDozMDoxNSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0Y2xvY2tzdHJlc3MuYzoKCSAgV29yayBhcm91bmQgY2hhbmdlcyBpbiBnX2F0b21pYyBBUEkKCSAgU2VlICM2NTE1MTQgZm9yIGRldGFpbHMuICBJdCdzIGFwcGFyZW50bHkgaW1wb3NzaWJsZSB0byB3cml0ZSBjb2RlCgkgIHRoYXQgYXZvaWRzIGJvdGggdHlwZSBwdW5uaW5nIHdhcm5pbmdzIHdpdGggb2xkIGdfYXRvbWljIGhlYWRlcnMgYW5kCgkgIGFzc2VydGlvbnMgaW4gdGhlIG5ldy4gIFRodXMsIG1hY3JvcyBhbmQgYSB2ZXJzaW9uIGNoZWNrLgoKMjAxMS0wNS0yNSAxMzo0MDozMCArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IFBsYWNhdGUgZ2NjIGJ5IGRlZmluaW5nIEVXT1VMREJMT0NLIHRvIHNvbWV0aGluZwoKMjAxMS0wNS0yNSAxMjo0Nzo1MSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBGaXggV0FLRV9FVkVOVCgpIHRvIGJlaGF2ZSBwb3NpeGx5IG9uIFdpbmRvd3MKCjIwMTEtMDYtMTQgMTU6MTg6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJKiBkb2NzL3JhbmRvbS9zdGF0dXMtMC4xMS0xNC1qdW4tMjAxMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzCgoyMDExLTA2LTEzIDE5OjEwOjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNi0xMyAxNjozMTo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkgIGJ1ZmZlcjogYWRkIGluZGV4IHRvIF90YWtlX21lbW9yeSgpCgkgIEFkZCBhbiBpbmRleCB0byBnc3RfYnVmZmVyX3Rha2VfbWVtb3J5KCkgc28gdGhhdCB3ZSBjYW4gYWxzbyBpbnNlcnQgbWVtb3J5IGF0IGEKCSAgY2VydGFpbiBvZmZzZXQuIFRoaXMgaXMgbW9zdGx5IGludGVyZXN0aW5nIHRvIHByZXBlbmQgYSBoZWFkZXIgbWVtb3J5IGJsb2NrIHRvCgkgIHRoZSBidWZmZXIuCgoyMDExLTA2LTEzIDE2OjMwOjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IGZvcndhcmQgc2NoZWR1bGluZyBxdWVyeQoJICBUaGUgc2NoZWR1bGluZyBxdWVyeSBzaG91bGQgbm90IGJlIGZvcndhcmRlZCwgYmVjYXVzZSBlbGVtZW50cyBuZWVkIHRvIGltcGxlbWVudAoJICBzcGVjaWFsIGNvZGUgdG8gaGFuZGxlIGRpZmZlcmVudCBzY2hlZHVsaW5nIG1ldGhvZHMuCgoyMDExLTA2LTEzIDEyOjA3OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSAgYmFzZXNyYzogQWxsb2NhdG9yIGJ1ZmZlcnMgZnJvbSBuZWdvdGlhdGVkIGFsbG9jYXRvcgoJICBBbGxvY2F0ZSBidWZmZXJzIGZyb20gdGhlIG5lZ290aWF0ZWQgYWxsb2NhdG9yIG9yIGJ1ZmZlcnBvb2wuCgkgIEhhbmRsZSB0aGUgc3RhdGUgb2YgdGhlIGJ1ZmZlcnBvb2wgd2hlbiBmbHVzaGluZy4KCSAgQWRkIGZpbGwgbWV0aG9kIHRvIHB1c2hzcmMuCgoyMDExLTA2LTEzIDEyOjA0OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFkZCBtb3JlIGRlYnVnCgoyMDExLTA2LTEzIDExOjUxOjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogc21hbGwgaW5kZW50YXRpb24gZml4CgoyMDExLTA2LTEzIDExOjUwOjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogcGFzcyB0aGUgYWxsb2NhdG9yIGFzIGNvbnN0CgoyMDExLTA2LTEzIDEwOjE5OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBiYXNlc3JjOiBuZWdvdGlhdGUgYWxsb2NhdGlvbgoJICBBZGQgdm1ldGhvZCB0byBjb25maWd1cmUgYWxsb2NhdGlvbiBtZXRob2RzLgoJICBSZW1vdmUgc29tZSB1bnVzZWQgdmFyaWFibGVzCgoyMDExLTA2LTExIDIwOjQ1OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBhZGQgc29tZSBtb3JlIGNoZWNrcwoJICBNYWtlIHN1cmUgdGhhdCB0aGUgYWxpZ25tZW50IGlzIHZhbGlkLgoJICBXaGVuIHdlIGhhdmUgYSAwIHNpemUgKHZhcmlhYmxlIGJ1ZmZlciBzaXplKSwgd2UgY2FuJ3QgaGF2ZSBhIGJ1ZmZlcnBvb2wuCgoyMDExLTA2LTExIDE5OjU0OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBzZXQgYWxsIGRlZmF1bHQgdmFsdWVzCgkgIEZpbGwgYWxsIHF1ZXJ5IHZhbHVlcyB3aXRoIGdvb2QgZGVmYXVsdHMuCgoyMDExLTA2LTExIDE4OjUyOjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJ1ZmZlcnBvb2w6IHJlbW92ZSBwb3N0Zml4IHBhcmFtZXRlcgoJICBSZW1vdmUgdGhlIHBvc3RmaXggcGFyYW1ldGVyLCBpdCdzIG5vdCB1c2VkIGFuZCBjYW4gYmUgZG9uZSBkaWZmZXJlbnRseS4KCjIwMTEtMDYtMTAgMTc6NTA6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiB1c2Ugc2FtZSBhbGlnbm1lbnQgdmFsdWVzIGFzIEdzdE1lbW9yeQoJICBVc2UgdGhlIHNhbWUgYWxpZ25tZW50IHZhbHVlcyBmb3IgdGhlIGJ1ZmZlcnBvb2wgYXMgd2UgdXNlIGZvciB0aGUgR3N0TWVtb3J5CgkgIEFQSS4KCjIwMTEtMDYtMTAgMTc6MzI6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogdXNlIG5ldyBfY2hlY2tfcmVjb25maWd1cmUoKSBtZXRob2QKCjIwMTEtMDYtMTAgMTc6MzI6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgX2NoZWNrX3JlY29uZmlndXJlKCkgbWV0aG9kCgkgIEFkZCBhIG1ldGhvZCB0byBjaGVjayBhbmQgY2xlYXIgdGhlIFJFQ09ORklHVVJFIGZsYWcgb24gYSBwYWQuCgoyMDExLTA2LTEwIDE2OjQ3OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFkZCBzdXBwb3J0IGZvciBidWZmZXIgaW4gbWVtb3J5CgkgIEZpeCB0aGUgY29kZSB0byBzdXBwb3J0IGFsbG9jYXRpbmcgdGhlIGJ1ZmZlciBhbmQgbWVtb3J5IGluIG9uZSBtZW1vcnkgYmxvY2suCgkgIEFkZCBhbiBleHRyYSB2YXJpYWJsZSB0byBzdG9yZSB0aGUgbWVtb3J5IG9mIHRoZSBidWZmZXIuCgkgIFRoaXMgY29kZSBpcyBkaXNhYmxlZCBzdGlsbCBiZWNhdXNlIG9mIGNvbXBsaWNhdGlvbnMuCgoyMDExLTA2LTEwIDE2OjQ2OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogZXhwb3NlIGRlZmF1bHQgYWxpZ25tZW50CgkgIEV4cG9ydCB0aGUgZ3N0X21lbW9yeV9hbGlnbm1lbnQgdmFyaWFibGUgc28gdGhhdCBvdGhlcnMgY2FuIGtub3cgdGhlIGRlZmF1bHQKCSAgY29uZmlndXJlZCBhbGlnbm1lbnQgb2YgdGhlIHN5c3RlbS4KCjIwMTEtMDYtMTAgMTY6MTk6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogZml4IGlzX3NwYW4KCSAgU3VidHJhY3QgdGhlIG9mZnNldCBvZiB0aGUgcGFyZW50IGZyb20gaXNfc3Bhbi4KCjIwMTEtMDYtMTAgMTM6NTk6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IHJlc3BlY3QgY29uZmlndXJlZCBhbGlnbm1lbnQKCSAgTW92ZSB0aGUgYWxpZ25tZW50IGZyb20gR3N0QnVmZmVyIHRvIEdzdE1lbW9yeS4KCSAgbWFrZSBzdXJlIG1lbW9yeSBpcyBhdCBsZWFzdCBhbGlnbmVkIHRvIHRoZSBjb25maWd1cmVkIHZhbHVlcy4KCjIwMTEtMDYtMTAgMTM6NDA6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIGJ1ZmZlcjogbWFrZSBuZXcgX2J1ZmZlcl9hbGxvY2F0ZSBtZXRob2QKCSAgTWFrZSBhIG5ldyBtZXRob2QgdG8gYWxsb2NhdGUgYSBidWZmZXIgKyBtZW1vcnkgdGhhdCB0YWtlcyB0aGUgYWxsb2NhdG9yIGFuZCB0aGUKCSAgYWxpZ25tZW50IGFzIHBhcmFtZXRlcnMuIFByb3ZpZGUgYSBtYWNybyBmb3IgdGhlIG9sZCBtZXRob2QgYnV0IHByZWZlciB0byB1c2UKCSAgdGhlIG5ldyBtZXRob2QgdG8gZW5jb3VyYWdlIHBsdWdpbnMgdG8gbmVnb3RpYXRlIHRoZSBhbGxvY2F0b3IgcHJvcGVybHkuCgoyMDExLTA2LTEwIDEyOjQ0OjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRvY3M6IHVwZGF0ZSBmb3IgZ3N0X2Jhc2Vfc3JjX3NldF9keW5hbWljX3NpemUKCSAgQWRkIHRvIHNlY3Rpb25zIGZpbGUgYW5kIGFkZCBTaW5jZTogbWFya2VyLiBBbHNvIHVwZGF0ZQoJICB3aW4zMiAuZGVmIGZpbGUuCgkgIEFQSTogZ3N0X2Jhc2Vfc3JjX3NldF9keW5hbWljX3NpemUoKQoKMjAxMS0wNi0xMCAxMzo0NDoxOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgZGVzaWduOiBwYXJ0LWJ1ZmZlcmxpc3QudHh0IHdhcyBtZXJnZWQgaW50byBhbm90aGVyIGRvYwoKMjAxMS0wNi0xMCAxMzozNDo1OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBVcGRhdGUgc2VjdGlvbnMgZmlsZXMgZm9yIGFkZGVkL3JlbW92ZWQgc3ltYm9scwoKMjAxMS0wNi0xMCAxMzoxMDo0MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGZvciBhZGRlZC9yZW1vdmVkIHN5bWJvbHMKCjIwMTEtMDYtMTAgMTM6MDQ6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBiYXNlc3JjOiBhZGQgZmlsbCB2bWV0aG9kIHRvIGJhc2VzcmMKCSAgQWRkIGEgbmV3IGZpbGwgdmlydHVhbCBtZXRob2QgdG8gYmFzZXNyYy4gVGhlIHB1cnBvc2Ugb2YgdGhpcyBtZXRob2QgaXMgdG8gZmlsbAoJICBhIHByb3ZpZGVkIGJ1ZmZlciB3aXRoIGRhdGEuCgkgIEFkZCBhIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgdGhlIGNyZWF0ZSBtZXRob2QgdGhhdCBhbGxvY2F0ZXMgYSBidWZmZXIgYW5kCgkgIGNhbGxzIHRoZSBmaWxsIG1ldGhvZCBvbiBpdC4gVGhpcyB3b3VsZCBhbGxvdyB0aGUgYmFzZSBjbGFzcyB0byBpbXBsZW1lbnQKCSAgYnVmZmVycG9vbCBhbmQgYWxsb2NhdG9yIG5lZ290aWF0aW9uIG9uIGJlaGFsZiBvZiB0aGUgc3ViY2xhc3Nlcy4KCSAgRml4IHRoZSBibG9ja3NpemUgcHJvcGVydHkuCgkgIE1ha2UgZmlsZXNyYyB1c2UgdGhlIG5ldyBmaWxsIG1ldGhvZC4KCjIwMTEtMDYtMTAgMTI6MDk6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmMKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmgKCSAgZ3N0L2dzdHBhZC5oCgkgIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmMKCSAgZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaAoKMjAxMS0wNi0xMCAxMTo1NTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBldmVudDogYWRkIHJlc2V0X3RpbWUgYm9vbGVhbiB0byBmbHVzaF9zdG9wIGV2ZW50CgkgIEFkZCBhIGJvb2xlYW4gdG8gdGhlIGZsdXNoX3N0b3AgZXZlbnQgdG8gbWFrZSBpdCBwb3NzaWJsZSB0byBpbXBsZW1lbnQgZmx1c2hlcwoJICB0aGF0IGRvbid0IHJlc2V0X3RpbWUuCgkgIE1ha2UgYmFzZXNpbmsgcG9zdCBhc3luY19kb25lIHdpdGggdGhlIHJlc2V0X3RpbWUgcHJvcGVydHkgZnJvbSB0aGUgZmx1c2ggc3RvcAoJICBldmVudC4KCSAgRml4IHNvbWUgdW5pdCB0ZXN0cwoKMjAxMS0wNi0wOSAxNzoxMzozNSArMDEwMCAgSmF2aWVyIEphcmTDs24gPGpqYXJkb25AZ25vbWUub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgVXNlICJjb25zdCIgaW5zdGVhZCBHX0NPTlNUX1JFVFVSTgoJICBHX0NPTlNUX1JFVFVSTiB3aWxsIGJlIGRlcHJlY2F0ZWQgc29vbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1MjIxMQoKMjAxMS0wNi0wOSAxMzozNzoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB1c2UgbmV3IGV2ZW50IG1ldGhvZHMgdG8gcmVwbGFjZSBldmVudHMKCSAgVXNpbmcgdGhlIG5ldyBldmVudCBtZXRob2RzLCB3ZSBjYW4gYXRvbWljYWxseSB0cmFuc2ZlciB0aGUgZXZlbnQgZnJvbSB0aGUKCSAgcGVuZGluZyBsaXN0IHRvIHRoZSBhY3RpdmUgbGlzdC4KCjIwMTEtMDYtMDkgMTM6MzY6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IG1ha2UgbWFjcm9zIGZvciBuZXcgbWluaW9iamVjdCBtZXRob2RzCgoyMDExLTA2LTA5IDEzOjM1OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdDogYWRkIG5ldyBtZXRob2RzIHRvIG1hbmFnZSBtaW5pb2JqZWN0IHBvaW50ZXJzCgkgIEFkZCBhIG5ldyBtZXRob2QgdG8gc3RlYWwgdGhlIG1pbmlvYmplY3Qgc3RvcmVkIGF0IGEgbG9jYXRpb24uCgkgIEFkZCBhIG5ldyBtZXRob2QgdG8gc3RvcmUgYSBtaW5pb2JqZWN0IGluIGEgbG9jYXRpb24gYW5kIHRha2luZyBvd25lcnNoaXAKCSAgb2YgdGhlIG1pbmlvYmplY3QuCgoyMDExLTA2LTA5IDEzOjM0OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGZpeCBoZWFkZXIKCjIwMTEtMDYtMDkgMTI6MzE6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogZml4IHNwdXJpb3VzIGluY2x1ZGUKCjIwMTEtMDYtMDkgMTI6MDE6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmMKCjIwMTEtMDYtMDkgMTE6Mzk6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBwYWQ6IGZvcndhcmQgZXZlbnRzIGJ5IGRlZmF1bHQKCSAgQWx3YXlzIGZvcndhcmQgYWxsIGV2ZW50cyBpbiB0aGUgZGVmYXVsdCBoYW5kbGVyLiBQcmV2aW91c2x5IGl0IHVzZWQgdG8gbm90CgkgIGZvcndhcmQgY2FwcyBldmVudHMgYnkgZGVmYXVsdC4gSXQgbWFrZXMgbW9yZSBzZW5zZSB0byBmb3J3YXJkIHRoZSBjYXBzIGV2ZW50cywKCSAgaWYgdGhlIGVsZW1lbnQgaXMgaW50ZXJlc3RlZCBpbiB0aGUgY2FwcywgaXQgd2lsbCBpbXBsZW1lbnQgYW4gZXZlbnQgaGFuZGxlciB0bwoJICByZXRyaWV2ZSB0aGUgY2FwcyBhbmQgdGhlbiBpdCBjYW4gZGVjaWRlIHRvIGZvcndhcmQgb3Igbm90LiBJZiB0aGUgZWxlbWVudCBoYXMKCSAgbm8gZXZlbnQgaGFuZGxlciwgaXQgcHJvYmFibHkganVzdCBkb2Vzbid0IGNhcmUgYWJvdXQgY2FwcyBhbmQgaXQgcHJvYmFibHkgaXMKCSAgYWxzbyBub3QgZ29pbmcgdG8gbW9kaWZ5IHRoZSBkYXRhIGluIGEgd2F5IHRoYXQgbmVlZHMgYSBjYXBzIGNoYW5nZS4KCjIwMTEtMDYtMDkgMTE6MTM6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IHR5cG8gaW4gZG9jcwoKMjAxMS0wNi0wOCAxODoyMjozNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjL2Zkc3JjOiBpbmRpY2F0ZSBkeW5hbWljIHNpemUgaGFuZGxpbmcgdG8gYmFzZXNyYwoKMjAxMS0wNi0wOCAxODoyMjowMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzcmM6IGFkZCBkeW5hbWljIHNpemUgaGFuZGxpbmcKCSAgVGhpcyBhbGxvd3Mgc3ViY2xhc3MgdG8gaW5kaWNhdGUgdGhhdCBzaXplIHJlcG9ydGVkIGJ5IHNyYyBtYXkgbm90IGJlIHN0YXRpYwoJICBhbmQgc2hvdWxkIGFzIHN1Y2ggYmUgdXBkYXRlZCByZWd1bGFybHksIHJhdGhlciB0aGFuIG9ubHkgd2hlbiByZWFsbHkKCSAgbmVlZGVkLgoJICBQYXJ0aWN1bGFyIGV4YW1wbGVzIGFyZSBmaWxlc3JjIG9yIGZkc3JjIHJlYWRpbmcgZnJvbSBhIGZpbGUgdGhhdCBpcyBzdGlsbAoJICBncm93aW5nIChlLmcuIGJlaW5nIGRvd25sb2FkZWQpLgoJICBGaXhlcyAjNjUyMDM3LgoKMjAxMS0wNi0wOCAyMDoxNDoxNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgUmV2ZXJ0ICJiYXNlc3JjOiBTZW5kIGFuIHVwZGF0ZSBORVdTRUdNRU5UIGV2ZW50IGRvd25zdHJlYW0gaWYgdGhlIGR1cmF0aW9uIGNoYW5nZXMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOTM0ZmFmMTYzY2FmMTBlZDNkNTRkODFmZDdiNzkzMDY5OTEzZGZmZC4KCSAgT3JpZ2luYWwgY29tbWl0IGxlYWRzIHRvIHBvc3NpYmx5IHNlbmRpbmcgbmV3c2VnbWVudCBldmVudCBkb3duc3RyZWFtCgkgIGluIHB1bGwgbW9kZS4gIEluIHB1c2ggbW9kZSwgcXVpdGUgc29tZSBkb3duc3RyZWFtIGVsZW1lbnRzCgkgIGFyZSBsaWtlbHkgdG8gb25seSBleHBlY3QgbmV3c2VnbWVudCBldmVudCBmb2xsb3dpbmcgYSBzZWVrIHRoZXkgcGVyZm9ybWVkCgkgIGFuZCBhcyBzdWNoIG1heSBoYXZlIHRoZWlyIHN0YXRlIG1lc3NlZCB1cC4KCjIwMTEtMDYtMDggMTg6MzU6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IGlubGluZSB0aGUgY2xpcCBzZWdtZW50CgoyMDExLTA2LTA4IDE3OjI1OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBtZXNzYWdlOiByZW5hbWUgdmFyaWFibGUKCSAgUmVuYW1lIHRoZSBuZXdfYmFzZV90aW1lIHZhcmlhYmxlIHRvIHJlc2V0X3RpbWUsIHdoaWNoIGxvb2tzIGJldHRlci4KCjIwMTEtMDYtMDggMTY6NDE6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBzZWdtZW50OiBzZXBhcmF0ZSB0aGUgc2VlayBhbmQgc2VnbWVudCBmbGFncwoJICBTZXBhcmF0ZSB0aGUgc2VlayBmbGFncyBhbmQgc2VnbWVudCBmbGFncyBhcyBzZXBhcmF0ZSBlbnVtcyBiZWNhdXNlIHdlIG1pZ2h0CgkgIHdhbnQgdG8gaGF2ZSBkaWZmZXJlbnQgZmxhZ3MgZm9yIGJvdGguCgoyMDExLTA2LTA4IDEzOjQwOjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIG1lc3NhZ2U6IG1vdmUgdGhlIG5ld19iYXNlX3RpbWUgZmxhZyB0byBhc3luY19kb25lCgkgIE1vdmUgdGhlIGZsYWcgdG8gaW5kaWNhdGUgdGhhdCBhIG5ld19iYXNlX3RpbWUgc2hvdWxkIGJlIGRpc3RyaWJ1dGVkIHRvIHRoZQoJICBwaXBlbGluZSwgZnJvbSB0aGUgYXN5bmNfc3RhcnQgdG8gdGhlIGFzeW5jX2RvbmUgbWVzc2FnZS4gVGhpcyB3b3VsZCBhbGxvdyB1cyB0bwoJICBkZWNpZGUgd2hlbiB0byByZXNldCB0aGUgcGlwZWxpbmUgdGltZSBiYXNlZCBvbiBvdGhlciByZWFzb25zIHRoYW4gdGhlCgkgIEZMVVNIX1NUQVJUIGV2ZW50LgoJICBUaGUgbWFpbiBnb2FsIGV2ZW50dWFsbHkgaXMgdG8gbWFrZSB0aGUgRkxVU0ggZXZlbnRzIG5vdCByZXNldCB0aW1lIGF0IGFsbCBidXQKCSAgcmVzZXQgdGhlIHRpbWUgYmFzZWQgb24gdGhlIGZpcnN0IGJ1ZmZlciBvciBzZWdtZW50IHRoYXQgcHJlcm9sbHMgdGhlIHBpcGVsaW5lCgkgIGFnYWluLgoKMjAxMS0wNi0wOCAxMzozOToxOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBVcGRhdGUgZ3N0cmVhbWVyLXNlY3Rpb25zIGZvciBuZXcvcmVtb3ZlZCBBUEkKCjIwMTEtMDYtMDggMTM6MzA6NDkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBnc3RidWZmZXI6IFJlbW92ZSBkZXByZWNhdGVkIEdTVF9CVUZGRVJfKiBtYWNyb3MKCSAgZGF0YSwgc2l6ZSwgbWFsbG9jZGF0YSBhbmQgZnJlZV9mdW5jIG5vIGxvbmdlciBleGlzdC4KCjIwMTEtMDYtMDggMTM6MDY6MTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZm9yIGFkZGVkL3JlbW92ZWQgc3ltYm9scwoKMjAxMS0wNi0wOCAxMjo1ODoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHJlbW92ZSBzZXRjYXBzIGZ1bmN0aW9uCgkgIFJlbW92ZSB0aGUgc2V0Y2FwcyBmdW5jdGlvbiwgZWxlbWVudHMgc2hvdWxkIHVzZSB0aGUgY2FwcyBldmVudCB0byBiZSBpbmZvcm1lZAoJICBvZiB0aGUgZm9ybWF0LgoKMjAxMS0wNi0wOCAxMjowNDo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICBtZW1vcnk6IFJlcXVpcmUgaW1wbGVtZW50YXRpb24gdG8gaW1wbGVtZW50IF9zaGFyZQoJICBSZXF1aXJlIHRoZSBtZW1vcnkgaW1wbGVtZW50YXRpb25zIHRvIGltcGxlbWVudCBhIHNoYXJlIG9wZXJhdGlvbi4gVGhpcyBhbGxvd3MKCSAgdXMgdG8gcmVtb3ZlIHRoZSBmYWxsYmFjayBzaGFyZSBpbXBsZW1lbnRhdGlvbiB3aGljaCB1c2VzIGEgZGlmZmVyZW50IGFsbG9jYXRvcgoJICBpbXBsZW1lbnRhdGlvbiBhbmQgY29tcGxpY2F0ZXMgdGhpbmdzIHRvbyBtdWNoLgoJICBVcGRhdGUgZGVzaWduIGRvYyBhIGJpdC4KCjIwMTEtMDYtMDggMTE6MDM6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIG1lbW9yeTogY2xlYW51cHMgYW5kIGltcHJvdmUgZG9jcwoJICBNYWtlIHRoZSBmYWxsYmFjayBjb3B5IHVzZSB0aGUgc2FtZSBtZW1vcnkgYWxsb2NhdG9yIGFzIHRoZSBvcmlnaW5hbCBvYmplY3QuCgkgIEltcHJvdmUgc29tZSBkb2NzLgoJICBSZXF1aXJlIGFuIGFsbG9jIGZ1bmN0aW9uIHdoZW4gcmVnaXN0ZXJpbmcgYW4gYWxsb2NhdG9yLgoJICBSZW1vdmUgZ3N0X21lbW9yeV9hbGxvY2F0b3JfZ2V0X2RlZmF1bHQoKSBhbmQgbWVyZ2UgdGhlIGZlYXR1cmUgaW4KCSAgZ3N0X21lbW9yeV9hbGxvY2F0b3JfZmluZCgpCgkgIEZpeCBsb2NrcyBvbiB0aGUgaGFzaHRhYmxlLgoJICBSZW1vdmUgZGVmaW5lZCBidXQgbm90LWltcGxlbWVudGVkIGdzdF9tZW1vcnlfc3BhbigpIG1ldGhvZC4KCjIwMTEtMDYtMDcgMTg6MTg6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkgIGRvY3M6IGFkZCBiZWdpbm5pbmdzIG9mIG1lbW9yeSBkZXNpZ24gZG9jCgoyMDExLTA2LTA3IDE3OjU0OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogcGFzcyB1c2VyX2RhdGEgdG8gdGhlIGFsbG9jIGZ1bmN0aW9uCgkgIFBhc3MgdGhlIHVzZXIgZGF0YSB0aGF0IHdhcyBwYXNzZWQgdG8gX3JlZ2lzdGVyIHRvIHRoZSBhbGxvYyBmdW5jdGlvbiBvZiBhbgoJICBhbGxvY2F0b3IuCgoyMDExLTA2LTA3IDE3OjM0OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGZpeCBzb21lIHR5cG9zCgoyMDExLTA2LTA3IDE3OjAzOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJICBmaWxlc3JjOiByZW1vdmUgTU1BUCBjb2RlCgkgIFJlbW92ZSB0aGUgbW1hcCBjb2RlLCBpdCB3YXMgZGlzYWJsZWQgYW5kIHByb2JhYmx5IG5lZWRzIGEgY29tcGxldGUgcmV3cml0ZQoJICBhbnl3YXkgaWYgdGhpcyBpcyB0byBiZSBwb3J0ZWQgdG8gMC4xMS4KCjIwMTEtMDYtMDcgMTY6MzU6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IGFkZCBtZXRob2RzIHRvIHF1ZXJ5IGFsbG9jYXRvcnMKCSAgQWRkIEFQSSB0byBhZGQgYW5kIHF1ZXJ5IGFsbG9jYXRvciBpbXBsZW1lbnRhdGlvbnMgdG8vZnJvbSB0aGUgQUxMT0NBVElPTiBxdWVyeS4KCjIwMTEtMDYtMDcgMTY6MTQ6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IHVzZSBhbGxvY2F0b3JzIHRvIGFsbG9jYXRlIG1lbW9yeQoJICBSZW5hbWUgdGhlIEdzdE1lbW9yeUltcGwgdG8gR3N0TWVtb3J5QWxsb2NhdG9yIGJlY2F1c2UgdGhhdCdzIHJlYWxseSB3aGF0IGl0IGlzLgoJICBBZGQgYW4gYWxsb2Mgdm1ldGhvZCB0byB0aGUgYWxsb2NhdG9yIG1lbWJlcnMuCgkgIEltcHJvdmUgcmVnaXN0cmF0aW9uIG9mIGFsbG9jYXRvcnMuCgkgIEFkZCBtZXRob2RzIHRvIGdldCBhbmQgc2V0IHRoZSBkZWZhdWx0IGFsbG9jYXRvcgoJICBBbHdheXMgdXNlIGFuIGFsbG9jYXRvciB0byBhbGxvY2F0ZSBtZW1vcnksIHVzZSB0aGUgZGVmYXVsdCBhbGxvY2F0b3Igd2hlbiBOVUxMCgkgIGlzIHBhc3NlZC4KCSAgQWRkIHVzZXJfZGF0YSB0byB0aGUgYWxsb2NhdG9yIEluZm8gc28gdGhhdCB3ZSBjYW4gcGFzcyBleHRyYSBpbmZvIHRvIHRoZQoJICBhbGxvY2F0b3IgbmV3IG1ldGhvZC4KCjIwMTEtMDYtMDcgMTM6MDM6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgIGRvY3M6IG1pbm9yIGZpeCBhbmQgY2xhcmlmaWNhdGlvbgoKMjAxMS0wNi0wNyAxMzozODozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogbW92ZSBzb21lIG1vcmUgZGVmaW5lcyBvbiB0b3AKCjIwMTEtMDYtMDcgMTM6MjU6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZml4IHNvbWUgY2lyY3VsYXIgaW5jbHVkZXMKCSAgdHlwZWRlZiBzb21lIHN0cnVjdHMgYmVmb3JlIGluY2x1ZGluZyBvdGhlciBmaWxlcyB0byBhdm9pZCBjaXJjdWxhciBkZXBlbmRlbmNpZXMKCSAgaW4gdGhlIGhlYWRlciBmaWxlcy4KCjIwMTEtMDYtMDcgMTE6MDE6MzYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZm9yIGFkZGVkL3JlbW92ZWQgc3ltYm9scwoKMjAxMS0wNi0wNiAxMjoyMzowNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSAgY2hlY2svdGVlOiBQYWRzIG5lZWQgdG8gYmUgYWN0aXZhdGVkIGJlZm9yZSBjYXBzIGFyZSBzZXQKCSAgQWxzbyBhZGQgZGVidWdnaW5nIHRvIGZpZ3VyZSBvdXQgd2hhdCdzIGdvaW5nIG9uCgoyMDExLTA2LTA3IDEwOjUyOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogcmVtb3ZlIHByb3h5X3NldGNhcHMKCSAgUmVtb3ZlIHByb3h5X3NldGNhcHMsIGVsZW1lbnRzIHNob3VsZCB1c2UgdGhlIGNhcHMgZXZlbnQgYW5kIGZvcndhcmQgY2FwcwoJICB0aGVtc2VsdmVzLgoKMjAxMS0wNi0wNyAxMDo1MToyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IGZpeCByZWZjb3VudGluZyBvZiBldmVudHMKCSAgX3BhZF9ldmVudF9mb3J3YXJkKCkgdGFrZXMgb3duZXJzaGlwIG9mIHRoZSBjYXBzLgoKMjAxMS0wNi0wNyAxMDo0OTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBJbXByb3ZlIHBhZCBldmVudCBmb3J3YXJkIGNvZGUKCSAgUmV0dXJuIFRSVUUgd2hlbiB0aGUgcGFkIGhhcyBubyBwYXJlbnQgb3Igd2hlbiB0aGVyZSBhcmUgbm8gaW50ZXJuYWxseSBsaW5rZWQKCSAgcGFkcy4KCjIwMTEtMDYtMDcgMTA6MDQ6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHBsdWdpbnM6IHVzZSB0aGUgY2FwcyBldmVudAoJICBVc2UgdGhlIGNhcHMgZXZlbnQgYW5kIGF2b2lkIHVzaW5nIHRoZSBzZXRjYXBzIGZ1bmN0aW9uLiBVc2Ugc29tZSBvZiB0aGUgbmV3IHBhZAoJICBmb3J3YXJkIGZ1bmN0aW9ucyB0byBpbXBsZW1lbnQgZGVzaXJlZCBiZWhhdmlvdXIuCgoyMDExLTA2LTA3IDEwOjAyOjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogUmVuYW1lIGFuZCByZXdvcmsgdGhlIGRpc3BhdGNoZXIgZnVuY3Rpb24KCSAgUmVuYW1lIGdzdF9wYWRfZGlzcGF0Y2hlcigpIHRvIGdzdF9wYWRfZm9yd2FyZCgpIGFuZCBtYWtlIGl0IG1vcmUgdXNlZnVsIGJ5CgkgIGl0ZXJhdGluZyB0aGUgaW50ZXJuYWwgbGlua3Mgb2YgYSBwYWQgYW5kIGhhbmRsaW5nIHJlc3luYyBwcm9wZXJseS4KCSAgQWRkIGEgbWV0aG9kIGdzdF9wYWRfZXZlbnRfZm9yd2FyZCgpIHRoYXQgdW5jb25kaXRpb25hbGx5IGZvcndhcmRzIGFuIGV2ZW50IHRvCgkgIGFsbCBpbnRlcm5hbGx5IGxpbmtlZCBwYWRzLgoJICBVcGRhdGUgc29tZSBwYWQgY29kZSB0byB1c2UgdGhlIG5ldyBmb3J3YXJkIGZ1bmN0aW9uLgoKMjAxMS0wNi0wNyAwOTo0MzoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBjYXBzOiB1c2UgdGhlIGNhcHMgZXZlbnQKCSAgVXNlIHRoZSBjYXBzIGV2ZW50IGluc3RlYWQgb2YgZ3N0X3BhZF9zZXRfY2FwcygpIGFuZCB0aGUgc2V0Y2FwcyBmdW5jdGlvbgoKMjAxMS0wNi0wNiAxNjoxMTozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlci50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVybGlzdC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0ZWxlbWVudC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0b2JqZWN0LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1sYXRlbmN5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9iZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zcGFyc2VzdHJlYW1zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBkb2NzOiBnbyBvdmVyIGRlc2lnbiBkb2NzIGFuZCBmaXggdGhpbmdzCgkgIFJlbW92ZSBidWZmZXJsaXN0IHBhcnQsIGl0J3MgbWVyZ2VkIHdpdGggcGFydC1idWZmZXIudHh0CgoyMDExLTA2LTA2IDExOjIxOjIzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBBZGQgZW51bS9mbGFncyAoZGUpcmVnaXN0cmF0aW9uIGluIGdzdF8oZGUpaW5pdAoKMjAxMS0wNi0wNiAxMToyMDoyOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBEb24ndCBhY2NlcHQgc2VnbWVudHMgYWZ0ZXIgRU9TCgkgIEFuZCByZWZhY3RvciB0aGUgY29kZSBzbGlnaHRseSB0byBhdm9pZCBjb2RlIGR1cGxpY2F0aW9uLgoJICBUaGlzIHNvbHZlcyBhIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBieSBiZGJjMDY5MwoKMjAxMS0wNi0wNiAxMDoyNzo1NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgY2hlY2svZ2hvc3RwYWQ6IEFjdGl2YXRlIHBhZHMgYmVmb3JlIGNoZWNraW5nIGZvciBjYXBzIGZvcndhcmRpbmcvc2V0dGluZwoJICBUaGlzIGlzIG5vdyBkb25lIHZpYSBpbi1iYW5kIGV2ZW50cywgc28gdGhlIHBhZHMgbmVlZCB0byBiZSBhY3RpdmUKCjIwMTEtMDYtMDUgMTg6MTE6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJICBkb2NzOiB1cGRhdGUgZm9yIEFQSSBjaGFuZ2VzCgkgIEFsc28gcmVtb3ZlIEdTVF9QQURfQ0hFQ0tHRVRSQU5HRUZVTkMgbWFjcm8KCjIwMTEtMDYtMDUgMTU6NDY6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNi0wNCAxNTo0MjoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIHBhcnNlOiBhZGQgcHJvdG90eXBlcyBmb3IgdW51c2VkIGZ1bmN0aW9ucyB0byBhdm9pZCBjb21waWxlciB3YXJuaW5nCgkgIFRoZSB3YXJuaW5nIGlzIG5ldmVyIGZhdGFsLCBiZWNhdXNlIHdlIGRvbid0IHVzZSAtV2Vycm9yIGZvciB0aGUKCSAgcGFyc2VyIGhlbHBlciBsaWJyYXJ5IGJ1aWxkLCBidXQgdGhlIHdhcm5pbmdzIGFyZSBhbm5veWluZyBhbnl3YXkuCgoyMDExLTA2LTA1IDE0OjEwOjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJKiB0b29scy9nc3QtcnVuLmM6CgkgIHRvb2xzOiByZW1vdmUgdW52ZXJzaW9uZWQgZ3N0LWxhdW5jaCwgZ3N0LWluc3BlY3QgYW5kIGdzdC10eXBlZmluZAoJICBUaGUgdW52ZXJzaW9uZWQgdG9vbCB3cmFwcGVycyBhcmUgY29uZnVzaW5nIGFuZCBhbm5veWluZyBmb3IgcGFja2FnZXJzLAoJICB1c2VycyBhbmQgZGV2ZWxvcGVycyBhbGlrZS4gQSBnc3QtbGF1bmNoIHBpcGVsaW5lIHRoYXQgd29ya3MgaW4gMC4xMAoJICB3aWxsIGxpa2VseSBub3Qgd29yayBpbiAwLjExIChlLmcuIGJlY2F1c2UgZWxlbWVudHMgb3IgcHJvcGVydGllcyBnZXQKCSAgcmVuYW1lZCwgb3Igc3ludGF4IGNoYW5nZXMpLiBUaGUgdW52ZXJzaW9uZWQgdG9vbHMgYWxzbyB5aWVsZCB1c2VsZXNzCgkgIHJlc3VsdHMgd2hlbiB1c2VkIHdpdGggZ2RiIG9yIHZhbGdyaW5kLiBQYWNrYWdlcnMgbmVlZCB0byBjby1vcmRpbmF0ZQoJICB0aGUgcGFja2FnaW5nIG9mIGFsbCBtYWpvciB2ZXJzaW9ucyB0byBtYWtlIHN1cmUgdGhlcmUgYXJlIG5vIGNvbmZsaWN0cwoJICB3aGVuIGJvdGggdHJ5IHRvIGluc3RhbGwgdGhlIHNhbWUgZmlsZXMuIFdoZW4gdHdvIG1ham9yIHZlcnNpb25zIGFyZQoJICBpbiB1c2UgKGUuZy4gMC4xMCBhbmQgMC4xMS8xLjApLCBpdCBtYXkgYmUgdW5jbGVhciAod2hlbiBsb29raW5nIGF0CgkgIHRoaW5ncyBvbiBJUkMvcGFzdGViaW4vbWFpbGluZyBsaXN0IGV0Yy4pIHdoaWNoIHZlcnNpb24gaXMgYWN0dWFsbHkKCSAgYmVpbmcgdXNlZCB3aGVuIHRoZXJlIGFyZSB1bnZlcnNpb25lZCB3cmFwcGVycy4gRm9yIGFsbCB0aGVzZSByZWFzb25zLAoJICBpdCBzZWVtcyBiZXN0IHRvIGp1c3QgcmVtb3ZlIHRoZW0gZm9yIG5vdy4KCjIwMTEtMDYtMDQgMTY6MDQ6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdG1hcnNoYWwuYzoKCSogd2luMzIvY29tbW9uL2dzdG1hcnNoYWwuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgZXhwb3J0cyBhbmQgb3RoZXIgdGhpbmdzCgoyMDExLTA2LTA0IDE1OjQ0OjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgdHJhbnNsYXRhYmxlIHN0cmluZyBhbmQgcmVtb3ZlZCBzdHJpbmdzCgoyMDExLTA2LTA0IDE1OjIzOjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiByZW1vdmUgR1NUX1hNTCBkZWJ1ZyBjYXRlZ29yeSBhcyB3ZWxsCgoyMDExLTA2LTA0IDE1OjIyOjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIEFuZHJvaWQubWs6CgkqIE1ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkqIGdzdHJlYW1lci5zcGVjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0eG1sLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJKiB0b29scy8uZ2l0aWdub3JlOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3QteG1sbGF1bmNoLjEuaW46CgkgIFJlbW92ZSBldmVyeXRoaW5nIGxpYnhtbDItIGFuZCBsb2Fkc2F2ZS1yZWxhdGVkCgoyMDExLTA2LTA0IDE0OjQxOjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogcmVtb3ZlIFNJR1VTUiogaGFuZGxpbmcgZnJvbSBnc3QtbGF1bmNoCgkgIFJlbW92ZSBTSUdVU1IqIGhhbmRsaW5nIGZyb20gZ3N0LWxhdW5jaCwgc2luY2UgaXQgbWlnaHQgaW50ZXJmZXJlCgkgIHdpdGggb3RoZXIgdGhpbmdzIChlLmcuIGxpYmxlYWtzKSwgYW5kIHNob3VsZCBiZSBkb25lIGRpZmZlcmVudGx5CgkgIGFueXdheSAoZWl0aGVyIHZpYSBzdXBwb3J0IGZvciBzaW1wbGUgdGltZWQtY29tbWFuZHMgc2NyaXB0aW5nIG9yCgkgIHJlbW90ZSBjb250cm9sIHZpYSBEQnVzIG9yIHNvKS4KCjIwMTEtMDYtMDQgMTQ6Mjg6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkqIHRvb2xzLy5naXRpZ25vcmU6CgkqIHRvb2xzL0JVR1M6CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJKiB0b29scy9SRUFETUU6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LjEuaW46CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkqIHRvb2xzL3htbDJ0ZXh0LnhzbDoKCSAgdG9vbHM6IHJlbW92ZSBnc3QteG1saW5zcGVjdAoJICBQZW9wbGUgc2hvdWxkIGp1c3QgcXVlcnkgdGhlIHJlZ2lzdHJ5IHRoZW1zZWx2ZXMgb3Igd3JpdGUgYSBzbWFsbAoJICBweXRob24gc2NyaXB0IGlmIHRoZXkgbmVlZCB0aGlzIGZ1bmN0aW9uYWxpdHkgKHdoaWNoIGlzIGxpa2VseQoJICBsZXNzIHdvcmsgdGhhbiBwYXJzaW5nIHRoZSBYTUwgdGhhdCB0aGlzIHNjcmlwdCBvdXRwdXRzLCBhbmQgSSdtCgkgIG5vdCBhd2FyZSBvZiBhbnl0aGluZyB1c2luZyB0aGUgeG1sMnRleHQgeHNsIGVpdGhlcikuCgoyMDExLTA2LTA0IDE0OjIyOjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkqIHRvb2xzLy5naXRpZ25vcmU6CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJKiB0b29scy9nc3QtZmVlZGJhY2stbS5tOgoJKiB0b29scy9nc3QtZmVlZGJhY2suMS5pbjoKCSAgdG9vbHM6IHJlbW92ZSBnc3QtZmVlZGJhY2sKCSAgSXQncyBub3QgcmVhbGx5IHRoYXQgdXNlZnVsLCBhbmQgbm8gb25lJ3MgYmVlbiB1c2luZyBpdCBmb3IgeWVhcnMuCgoyMDExLTA2LTA0IDE0OjEzOjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgdG9vbHMsIHRlc3RzOiBmaXggc29tZSB1bnVzZWQtYnV0LXNldC12YXJpYWJsZSBjb21waWxlciB3YXJuaW5ncwoKMjAxMS0wNi0wNCAxNDowMjoyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHRyYW5zbGF0YWJsZSBzdHJpbmcKCjIwMTEtMDYtMDQgMDA6MzA6MTUgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkgIFdvcmsgYXJvdW5kIGNoYW5nZXMgaW4gZ19hdG9taWMgQVBJCgkgIFNlZSAjNjUxNTE0IGZvciBkZXRhaWxzLiAgSXQncyBhcHBhcmVudGx5IGltcG9zc2libGUgdG8gd3JpdGUgY29kZQoJICB0aGF0IGF2b2lkcyBib3RoIHR5cGUgcHVubmluZyB3YXJuaW5ncyB3aXRoIG9sZCBnX2F0b21pYyBoZWFkZXJzIGFuZAoJICBhc3NlcnRpb25zIGluIHRoZSBuZXcuICBUaHVzLCBtYWNyb3MgYW5kIGEgdmVyc2lvbiBjaGVjay4KCjIwMTEtMDYtMDMgMTg6MTA6MjQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBnc3RwYWQ6IFNtYWxsIGRvYyBmaXh1cAoKMjAxMS0wNi0wMyAxNTo1MzoyMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSAuZGVmIGZvciBsYXRlc3QgQVBpIGNoYW5nZXMKCjIwMTEtMDYtMDMgMTc6MjQ6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogY2xlYW4gdXAgcHJvYmUgZmxhZ3MKCjIwMTEtMDYtMDMgMTc6MjQ6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkgIGRvY3M6IGZpcnN0IHZlcnNpb24gb2YgcHJvYmVzIGRvY3VtZW50CgoyMDExLTA2LTAzIDE2OjQ2OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNoZWNrIGZsdXNoaW5nIGluIHB1bGxyYW5nZSB0b28KCjIwMTEtMDYtMDMgMTM6NTY6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogY2xlYW51cHMKCSAgVXNlIGRlZmluZXMgaW5zdGVhZCBvZiBoYXJkY29kZWQgdmFsdWVzIGZvciBtYXNrcy4KCjIwMTEtMDYtMDMgMTM6MjU6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBmaXggc29tZSBtb3JlIDAuMTEgZml4bWVzCgkgIGRvbid0IGFsbG93IHNwYWNlcyBpbiBzdHJ1Y3R1cmUgbmFtZXMgYW5kIGZpeCB1bml0IHRlc3RzLgoKMjAxMS0wNi0wMyAxMjo0MzozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWFsbG9jYXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXJwb29sLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSAgZG9jczogdXBkYXRlIGJ1ZmZlcnBvb2wgZGVzaWduIGRvYwoJICBNb3ZlIHRoZSBidWZmZXJwb29sIGRlc2lnbiBkb2MgZnJvbSBkcmFmdCB0byBwYXJ0IGFuZCBtZXJnZSBpdCB3aXRoCgkgIHRoZSBhbGxvY2F0aW9uIGRyYWZ0LgoKMjAxMS0wNi0wMyAxMjo0MDo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IG1ha2UgdGhlIGRlZmF1bHQgYmVoYXZpb3VyIHRvIHdhaXQKCSAgVGhlIG1vc3QgY29tbW9uIGNhc2UgaXMgdG8gbm90IHNwZWNpZnkgYW55IGZsYWdzIHdoZW4gZG9pbmcgdGhlIGFsbG9jYXRpb24uIE1ha2UKCSAgdGhlIGFsbG9jYXRpb24gZnJvbSBhIHBvb2wgd2l0aCBhIG1heGltdW0gYW1vdW50IG9mIGJ1ZmZlcnMgYmxvY2sgYnkgZGVmYXVsdCBmb3IKCSAgdGhpcyByZWFzb24uCgoyMDExLTA2LTAzIDExOjE1OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmcgZG9jCgoyMDExLTA2LTAyIDE5OjI0OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1c2UgY2FwcyBldmVudCBpbnN0ZWFkIG9mIHNldGNhcHMKCjIwMTEtMDYtMDIgMTk6MjM6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+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+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IENyZWF0ZSBiYXNlcGFyc2UgbGlicmFyeQoKMjAxMS0wMi0wNyAxNDo0Njo1NyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+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+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuaDoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYXVkaW9wYXJzZXJzOiByZW5hbWUgJ2FhY3BhcnNlJyBwbHVnaW4gdG8gZ2VuZXJpYyAnYXVkaW9wYXJzZXJzJyBwbHVnaW4KCjIwMDktMTAtMjkgMTY6MDU6MDAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlc2V0IHBhc3N0aHJvdWdoIG1vZGUgdG8gZGVmYXVsdCAoZGlzYWJsZWQpIG9uIGFjdGl2YXRpb24KCjIwMDktMTAtMjkgMTU6MTY6NTkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGVuc3VyZSBidWZmZXIgbWV0YWRhdGEgaXMgd3JpdGFibGUKCjIwMDktMTAtMjggMTQ6MDY6MTMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogZml4L2VuaGFuY2UgRElTQ09OVCBtYXJraW5nCgkgIEluIHBhcnRpY3VsYXIsIGNvbnNpZGVyIERJU0NPTlQgPT0gIXN5bmMsIGFuZCBhbGxvdyBzdWJjbGFzcyB0byBxdWVyeQoJICBzeW5jIHN0YXRlLCBhcyBpdCBtYXkgd2FudCB0byBwZXJmb3JtIGFkZGl0aW9uYWwgY2hlY2tzIGRlcGVuZGluZwoJICBvbiB3aGV0aGVyIHN5bmMgd2FzIGFjaGlldmVkIGVhcmxpZXIgb24uCgkgIEFsc28gYXJyYW5nZSBmb3Igc3ViY2xhc3MgdG8gcXVlcnkgd2hldGhlciBsZWZ0b3ZlciBkYXRhIGlzIGJlaW5nIGRyYWluZWQuCgoyMDA5LTExLTIzIDE1OjQ4OjI1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFkZCB0aW1lc3RhbXAgaGFuZGxpbmcsIGFuZCBkZWZhdWx0IGNvbnZlcnNpb24KCSAgSW4gcGFydGljdWxhciwgKG9wdGlvbmFsbHkpIHByb3ZpZGUgYmFzZXBhcnNlIHdpdGggYSBub3Rpb24gb2YgZnJhbWVzIHBlciBzZWNvbmQKCSAgKGFuZCB0aGVyZWZvcmUgYWxzbyBmcmFtZSBkdXJhdGlvbikgYW5kIGhhdmUgaXQgdHJhY2sgZnJhbWUgYW5kIGJ5dGUgY291bnRzLgoJICBUaGlzIHdheSwgc3ViY2xhc3MgY2FuIHByb3ZpZGUgYmFzZXBhcnNlIHdpdGggZnBzIGFuZCBoYXZlIGl0IHByb3ZpZGUgZGVmYXVsdAoJICBidWZmZXIgdGltZSBtZXRhZGF0YSBhbmQgY29udmVyc2lvbnMsIHRob3VnaCBzdWJjbGFzcyBjYW4gc3RpbGwgaW5zdGFsbAoJICBjYWxsYmFja3MgdG8gaGFuZGxlIHN1Y2ggaXRzZWxmLgoKMjAwOS0xMC0yOCAxMjowMjowMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG9jdW1lbnRhdGlvbiBmaXhlcwoKMjAwOS0xMC0yOCAxMjowMDowOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXNlX2ZpeGVkX2NhcHMgZm9yIHNyYyBwYWQKCSAgQWZ0ZXIgYWxsLCBzdHJlYW0gaXMgYXMtaXMsIGFuZCB0aGVyZSBpcyBsaXR0bGUgbW9sZGluZyB0byBkb3duc3RyZWFtJ3MKCSAgdGFzdGUgdGhhdCBjYW4gYmUgZG9uZS4gIElmIHN1YmNsYXNzIGNhbiBhbmQgd2FudHMgdG8gZG8gc28sIGl0IGNhbgoJICBzdGlsbCBvdmVycmlkZSBhcyBzdWNoLgoKMjAwOS0xMS0yMCAxNzozMjoxMyArMDEwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQGZsdWVuZG8uY29tPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBhYWNwYXJzZTogRml4IGNvbXBpbGF0aW9uIHdhcm5pbmdzCgoyMDA5LTEwLTExIDExOjIyOjExICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGFhY3BhcnNlOiBmaXggd2FybmluZ3MgaW4gbWFjb3N4IHNub3cgbGVvcGFyZAoKMjAwOS0wOS0yNSAxNzowMjo1MyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYWFjcGFyc2U6IGZvcmVnbyAoYm9ndXMpIHBhcnNpbmcgb2YgYWxyZWFkeSBwYXJzZWQgKHJhdykgaW5wdXQKCjIwMDktMDgtMDcgMTM6MDc6MTcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByZXZlbnQgaW5maW5pdGUgbG9vcCB3aGVuIGRyYWluaW5nCgoyMDA5LTA4LTA3IDEzOjA2OjI4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggbWlub3IgbWVtb3J5IGxlYWsKCjIwMDktMDctMTQgMTQ6MDg6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGFhY3BhcnNlOiBBZGQgZnVuY3Rpb24gZm9yIHRoZSBiYXNlcGFyc2Ugc3ViY2xhc3MgdG8gcHVzaCBidWZmZXJzIGRvd25zdHJlYW0KCSAgQWxzbyBoYW5kbGUgdGhlIGNhc2UgZ3JhY2VmdWxseSB3aGVyZSB0aGUgc3ViY2xhc3MgZGVjaWRlcyB0byBkcm9wCgkgIHRoZSBmaXJzdCBidWZmZXJzIGFuZCBoYXMgbm8gY2FwcyBzZXQgeWV0LiBJdCdzIHN0aWxsIHJlcXVpcmVkIHRvCgkgIGhhdmUgdmFsaWQgY2FwcyBzZXQgd2hlbiB0aGUgZmlyc3QgYnVmZmVyIHNob3VsZCBiZSBwYXNzZWQgZG93bnN0cmVhbS4KCjIwMDktMDctMTQgMTQ6MDc6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBzZWVrIGV2ZW50IGxlYWtpbmcKCjIwMDktMDYtMDEgMTM6NTY6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByb3BhZ2F0ZSByZXR1cm4gdmFsdWUgb2YgR3N0QmFzZVBhcnNlOjpzZXRfc2lua19jYXBzKCkKCSAgZ3N0X2Jhc2VfcGFyc2Vfc2lua19zZXRjYXBzKCkgcHJlc3VtYWJseSBzaG91bGQgZmFpbCBpZiB0aGUgc3ViY2xhc3MKCSAgcmV0dXJucyBGQUxTRSBmcm9tIGl0cyA6OnNldF9zaW5rX2NhcHMoKSBmdW5jdGlvbi4KCjIwMDktMDYtMDEgMTM6NDc6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvbid0IHRyeSB0byBHU1RfTE9HIGFuIGFscmVhZHktZnJlZWQgY2FwcyBzdHJpbmcKCSAgVGhlIHByb3BlciB3YXkgdG8gbG9nIGNhcHMgaXMgdmlhIEdTVF9QVFJfRk9STUFUIGFueXdheS4KCjIwMDktMDUtMjYgMTk6NDM6NTMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBkZWJ1ZyBjYXRlZ29yeQoKMjAwOS0wNC0yNyAyMjozOToxNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IChyZWdyZXNzaW9uIGluKSBuZXdzZWdtZW50IGhhbmRsaW5nCgkgIChhYWNwYXJzZSwgYW1ycGFyc2UsIGZsYWNwYXJzZSkuICBGaXhlcyAjNTgwMTMzLgoKMjAwOS0wNC0wNyAwNDo1MzowMiArMDMwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggc2xpZ2h0bHkgYnJva2VuIGJ1ZmZlci1pbi1zZWdtZW50IGNoZWNrIChhYWNwYXJzZSwgYW1ycGFyc2UsIGZsYWNwYXJzZSkKCjIwMDktMDQtMDUgMDM6NTA6MTkgKzAzMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IHB1c2ggbW9kZSBzZWVraW5nIChhYWNwYXJzZSwgYW1ycGFyc2UpCgkgIFNlbmRpbmcgdGhlIGZsdXNoLXN0YXJ0IGV2ZW50IGZvcndhcmQgYmVmb3JlIHRha2luZyB0aGUgc3RyZWFtIGxvY2sgYWN0dWFsbHkKCSAgd29ya3MsIGluIGNvbnRyYXN0IHRvIGRlYWRsb2NraW5nIGluIGRvd25zdHJlYW0gcHJlcm9sbF93YWl0IChodW5rIDEpLgoJICBBZnRlciB0aGF0IHdlIGdldCB0aGUgY2hhaW4gZnVuY3Rpb24gYmVpbmcgc3R1Y2sgaW4gYSBidXN5IGxvb3AuIFRoaXMgaXMgZml4ZWQKCSAgYnkgdXBkYXRpbmcgdGhlIG1pbmltdW0gZnJhbWUgc2l6ZSBpbnNpZGUgdGhlIHN5bmNocm9uaXphdGlvbiBsb29wIGJlY2F1c2UgdGhlCgkgIHN1YmNsYXNzIGFza3MgZm9yIG1vcmUgZGF0YSBpbiB0aGlzIHdheSAoaHVuayAyKS4KCSAgRmluYWxseSwgdGhpcyBsZWFkcyB0byBhIHZlcnkgcHJvYmFibGUgY3Jhc2ggYmVjYXVzZSB0aGUgc3ViY2xhc3MgY2FuIGZpbmQgYQoJICB2YWxpZCBmcmFtZSB3aXRoIGEgc2l6ZSBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnRseSBhdmFpbGFibGUgZGF0YSBpbiB0aGUKCSAgYWRhcHRlci4gVGhpcyBtYWtlcyB0aGUgc3Vic2VxdWVudCBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlciBjYWxsIHJldHVybiBOVUxMLAoJICB3aGljaCBpcyBub3QgZXhwZWN0ZWQgKGh1bmsgMykuCgoyMDA5LTAzLTMxIDE2OjA3OjQ2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBEZWxheSBuZXdzZWdtZW50IGFzIGxvbmcgYXMgcG9zc2libGUuCgkgIElmIG5ld3NlZ21lbnQgaXMgc2VudCAodG9vKSBlYXJseSwgY2FwcyBtYXkgbm90IHlldCBiZSBmaXhlZC9zZXQsCgkgIGFuZCBkb3duc3RyZWFtIG1heSBub3QgaGF2ZSBiZWVuIGxpbmtlZC4KCjIwMDktMDItMjcgMTE6MjQ6MzcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZXZlcnQgbGFzdCBjaGFuZ2UgYW5kIHByb3Blcmx5IGZpeAoJICBCYXNlcGFyc2UgaW50ZXJuYWx5IGJyZWFrcyB0aGUgc2VtYW50aWNzIG9mIGEgX2NoYWluIGZ1bmN0aW9uIGJ5IGNhbGxpbmcgaXQgd2l0aAoJICBidWZmZXI9PU5VTEwuIFRoZSByZXNvbiBJIGJlbGl2ZWQgaXQgd2FzIG9rYXkgdG8gcmVtb3ZlIGl0IHdhcyB0aGF0IHRoZXJlIGlzCgkgIGFsc28gYW4gdW5jaGVja2VkIGFjY2VzcyB0byBidWZmZXIgbGF0ZXIgaW4gX2NoYWluLiBBY3R1YWxseSB0aGF0IGNvZGUgaXMgd3JvbmcsCgkgIGFzIGl0IG1vc3QgcHJvYmFibHkgd2FudHMgdG8gc2V0IGRpc2NvbnQgb24gdGhlIG91dGdvaW5nIGJ1ZmZlci4KCjIwMDktMDItMjYgMTE6MDI6MDYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZW1vdmUgY2hlY2tzIGZvciBidWZmZXI9PU5VTEwKCSAgQWNjb3JkaWZuIHRvIGRvY3MgZm9yIEdzdFBhZENoYWluRnVuY3Rpb24gYnVmZmVyIGNhbm5vdCBiZSBOVUxMLiBJZiB3ZSB3b3VsZAoJICBsZWF2ZSB0aGUgY2hlY2ssIHdlIHdvdWxkIGFsc28gbmVlZCBtb3JlIHN1Y2ggY2hlY2sgYmVsb3cuCgoyMDA5LTAxLTMwIDE4OjE4OjEwICswMDAwICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgRml4IHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGRlZmF1bHQgcGFyc2VfZnJhbWUgZnVuY3Rpb24uCgkgIEZpeCB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBkZWZhdWx0IHBhcnNlX2ZyYW1lIGZ1bmN0aW9uIGluIGJvdGgKCSAgY29waWVzIG9mIEdzdEJhc2VQYXJzZQoKMjAwOC0xMS0xMyAxNDoyMTozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogRml4IGJhc2VwYXJzZSB0eXBlIG5hbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgKiBnc3QvYW1ycGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIEZpeCBiYXNlcGFyc2UgdHlwZSBuYW1lLgoKMjAwOC0xMS0xMyAxMjo1OTozNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIHR3byBuZXcgYmFzZXBhcnNlIGJhc2VkIHBhcnNlcnMgKGFhYyBhbmQgYW1yKSBmcm9tIEJ1ZyAjNTE4ODU3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2FhY3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9hYWNwYXJzZS9nc3RhYWNwYXJzZS5jOgoJICAqIGdzdC9hYWNwYXJzZS9nc3RhYWNwYXJzZS5oOgoJICAqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmg6CgkgICogZ3N0L2FtcnBhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9hbXJwYXJzZS9nc3RhbXJwYXJzZS5jOgoJICAqIGdzdC9hbXJwYXJzZS9nc3RhbXJwYXJzZS5oOgoJICAqIGdzdC9hbXJwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgKiBnc3QvYW1ycGFyc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIEFkZCB0d28gbmV3IGJhc2VwYXJzZSBiYXNlZCBwYXJzZXJzIChhYWMgYW5kIGFtcikgZnJvbSBCdWcgIzUxODg1Ny4KCjIwMTEtMDMtMjAgMDA6NTY6MDggKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWVbMl06IE1ha2Ugc3JjIHF1ZXJ5IE1ULXNhZmUKCSAgSXQgaXMgcG9zc2libGUgdGhhdCB0aGUgZWxlbWVudCBtaWdodCBiZSBnb2luZyBkb3duIHdoaWxlIHRoZSBldmVudCBhcnJpdmVzCgoyMDExLTAzLTIwIDAwOjU2OjA4ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogTWFrZSBzcmMgcXVlcnkgTVQtc2FmZQoJICBJdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSBlbGVtZW50IG1pZ2h0IGJlIGdvaW5nIGRvd24gd2hpbGUgdGhlIGV2ZW50IGFycml2ZXMKCjIwMTEtMDQtMDggMTQ6NTY6MzcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZVsyXTogVW5yZWYgZXZlbnRzIGlmIHRoZSBwYXJlbnQgZWxlbWVudCBkaXNhcHBlYXJlZAoKMjAxMS0wMy0yMSAxNjowMTowNSArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZVsyXTogTWFrZSB1cHN0cmVhbSBldmVudHMgTVQtc2FmZQoKMjAxMS0wNC0wOCAxNDo1NTowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2U6IFVucmVmIGV2ZW50cyBpZiB0aGUgcGFyZW50IGVsZW1lbnQgZGlzYXBwZWFyZWQKCSAgQW5kIGFsc28gdW5yZWYgZXZlbnRzIGlmIHRoZSBiYXNldHJhbnNmb3JtIHN1YmNsYXNzIGhhcyBubwoJICBldmVudCBoYW5kbGVyIGFuZCB0aGUgZXZlbnQgaXMgbm90IGZvcndhcmRlZCBhdCBhbGwuCgoyMDExLTAzLTIxIDE2OjAxOjA1ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2U6IE1ha2UgdXBzdHJlYW0gZXZlbnRzIE1ULXNhZmUKCjIwMTEtMDMtMjkgMTE6NTc6MDYgKzAyMDAgIFN0aWFuIFNlbG5lcyA8c3RpYXNlbG5AY2lzY28uY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBnc3RxdWV1ZSwgZ3N0cXVldWUyOiBjaGVjayBpZiBwYXJlbnQgb2YgcGFkIGlzIE5VTEwgaW4gX2dldGNhcHMKCSAgUGFyZW50IG9mIHRoZSBwYWQgKHRoZSBxdWV1ZSkgbWF5IGJlIHNldCB0byBOVUxMIHdoaWxlIHRoZXJlIGlzCgkgIGEgYnVmZmVyIGFsbG9jIGdvaW5nIG9uLgoKMjAxMS0wNC0wOCAxNDo1MDoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRml4IGdldGNhcHMgYW5kIGV2ZW50IGZ1bmN0aW9uIGZyb20gbGFzdCBjb21taXQKCSAgUmV0dXJuIEFOWSBjYXBzIGlmIHRoZSBwYXJlbnQgZGlzYXBwZWFyZWQsIGkuZS4gdGhlIHRlbXBsYXRlIGNhcHMKCSAgYW5kIGRvbid0IGxlYWsgZXZlbnRzIGlmIHRoZSBwYXJlbnQgZGlzYXBwZWFyZWQuCgoyMDExLTA0LTAxIDA4OjQ2OjE0ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogUHJvdGVjdCBhZ2FpbnN0IHBhZC1wYXJlbnQgZGlzYXBwZWFyaW5nCgoyMDEwLTEyLTE0IDE2OjA2OjQ2ICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuLnNlbG5lc0B0YW5kYmVyZy5jb20+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IHJlc3luYyB0byBhdm9pZCBpbmZpbml0ZSBsb29wCgoyMDExLTA0LTA4IDA5OjIwOjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB1dGlsczogRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgY29tcGlsZXIgd2FybmluZ3MKCjIwMTEtMDQtMDggMDk6MTU6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IFJlbW92ZWQgdW51c2VkIEdDb25kCgoyMDExLTA0LTA4IDA5OjA3OjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBBZGQgYW5vdGhlciBjaGVjayBmb3IgdGhlIGZsdXNoaW5nIGZsYWcgYWZ0ZXIgdGFraW5nIHRoZSBsb2NrCgkgIFRoaXMgcHJldmVudHMgYW5vdGhlciBwb3RlbnRpYWwgZGVhZGxvY2sgd2hlbiBmbHVzaGluZyB0aGUgcGFkCgkgIGF0IGV4YWN0bHkgdGhlIHJpZ2h0IHRpbWUuCgoyMDExLTA0LTA3IDExOjI0OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBJbW1lZGlhdGVseSBkcm9wIG1lc3NhZ2VzIGFmdGVyIGNhbGxpbmcgdGhlIHN5bmMgaGFuZGxlciBpZiB0aGlzIGlzIGEgc3luY2hyb25vdXMgYnVzCgkgIE90aGVyd2lzZSB3ZSBtaWdodCB3YWl0IGZvcmV2ZXIgZm9yIHRoZSBtZXNzYWdlIHRvIGJlIHBvcHBlZCBmcm9tCgkgIHRoZSBxdWV1ZSBpZiBhIHN5bmMgaGFuZGxlciByZXR1cm5lZCBHU1RfQlVTX0FTWU5DLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ3MDA1CgoyMDExLTA0LTA3IDExOjE5OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBVc2UgYSBjb25zdHJ1Y3Qtb25seSBwcm9wZXJ0eSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIGNoaWxkIGJ1c2VzIGFuZCBub3JtYWwgYnVzZXMKCSAgVGhpcyBhbGxvd3MgdG8gb25seSBjcmVhdGUgdGhlIHNvY2tldHBhaXIgd2hlbiBpdCBpcyByZWFsbHkgcmVxdWlyZWQgaW5zdGVhZAoJICBvZiBhbHdheXMgY3JlYXRpbmcgaXQgYW5kIGltbWVkaWF0ZWx5IGRlc3Ryb3lpbmcgaXQgYWdhaW4gZm9yIGNoaWxkIGJ1c2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ3MDA1CgoyMDExLTA0LTA3IDIwOjQ3OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgdGVzdHM6IGFkZCBzb21lIGJhc2ljIHVuaXQgdGVzdHMgZm9yIHF1ZXVlMgoKMjAxMS0wNC0wNyAyMDo0NToyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBidWZmZXIgbGVhayBvbiBlb3Mgd2hlbiB1c2luZyB0aGUgcmluZyBidWZmZXIKCjIwMTEtMDEtMTEgMTQ6Mjc6MzUgKzAxMDAgIElkYXIgVG9sbGVmc2VuIDxpdG9sbGVmc0BjaXNjby5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeGVzIG1lbW9yeSBsZWFrIG9uIG91dF9mbHVzaGluZyBlcnJvciBpbiBnc3RfcXVldWUyX2NyZWF0ZV9yZWFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2OTcyCgoyMDExLTA0LTA3IDE5OjQ0OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IG1pbm9yIG1lbW9yeSBsZWFrCgoyMDExLTA0LTA3IDE3OjM0OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogbWlub3IgZWxlbWVudCBkZXNjcmlwdGlvbiBmaXgKCjIwMTEtMDQtMDcgMTY6MTM6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA0LTA3IDE2OjAyOjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIE5PX1NIQVJFIGZsYWcgdG8gbWVtb3J5CgkgIEFkZCBhIE5PX1NIQVJFIGZsYWcgdG8gbWVtb3J5IHRvIGluZGljYXRlIHRoYXQgaXQgc2hvdWxkIG5vdCBiZSBzaGFyZWQKCSAgYmV0d2VlbiBidWZmZXJzLgoKMjAxMS0wNC0wNyAxNjowODozNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSAgZG9jczogcmVtb3ZlIGZpbGUgYXMgd2UgaGF2ZSBkb2NzL2Rlc2lnbi9wYXJ0LW1pc3NpbmctcGx1Z2lucy50eHQKCjIwMTEtMDQtMDcgMTA6NDg6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IEhhbmRsZSB0YWcgYW5kIGN1c3RvbSBkb3duc3RyZWFtIGV2ZW50cyB0aGUgc2FtZQoJICBFc3BlY2lhbGx5IGRyb3AgdGFnIGV2ZW50cyB3aGVuIGZsdXNoaW5nIHRvIG5vdCBzZW5kIHRoZW0gb3ZlcgoJICBhbmQgb3ZlciBhZ2Fpbi4KCSAgU2hvdWxkJ3ZlIGJlZW4gaW4gdGhlIGxhc3QgY29tbWl0IGFscmVhZHkgYnV0IEkgZm9yZ290IHRvIGNhbGwKCSAgZ2l0IHJlYmFzZSAtLWNvbnRpbnVlLi4uCgoyMDExLTA0LTA3IDEwOjQwOjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBibGEKCjIwMTEtMDQtMDcgMTA6Mjk6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFNlbmQgc3luY3Jvbml6ZWQgY3VzdG9tIGRvd25zdHJlYW0vYm90aCBldmVudHMgZG93bnN0cmVhbSBmcm9tIHRoZSBzdHJlYW1pbmcgdGhyZWFkCgkgIEluc3RlYWQgb2YganVzdCBzaWxlbnRseSBkcm9wcGluZyB0aGVtLiBUaGUgc2FtZSB3YXMgZG9uZSBmb3IgdGFnIGV2ZW50cwoJICBiZWZvcmUgYWxyZWFkeS4KCSAgRml4ZXMgYnVnICM2MzU3MTguCgoyMDExLTA0LTA2IDE5OjE5OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGRvbid0IGZvbGxvdyB0aGUgcGFyZW50IGluIHRoZSBmYWxsYmFjayBzaGFyZQoKMjAxMS0wNC0wNiAxODo1Nzo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgYnVmZmVyOiBtYWtlIG1lbW9yeSB3cml0YWJsZSBpbiBfcGVlawoJICBNYWtlIHRoZSBtZW1vcnkgd3JpdGFibGUgd2hlbiB3ZSBhcmUgYXNrZWQgdG8gX3BlZWsgd2l0aCBNQVBfV1JJVEUuCgkgIEltcHJvdmUgZGVidWdnaW5nIG9mIG1pbmlvYmplY3QuCgoyMDExLTA0LTA2IDE2OjM3OjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogZml4IGRlYnVnCgoyMDExLTA0LTA2IDE0OjIwOjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDQtMDYgMTQ6MDY6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IEFkZCBwcml2YXRlIEFQSSB0byBzZXQgYSBHc3RCdXMgaW4gY2hpbGQgbW9kZQoJICBUaGlzIGlzIHVzZWQgYnkgR3N0QmluIHRvIGNyZWF0ZSBhIGNoaWxkIGJ1cyB3aXRob3V0CgkgIGEgc29ja2V0cGFpciBiZWNhdXNlIGNoaWxkIGJ1c2VzIHdpbGwgYWx3YXlzIHdvcmsKCSAgc3luY2hyb25vdXMuIE90aGVyd2lzZSB0b28gbWFueSBzb2NrZXRzIGNvdWxkIGJlCgkgIGNyZWF0ZWQgYW5kIHRoZSBsaW1pdCBvZiBmaWxlIGRlc2NyaXB0b3JzIGZvciB0aGUKCSAgcHJvY2VzcyBjb3VsZCBiZSByZWFjaGVkLgoJICBGaXhlcyBidWcgIzY0NjYyNC4KCjIwMTEtMDQtMDYgMTM6NTY6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBSZXZlcnQgImJ1czogT25seSBjcmVhdGUgdGhlIHNpZ25hbGxpbmcgc29ja2V0IHBhaXIgd2hlbiByZXF1aXJlZCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA0YmY4ZjE1MjRmNmUzMzc0YjNmM2JjNTczMjIzMzc3MjNkMDZiOTI4LgoKMjAxMS0wNC0wNiAxMzo1Njo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIFJldmVydCAiYnVzOiBDaGVjayBpZiBwZW5kaW5nIG1lc3NhZ2VzIGFyZSBpbiB0aGUgcXVldWUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYmQxYzQwMDExNDM0YzFlZmFhNjk2ZGM5OGVmODU1ZWY5Y2NlOWIyOC4KCjIwMTEtMDQtMDYgMTE6Mzg6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBjaGVja3M6IG1ha2UgdGVzdHNfbWFueV9iaW5zIGluIGJpbiB1bml0IHRlc3QgYSBiaXQgZmFzdGVyCgkgIE5vdCBkb2luZyBleHBlbnNpdmUgY2hlY2tzIHdoZW4gbGlua2luZyBlbGVtZW50cyBtYWtlcyB0aGluZ3MKCSAgbXVjaCBmYXN0ZXIuCgoyMDExLTA0LTA2IDExOjMwOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgY2hlY2tzOiBhZGQgc29tZSBxdWV1ZXMgdG8gdGVzdF9tYW55X2JpbnMgdW5pdCB0ZXN0CgkgIFRvIGxpbWl0IHRoZSBudW1iZXIgb2YgY2FsbHMgaW4gYSByb3cgcGVyIHRocmVhZC4KCjIwMTEtMDQtMDYgMTI6MDM6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IENoZWNrIGlmIHBlbmRpbmcgbWVzc2FnZXMgYXJlIGluIHRoZSBxdWV1ZQoJICBXZSBjYW4ndCByZWx5IGNvbXBsZXRlbHkgb24gdGhlIHBvbGwgZmQgYmVjYXVzZSB0aGUgZmQgbWlnaHQgYmUKCSAgY3JlYXRlZCBhZnRlciBtZXNzYWdlcyB3ZXJlIHBvc3RlZCB0byB0aGUgYnVzLgoKMjAxMS0wNC0wNiAxMTo0NToyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEdzdERhdGUvR0RhdGUgaGFzIGEgYWJicmV2aWF0aW9uIG5vdwoKMjAxMS0wNC0wMyAxNjoxMTo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGNoZWNrczogYWRkIEdzdEJpbiB1bml0IHRlc3QgdGhhdCBjcmVhdGVzIGEgbG90IG9mIGJpbnMKCSAgQ3VycmVudGx5IGZhaWxzIChpbiBub3JtYWwgY2lyY3Vtc3RhbmNlcykgYmVjYXVzZSB3ZSBjcmVhdGUgYQoJICBzb2NrZXQgcGFpciBmb3IgZWFjaCBiaW4ncyBidXMgYW5kIGV4aGF1c3QgdGhlIG51bWJlciBvZiBhdmFpbGFibGUKCSAgZmlsZSBkZXNjcmlwdG9ycy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NjYyNAoKMjAxMS0wNC0wNSAxNjoyMjo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogT25seSBjcmVhdGUgdGhlIHNpZ25hbGxpbmcgc29ja2V0IHBhaXIgd2hlbiByZXF1aXJlZAoJICBPdGhlcndpc2UgYSBuZXcgb25lIHdvdWxkIGJlIGNyZWF0ZWQgZm9yIGV2ZXJ5IHNpbmdsZSBidXMgYW5kCgkgIHRoZSBwcm9jZXNzIGNvdWxkIGVhc2lseSBydW4gb3V0IG9mIGZpbGUgZGVzY3JpcHRvcnMuCgkgIEZpeGVzIGJ1ZyAjNjQ2NjI0LgoKMjAxMS0wNC0wNSAxNDozNjo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogQWRkIGRhdGUgYXMgYSB0eXBlIGFiYnJldmlhdGlvbiBvZiBHRGF0ZQoJICBTZWUgYnVnICM2NDY2OTYuCgoyMDExLTA0LTA0IDE1OjU2OjMwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDFjY2JlMDkgdG8gYzNjYWZlMQoKMjAxMS0wNC0wNCAxMToxNzoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDQtMDQgMDM6MzM6NDYgKzAyMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiByZXRyeSByZWFkaW5nIHRoZSBjb250cm9sIHNvY2tldCB0byByZWxlYXNlIHByb3Blcmx5IGFsbCB3YWtldXBzCgkgIGlmIHNldC0+Y29udHJvbF9wZW5kaW5nIGlzIHNldCB0byAwIGJ1dCB3ZSBkaWRuJ3Qgbm90IHN1Y2NlZCByZWFkaW5nCgkgIHRoZSBjb250cm9sIHNvY2tldCwgZnV0dXJlIGNhbGxzIHRvIGdzdF9wb2xsX3dhaXQoKSB3aWxsIGJlIGF3YWlrZW4KCSAgYnkgdGhlIGNvbnRyb2wgc29ja2V0IHdoaWNoIHdpbGwgbm90IGJlIHJlbGVhc2VkIHByb3Blcmx5IGJlY2F1c2UKCSAgc2V0LT5jb250cm9sX3BlbmRpbmcgaXMgYWxyZWFkeSAwLCBjYXVzaW5nIGFuIGluZmluaXRlIGxvb3AuCgoyMDExLTA0LTA0IDEwOjE4OjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBEb24ndCBhbGxvdyBpbnZhbGlkIEdEYXRlcyBpbiBhbGwgc3RydWN0dXJlcyBhbmQgZG9uJ3QgYWxsb3cgTlVMTCBHRGF0ZXMgaW4gdGFnbGlzdHMKCSAgU29tZSBjb2RlIChlLmcuIGdzdHZvcmJpc3RhZy5jKSBhc3N1bWVzIG5vbi1OVUxMIEdEYXRlcyBpbiB0YWdsaXN0cyBhbmQKCSAgZXhwbG9kZXMgb3RoZXJ3aXNlIGFuZCBOVUxMIG9yIGludmFsaWQgR0RhdGVzIGRvbid0IG1ha2UgbXVjaCBzZW5zZSBhbnl3YXkuCgoyMDExLTAzLTI1IDE1OjU2OjA3ICswMTAwICBUaG9tYXMgS3Jpc3RlbnNlbiA8dGhvbWFzLmtyaXN0ZW5zZW5AY2lzY28uY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogZG9uJ3QgY2FsbCBXU0FXYWl0Rm9yTXVsdGlwbGVFdmVudHMgd2l0aCBubyBldmVudHMKCSAgRml4ZXMgZXJyb3IgY2F1Z2h0IGJ5IE1pY3Jvc29mdCBBcHBsaWNhdGlvbiBWZXJpZmllci4KCjIwMTEtMDQtMDMgMTY6MTg6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGRvY3M6IGFkZCBwb2ludGVyIHRvIHBhcnQtc2Vla2luZy50eHQgZGVzaWduIGRvY3MgdG8gZXZlbnQgc2VlayBmbGFncyBkb2NzCgoyMDExLTA0LTAzIDE2OjE4OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkgIGNoZWNrczogaWdub3JlIG5ldyBmdW5uZWwgdW5pdCB0ZXN0IGJpbmFyeQoKMjAxMS0wNC0wMiAxNDo1MToxOCArMDEwMCAgQmFzdGllbiBOb2NlcmEgPGhhZGVzc0BoYWRlc3MubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBBdm9pZCB1c2luZyAidHlwZSIgYXMgbmFtZSBmb3IgYSB2YXJpYWJsZSBhbmQgYSBtYWNybyBhcmd1bWVudCBpbiBHU1RfQk9JTEVSUExBVEUKCSAgVGhpcyBjYXVzZWQgInJlLWRlY2xhcmF0aW9uIiBwcm9ibGVtcy4KCSAgLi9jbHV0dGVyLWdzdC12aWRlby1zaW5rLmM6IEluIGZ1bmN0aW9uIOKAmGNsdXR0ZXJfZ3N0X3ZpZGVvX3NpbmtfaW5pdF9pbnRlcmZhY2Vz4oCZOgoJICAuL2NsdXR0ZXItZ3N0LXZpZGVvLXNpbmsuYzoyMzE6MTogd2FybmluZzogZGVjbGFyYXRpb24gb2Yg4oCYQ2x1dHRlckdzdFZpZGVvU2lua+KAmSBzaGFkb3dzIGEgZ2xvYmFsIGRlY2xhcmF0aW9uIFstV3NoYWRvd10KCSAgLi9jbHV0dGVyLWdzdC12aWRlby1zaW5rLmg6NjQ6NDQ6IHdhcm5pbmc6IHNoYWRvd2VkIGRlY2xhcmF0aW9uIGlzIGhlcmUgWy1Xc2hhZG93XQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2NTMxCgoyMDExLTA0LTAxIDEzOjU2OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IFdoZW4gcmVxdWVzdGluZyBhbiBleGlzdGluZyBwYWQgcHJpbnQgYSBnX2NyaXRpY2FsKCkgaW5zdGVhZCBvZiB1c2luZyBhbiBhc3NlcnRpb24KCSAgU29tZSBhcHBsaWNhdGlvbnMgYXJlIHJlcXVlc3RpbmcgdGhlIHNhbWUgcGFkIG5hbWUgbXVsdGlwbGUgdGltZXMKCSAgYW5kIHRoZSBiZWhhdmlvdXIgaXMgdW5kZWZpbmVkIGFuZCBkaWZmZXJlbnQgZnJvbSBlbGVtZW50IHRvIGVsZW1lbnQKCSAgYnV0IHdlIGRvbid0IHdhbnQgdG8gYnJlYWsgYXBwbGljYXRpb25zIHRoYXQgd29yayBqdXN0IGZpbmUuCgkgIEluIDAuMTEgdGhpcyBjaGVjayBzaG91bGQgYmUgYW4gYXNzZXJ0aW9uIGFnYWluLCBhbHRob3VnaCBlbGVtZW50cwoJICBoYXZlIHRvIGRvIG1hbnVhbCBjaGVja2luZyBpZiB0aGUgcGFkIGFscmVhZHkgZXhpc3RzIGFnYWluIGJlY2F1c2UKCSAgaXQgY2FuJ3QgYmUgZG9uZSBpbiBhIHRocmVhZHNhZmUgd2F5IGhlcmUuCgoyMDExLTA0LTAxIDEzOjUzOjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IFVzZSBnaW50NjQvZ3VpbnQ2NCBzdHJpbmcgcGFyc2luZyBmdW5jdGlvbnMKCSAgQW5kIGNoZWNrIHRoYXQgdGhlIHJlcXVlc3RlZCBwYWQgbmFtZXMgYXJlIGluc2lkZSB0aGUgdmFsaWQKCSAgZ2ludC9ndWludCByYW5nZS4KCjIwMTEtMDQtMDEgMTM6NTE6MzEgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHN0cnRvW3VdbCgpIHJldHVybnMgYSBnW3VdbG9uZwoKMjAxMS0wNC0wMSAxMDo0Nzo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDQtMDEgMTA6NDY6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgcG9ydGluZyBndWlkZSB3aXRoIGJ1ZmZlcmxpc3QgY2hhbmdlcwoKMjAxMS0wMy0zMSAxOToyNTozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICBkZXNpZ24gZG9jczogZG9jdW1lbnQgZXhwZWN0ZWQgYmVoYXZpb3VyIGZvciBBQ0NVUkFURSBhbmQgS0VZX1VOSVQgc2VlayBmbGFncwoKMjAxMS0wMy0zMSAxODozOTo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJICBieXRld3JpdGVyOiBkb24ndCBhZGQgTlVMTCBkYXRhCgoyMDExLTAzLTMxIDE3OjU1OjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0LmgKCjIwMTEtMDMtMzEgMTc6NTE6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJsaXN0OiBzaW1wbGlmeSBidWZmZXJsaXN0cwoJICBXZSBub3cgaGF2ZSBtdWx0aXBsZSBtZW1vcnkgYmxvY2tzIGFzIHBhcnQgb2YgdGhlIGJ1ZmZlcnMgYW5kIHdlIGNhbiB0aGVyZWZvcmUKCSAgcmVkdWNlIHRoZSBidWZmZXJsaXN0IHRvIGEgc2ltcGxlIGFycmF5IG9mIGJ1ZmZlcnMuCgoyMDExLTAzLTMxIDEwOjUzOjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIGdzdGFiaTogQWRkIHNvbWUgbmV3IHN0cnVjdHVyZXMgZm9yIHg4Ni02NAoKMjAxMS0wMy0zMSAxMDo0Njo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIGxpYnNhYmk6IEFkZCBsb3RzIG9mIG5ldyBzdHJ1Y3R1cmVzIGZvciB4ODYtNjQKCjIwMTEtMDMtMzEgMTA6MzE6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgcG9ydGluZyBkb2MKCjIwMTEtMDMtMzAgMjA6MDU6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IGZpeCBmb3IgQVBJIGNoYW5nZQoKMjAxMS0wMy0zMCAxOTo1ODo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEtZmRvCgkgIENvbmZsaWN0czoKCSAgZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeQoJICBnc3QvZ3N0ZWxlbWVudC5jCgoyMDExLTAzLTMwIDE5OjAxOjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZXRhLmM6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzCgoyMDExLTAzLTMwIDE4OjQ1OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkb2NzOiB1cGRhdGUgZG9jdW1lbnRhdGlvbgoKMjAxMS0wMy0zMCAxNjo0Nzo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBtb3JlIEFQSSB0d2Vha3MKCSAgX3RyaW0gLT4gX3Jlc2l6ZQoJICBfY3JlYXRlX3N1YiAtPiBjb3B5X3JlZ2lvbgoKMjAxMS0wMy0zMCAxNToyOTozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJsaXN0LnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgZGVzaWduIGRvY3MKCjIwMTEtMDMtMzAgMTM6MDQ6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGRlc2lnbjogdXBkYXRlIGRvY3MKCjIwMTEtMDMtMzAgMTA6NDg6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogTWFrZSBhc3NpZ25tZW50IG9mIHF1ZXVlIElEcyBhbmQgcGFkIG5hbWVzIHRocmVhZHNhZmUKCSAgQWxzbyBhZGQgYSB0ZXN0IGZvciBuYW1pbmcgcGFkcyBieSB0aGUgY2FsbGVyIGFuZCByZXR1cm4gTlVMTAoJICB3aGVuIHJlcXVlc3RpbmcgYW4gYWxyZWFkeSBleGlzdGluZyBwYWQuCgoyMDExLTAzLTI5IDIzOjU4OjQzICswMjAwICBBbmRyZWFzIEZyaXNjaCA8ZnJheGluYXNAb3BlbmRyZWFtYm94Lm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBTZXQgdGhlIHNpbmdsZSBxdWV1ZSBJRCB0byB0aGUgSUQgb2YgdGhlIHJlcXVlc3RlZCBwYWQgaWYgb25lIHdhcyBnaXZlbiBieSB0aGUgY2FsbGVyCgoyMDExLTAzLTI5IDE5OjE3OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVtb3J5OiBmdXJ0aGVyIG1lbW9yeSB0d2Vha2luZwoJICBBbGxvdyBmb3IgYXV0b21hdGljIG1lcmdpbmcgb2YgbWVtb3J5IGJsb2NrIGluIHRoZSBfbWFwIGZ1bmN0aW9uIGFuZCBhdXRvbWF0aWMKCSAgZnJlZWluZyBvZiB0aGUgdGVtcG9yYXJ5IG1lbW9yeS4KCSAgUmVtb3ZlIHNvbWUgdW5uZWVkZWQgZnVuY3Rpb25zLgoJICBBZGQgcG9zc2liaWxpdHkgdG8gZm9yY2Ugd3JpdGFibGUgc3Bhbm5lZCBtZW1vcnkuCgoyMDExLTAzLTI5IDE3OjE3OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGltcGxlbWVudCBDT1BZX01FUkdFCgoyMDExLTAzLTI5IDE2OjUyOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogY2xlYW4gdXAgX3NwYW4gYW5kIGFkZCBtb3JlIGdfcmV0dXJuX2lmLi4KCjIwMTEtMDMtMjkgMTY6MjI6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogRml4IHNhbml0eSBjaGVja3MgZm9yIHJlcXVlc3QgcGFkIHRlbXBsYXRlcyB3aXRob3V0ICUKCjIwMTEtMDMtMjkgMTM6NTE6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBvcHRpbWl6ZSBtZW1vcnkgaGFuZGxpbmcKCjIwMTEtMDMtMjkgMTE6NTc6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogQWRkIHNvbWUgbW9yZSBzYW5pdHkgY2hlY2tzIHRvIHRoZSBwYWQgbmFtZSBjaGVja2luZyBvZiByZXF1ZXN0IHBhZHMgaW4gYWxsIGNhc2VzCgkgIEVzcGVjaWFsbHkgY2hlY2sgaWYgYSBwYWQgd2l0aCB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMuCgoyMDExLTAzLTI5IDExOjUyOjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IENoZWNrICV1IHRvbyB3aGVuIHRyeWluZyB0byBmaW5kIGEgcGFkIHRlbXBsYXRlIGZvciBhIHJlcXVlc3QgcGFkCgoyMDExLTAzLTI5IDExOjMxOjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogbW92ZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGluIHByaXZhdGUgc3RydWN0CgoyMDExLTAzLTI4IDIxOjAxOjEzICswMjAwICBGcmF4aW5hcyA8YW5kcmVhcy5mcmlzY2hAbXVsdGltZWRpYS1sYWJzLmRlPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZpeCBhcmJpdHJhcnkgc2luayArIHNvdXJjZSBwYWQgbmFtaW5nCgkgIFVzZSB0aGUgc3RyaW5nIHByb3ZpZGVkIGJ5IHRoZSBjYWxsZXIgZm9yIHRoZSBzaW5rcGFkIG5hbWUKCSAgaWYgcG9zc2libGUuIE5vdGUgdGhhdCBhbGwgc2FuaXR5IGNoZWNraW5nIGZvciB0aGlzIG5hbWUKCSAgaXMgYWxyZWFkeSBkb25lIGluIEdzdEVsZW1lbnQuCgkgIEZpeGVzIEJ1ZyAjNjQ1OTMxCgoyMDExLTAzLTI5IDExOjE4OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogQWRkIHNvbWUgbW9yZSBkb2N1bWVudGF0aW9uIGFib3V0IHRoZSBiZWhhdmlvdXIgb2YgZnVubmVsCgoyMDExLTAzLTI5IDExOjA4OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogU2VuZCBhIG5ld3NlZ21lbnQgZXZlbnQgYWZ0ZXIgZmx1c2gtc3RvcAoKMjAxMS0wMy0yOSAxMTowNzo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IFNvbWUgcmFuZG9tIGNsZWFudXAKCjIwMTEtMDMtMjkgMTA6NTY6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBVc2UgYSBHc3RQYWQgc3ViY2xhc3MgZm9yIHRoZSBzaW5rcGFkcyBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBwYWQncyBlbGVtZW50IHByaXZhdGUgZGF0YQoKMjAxMS0wMy0yOSAxMDo0MjozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXN0YXRpY2VsZW1lbnRzLnhtbDoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIGZ1bm5lbDogSW50ZWdyYXRlIGludG8gdGhlIGJ1aWxkIHN5c3RlbSBhbmQgcmVuYW1lIHRoZSB0eXBlcwoKMjAxMS0wMy0yOSAxMDozOTo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgZnVubmVsOiBJbXBvcnQgZnVubmVsIGVsZW1lbnQgZnJvbSBmYXJzaWdodDIKCjIwMTEtMDMtMjkgMTE6MDc6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IG1vcmUgYnVmZmVyIHVwZGF0ZXMKCjIwMTEtMDMtMjggMjA6MjA6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogZml4IGRlZnMKCjIwMTEtMDMtMjggMjA6MTE6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExLWZkbwoJICBDb25mbGljdHM6CgkgIGdzdC9nc3QuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmMKCjIwMTEtMDMtMjggMTk6MTk6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJ1ZmZlcjogZml4IHN1YmJ1ZmZlcnMKCjIwMTEtMDMtMjggMTY6NDA6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogaW1wbGVtZXQgdHJpbSBhbmQgc2V0X3NpemUKCjIwMTEtMDMtMjggMTU6NTI6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IG1vcmUgZml4ZXMKCjIwMTEtMDMtMjggMTA6Mjg6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBidWZmZXI6IGFkZCBtb3JlIG1ldGhvZHMKCjIwMTEtMDMtMjQgMjE6MjE6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogYWRkIGNsYXNzIGluaXQKCjIwMTEtMDMtMjQgMjE6MTg6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBmaXggcmVtYWluaW5nIHVuaXQgdGVzdHMKCjIwMTEtMDMtMjQgMjA6MDk6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggdW5pdCB0ZXN0CgoyMDExLTAzLTI0IDEzOjAxOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBtZW1vcnk6IHJlbW92ZSBtZW1vcnkgbWV0YWRhdGEgYWdhaW4KCjIwMTEtMDMtMjQgMTE6NDk6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIG1lbW9yeTogbW9yZSBmaXhlcwoJICBBdXRvbWF0aWNhbGx5IG1ha2UgdGhlIG1lbW9yeSBvZiBhIGJ1ZmZlciB3cml0YWJsZSB3aGVuIHRoZSBidWZmZXIgaXMgd3JpdGFibGUKCSAgYW5kIHRoZSBtZW1vcnkgaXMgYXNrZWQgdG8gbWFwcGVkIFdSSVRFLgoJICBBZGQgZG9jcwoKMjAxMS0wMy0yMyAyMDo1MjoyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSAgbWVtb3J5OiBtb3JlIHdvcmsgb24gaW1wbGVtZW50aW5nIGJ1ZmZlciBtZW1vcnkKCjIwMTEtMDMtMjIgMjA6NTE6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkgIG1lbW9yeTogbW9yZSB3b3JrIG9uIHBvcnRpbmcgdGhlIHVuaXQgdGVzdHMKCjIwMTEtMDMtMjEgMTk6MTU6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJICB0ZXN0czogbWFrZSBzb21lIHRlc3RzIGNvbXBpbGUKCjIwMTEtMDMtMjEgMTg6MTM6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkqIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvYWRhcHRlcl90ZXN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgbWVtb3J5OiBwb3J0IGNvZGUgdG8gbmV3IGJ1ZmZlciBkYXRhIEFQSQoKMjAxMS0wMy0yMSAxMzowNzo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBtZW1vcnk6IG1vcmUgZml4ZXMKCSAgRml4IHNwYW4gYW5kIGlzX3NwYW4KCSAgSW1wbGVtZW50IGJ1ZmZlciBtZW1vcnkKCjIwMTEtMDMtMjEgMDk6NTE6NTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBXSVAgdXNlIG1lbW9yeSBpbiBidWZmZXIKCjIwMTEtMDMtMjAgMTE6NDI6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBtb3JlIGltcHJvdmVtZW50cwoKMjAxMS0wMy0xOSAxMDo0NTozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IG1vcmUgbWVtb3J5IGltcHJvdmVtZW50cwoKMjAxMS0wMy0xOCAyMTo0NTozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBtb3JlIG1lbW9yeSBvcGVyYXRpb25zCgoyMDExLTAzLTE4IDE5OjI4OjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBtZW1vcnkgaW1wbGVtZW50YXRpb24KCjIwMTEtMDMtMTggMTg6MzU6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIEFQSSBmb3IgaGFuZGxpbmcgbWVtb3J5IGJsb2NrcwoJICBBZGRzIHNvbWUgQVBJIHRvIGhhbmRsZSBtZW1vcnkgYmxvY2tzLgoKMjAxMS0wMy0wOCAxODoxODoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IGZpeCBkb2NzCgoyMDExLTAzLTI4IDIxOjIxOjAwICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFJldHVybiBGQUxTRSBpZiB3ZSBkb24ndCBoYW5kbGUgYW4gZXZlbnQKCSAgYmFzZXNyYydzIGRlZmF1bHQgZXZlbnQgaGFuZGxlciByZXR1cm5zIFRSVUUgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZQoJICBldmVudCBpcyBoYW5kbGVkIG9yIG5vdC4gVGhpcyBmaXhlcyB0aGUgaGFuZGxlciB0byBjb25mb3JtIHdpdGggdGhlCgkgIGV4cGVjdGVkIGJlaGF2aW91ciAod2hpY2ggaXMgdG8gb25seSByZXR1cm4gVFJVRSB3aGVuIHRoZSBldmVudCBoYXMKCSAgYWN0dWFsbHkgYmVubiBoYW5kbGVkKS4gZ3N0X2Jpbl9kb19sYXRlbmN5X2Z1bmMoKSBkZXBlbmRlZCBvbiB0aGlzCgkgIChpbmNvcnJlY3QpIGJlaGF2aW91ciwgYW5kIGlzIG5vdyBtb2RpZmllZCBhcyB3ZWxsLgoJICAoUmVtYWluaW5nIDEtbGluZXIgY2hhbmdlIGluIGdzdGJhc2VzcmMuYyBpcyB0byBrZWVwIGdzdC1pbmRlbnQgaGFwcHkpCgoyMDExLTAzLTI1IDIyOjA4OjQxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMTkzYjcxNyB0byAxY2NiZTA5CgoyMDExLTAzLTI1IDE0OjU1OjM5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGI3N2UyYmYgdG8gMTkzYjcxNwoKMjAxMS0wMy0yNSAwOToyNzo1OCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGQ4ODE0YjYgdG8gYjc3ZTJiZgoKMjAxMS0wMy0yNSAwODo1OTozNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDZhYWEyODYgdG8gZDg4MTRiNgoKMjAxMS0wMy0yNCAxODo0ODo0MSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2YWVjNmI5IHRvIDZhYWEyODYKCjIwMTEtMDMtMjQgMTg6Mjc6MDkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgZG9jczogZml4IHNvbWUgZ3RrLWRvYyB3YXJuaW5ncwoJICBEb2N1bWVudCB0aGUgcXVldWUgbGVha3kgZW51bXMuCgoyMDExLTAzLTI0IDE4OjI1OjA4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHNldCBtYXggdmFsdWUgZm9yIHRvIHRoZSBtYXRjaGluZyBvbmUgZm9yIHRoZSBkYXRhdHlwZQoJICBUaGUgcHJvcGVydHkgaXMgZ3VpbnQ2NCwgc28gdXNlIEdfTUFYVUlOVDY0IGluc3RlYWQgb2YgR19NQVhVSU5ULgoKMjAxMS0wMy0yNCAxMzoyMjo1NyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBkb2NzOiBjbGVhbnVwIGFuZCB4cmVmIGZpeGVzCgkgIERlYWwgd2l0aCB0aGUgaGludHMgZnJvbSBndGstZG9jIGFuZCBmaXggdGhlIHhyZWZzLiBBcHBseSBhIHdvcmstYXJvdW5kIGZvciAoKQoJICBwcmVjZWRlbmNlIG92ZXIgQC4gTW92ZSAiTVQgU2FmZSIgdGV4dCB0byBkb2MgYm9keSBpbiBtYW55IHBsYWNlcy4gVHJpbSBlb2wKCSAgd2hpdGVzcGFjZXMuCgoyMDExLTAzLTIzIDE2OjQyOjI0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBwcmludCBmbG93IHJldHVybiBhcyBhIG5hbWUgaW4gZGVidWcgbG9nCgoyMDExLTAzLTIzIDE3OjEzOjU4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgZG9jczogZG8geHJlZnMgZm9yIG5vbiBpbnN0YWxsZWQgYm9va3MgdG9vCgkgIEdldCB0aGUgeHJlZnMgZnJvbSB0aGUgYnVpbGRkaXIgZm9yIHRoZSBib29rcyBpbiB0aGUgc2FtZSBwYWNrYWdlcy4gVGhpcyBmaXhlcwoJICB0aGUgY3Jvc3MgcmVmZXJlbmNlcyBpZiBvbmUgZG9lcyBub3QgaGF2ZSB0aGUgZG9jcyBhbHJlYWR5IGluc3RhbGxlZC4KCjIwMTAtMDQtMTkgMjA6Mzk6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogS2VlcCBkb3duc3RyZWFtIGNhcHMgb3JkZXIgd2hlbiBmaXhhdGluZwoJICBUaGlzIGFsbG93cyB1c2UgdG8gdXNlIHRoZSBmaXJzdCBpbnRlcnNlY3RpbmcgZm9ybWF0IHByZWZlcmVkIGJ5IGRvd25zdHJlYW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTcwNDUKCjIwMTAtMDQtMTkgMjA6NDA6NTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUmV0YWluIGNhcHMgb3JkZXIgd2hlbiBnZXR0aW5nIGNhcHMKCSAgSWYgdGhlIGVsZW1lbnQgZ2F2ZSB1cyBjYXBzIGluIGEgc3BlY2lmaWMgb3JkZXIsIGxldCdzIHJldGFpbiB0aGF0CgkgIGJ5IGludGVyc2VjdGluZyBhZ2FpbnN0IHRoZSB0ZW1wbGF0ZSBidXQgcmV0YWluaW5nIHRoZSBvcmRlciBnaXZlbgoJICBieSB0aGUgZWxlbWVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNzA0NQoKMjAxMS0wMi0yNSAxMDoyNToyNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB0ZXN0czogY2FwczogVGVzdHMgZm9yIHRoZSBuZXcgY2FwcyBpbnRlcnNlY3Rpb24gbW9kZQoJICBBZGRzIHRlc3QgY2FzZXMgZm9yIHRoZSBjYXBzICdmaXJzdCcgaW50ZXJzZWN0IG1vZGUKCSAgQWRkcyBhbm90aGVyIHRlc3QgZm9yIHRoZSAnemlnemFnJyBtb2RlCgkgIEZpeGVzICM2MTcwNDUKCjIwMTEtMDItMjUgMDg6NTA6MTIgLTAzMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RjYXBzOiBuZXcgQVBJIDogZ3N0X2NhcHNfaW50ZXJzZWN0X2Z1bGwKCSAgSnVzdCBsaWtlIGdzdF9jYXBzX2ludGVyc2VjdCwgYnV0IGFkZHMgYSBuZXcgcGFyYW1ldGVyICdtb2RlJwoJICB0aGF0IGFsbG93cyBzZWxlY3RpbmcgdGhlIGludGVyc2VjdGlvbiBhbGdvcml0aG0gdG8gdXNlLgoJICBDdXJyZW50bHkgd2UgaGF2ZSBHU1RfQ0FQU19JTlRFUlNFQ1RfTU9ERV9aSUdfWkFHIChkZWZhdWx0KSBhbmQKCSAgR1NUX0NBUFNfSU5URVJTRUNUX01PREVfRklSU1QuCgkgIEFQSTogZ3N0X2NhcHNfaW50ZXJzZWN0X2Z1bGwKCSAgQVBJOiBHc3RDYXBzSW50ZXJzZWN0TW9kZQoJICBBUEk6IEdTVF9DQVBTX0lOVEVSU0VDVF9NT0RFX1pJR19aQUcKCSAgQVBJOiBHU1RfQ0FQU19JTlRFUlNFQ1RfTU9ERV9GSVJTVAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE3MDQ1CgoyMDExLTAzLTEyIDE3OjAxOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bGlic2NwcC5jYzoKCSAgdGVzdHM6IGFkZCBsaWJzY3BwIHVuaXQgdGVzdCB0byBtYWtlIHN1cmUgZysrIGxpa2VzIG91ciBsaWJyYXJ5IGhlYWRlcnMKCjIwMTEtMDMtMTIgMTY6NTg6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRlcmVhZGVyLCBieXRld3JpdGVyOiBmaXggdXAgaW5saW5lIGZ1bmN0aW9ucyB0byBtYWtlIGcrKyBoYXBweQoJICBnc3RieXRlcmVhZGVyLmg6IEluIGZ1bmN0aW9uIOKAmGd1aW50OCogZ3N0X2J5dGVfcmVhZGVyX2R1cF9kYXRhX3VuY2hlY2tlZChHc3RCeXRlUmVhZGVyKiwgZ3VpbnQp4oCZOgoJICBnc3RieXRlcmVhZGVyLmg6MjQ5Ojc1OiBlcnJvcjogaW52YWxpZCBjb252ZXJzaW9uIGZyb20g4oCYdm9pZCrigJkgdG8g4oCYZ3VpbnQ4KuKAmQoJICBnc3RieXRld3JpdGVyLmg6IEluIGZ1bmN0aW9uIOKAmGdib29sZWFuIF9nc3RfYnl0ZV93cml0ZXJfZW5zdXJlX2ZyZWVfc3BhY2VfaW5saW5lKEdzdEJ5dGVXcml0ZXIqLCBndWludCnigJk6CgkgIGdzdGJ5dGV3cml0ZXIuaDoxOTY6NzU6IGVycm9yOiBpbnZhbGlkIGNvbnZlcnNpb24gZnJvbSDigJh2b2lkKuKAmSB0byDigJhndWludDgq4oCZCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU1OTUKCjIwMTEtMDMtMjIgMTY6MjY6NTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZ3N0ZWxlbWVudDogRml4IHR5cG8gaW4gdGhlIGRvY3MKCSAgR1NUX0VMRU1FTlRfSU5GTyB3aWxsIHBvc3QgYSBJTkZPIG1lc3NhZ2UsIG5vdCBhIFdBUk5JTkcKCjIwMTEtMDMtMTggMDg6MjI6MjMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICB0YWdzZXR0ZXI6IFJlbW92aW5nIHVudXNlZCBkZWJ1ZyBjYXRlZ29yeQoJICB0YWdzZXR0ZXIncyBkZWJ1ZyBjYXRlZ29yeSBoYWQgYSB0eXBvIGFuZCB3YXMgdW51c2VkLiBSZW1vdmluZyBpdC4KCjIwMTEtMDMtMTggMTk6MzQ6NTcgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNAZGViZXRoZW5jb3VydC5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvZ2VuOiB3aW5nbyBzaWduZWQgY29tbWVudAoKMjAxMS0wMy0yMiAxMTowNDoyMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgbGVhayBvYmplY3RzIHdoZW4gZmx1c2hpbmcgYWZ0ZXIgZGVxdWV1ZWluZyBhbmQgYmVmb3JlIHB1c2hpbmcgdGhlIG9iamVjdAoKMjAxMS0wMy0yMSAxNzo1NDoxMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogUmVhbGx5IHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMTEtMDMtMjEgMTc6NTI6MTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBJbmNyZW1lbnQgdW5pcXVlIGl0ZW0gY291bnRlciB3aXRoIGF0b21pYyBvcGVyYXRpb25zCgkgIEJlZm9yZSBpdCB3YXMgb25seSBwcm90ZWN0ZWQgYnkgdGhlIHN0cmVhbSBsb2NrIGJ1dCBldmVyeSBwYWQKCSAgaGFzIGl0cyBvd24gc3RyZWFtIGxvY2ssIG1ha2luZyB0aGUgcHJvdGVjdGlvbiByYXRoZXIgdXNlbGVzcy4KCjIwMTEtMDMtMjEgMTc6MTc6MjIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFVuYmxvY2sgYWxsIHdhaXRpbmcgcGFkcyB3aGVuIHNodXR0aW5nIGRvd24KCjIwMTEtMDMtMjEgMTI6Mzk6MzQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMTEtMDMtMjEgMTY6Mjg6MzcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEV4aXQgbG9vcCBmdW5jdGlvbiBpZiB0aGUgcGFkIGlzIGZsdXNoaW5nCgkgIEZpeGVzIHBvc3NpYmxlIGRlYWRsb2NrcyB3aGVuIGZsdXNoaW5nIGFuIHVubGlua2VkIHBhZCB0aGF0IHdhaXRzCgkgIGZvciBvdGhlciBwYWRzIHRvIGFkdmFuY2UuCgoyMDExLTAzLTE5IDE3OjA2OjEyIC0wNTAwICBKYXNvbiBELiBDbGludG9uIDxtZUBqYXNvbmNsaW50b24uY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBidWlsZDogZml4IGJ1aWxkIHdpdGggLVdlcnJvciB3aXRoIEdDQyA0LjYuMAoJICBUaGlzIHRvdWNoZXMgdGhyZWUgYXJlYXMgb2YgY29kZSwgcmVtb3ZlcyB1bnVzZWQgdmFyaWFibGVzIGFuZCBkaXNjYXJkcwoJICByZXR1cm4gdmFsdWVzIGZyb20gdHdvIGZ1bmN0aW9ucyB3aXRoICh2b2lkKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTI2NwoKMjAxMS0wMy0xOSAxMDozOToyOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IEFkZCBzaW5jZSBtYXJrZXIgdG8gR1NUX0VWRU5UX1NJTktfTUVTU0FHRQoKMjAxMS0wMy0xOSAwODo1NTo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogU3RvcCB3YWl0aW5nIGZvciBhIHBhZCBzd2l0Y2ggd2hlbiB0aGUgcGFkIGlzIGZsdXNoaW5nCgoyMDExLTAzLTE5IDA4OjUwOjA2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBNb3ZlIGxvY2tpbmcgYW5kIHNpZ25hbGxpbmcgbWFjcm9zIGZyb20gdGhlIGhlYWRlciB0byB0aGUgc291cmNlIGZpbGUKCjIwMTEtMDMtMTcgMjM6NDI6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suaDoKCSAgdGFzazogZml4IEdTVF9UQVNLX0JST0FEQ0FTVAoJICBTdXJwcmlzaW5nbHkgZW5vdWdoLCB5b3UgY2FuJ3QgImJyZWFkY2FzdCIgb24gYSBHQ29uZC4KCSAgU3BvdHRlZCBieSBSdW5lIFPDpnRyZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTAyMgoKMjAxMS0wMy0xNyAxNDoyMToxNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogSG9sZCB0aGUgc2VsZWN0b3IgbG9jayB3aGlsZSByZWFkaW5nIHByb3BlcnRpZXMgb2YgdGhlIGFjdGl2ZSBwYWQKCjIwMTEtMDMtMTcgMTQ6MTA6NDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IE1ha2Ugc3VyZSB0aGF0IEVPUyBpcyBhbHdheXMgc2VudCBkb3duc3RyZWFtIGZvciB0aGUgYWN0aXZlIHBhZAoJICBJdCBjYW4gaGFwcGVuIHRoYXQgdGhlIGN1cnJlbnRseSBhY3RpdmUgcGFkIGdvdCB0aGUgRU9TIGV2ZW50CgkgIGJlZm9yZSBpdCB3YXMgYWN0aXZhdGVkIGFuZCB0aGUgcHJldmlvdXNseSBhY3RpdmUgcGFkIGdvdCB0aGUKCSAgRU9TIGV2ZW50IGFmdGVyIGl0IHdhcyBkZWFjdGl2YXRlZC4gSW4gdGhhdCBjYXNlIHdlIGhhdmUgdG8KCSAgc2VuZCB0aGUgRU9TIGV2ZW50IGZyb20gYW4gaW5hY3RpdmUgcGFkIGRvd25zdHJlYW0uCgoyMDExLTAzLTE2IDE4OjE5OjExICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBSZXR1cm4gR1NUX0ZMT1dfT0sgdW50aWwgdGhlIHNlbGVjdGVkIHBhZCBwdXNoZWQgc29tZXRoaW5nIGRvd25zdHJlYW0KCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgZHVyaW5nIHN3aXRjaGVzIGF0IG5vIHBvaW50IGluIHRpbWUgYWxsIHBhZHMKCSAgaGF2ZSByZXR1cm5lZCBub3QtbGlua2VkLCB3aGljaCBjYW4gaGFwcGVuIHdoZW4gcGxheWluZyBhbiBhdWRpby1vbmx5CgkgIGZpbGUgd2l0aCBwbGF5YmluMiBhbmQgc3dpdGNoaW5nIGJldHdlZW4gdGhlIHN0cmVhbXMgZm9yIGV4YW1wbGUuCgkgIEZpeGVzIGJ1ZyAjNjQ0OTM1LgoKMjAxMS0wMy0xNyAxMDo1Mzo0OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogUmVtb3ZlIGRlcHJlY2F0ZWQgZ3N0X2VsZW1lbnRfZmFjdG9yeV9jYW5fe3Npbmssc3JjfV9jYXBzKCkKCjIwMTEtMDMtMTcgMTA6NTA6NDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RidWZmZXJsaXN0LmMKCjIwMTEtMDMtMTYgMTI6MDE6MjEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvY3VtZW50IHRoYXQgcGFkIGJsb2NrcyBvbmx5IG1ha2Ugc2Vuc2UgZm9yIHNpbmsgcGFkcyBpbiBwdWxsIG1vZGUgYW5kIHNyYyBwYWRzIGluIHB1c2ggbW9kZQoJICBTZWUgYnVnICM2NDQ5MDcuCgoyMDExLTAzLTE2IDExOjUzOjUzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogVGhlIGludGVybmFsbHkgbGlua2VkIHBhZCBvZiB0aGUgcHJveHlwYWQgaXMgdGhlIGdob3N0cGFkCgkgIFByZXZpb3VzbHkgd2Ugd2VyZSByZXR1cm5pbmcgdGhlIHBlZXJwYWQsIHdoaWNoIGlzIHRoZSB0YXJnZXQKCSAgb2YgdGhlIGdob3N0cGFkLgoKMjAxMS0wMi0yNSAxNjoyMDo0OSArMDEwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnQGF4aXMuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogVXNlIGEgR1F1ZXVlIGluc3RlYWQgb2YgYSBHTGlzdAoJICBBZGRpbmcgYSBidWZmZXIgdG8gdGhlIGVuZCBvZiBhIEdzdEJ1ZmZlckxpc3QgaXMgc3VwcG9zZWQgdG8gYmUgYSBmYXN0CgkgIG9wZXJhdGlvbiwgYnV0IGl0IHdhcyBub3Qgc2luY2UgdGhlIGl0ZXJhdG9yIGRvZXMgbm90IGFkdmFuY2UgaXRzCgkgIG5leHRwb2ludGVyIHdoZW4gYWRkaW5nIGJ1ZmZlcnMgYW5kIEdMaXN0IGRvZXMgbm90IGhhdmUgYSB0YWlsIHBvaW50ZXIuCgkgIFVzaW5nIGEgR1F1ZXVlIHRvIHN0b3JlIHRoZSBidWZmZXJzIG1ha2VzIGl0IGVhc2llciB0byBhZGQgYnVmZmVycyB0bwoJICB0aGUgZW5kIG9mIHRoZSBsaXN0IGFuZCB0aGlzIG9wZXJhdGlvbiB3aWxsIG5vdyBiZSBtdWNoIG1vcmUgZWZmaWNpZW50LgoJICBBZGRpbmcgYW4gZW50aXJlIEdMaXN0IG9mIGJ1ZmZlcnMgdXNpbmcKCSAgZ3N0X2J1ZmZlcl9saXN0X2l0ZXJhdG9yX2FkZF9saXN0KCkgd2lsbCBob3dldmVyIGhhdmUgdG8gaXRlcmF0ZSBvdmVyCgkgIHRoZSBsaXN0IGJlaW5nIGFkZGVkIHRvIGJlIGFibGUgdG8gdXBkYXRlIHRoZSB0YWlsIHBvaW50ZXIgaW4gdGhlCgkgIEdRdWV1ZS4KCjIwMTEtMDMtMTAgMTc6NDg6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogZml4IEFCSSBicmVhayB3aGVuIGNvbXBpbGluZyBnc3RyZWFtZXIgd2l0aCAtREdTVF9ESVNBQkxFX0RFUFJFQ0FURUQKCSAgR1NUX0RJU0FCTEVfREVQUkVDQVRFRCBzaG91bGQgb25seSBhZmZlY3QgdmlzaWJpbGl0eSBvZiBkZWNsYXJhdGlvbnMgaW4gaGVhZGVycywKCSAgbm90IGFjdHVhbGx5IHJlbW92ZSBzeW1ib2xzLiBTZWUgR2l0RGV2ZWxvcGVyR3VpZGVsaW5lcyBhbmQgRGVwcmVjYXRpbmdBUEkKCSAgcGFnZXMgaW4gd2lraS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTQwMjE0MQoKMjAxMS0wMy0xMCAxNjo0NjowNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSAuZGVmIGZpbGUgZm9yIEFQSSBhZGRpdGlvbgoKMjAxMS0wMy0xMCAxMDoyNTowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDMtMDkgMTY6MTU6MzMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgcHdnOiBmaXggZWxlbWVudCBuYW1lICJ2aWRlb2Ryb3AiIHRvICJ2aWRlb3JhdGUiCgoyMDExLTAzLTA4IDEyOjExOjA4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgdGVzdDogYWRkIHRlc3RzIGZvciBuZXcgZWxlbWVudF9mYWN0b3J5IGFwaS4KCjIwMTAtMDYtMjMgMjI6MDA6MDQgKzAyMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3R1dGlsczogcmVwbGFjZSBnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl97c2luayxzcmN9X2NhcHMKCSAgQWRkIG5ldyBmdW5jdGlvbnMgdG8gY2xhcmlmeSBob3cgdGhlIGNhcHMgYXJlIGNvbXBhcmVkIHRvIHRoZSB0ZW1wbGF0ZSBjYXBzIG9mCgkgIHRoZSBlbGVtZW50IGZhY3RvcnkuIEltcHJvdmUgdGhlIGRvY3MgdG8gcG9pbnQgb3V0IHRoZSBkaWZmZXJlbmNlLgoJICBEZXByZWNhdGU6IGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX3tzcmN8c2lua31fY2FwcwoJICBBUEk6IGFkZCBnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl97c3JjfHNpbmt9X3thbnl8YWxsfV9jYXBwcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAyMTQxCgoyMDExLTAzLTA3IDIzOjEzOjU2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB0ZXN0czogYWRkIGEgdW5pdCB0ZXN0IGZvciBnc3RfY2Fwc19uZXdfc2ltcGxlCgkgIEFkZCBhIHRlc3QgZm9yIHRoZSBjcmFzaCBpbiBidWcgIzY0MjI3MS4KCjIwMTEtMDMtMDggMTg6MDU6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSAgZG9jczogcmVuYW1lIGRyYWZ0IHRvIG9mZmljaWFsIGRvYwoKMjAxMS0wMy0wOCAxNjo1ODo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YTogaW1wbGVtZW50IHRyYW5zZm9ybSBmdW5jdGlvbgoJICBSZXBsYWNlIHN1YmJ1ZmZlciBhbmQgY29weSB2bWV0aG9kcyBieSBhIG1vcmUgZ2VuZXJpYyB0cmFuc2Zvcm0gZnVuY3Rpb24gdGhhdAoJICBjYW4gdGhlbiBiZSBwYXJhbWV0cmlzZWQgYnkgdHJhbnNmb3JtIHNwZWNpZmljIGRhdGEuIFRoaXMgc2hvdWxkIGFsbG93IHVzIHRvCgkgIGltcGxlbWVudCBtYWtlLXdyaXRhYmxlIGFuZCBtb3JlIGZ1dHVyZSB0cmFuc2Zvcm0gZnVuY3Rpb25zLgoKMjAxMS0wMy0wOCAxNzowNjozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDMtMDggMTE6NTU6MjkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICB0ZXN0czogYWRkIHRlc3QgdG8gY3JlYXRlIGEgZmFjdG9yeQoKMjAxMS0wMy0wOCAxMDozNjozMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgdGVzdHM6IHN0YXJ0IGEgbmV3IHRlc3Qgc3VpdGUgZm9yIGVsZW1lbnQgZmFjdG9yaWVzCgkgIE1vdmUgb25lIHRlc3QgZnJvbSBnc3RlbGVtZW50IHN1aXRlLgoKMjAxMS0wMy0wOCAxMTozNDoxOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZHRlbXBsYXRlOiBhZGQgbWlzc2luZyA7IGluIGV4YW1wbGUgKGFuZCB0cmltIHdoaXRlc3BhY2UpCgoyMDExLTAzLTA4IDA5OjU4OjU1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZ3N0X3N0cnVjdHVyZV9lbXB0eV9uZXcoKSBkb2VzIGJldHRlciBlcnJvciBjaGVja2luZwoJICBObyBuZWVkIHRvIGNoZWNrIGZvciBtZWRpYV90eXBlIT1OVUxMIGFzIHRoZSBmdW5jdGlvbiB3ZSBjYWxsIHRoYXQgYWN0dWFsIGNyZWF0ZQoJICB0aGUgc3RydWN0dXJlIGRvZXMgYSBmdWxsIGNoZWNrIGFueXdheS4KCjIwMTEtMDMtMDggMTA6MDY6MjMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgY2FwcyxzdHJ1Y3R1cmU6IHRyaW0gdHJhaWxpbmcgd2hpdGVzcGFjZQoKMjAxMS0wMy0wNCAwODoyODoyNSArMTAwMCAgSm9uYXRoYW4gTWF0dGhldyA8am9uYXRoYW5AZDE0bi5vcmc+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBkb24ndCBjcmVhdGUgYnJva2VuIGNhcHMgZm9yIGludmFsaWQgbWVkaWEgdHlwZXMKCSAgQ2hlY2sgaWYgc3RydWN0dXJlIGhhcyBiZWVuIGNyZWF0ZWQgYmVmb3JlIGFwcGVuZGluZyBpdCB0byB0aGUgY2Fwcy4gRnJlZSB0aGUKCSAgY2FwcyBpbiB0aGUgY2FzZSBvZiBhbiBlcnJvciB0byBub3QgY29uY2VhbCBpdCBiZSByZXR1cm5pbmcgZW1wdHkgY2Fwcy4KCSAgRml4ZXMgIzY0MjI3MQoKMjAxMS0wMy0wNyAxNjoyMTo0NyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6CgkgIGV4YW1wbGVzOiB1cGRhdGUgaGVsbG8gd29ybGQgZXhhbXBsZQoJICBPdXIgaGVsbG93b3JsZCBleGFtcGxlIHRoYXR3IGUgcmVmZXJlbmNlIGZyb20gdGhlIG1hbnVhbCBoYXMgYmVlbiBhIGJpdAoJICBjb21wbGljYXRlZCB0byBzZXJ2ZSBhIGZpcnN0IGNvbnRhY3Qgd2l0aCBnc3RyZWFtZXIuIFNpbmNlIHdlIGhhdmUgYW5kCgkgIHByb21vdGUgcGxheWJpbjIgYXMgYSBwbGF5YmFjayBhcGkgdXNlIGl0IGhlcmUuCgkgIEJhc2VkIG9uIHdvcmsgZnJvbSBNYXRoaWFzIEhhc3NlbG1hbm4gPG1hdGhpYXMuaGFzc2VsbWFubkBnbXguZGU+CgkgIEZpeGVzICM0MjQxNDMKCjIwMTEtMDMtMDQgMTk6MDI6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSAgZG9jczogdXBkYXRlIG1ldGFkYXRhIGRyYWZ0CgoyMDExLTAzLTA0IDE4OjExOjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogcmVtb3ZlIEZJWE1FCgkgIE5vdyB0aGF0IHdlIGRvbid0IHN1YmNsYXNzIGJ1ZmZlcnMgYW55bW9yZSwgdGhlIEZJWE1FIGFib3V0IGxpbWl0ZWQKCSAgZnVuY3Rpb25hbGl0eSBvZiB0aGUgY29weSBmdW5jdGlvbiBpcyBpcnJlbGV2YW50LgoKMjAxMS0wMy0wNCAxNzo0MzoyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGQgZmxhZyByZWdpc3RyYXRpb24KCjIwMTEtMDMtMDQgMTc6MjU6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIHBhZDogbW9yZSBwcmVyb2xsIGxvY2sgdG8gYmFzZXNpbmsKCSAgTW92ZSB0aGUgcHJlcm9sbCBsb2NrIHRvIGJhc2VzaW5rIHdoZXJlIGl0IGJlbG9uZ3MuCgoyMDExLTAzLTA0IDE2OjA1OjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVycG9vbC50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBidWZmZXJwb29sIGRyYWZ0CgoyMDExLTAzLTA0IDEyOjA2OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBhZGQgbW9yZSBkZWJ1ZyBpbmZvCgoyMDExLTAzLTAzIDE4OjM4OjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogYWRkIGRlYnVnCgoyMDExLTAzLTAzIDE4OjIxOjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogYWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvCgoyMDExLTAzLTAzIDE2OjMxOjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBidWZmZXJwb29sOiBhZGQgY2FwcyB0byB0aGUgY29uZmlnCgkgIEFkZCB0aGUgY2FwcyB0byB0aGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIG9mIHRoZSBwb29sLgoJICBJbml0aWFsaXplIHRoZSBwcml2YXRlIGRhdGEKCjIwMTEtMDMtMDIgMTE6NTc6NDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGRlZnMKCjIwMTEtMDMtMDIgMTE6NTc6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogcmVsZWFzZSBidWZmZXIgdG8gcG9vbCBpbiBkaXNwb3NlCgkgIFVzZSB0aGUgZGlzcG9zZSBtZXRob2QgdG8gcmVsZWFzZSB0aGUgYnVmZmVyIHRvIHRoZSBwb29sIHdoZW4gaXQgaXMgY29uZmlndXJlZC4KCjIwMTEtMDItMjIgMTI6MzU6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVyOiBhZGQgcG9vbCB0byBidWZmZXIgc3RydWN0dXJlCgkgIEtlZXAgYSBwb2ludGVyIHRvIHRoZSBidWZmZXJwb29sLiBSZWxlYXNlIHRoZSBidWZmZXIgdG8gdGhlIHBvb2wgd2hlbgoJICBmaW5hbGl6aW5nLiBNYWtlIHN1cmUgdGhlIHBvb2wgc2V0cyBpdHNlbGYgYXMgdGhlIHBvb2wgbWVtYmVyIG9mIGJ1ZmZlcnMgdGhhdCBpdAoJICBzZW5kcyBvdXQuCgoyMDExLTAyLTIyIDEyOjM1OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGFkZCBwb29sIGZsYWdzIHR5cGUKCjIwMTEtMDItMjIgMTE6MDU6MDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZG9jczogdXBkYXRlIGJ1ZmZlcnBvb2wgZG9jcwoKMjAxMS0wMi0yMSAxODo0MzoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IFJlZmFjdG9yIHN0b3BwaW5nIG9mIHRoZSBwb29sCgkgIE1vdmUgc29tZSBtZXRob2RzIGFyb3VuZC4KCSAgTWFrZSBzdXJlIHdlIGNoZWNrIGZvciBjb25maWcgcGFyc2luZyBlcnJvcnMuCgkgIEluY3JlbWVudCB0aGUgb3V0c3RhbmRpbmcgYnVmZmVycyBiZWZvcmUgY2FsbGluZyBhY3F1aXJlIHNvIHRoYXQgd2UgY2FuIGJlIHN1cmUKCSAgdGhhdCBzZXRfYWN0aXZlKCkgZG9lc24ndCBmcmVlIHRoZSBwb29sIGZyb20gdW5kZXIgdXMuCgoyMDExLTAyLTIxIDE3OjMzOjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogUmV3b3JrIGJ1ZmZlciBtYW5hZ2VtZW50IGEgbGl0dGxlCgkgIEFkZCBzdGFydC9zdG9wIG1ldGhvZHMgdG8gYWxsb3cgZm9yIGJ1bGsgYWxsb2NhdGlvbiBvZiBidWZmZXJzLgoJICBGcmVlIGJ1ZmZlcnMgb25seSB3aGVuIGFsbCBvdXRzdGFuZGluZyBidWZmZXJzIHJldHVybmVkLgoJICBNYWtlIHRoaW5ncyBtb3JlIHRocmVhZHNhZmUgd3J0IGZsdXNoaW5nIGFuZCBzdGFydGluZy9zdG9wcGluZyBieQoJICBrZWVwaW5nIHRyYWNrIG9mIHN0YXJ0IGFuZCBzdG9wIG1ldGhvZCBjYWxscy4KCjIwMTEtMDItMjEgMTI6MTg6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBtZW1vcnkgbWFuYWdlbWVudCBjbGVhbnVwcwoJICBVc2UgYSBsb2NrIHRvIHByb3RlY3QgY29uY3VycmVjdCBleGVjdXRpb24gb2Ygc2V0X2NvbmZpZyBhbmQgc2V0X2FjdGl2ZS4KCSAgU3RhcnQgZnJlZWluZyB0aGUgYnVmZmVycyB3aGVuIGZsdXNoaW5nIGFuZCBhbGwgYnVmZmVycyBhcmUgcmV0dXJuZWQgdG8gdGhlCgkgIHBvb2wuCgkgIE1ha2UgYSBjb3B5IG9mIHRoZSBjb25maWcgdG8gYXZvaWQgY3Jhc2hpbmcgd2l0aCBjb25jdXJyZW50IGFjY2Vzcy4KCjIwMTEtMDItMTggMTY6MzU6NDYgKzAxMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGFsc28gYWxsb3cgTlVMTCBwYXJhbXMgaW4gX2FjcXVpcmUKCjIwMTEtMDItMTggMTY6MTU6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBtb3JlIHVwZGF0ZXMKCSAgS2VlcCB0cmFjayBpZiB0aGUgYnVmZmVyIGlzIGNvbmZpZ3VyZWQgYW5kIGJsb2NrIGFjdGl2YXRpb24gd2hlbiBub3QgY29uZmlndXJlZAoJICB5ZXQuCgkgIEtlZXAgdHJhY2sgb2Ygb3V0c3RhbmRpbmcgYnVmZmVycyBhbmQgZGlzYWxsb3cgY29uZmlndXJhdGlvbiB3aGVuIG5vdCBhbGwKCSAgYnVmZmVycyBhcmUgcmV0dXJuZWQgdG8gdGhlIHBvb2wuIFdlIG5lZWQgdG8gZG8gdGhpcyBvciBlbHNlIHdlIG1pZ2h0IGVuZCB1cAoJICB3aXRoIHdyb25nIGJ1ZmZlcnMgaW4gdGhlIHBvb2wuCgkgIEFkZCByZXR1cm4gdmFsdWUgdG8gc2V0X2FjdGl2ZS4KCSAgU21hbGwgY2xlYW51cHMuIEZpeCBmaW5hbGl6ZS4KCjIwMTEtMDItMTggMTI6NTA6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiByZW5hbWUgJ2ZsdXNoaW5nJyB0byAnYWN0aXZlJwoJICBSZW5hbWUgdGhlIGZsdXNoaW5nIHZhcmlhYmxlIGFuZCBtZXRob2RzIHRvIGFjdGl2ZSB0byBiZXR0ZXIgbWF0Y2gKCSAgdGhlIG90aGVyIGdzdHJlYW1lciBuYW1lIGNvbnZlbnRpb25zCgoyMDExLTAyLTE3IDE4OjM3OjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogcHJlYWxsb2Mgd2hlbiB1bnNldCBmbHVzaGluZwoJICBBY2NvcmRpbmcgdG8gdGhlIGRlc2lnbiBkb2Mgd2UgbmVlZCB0byBwcmVhbGxvYyBidWZmZXJzIHdoZW4gd2UgdW5zZXQgdGhlCgkgIGZsdXNoaW5nIHN0YXRlLCBub3QgaW4gc2V0X2NvbmZpZy4KCSAgU2V0IHRoZSBmbHVzaGluZyBzdGF0ZSBiZXR0ZXIuCgoyMDExLTAyLTE3IDE3OjI5OjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBidWZmZXJwb29sOiB1c2UgcXVhcmtzIGZvciBzdHJ1Y3R1cmUgZmllbGRzCgoyMDExLTAyLTE3IDE2OjQ2OjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcnBvb2w6IHVzZSBHc3RTdHJ1Y3R1cmUgdG8gY29uZmlndXJlIHRoZSBwb29sCgkgIFVzZSBhIEdzdFN0cnVjdHVyZSB0byBwcm92aWRlIHRoZSBwb29sIHdpdGggdGhlIHJpZ2h0IGNvbmZpZ3VyYXRpb24uIEFsc28KCSAgcHJvdmlkZSBzb21lIGhlbHBlciBtZXRob2RzIHRvIGNvbmZpZ3VyZSBzdWNoIGEgc3RydWN0dXJlLgoJICBkb24ndCBwYXNzIHRoZSBjb25maWcgaW4gYWxsb2NfYnVmZmVyLCBwb29sIGltcGxlbWVudGF0aW9uIHdpbGwgYWxyZWFkeSBoYXZlCgkgIHBhcnNlZCBpdCBkdXJpbmcgc2V0X2NvbmZpZy4KCSAgVXBkYXRlIGRlZnMKCjIwMTEtMDItMTcgMTI6NTU6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZml4IGRlZnMKCjIwMTAtMTEtMDIgMTg6NTY6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogYWRkIHNpbXBsZSBidWZmZXJwb29sIGhlbHBlciBvYmplY3QKCjIwMTEtMDMtMDIgMTE6MDg6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmgKCjIwMTEtMDMtMDIgMTM6NTU6MzYgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZ2l0LnhtbDoKCSAgZmFxOiBNaW5vciB1cGRhdGUgdG8gc3NoIGtleSBnZW5lcmF0aW9uIGNvbW1hbmRzCgkgIGZkLm8gcmVxdWlyZXMgUlNBIGtleXMsIGFuZCBpbiBnZW5lcmFsLCB1c2VycyB3b3VsZCBwcm9iYWJseSB3YW50IHRvCgkgIG1ha2UgYSBwZXItc2VydmVyIGtleSBmaWxlIHJhdGhlciB0aGFuIG92ZXJ3cml0ZSBpZF9yc2EsIGlkX3JzYS5wdWIuCgoyMDExLTAyLTI4IDE4OjQzOjQxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBleHBvcnQgcGx1Z2luIGRlc2NyaXB0aW9uIG1vcmUgcGxhdGZvcm0gaW5kZXBlbmRlbnQKCSAgRml4ZXMgIzY0MjUwNC4KCjIwMTEtMDItMjggMTg6MzI6MDcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxZGU3ZjZhIHRvIDZhZWM2YjkKCjIwMTEtMDItMjggMTU6MDE6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICBkb2NzOiB0eXBvIGZpeGVzCgkgIGNvbnZpbmllbmNlIC0+IGNvbnZlbmllbmNlCgoyMDExLTAyLTI4IDE0OjU2OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBwcmludCAicGFkLWFkZGVkIiwgInBhZC1yZW1vdmVkIiBhbmQgIm5vLW1vcmUtcGFkcyIgc2lnbmFscyBmb3IgZWxlbWVudHMgd2l0aCBzb21ldGltZXMgcGFkcwoJICBJdCdzIG9mdGVuIG5vdCBvYnZpb3VzIHRvIHBlb3BsZSB0aGF0IGVsZW1lbnRzIGxpa2UgZS5nLiB1cmlkZWNvZGViaW4KCSAgKG9yIGRlbXV4ZXJzKSBhdXRvbWF0aWNhbGx5IHN1cHBvcnQgdGhlIHN0YW5kYXJkIHNpZ25hbHMgb2YgdGhlCgkgIEdzdEVsZW1lbnQgY2xhc3MsIHNvIGxldCdzIHByaW50IHRoZSB1c2VmdWwgcGFkLXJlbGF0ZWQgb25lcyBmb3IKCSAgZWxlbWVudHMgd2l0aCBzb21ldGltZXMgcGFkcy4KCjIwMTEtMDItMjggMTY6Mjc6MDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2NzOiBzbWFsbCB1cGRhdGVzIGFzIHN1Z2dlc3RlZCBvbiBhIGJsb2cKCSAgTGluayBmcm9tIGNvbnZpbmllbmNlIGFwaSB0byB0aGUgdW5kZXJseWluZyBhcGkuCgoyMDExLTAyLTI4IDEwOjA1OjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogYWRkIHRpbWluZyBtZXRhZGF0YQoKMjAxMS0wMi0yOCAxMDowNTozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3Q6IGZpeCB3aGl0ZXNwYWNlCgoyMDExLTAyLTI4IDA5OjM5OjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgdGVzdHM6IGFkZCBtZW1vcnkgdW5pdCB0ZXN0CgoyMDExLTAyLTI3IDIwOjU0OjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogc2ltcGxpZnkgYSBiaXQKCjIwMTEtMDItMjcgMjA6NDI6MTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWV0YTogYWRkIGRlZmF1bHQgbWVtb3J5IG1ldGFkYXRhCgkgIEFkZCBhIG1ldGFkYXRhIGltcGxlbWVudGF0aW9uIGZvciBub3JtYWxsIG1hbGxvY2VkIG1lbW9yeS4KCjIwMTEtMDItMjcgMTk6NDA6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1ldGE6IHNlcGFyYXRlIGFkZCBhbmQgZ2V0IG1ldGhvZHMKCSAgTWFrZSBzZXBhcmF0ZSBhcGkgZm9yIGdldHRpbmcgYW5kIGFkZGluZyBtZXRhZGF0YS4gVGhpcyBhbGxvd3MgdXMgdG8gcGFzcyBleHRyYQoJICBwYXJhbWV0ZXJzIHRvIHRoZSBpbml0IGZ1bmN0aW9ucyB3aGVuIGNyZWF0aW5nIG1ldGFkYXRhLCB3aGljaCBpcyBuZWVkZWQgZm9yCgkgIHNwZWNpZmljIEFQSSBpbXBsZW1lbnRhdGlvbnMuCgkgIEFkZCBiZWdpbm5pbmdzIG9mIG1lbW9yeSBtZXRhZGF0YS4KCjIwMTEtMDItMjcgMTI6MjE6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzIGFuZCBkZWZzCgoyMDExLTAyLTI2IDE4OjE0OjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogcmVtb3ZlIHVzZWxlc3MgbWV0aG9kCgkgIFJlbW92ZSB0aGUgbWV0aG9kIHRvIHJldHJpZXZlIG1ldGFkYXRhIGJ5IGFwaS4gT25lIHdpbGwgYWx3YXlzIHVzZSB0aGUKCSAgR3N0TWV0YUluZm8gdG8gZ2V0IG1ldGFkYXRhLgoKMjAxMS0wMi0yNSAxNjozMToxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IHJlbW92ZSBvd25lcl9wcml2IG5vdyB0aGF0IHdlIGhhdmUgbWV0YWRhdGEKCSAgTm93IHRoYXQgd2UgaGF2ZSBtZXRhZGF0YSB3ZSBjYW4gcmVtb3ZlIHRoZSBvd25lcl9wcml2IGZpZWxkLgoKMjAxMS0wMi0yNSAxMzoyMzoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBmaXggZGVmcwoKMjAxMS0wMi0yNSAxMzoxNToyNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcm1ldGEuYzoKCSogZ3N0L2dzdGJ1ZmZlcm1ldGEuaDoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIG1ldGFkYXRhOiBSZW5hbWUgdG8gR3N0TWV0YQoJICBSZW5hbWUgdG8gdGhlIHNob3J0ZXIgR3N0TWV0YQoJICBBZGQgZG9jcwoJICBBZGQgYXBpIHRvIGdldCBtZXRhZGF0YSBieSBBUEkKCjIwMTEtMDItMjUgMTA6Mzc6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogZml4IGRlZnMKCjIwMTAtMTEtMTUgMTE6NDk6MjQgKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWwgYXQgYmFzZS1hcnQubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCBtZW1vcnkgY29ycnVwdGlvbgoKMjAxMC0wNC0wNyAxMTozNDoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXJtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJtZXRhLmM6CgkgIGJ1ZmZlcm1ldGE6IGZpeCBjb21waWxhdGlvbgoKMjAxMC0wMi0yNiAxMzoxMTo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJKiBnc3QvZ3N0YnVmZmVybWV0YS5oOgoJICB1cGRhdGVzCgoyMDA5LTEyLTI3IDIyOjAzOjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcm1ldGEuYzoKCSAgbWV0YTogaW1wcm92ZSB0ZXN0IGEgbGl0dGxlCgoyMDA5LTEyLTE3IDEyOjM0OjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybWV0YS5jOgoJKiBnc3QvZ3N0YnVmZmVybWV0YS5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcm1ldGEuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcm1ldGE6IGFkZCBiZWdpbm5pbmdzIG9mIGJ1ZmZlciBtZXRhZGF0YQoJICBBZGQgZmlyc3QgaW1wbGVtZW50YXRpb24gb2YgYXJiaXRyYXJ5IGJ1ZmZlciBtZXRhZGF0YS4gV2UgdXNlIGEgc2ltcGxlIGxpbmtlZAoJICBsaW5rZWQgb2Ygc2xpY2UgYWxsb2NhdGVkIG1ldGFkYXRhIGNodW5rcy4gRnV0dXJlIGltcGxlbWVudGF0aW9ucyBjb3VsZCB1c2UKCSAgc29tZXRoaW5nIG1vcmUgcGVyZm9ybWFudC4KCSAgQWRkIGdldCwgcmVtb3ZlLCBpdGVyYXRlIG1ldGhvZHMgdG8gaGFuZGxlIHRoZSBtZXRhZGF0YS4KCjIwMTEtMDItMjUgMTA6MTk6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSAgZGVzaWduOiBhZGQgYXBpIHRhZwoJICBXZSB3YW50IHRvIGZpbmQgbWV0YWRhdGEgYmFzZWQgb24gdGhlIEFQSSBpdCBpbXBsZW1lbnRzIGFuZCBiYXNlZCBvbiB0aGUKCSAgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24uCgoyMDExLTAyLTI0IDE3OjExOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBtYWtlIHdpbjMyIGJ1aWxkYm90IGhhcHB5CgkgIGdzdHVyaS5jOjg1NDoxNjogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSAnYWJzX2NsZWFuJwoJICBnc3R1cmkuYzo3ODg6MTogZXJyb3I6ICdnc3RfZmlsZV91dGlsc19jYW5vbmljYWxpc2VfcGF0aCcgZGVmaW5lZCBidXQgbm90IHVzZWQKCjIwMTEtMDItMjQgMTU6MzI6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICBmaWxlc3JjLCBmaWxlc2luazogZml4IFVSSSBjcmVhdGlvbiByZWdyZXNzaW9uIGZvciBub24tYWJzb2x1dGUgbG9jYXRpb25zCgkgIFBhc3NpbmcgZS5nLiBsb2NhdGlvbj1mb28gd291bGQgbGVhZCB0byB3YXJuaW5ncyBiZWNhdXNlIGdfZmlsZW5hbWVfdG9fdXJpKCkKCSAgd2FudHMgYW4gYWJzb2x1dGUgZmlsZSBwYXRoIGFuZCByZXR1cm5zIE5VTEwgb3RoZXJ3aXNlLiBVc2UgYnJhbmQtbmV3CgkgIGdzdF9maWxlbmFtZV90b191cmkoKSBpbnN0ZWFkLCB3aGljaCB3aWxsIHRyeSBoYXJkZXIgdG8gY3JlYXRlIGEgcHJvcGVyCgkgIFVSSSBmb3IgdXMuCgkgIEFsc28gYWRkIHVuaXQgdGVzdC4KCjIwMTEtMDItMjQgMTU6MTg6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1cmk6IGFkZCBnc3RfZmlsZW5hbWVfdG9fdXJpKCkgdGhhdCB0YWtlcyByZWxhdGl2ZSBmaWxlbmFtZXMKCSAgQWRkIGZ1bmN0aW9uIHRoYXQgKHVubGlrZSB0aGUgR0xpYiBlcXVpdmFsZW50KSBhbHNvIGFjY2VwdHMgcGF0aHMgdGhhdAoJICBhcmVuJ3QgYWJzb2x1dGUgYW5kIHdpbGwgY2xlYW4gdXAgcmVsYXRpdmUgbWFya2VycyBzdWNoIGFzIC4vIGFuZCAuLi8KCSAgYmVmb3JlIGZvcm1pbmcgYSBVUkkuCgkgIEZpeGVzIHdhcm5pbmdzIHdpdGggZS5nLiBmaWxlc3JjIGxvY2F0aW9uPWZvbyAhIHR5cGVmaW5kIGNhdXNlZCBieSB0aGUKCSAgcmVjZW50IHN3aXRjaCB0byBnX2ZpbGVuYW1lX3RvX3VyaSgpLCBidXQgYWxzbyBhY3R1YWxseSBjcmVhdGVzIHZhbGlkCgkgIFVSSXMgZm9yIHRoZSBmaXJzdCB0aW1lLgoJICBXaW5kb3dzIGNvZGUgcGF0aHMgY291bGQgbmVlZCBzb21lIG1vcmUgd29yaywgZS5nLiB3ZSBkb24ndCBjbGVhbiB1cAoJICB0aGUgcmVsYXRpdmUgbWFya2VycyB0aGVyZSBmb3Igbm93IChiZWNhdXNlIHBhdGggY291bGQgaGF2ZSBcIGFuZCAvCgkgIGFzIHNlcGFyYXRvcnMpLgoJICBBUEk6IGdzdF9maWxlbmFtZV90b191cmkoKQoKMjAxMS0wMi0yNCAxNjoyMDowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgdGVzdHM6IHJlZml4IHRoZSB0ZXN0cyAobWlzc2luZyAjZW5kaWYpCgoyMDExLTAyLTI0IDE2OjExOjE3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgTWFrZWZpbGUuYW06IGFkZCBuZXcgYWJpIGhlYWRlcnMgdG8gbm9kaXN0X0hFQURFUlMKCjIwMTEtMDItMjEgMTE6MjQ6NDUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBhZGQgaW5kZXggc3VwcG9ydAoJICBXaGVuIG9wdGlvbiAiLWkiIGlzIGdpdmVuLCBzZXQgYW4gaW5kZXggb2JqZWN0IG9uIHRoZSBwaXBlbGluZSBhbmQgY29tcHV0ZQoJICBzdGF0aXN0aWNzIGZvciBhbGwgaW5kZXggd3JpdGVycy4gUHJpbnQgYSBzdW1hcnkgd2hlbiBzaHV0dGluZyBkb3duIHRoZQoJICBwaXBlbGluZS4KCjIwMTEtMDItMjQgMTU6MTI6MTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9hcm0uaDoKCSAgdGVzdHM6IGFkZCBhYmkgY2hlY2sgZGF0YSBmb3IgQVJNIChsaWJzKQoKMjAxMS0wMi0yNCAxNTowMjozNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2FybS5oOgoJICB0ZXN0czogYWRkIGFiaSBjaGVjayBkYXRhIGZvciBBUk0KCjIwMTEtMDItMjQgMTM6NTU6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIG93bmVyIHByaXZhdGUgYXMgaW50ZXJtZWRpYXRlIHNvbHV0aW9uCgkgIEFkZCBhbiBvd25lciBwcml2YXRlIGZpZWxkIHdoZXJlIHRoZSBvd25lciBvZiBhIGJ1ZmZlciBjYW4gc3RvcmUgc29tZSBleHRyYQoJICBpbmZvcm1hdGlvbi4gV2UgY2FuIHVzZSB0aGlzIHRvIGltcGxlbWVudCBtb3N0IG9mIHRoZSBzdWJjbGFzc2luZyB0aGF0IGhhcHBlbnMKCSAgbm93LiBMYXRlciB0aGlzIHdpbGwgYmUgcmVtb3ZlZCBhbmQgcmVwbGFjZWQgYnkgYXJiaXRyYXJ5IGJ1ZmZlciBtZXRhZGF0YS4KCjIwMTEtMDItMjQgMTA6Mjg6MjAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiByZW1vdmUgcG9pc29uaW5nCgoyMDExLTAyLTIzIDE2OjQ4OjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIG1pbmlvYmplY3Q6IGNsZWFudXBzCgkgIFVzZSB0aGUgc3RvcmVkIHNpemUgaW4gdGhlIG1pbmlvYmplY3QgdG8gZnJlZSB0aGUgbWluaW9iamVjdC4KCSAgUmVmYWN0b3Igc29tZSBpbml0IG1ldGhvZHMuCgoyMDExLTAyLTIzIDE1OjQzOjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmcgZ3VpZGUKCjIwMTEtMDItMjMgMTI6NTQ6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgcG9ydGluZyBndWlkZQoKMjAxMS0wMi0yMyAxMjo0NDo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IHdhcm4gd2hlbiBtYWtlX3dyaXRhYmxlIHJlc3VsdCBpcyBpZ25vcmVkCgoyMDExLTAyLTIzIDEyOjA4OjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGZpeCBkZWZzCgoyMDExLTAyLTIzIDEyOjAxOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGZpeCB0eXBlIHJlZ2lzdHJhdGlvbgoJICBXZSBuZWVkIHRvIGhhdmUgdGhlIHR5cGVzIG9mIHRoZSBtaW5pb2JqZWN0cyBiZWZvcmUgcmVnaXN0ZXJpbmcgdGhlCgkgIHRyYW5mb3Jtcy4KCjIwMTEtMDItMjMgMTI6MDE6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IGltcHJvdmUgY2FwcyBzdHJpbmcgbWFuYWdlbWVudAoKMjAxMS0wMi0yMyAxMjowMDo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGNsZWFyIGZsYWdzIGluIGluaXQKCjIwMTEtMDItMjMgMTI6MzM6NTggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBkb2NzOiB0ZWxsIHRoYXQgT1JDX0NPREUgY2FuIGNvbnRhaW4gYSBsaXN0IG9mIGZsYWdzCgoyMDExLTAyLTIzIDEwOjMxOjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0OiBmaXggZmxhZ3MKCjIwMTEtMDItMjIgMTk6MzA6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZml4IGNvbXBpbGF0aW9uIGFmdGVyIHJlYmFzZQoKMjAxMC0xMS0wMiAxMzozMToyNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBpbXByb3ZlIHR5cGUgcmVnaXN0cmF0aW9uCgoyMDEwLTExLTAyIDEyOjU4OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIGZpeCBjb21waWxhdGlvbgoKMjAwOS0xMi0wNyAyMDozMjoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBmaXggbWFjcm9zCgoyMDA5LTEyLTA1IDE1OjE4OjA5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHNldCBib3hlZCB0eXBlIGNvcnJlY3RseQoKMjAwOS0xMi0wNSAxNDoxNjo1NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJICBtaW5pb2JqZWN0OiBzbWFsbCBmaXhlcwoJICBNYWtlIGRhdGFmbG93IGhhcHBlbi4KCjIwMDktMTItMDQgMjM6NTI6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgbWluaW9iamVjdDogbW9yZSBib3hlZCB0eXBlIGZpeGluZwoJICBNb3JlIG1pbmlvYmplY3QgZml4aW5nLCBsZWFrcyBob3JyaWJseSBzb21ld2hlcmUuLgoKMjAwOS0xMi0wNCAyMjozMjozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWFyc2hhbC5saXN0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIG1pbmlvYmplY3Q6IG1ha2UgcXVlcmllcyBhIGJveGVkIHR5cGUKCSAgTW9yZSBtaW5pb25qZWN0IHN0dWZmLgoKMjAwOS0xMi0wMyAyMDo0OTozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2VzOiBtYWtlIG1lc3NhZ2UgYSBzaW1wbGUgYm94ZWQgdHlwZQoKMjAwOS0xMi0wMiAyMToyMTo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0OiB3b3JrIG9uIG1ha2luZyBjYXBzIGEgYm94ZWQgdHlwZQoJICBNb3JlIHdvcmsgb24gbWFraW5nIG1pbmlvYmplY3QgYSBzaW1wbGUgYWxsb2NhdGVkIHN0cnVjdC4KCjIwMDktMTEtMjkgMDA6MjE6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBtaW5pb2JqZWN0OiBtYWtlIG1pbmlvYmplY3QgYSBib3hlZCB0eXBlCgkgIEZpcnN0IGF0dGVtcHQgYXQgbWFraW5nIG1pbmlvYmplY3QgYSBzaW1wbGUgYm94ZWQgdHlwZS4KCjIwMTEtMDItMjIgMTk6MDk6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGxpYnM6IGNsZWFudXBzIGZvciAwLjExCgkgIFJlbW92ZSBkZXByZWNhdGVkIHN0dWZmLCBmaXggcGFkZGluZywgcmVhcnJhbmdlIG1ldGhvZHMuCgoyMDExLTAyLTIyIDE2OjA0OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0aW5kZXguaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJICBjbGVhbnVwcwoJICBGaXggcGFkZGluZywgcmVtb3ZlIGRlcHJlY2F0ZWQgc3ltYm9scy4KCjIwMTEtMDItMjIgMTU6MDg6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTAyLTIyIDE0OjExOjU5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGNvbmZpZ3VyZS5hYwoJICBnc3QvZ3N0ZWxlbWVudC5jCgkgIGdzdC9nc3RlbGVtZW50LmgKCSAgZ3N0L2dzdHBhZC5jCgkgIGdzdC9nc3R1dGlscy5jCgkgIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW0KCSAgbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW0KCSAgbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbQoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW0KCSAgbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmCgoyMDExLTAyLTE0IDE4OjA1OjA5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgYmFzZXRyYW5zZm9ybTogQmUgc21hcnRlciB3aXRoIHBhZCBhbGxvY3MKCSAgQXZvaWQgZG9pbmcgdW5uZWNlc3NhcnkgcGFkLWFsbG9jcyB3aGVuIG9uIHBhc3N0aHJvdWdoIG1vZGUuCgkgIElmIG11bHRpcGxlIGJhc2V0cmFuc2Zvcm0gZWxlbWVudHMgYXJlIG9uIGEgcGlwZWxpbmUsIHRoZXkKCSAgd291bGQgZG8gYSBwYWQtYWxsb2MgZm9yIGVhY2ggcmVjZWl2ZWQgYnVmZmVyLCBlYWNoIGVsZW1lbnQKCSAgd291bGQgZG8gdGhpcywgc28gd2Ugd291bGQgaGF2ZSBsb3RzIG9mIHBhZCBhbGxvY3Mgb24gdGhlCgkgIHBpcGVsaW5lIGZvciBhIHNpbmdsZSBidWZmZXIgYmVpbmcgcHVzaGVkIHRocm91Z2ggaXQuCgkgIFRoaXMgcGF0Y2ggYXR0ZW1wdHMgdG8gcmVkdWNlIHRoaXMgYW1vdW50IGJ5IGF2b2lkaW5nCgkgIGRvaW5nIHBhZC1hbGxvY3MgaWYgdGhlIGVsZW1lbnQgaGFzIGFscmVhZHkgZG9uZSBpdAoJICBhZnRlciB0aGUgbGFzdCBwdXNoZWQgYnVmZmVyLiBTbyBpdCB3aWxsIG9ubHkgYmUgYWxsb3dlZAoJICB0byBkbyBhIG5ldyBwYWQtYWxsb2MgYWZ0ZXIgaXQgaGFzIHB1c2hlZCBhIGJ1ZmZlciwgc28gd2UgZ2V0CgkgIDF4MSBwYWQtYWxsb2MgYW5kIGJ1ZmZlciByYXRpbwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQyMzczCgoyMDExLTAyLTIxIDEzOjM5OjM4ICswMTAwICBQaGlsaXAgSsOkZ2Vuc3RlZHQgPHBoaWxpcGpAb3BlcmEuY29tPgoKCSogZ3N0L2dzdGluZGV4LmM6CgkgIGRvY3M6IGZpeCB0eXBvIGluIGdzdF9pbmRleF9uZXcoKSBkb2NzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDI4NjkKCjIwMTEtMDItMjEgMTI6NDQ6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogcHJpbnQgbmV3IE1FRElBNCBmbGFnIGFzIHdlbGwKCjIwMTEtMDEtMDMgMTE6Mzc6MDUgKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdCwgYnVmZmVyOiBzdGVhbCBtaW5pb2JqZWN0IGZsYWcgZm9yIHVzZSBhcyBNRURJQTQgYnVmZmVyIGZsYWcKCSAgVGhpcyB3YXMgcmVxdWlyZWQgdG8gYWRkIGEgbmV3IE1FRElBNCBidWZmZXIgZmxhZyBmb3IgaW5kaWNhdGluZwoJICBwcm9ncmVzc2l2ZS9taXhlZCB0ZWxlY2luZSB2aWRlbyBidWZmZXJzLiBUaGVyZSBpcyBubyBzcGFjZSBmb3IKCSAgYWRkaXRpb25hbCBmbGFncyBpbiBHc3RCdWZmZXIsIHNvIHN0ZWFsIG9uZSBmcm9tIEdzdE1pbmlPYmplY3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDI2NzEKCjIwMTEtMDItMjAgMTY6MTE6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJICBkb2NzOiBhZGQgc29tZSBtb3JlIFNpbmNlOiBtYXJrZXJzIHRvIGF0b21pYyBxdWV1ZSBkb2NzCgoyMDExLTAyLTIxIDExOjU1OjUwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIFJldmVydCAiZWxlbWVudDogQ2FsbCAtPnJlbGVhc2VfcGFkKCkgdG8gY2xlYW4gdXAgcGFkIgoJICBUaGlzIGNvbW1pdCBjaGFuZ2VzIHRoZSByZXF1ZXN0IHBhZCBiZWhhdmlvdXIgZm9yIHBsdWdpbnMgYW5kIGFwcGxpY2F0aW9ucy4KCSAgUmVvcGVucyBCdWcgIzQwMjU2MgoJICBUaGUgcHJvcGVyIGZpeCBmb3IgdGhhdCBidWcgaXMgdG8ga2VlcCB0cmFjayBvZiBjcmVhdGVkIHJlcXVlc3QgcGFkcy4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBhNWU0NGZmZmZhYTZkN2E4ZDdhZjhkY2I3N2UzNzk5MDk5NjI1M2E1LgoKMjAxMS0wMi0yMSAxMDowMzoxNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZGV4LmM6CgkgIGluZGV4OiBhZGQgRklYTUUtMC4xMTogY29tbWVudHMKCjIwMTEtMDItMTUgMTA6NTc6MDggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmRleC5jOgoJICBkb2NzOiBpbXByb3ZlIGluZGV4IGRvY3MKCjIwMTEtMDItMTggMTc6MDk6MTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvZ3Jlc3MudHh0OgoJICBkb2NzOiBzcGVsbC1jaGVjawoKMjAxMS0wMi0xNSAxOToxNToxNiAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBwcmludCBidWZmZXIgZmxhZ3MKCjIwMTAtMTItMDQgMTg6NTM6NTUgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogQ2FsbCAtPnJlbGVhc2VfcGFkKCkgdG8gY2xlYW4gdXAgcGFkCgkgIEZpeGVzICM2MzYwMTEgYW5kICM0MDI1NjIuCgoyMDExLTAyLTE3IDE0OjUwOjQwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5kZXguYzoKCSAgaW5kZXg6IGZpeCBjcmVhdGlvbiBvZiB3cml0ZXIgaWQgZm9yIHVucGFyZW50ZWQgcGFkcwoJICBBbHNvIGRvIHNvbWUgY2xlYW51cCBpbiB0aGUgaW1wbC4KCjIwMTEtMDItMTcgMTA6MzQ6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogYWRkIChkZSlzZXJpYWxpc2F0aW9uIGZ1bmN0aW9uIGZvciB1Y2hhcgoJICAuLiBzaW5jZSB3ZSBzYWRseSBoYXZlIGEgcGx1Z2luIGluIC1nb29kIHRoYXQgaGFzIGEgdWNoYXIgcHJvcGVydHkKCSAgKGNtbWxlbmMpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDI1MjIKCjIwMTEtMDItMTYgMTk6NTQ6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSAgYXRvbWljcXVldWU6IGZpeCBpbmNsdWRlIG9yZGVyIGF0b21pY3F1ZXVlOiBmaXggaW5jbHVkZSBvcmRlciMgUGxlYXNlIGVudGVyIHRoZSBjb21taXQgbWVzc2FnZSBmb3IgeW91ciBjaGFuZ2VzLiBMaW5lcyBzdGFydGluZwoKMjAxMC0xMC0yOCAxMzoyNzo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJICBidXM6IG1ha2UgdGhlIGJ1cyBhbG1vc3QgbG9ja2ZyZWUKCSAgVXNlIG5ldyBHc3RQb2xsIGZ1bmN0aW9uYWxpdHkgdG8gd2FrZXVwIHRoZSBtYWlubG9vcC4KCSAgVXNlIGFuIGF0b21pYyBxdWV1ZSBvbiB0aGUgd3JpdGVyIHNpZGUgdG8gcG9zdCB0aGUgbWVzc2FnZXMuCgkgIFRoZSByZWFkZXIgc2lkZSBpdCBwcm90ZWN0ZWQgd2l0aCB0aGUgbG9jayBzdGlsbCBiZWNhdXNlIHdlIGRvbid0IHdhbnQgbXVsdGlwbGUKCSAgY29uY3VycmVudCByZWFkZXJzLgoKMjAxMS0wMi0xNiAxNzoyMTo1MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBmaXggZGVmcyBmaWxlIGZvciBuZXcgc3ltYm9scwoKMjAxMS0wMi0xNiAxNzoxNDoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJICBhdG9taWNxdWV1ZTogdXNlIGNvcnJlY3QgYXJyYXkgc2l6ZXMKCjIwMTEtMDItMTYgMTY6MjE6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSAgYXRvbWljcXVldWU6IGZpeCBkb2NzIHNvbWUgbW9yZQoKMjAxMS0wMi0xNiAxNjoxOTo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSAgYXRvbWljcXVldWU6IGFkZCByZWZjb3VudGluZyBhbmQgZG9jcwoKMjAxMS0wMi0xNiAxMjo0ODo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJICBhdG9taWNxdWV1ZTogbWFrZSBzdXJlIGEgbWluIGluaXRpYWxfc2l6ZSBpcyB1c2VkCgoyMDEwLTEwLTI4IDE2OjAyOjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkgIGF0b21pY3F1ZXVlOiBhZGQgYW4gYXRvbWljIHF1ZXVlCgkgIEFkZCBhbiBhdG9taWMgcXVldWUuIFRoZSBxdWV1ZSBjYW4gYmUgdXNlZCBmcm9tIG11bHRpcGxlIHRocmVhZHMgc2ltdWx0YW5lb3VzbHkKCSAgYW5kIHdpdGhvdXQgdGFraW5nIGFueSBsb2NrcyBvciBkb2luZyBhbnkgYmxvY2tpbmcgb3BlcmF0aW9ucy4gVGhpcyBtYWtlcyBpdAoJICBoaWdobHkgc2NhbGFibGUgZm9yIHRoaW5ncyBsaWtlIHRoZSBidXMsIGJ1ZmZlcnBvb2xzIGFuZCBvYmplY3QgcmVjeWNsaW5nLgoKMjAxMS0wMi0xNiAxNzoxNDo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgY2hlY2s6IGZpeCBhIGxlYWsgaW4gdGhlIGJ1cyB1bml0IHRlc3QKCjIwMTEtMDItMTYgMTc6Mjg6MTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGRlaW5pdDogYWRkIHByb2dyZXNzIHR5cGUgY2xhc3MgdW5yZWYKCjIwMTEtMDItMTYgMTU6MTM6MDUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogdGVsbCBhbHNvIHdoYXQgcGFkIGEgcGFkIGlzIGFscmVhZHkgbGlua2VkIGFnYWluc3QKCjIwMTEtMDItMTUgMjI6NTY6MzUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICBmaWxle3Npbmssc3JjfTogQ2hlY2sgaWYgbm9uLVVSSSBjaGFyYWN0ZXJzIGFyZSBlc2NhcGVkLCBidXQgb25seSBmb3IgdGhlIFVSSSBub3QgdGhlIGxvY2F0aW9uIHByb3BlcnR5CgoyMDExLTAyLTE1IDIyOjQ5OjI2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgZmlsZXtzcmMsc2lua306IEZpeCB1bml0IHRlc3RzCgkgIGZpbGVzaW5rIGFuZCBmaWxlc3JjIHNob3VsZCByZXR1cm4gZXhhY3RseSB0aGUgc2FtZSBVUkkgYXMgcGFzc2VkCgkgIGFuZCBtdXN0IG5vdCBlc2NhcGUgcGF0aCBzZXBhcmF0b3JzLgoKMjAxMS0wMi0xNSAyMjo0ODo0NCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBGaXggZXNjYXBpbmcgb2YgVVJJcwoJICBFc3BlY2lhbGx5IGRvbid0IGVzY2FwZSAvIGFzIHBhdGggc2VwYXJhdG9ycwoKMjAxMS0wMi0xNSAyMjowNTozMSArMDEwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDx5bGF0dXlhQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBGaXggZXNjYXBpbmcgb2YgZmlsZSB1cmlzCgkgIEZpeGVzIGJ1ZyAjNjQyMzkzLgoKMjAxMS0wMi0xNSAxODoyNjowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgbWVzc2FnZTogYWRkIHRpbWVvdXQgdG8gcHJvZ3Jlc3MgbWVzc2FnZQoJICBBZGQgYSB0aW1lb3V0IG1lbWJlciB0byB0aGUgcHJvZ3Jlc3MgbWVzc2FnZXMgdG8gbGV0IHRoZSBhcHBsaWNhdGlvbiBrbm93IGFib3V0CgkgIHRoZSB0aW1lb3V0IHNvIHRoYXQgaXQgY2FuIGRvIHNvbWUgZ3VpIHRoaW5ncyB3aXRoIGl0LgoKMjAxMS0wMi0xNSAxODoxNDoxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvZ3Jlc3MudHh0OgoJICBkZXNpZ246IG1lbnRpb24gdGltZW91dCBpbiB0aGUgcHJvZ3Jlc3MgbWVzc2FnZQoKMjAxMS0wMi0xNSAxNzoyMDowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXByb2dyZXNzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9ncmVzcy50eHQ6CgkgIGRlc2lnbjogbWFrZSBwcm9ncmVzcyBkcmFmdCBvZmZpY2lhbAoKMjAxMS0wMS0wNiAxODo1NTo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXByb2dyZXNzLnR4dDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBtZXNzYWdlOiByZW5hbWUgY2F0ZWdvcnkgdG8gY29kZQoKMjAxMS0wMS0wNiAxNTo1ODo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGFkZCBuZXcgbWVzc2FnZSBxdWFyawoKMjAxMS0wMS0wNiAxNTo1ODoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXByb2dyZXNzLnR4dDoKCSAgZG9jczogYWRkIG1vcmUgc3RhbmRhcmQgY2F0ZWdvcmllcwoKMjAxMS0wMS0wNSAxMzo1MzowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiByZWdpc3RlciBuZXcgdHlwZQoKMjAxMS0wMS0wNSAxMzo0ODo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkgIGNoZWNrOiBhZGQgcHJvZ3Jlc3MgbWVzc2FnZSB1bml0IHRlc3QKCjIwMTEtMDEtMDUgMTM6NDE6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXNzYWdlOiBhZGQgcHJvZ3Jlc3MgbWVzc2FnZSBmdW5jdGlvbnMKCjIwMTEtMDEtMDUgMTM6Mzk6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1wcm9ncmVzcy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwcm9ncmVzcyBmaWVsZAoJICBBdm9pZCBuYW1pbmcgdGhlIHByb2dyZXNzIGZyZWUgdGV4dCBmaWVsZCAnbWVzc2FnZScgYXMgaXQgY29uZmxpY3RzIHdpdGggdGhlCgkgIG1lc3NhZ2UgaXRzZWxmLgoKMjAxMS0wMi0xNSAxNDo0Mjo1OCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGRvbid0IHJlYWQgYmV5b25kIHRoZSBlbmQgb2YgZmlsZSB1cHN0cmVhbSBpbiBwdWxsIG1vZGUKCSAgLi4uIHdoaWNoIGNvdWxkIGxlYWQgdG8gYSBwcmVtYXR1cmUgZW9zIGJlaW5nIHJlcG9ydGVkIGRvd25zdHJlYW0sCgkgIHJhdGhlciB0aGFuIGEgc3VjY2Vzc2Z1bCBwYXJ0aWFsIHJlYWQgd2hpY2ggd291bGQgcmVzdWx0IHdoZW4KCSAgcGVyZm9ybWVkIGRpcmVjdGx5IG9uIGUuZy4gYmFzZXNyYy4KCjIwMTEtMDEtMjYgMTY6NDY6MjUgKzA4MDAgIENoZW4gUnVpIDxydWkuY2hlbkB0aWV0by5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHJldHVybiByZWFsIGVycm9yIGluIGNvbXBhdGlibGUgbGluayBjaGVjawoJICBXZSBuZWVkIHRvIGVuc3VyZSB3ZSBjYWxsIGdzdF9wYWRfY2hlY2tfbGluaygpIHdpdGggdGhlIHR3byBwYWRzIGluIHRoZSBjb3JyZWN0CgkgIG9yZGVyLiBUaGUgb3JkZXIgZGVwZW5kcyBvbiB3aGV0ZXIgd2UgaXRlcmF0ZSBzcmMgb3Igc2luayBwYWRzLgoJICBTaWduZWQtb2ZmLWJ5OiBDaGVuIFJ1aSA8cnVpLmNoZW5AdGlldG8uY29tPgoKMjAxMS0wMi0xNCAxNzozMToyNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBDaGVjayBzaW5rcGFkIGZvciBmbHVzaGluZwoJICBDaGVjayB0aGUgc2lua3BhZCBmb3IgdGhlIGZsdXNoaW5nIHN0YXRlIGJlZm9yZSBjYWxsaW5nIHRoZSBjaGFpbmZ1bmN0aW9uIG9uIHRoZQoJICBwYWQuIFdlIGRvIHRoaXMgYnkgY2hlY2tpbmcgdGhlIGNhY2hlICh3aGljaCBpcyBhbHNvIGNsZWFyZWQgb24gdGhlIHNyY3BhZCB3aGVuCgkgIHRoZSBzaW5rIGlzIHNldCB0byBmbHVzaGluZykuCgkgIEZpeGVzICM2NDE5MjgKCjIwMTEtMDItMTEgMTc6NDc6MTcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IENoZWNrIGZvciBwYWQgYWxsb2MgY2FwcyB3aGVuIHN1Z2dlc3Rpb24gaXMgbm90IGZpeGVkCgkgIElmIGFmdGVyIGNvbXB1dGluZyB0aGUgc3VnZ2VzdGlvbiB3aXRoIGRvd25zdHJlYW0gY2FwcyB3ZSBzdGlsbCBoYXZlCgkgIGEgbm9uLWZpeGVkIHN1Z2dlc3Rpb24gY2FwcyB0cnkgdG8gaW50ZXJzZWN0IHdpdGggdGhlIGlucHV0IGNhcHMKCSAgb2YgdGhlIHBhZCBhbGxvYyB0byBhdm9pZCB1c2VsZXNzIHJlbmVnb3RpYXRpb25zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQyMTMwCgoyMDExLTAyLTE0IDE0OjAwOjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaW1wcm92ZSBkdXJhdGlvbiBjYWxjdWxhdGlvbgoJICBLZWVwIHRyYWNrIG9mIHRoZSBhdmVyYWdlIGRpc3RhbmNlIGJldHdlZW4gaW5jb21taW5nIHRpbWVzdGFtcHMgYW5kCgkgIHVzZSB0aGF0IHRvIGVzdGltYXRlIHRoZSBmcmFtZSBkdXJhdGlvbiB3aGVuIGJ1ZmZlcnMgaGF2ZSBubyBkdXJhdGlvbiBzZXQgb24KCSAgdGhlbS4KCjIwMTEtMDItMTQgMTM6NDk6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBpbXByb3ZlIHJhdGUgY2FsY3VsYXRpb24KCSAgV2hlbiB0aGVyZSBpcyBubyBkdXJhdGlvbiBvbiBpbnB1dCBidWZmZXJzLCBhc3N1bWUgdGhlIHJhdGUgaXMgMS4wCgkgIGluc3RlYWQgb2YgKHRoZSB1bmRlZmluZWQpIDAuMC4KCjIwMTEtMDItMTQgMTM6NDc6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBpbXByb3ZlIGF2ZXJhZ2UgZHVyYXRpb24gY2FsY3VsYXRpb24KCSAgSW1wcm92ZSB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIGR1cmF0aW9uLiBXaGVuIHdlIGhhdmUgbm8gaW5wdXQgZHVyYXRpb24gc2V0IG9uCgkgIHRoZSBpbnB1dCBidWZmZXJzIHN0b3AgaXMgc2V0IHRvIHN0YXJ0IGFuZCB0aGVuIHdlIGVuZCB1cCB1c2luZyBhIDAgZHVyYXRpb24gaW4KCSAgdGhlIGF2ZXJhZ2UgY2FsY3VsYXRpb24uCgoyMDExLTAyLTE0IDEyOjIxOjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcmVuYW1lIHZhcmlhYmxlCgkgIFJlbmFtZSBhbiBpbnRlcm5hbCB2YXJpYWJsZSB0byBiZXR0ZXIgcmVmbGFjdCB3aGF0IGl0cyB2YWx1ZSBtZWFucy4KCjIwMTEtMDItMTQgMTU6Mzk6MjEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlLWxhdW5jaDogdHJpbSB3aGl0ZXNwYWNlcwoKMjAxMS0wMi0xNCAxNTozNzoyMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2UtbGF1bmNoOiBmaXggdHlwbyBpbiBwYWQtbGlzdCBsZW5ndGggY29tcGFyaXNpb24KCSAgSXQgd2FzIGNvbXBhcmluZyB0aGUgbGVuZ3RoIHdpdGggaXRzZWxmLgoJICBGaXhlcyAjNjQyMDcxLgoKMjAxMS0wMi0xNCAxMjo1MjozMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmOTRkNzM5IHRvIDFkZTdmNmEKCjIwMTEtMDItMTMgMjI6NTY6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBwcmV0dHktcHJpbnQgZGF0ZXRpbWUgdGFncwoKMjAxMS0wMi0xMCAyMzozMDoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3RyZWFtZXIuZG9hcDoKCSAgZ3N0cmVhbWVyLmRvYXA6IHVwZGF0ZSBtYWlsaW5nIGxpc3QgaG9zdAoKMjAxMS0wMi0xMCAxNDo1MzozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCBzb21lIGNvbW1lbnRzCgoyMDExLTAyLTEwIDE0OjUwOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazoga2VlcCB0cmFjayBvZiBlYXJsaWVzdCBRb1MgdGltZXN0YW1wCgkgIEtlZXAgdHJhY2sgb2YgdGhlIGVhcmxpZXN0IGFsbG93ZWQgdGltZXN0YW1wIGFjY29yZGluZyB0byB0aGUgbGF0ZXN0CgkgIFFvUyByZXBvcnQgYW5kIGRyb3AgYnVmZmVycyBiZWZvcmUgdGhhdCB0aW1lLiBBY3RpdmF0ZSB0aGlzIGZpbHRlcgoJICB3aGVuIHRocm90dGxpbmcgaXMgZW5hYmxlZC4gV2UgY291bGQgbGF0ZXIgYWxzbyBhY3RpdmF0ZSB0aGlzIGluIHRoZQoJICBvdGhlciBRb1MgY2FzZXMuCgkgIFNlZSAjNjM4ODkxCgoyMDExLTAyLTEwIDE0OjE3OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdXNlIG5ldyBRb1MgdHlwZQoJICBVc2UgdGhlIG5ldyBRb1MgdHlwZSBhbmQgc2VuZCB0aHJvdHRsaW5nIFFvUyBtZXNzYWdlcy4KCjIwMTEtMDItMTAgMTM6NDI6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlc2luazogYWRkIHByb3BlcnR5IHRvIGNvbmZpZ3VyZSBhIHRocm90dGxlLXRpbWUKCSAgQWRkIGEgcHJvcGVydHkgdG8gY29uZmlndXJlIHRoZSB0aHJvdHRsZSB0aW1lIG9uIGEgc2luay4gVGhlCgkgIHByb3BlcnR5IGlzIG5vdCB5ZXQgdXNlZC4KCSAgU2VlICM2Mzg4OTEKCjIwMTEtMDItMTAgMTI6MDI6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogYWRkIFFvUyBldmVudCB0eXBlCgkgIEFkZCBhIHBhcmFtZXRlciB0byB0aGUgUW9TIGV2ZW50IHRvIHNwZWNpZnkgdGhlIFFvUyBldmVudCB0eXBlLgoJICBVcGRhdGUgZG9jcyBhbmQgYWRkIHVuaXQgdGVzdC4KCSAgU2VlICM2Mzg4OTEKCjIwMTEtMDItMTAgMTI6MDA6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IGZpeCBwYXJhbWV0ZXIgZG9jcwoKMjAxMS0wMi0xMCAxMDo0OToyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgZGVzaWduOiB0d2VhayBkb2NzIGEgbGl0dGxlCgoyMDExLTAyLTEwIDEwOjM0OjU3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBkZXNpZ246IHVwZGF0ZSBRb1MgZG9jdW1lbnQKCSAgQWRkIG5ldyBRb1MgdHlwZXMgYW5kIHRhbGsgYWJvdXQgdGhlIG5ldyB0aHJvdHRsZSBRb1MgbWVzc2FnZS4KCjIwMTEtMDItMTAgMTM6NDY6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVycG9vbC50eHQ6CgkgIGRvY3M6IGZpeCBzb21lIHR5cG9zIGluIHRoZSBidWZmZXJwb29sIGRyYWZ0CgoyMDExLTAyLTEwIDEwOjE5OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudHM6IGZpeCBnLWkgYW5ub3RhdGlvbiBmb3IgZ3N0X2V2ZW50X25ld190YWcoKSB3aGljaCB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIHRhZyBsaXN0CgoyMDExLTAyLTEwIDAwOjAyOjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGRvY3M6IG1lbnRpb24gdGhhdCBpdCdzIG5lY2Vzc2FyeSB0byBzZXQgdGhlIHN0YXRlIG9mIGVsZW1lbnRzIGFkZGVkIHRvIGFuIGFscmVhZHktcnVubmluZyBwaXBlbGluZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQxNjMxCgoyMDExLTAyLTA5IDE2OjIyOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVycG9vbC50eHQ6CgkgIGRlc2lnbjogYWRkIGRyYWZ0IGZvciBmaXJzdCBpZGVhcyBmb3IgYSBidWZmZXJwb29sIGZlYXR1cmUKCSAgQWRkIGEgZmlyc3QgZHJhZnQgd2l0aCBzb21lIGlkZWFzIGFuZCB1c2UgY2FzZXMgZm9yIHRoZSBpbXBsZW1lbnRhdGlvbgoJICBmb3IgYnVmZmVycG9vbHMuIFRoZSBwdXJwb3NlIGlzIHRvIGJlIGFibGUgdG8gbWFrZSBlbGVtZW50cyBuZWdvdGlhdGUKCSAgdGhlaXIgYnVmZmVyIHJlcXVpcmVtZW50cyBhcyB3ZWxsIGFzIHByb3ZpZGUgYW4gaW5mcmFzdHJ1Y3R1cmUgdG8KCSAgcHJlYWxsb2NhdGUgYW5kIHJldXNlIGJ1ZmZlcnMgaW4gYW4gZWFzeSB3YXkuCgoyMDExLTAyLTA5IDE1OjIzOjEzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBkb2NzOiBjbGFyaWZ5IHRoZSBOT01JTkFMX0JJVFJBVEUgZG9jcwoJICBUZWxsIHRoYXQgaXRzIGEgdGFyZ2V0IGJpdHJhdGUgYW5kIGFjdHVhbCB2YWx1ZXMgbWlnaHQgYmUgZGlmZmVyZW50LgoKMjAxMS0wMi0wMyAxNToxNzoxMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiB0cmlnZ2VyIHJlYnVpbGQgc2V0dXAgaW4gX25ldwoJICBGYWlsaW5nIHRvIGRvIHNvIGluIHRoZSBXaW5kb3dzIGNhc2UgKGltcGxpY2l0bHkgdHJpZ2dlcmVkIG90aGVyd2lzZSkKCSAgd291bGQgaGF2ZSBhIHN1YnNlcXVlbnQgX3dhaXQgcmV0dXJuIGltbWVkaWF0ZWx5IGxlYWRpbmcgdG8gaGlnaCBDUFUKCSAgdXNhZ2UgdGltZW91dCBsb29wcy4KCSAgRml4ZXMgIzY0MDY3NS4KCjIwMTEtMDItMDMgMTA6NTM6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogbWFrZSBhZGRpbmcvcmVtb3Zpbmcgb2YgZ3N0X2RlYnVnX2xvZ19kZWZhdWx0KCkgd29yayBwcm9wZXJseQoJICBNYWtlIGFkZGluZy9yZW1vdmluZyBnc3RfZGVidWdfbG9nX2RlZmF1bHQoKSB3b3JrIHJlbGlhYmx5IGluIGFsbAoJICBjaXJjdW1zdGFuY2VzLiBUaGUgcHJvYmxlbSB3YXMgdGhhdCBkZXBlbmRpbmcgb24gcGxhdGZvcm0gYW5kIGxpbmtlcgoJICBmbGFncyB0aGUgZnVuY3Rpb24gYXJndW1lbnQgbWlnaHQgcmVzb2x2ZSB0byBkaWZmZXJlbnQgYWRkcmVzc2VzLAoJICB3aGljaCBtYWRlIGl0IGltcG9zc2libGUgdG8gcmVtb3ZlIHRoZSBkZWZhdWx0IGxvZyBmdW5jdGlvbiBhZGRlZAoJICBpbiBnc3RfaW5pdCgpIGZyb20gYXBwbGljYXRpb24gY29kZSAoYmVjYXVzZSB0aGUgcG9pbnRlciB2YWx1ZXMKCSAgZGlkbid0IG1hdGNoKS4gVGhlIG5ldyBhcHByb2FjaCBzaG91bGQga2VlcCB0aGluZ3Mgc2ltcGxlIGJ5IHBhc3NpbmcKCSAgTlVMTCBmb3IgdGhlIGRlZmF1bHQgZnVuY3Rpb24sIHdoaWNoIHRoZSBjb2RlIGluIGxpYmdzdHJlYW1lciBjYW4KCSAgdGhlbiBoYW5kbGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjUzOTYKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MDc3MQoKMjAxMS0wMi0wMyAxMDoyODowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBSZXZlcnQgImluZm86IHVzZSB0aGUgcHVibGljbHkgdmlzaWJsZSBhZGRyZXNzIHRvIGZpeCB0aGUgdGVzdHMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZWI1NjY4N2E2ZGZkMjA3NTA3YTRjYTAwMGVhZTUzZjkzYjVlMzNlYS4KCSAgV2hpbGUgdGhpcyBjb21taXQgbWF5IGhhdmUgZml4ZWQgYSBwcm9ibGVtIG9uIG9uZSBvZiB0aGUgYnVpbGQgYm90cywKCSAgaXQgZGlkbid0IGFjdHVhbGx5IGZpeCB0aGUgb3JpZ2luYWwgYnVnIHJlcG9ydGVkIGZvciB3aW4zMi4KCSAgQWxzbywgaXQgY2F1c2VzIG90aGVyIHByb2JsZW1zLCBzdWNoIGFzIHRoZSBsb29rdXAgZmFpbGluZyB3aGVuCgkgIGNhbGxlZCBmcm9tIEMrKyBjb2RlIChnc3QtcGhvbm9uLCBhbWFyb2spLgoJICBUaGlzIG5lZWRzIHRvIGJlIGZpeGVkIGRpZmZlcmVudGx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQwNzcxCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjUzOTYKCjIwMTEtMDItMDIgMTU6MzU6NDUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBwcm9wZXJseSBpZGVudGl0eSBkZXF1ZXVlZCBldmVudCBhcyBzdWNoCgkgIC4uLiB3aGljaCBhdm9pZHMgdGVybWluYXRpbmcgd2l0aCBFUlJPUiByYXRoZXIgdGhhbiBVTkVYUEVDVEVELgoKMjAxMS0wMi0wMiAwMjowNzo1OCArMDAwMCAgUGV0ZXIgQ29sbGluZ2JvdXJuZSA8cGV0ZXJAcGNjLm1lLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogdXNlICRHU1RfUFJFRklYIHZhcmlhYmxlCgkgIFRoaXMgbWFrZXMgaXQgZWFzaWVyIHRvIGNoYW5nZSB0aGUgcHJlZml4IGJ5IGVkaXRpbmcgdGhlIHNjcmlwdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MTIxMgoKMjAxMC0wOC0xOSAyMjo0MzowNyArMDMwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5Abm9raWEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogYWRkIGEgbmV3ICJlbmNvZGVkLWJ5IiB0YWcKCSAgVXNlY2FzZTogSUQzdjIgVEVOQyAoIkVuY29kZWQgYnkiKSBmcmFtZS4KCSAgQVBJOiBHU1RfVEFHX0VOQ09ERURfQlkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNzI2OAoKMjAxMS0wMS0yOSAxODowMjoxMSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSAgbmV0OiB1c2Ugc29ja2xlbl90IHdoZXJlIGFwcHJvcHJpYXRlIHJhdGhlciB0aGFuIHNwZWNpZmljIHR5cGUKCSAgSW4gcGFydGljdWxhciwgZml4ZXMgQ3lnd2luIGJ1aWxkIHdoZXJlIHNvY2tsZW5fdCBpcyBkZWZpbmVkIGFzIGludAoJICBpbiBsaW5lIHdpdGggbmF0aXZlIHdpbjMyIGFwaSBkZWZpbml0aW9uLgoKMjAxMS0wMS0zMSAxNTo1ODoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgYnVzOiBob25vdXIgYW55IHBlci10aHJlYWQgZGVmYXVsdCBtYWluIGNvbnRleHQgc2V0IHZpYSBnX21haW5fdGhyZWFkX3B1c2hfdGhyZWFkX2RlZmF1bHQoKQoJICBNYWtlcyBnc3RfYnVzX2FkZF93YXRjaCgpLCBnc3RfYnVzX2FkZF93YXRjaF9mdWxsKCksIGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaCgpLAoJICBhbmQgZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoX2Z1bGwoKSBjb252ZW5pZW5jZSBmdW5jdGlvbnMgYXV0b21hdGljYWxseSBwaWNrIHVwCgkgIGFueSBub24tZGVmYXVsdCBtYWluIGNvbnRleHRzIHNldCBmb3IgdGhlIGN1cnJlbnQgdGhyZWFkIHZpYQoJICBnX21haW5fdGhyZWFkX3B1c2hfdGhyZWFkX2RlZmF1bHQoKS4KCjIwMTEtMDEtMjggMTU6MzY6MzMgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IE9ubHkgc2V0IGRpc2NvbnQgb24gdGhlIGZpcnN0IGJ1ZmZlciBhZnRlciBkcm9wcwoJICBSZXNldCB0aGUgZGlzY29udCBtZW1iZXIgYWZ0ZXIgc2V0dGluZyBkaXNjb250IG9uIHRoZSBmaXJzdCBidWZmZXIgYWZ0ZXIKCSAgZHJvcHBpbmcuCgoyMDExLTAxLTI4IDE5OjA4OjA4ICswMDAwICBCYXN0aWVuIE5vY2VyYSA8aGFkZXNzQGhhZGVzcy5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBHc3RFbGVtZW50OiBGaXggd2FybmluZyB3aXRoIEdDQyA0LjYKCSAgZ3N0ZWxlbWVudC5jOiBJbiBmdW5jdGlvbiDigJhnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWTigJk6CgkgIGdzdGVsZW1lbnQuYzoxMDUyOjE4OiBlcnJvcjogdmFyaWFibGUg4oCYdG1w4oCZIHNldCBidXQgbm90IHVzZWQgWy1XZXJyb3I9dW51c2VkLWJ1dC1zZXQtdmFyaWFibGVdCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDA4NTAKCjIwMTEtMDEtMjcgMDk6Mjg6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogcHJpbnQgdW5zZXQgYnVmZmVyIHRpbWVzdGFtcHMgb3IgZHVyYXRpb25zIGFzICdub25lJwoJICBMaWtlIGZha2VzaW5rIGFuZCBmYWtlc3JjIGRvLgoKMjAxMS0wMS0xMiAxNjowMzozMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGRvbid0IHRha2Ugb2JqZWN0IGxvY2sgZm9yIHJlYWRpbmcgdGhlIGZvdW5kIGNhcHMKCSAgT25jZSB3ZSBzd2l0Y2ggdG8gbm9ybWFsIG1vZGUsIHdlJ3JlIG5vdCB0eXBlZmluZGluZyBhbnltb3JlIGFuZCB0aHVzIHRoZSBjYXBzCgkgIHdpbGwgbm90IGNoYW5nZS4gVGhlcmVmb3JlIGNhbiBhdm9pZCB0aGUgb2JqZWN0IGxvY2sgaW4gdGhlIGRhdGEtZmxvdyBwYXRoLgoJICBUaGUgbG9ja2luZyB3YXMgYWRkZWQgaW4gb3JkZXIgdG8gZml4IGJ1ZyAjNjA4ODc3LgoKMjAxMS0wMS0yNSAwOTozOTo0NSArMDgwMCAgWmhhbmcgV2FubWluZyA8V2FubWluZy5aaGFuZ0B0aWV0by5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OgoJKiBkb2NzL3JhbmRvbS9jYXBzOgoJKiBkb2NzL3JhbmRvbS9vbWVnYS9UT0RPLTAuMS4wOgoJKiBkb2NzL3JhbmRvbS90aG9tYXN2cy9jYXB0dXJpbmc6CgkqIGRvY3MvcmFuZG9tL3d0YXkvZXZlbnRzOgoJKiBkb2NzL3JhbmRvbS93dGF5L2V2ZW50czM6CgkqIGRvY3Mvc2xpZGVzL291dGxpbmU6CgkgIGRvY3M6IGZpeCBhIGZldyBtb3JlIHR5cG9zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDA1MDIKCjIwMTEtMDEtMjUgMTg6NDg6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgZG9jczogZmxlc2ggb3V0IHR5cGVmaW5kZWxlbWVudCBkb2NzIHNvbWUgbW9yZQoJICBNZW50aW9uIHRoYXQgaGF2ZS10eXBlIHNpZ25hbCBtYXkgYmUgZW1pdHRlZCBmcm9tIHN0cmVhbWluZwoJICB0aHJlYWQgb3IgYXBwbGljYXRpb24gdGhyZWFkLCBhbmQgZml4IGEgdHlwby4KCjIwMTEtMDEtMTIgMTY6MDM6NTcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBjb2RlIGFuZCBjb21tZW50IGNsZWFudXBzCgkgIE1ha2UgY29kZSB0d28gcGxhY2VzIG9mIHRoZSBjb2RlIHRoZSBwdXNoZXMgdGhlIGJ1ZmZlciBzdG9yZSBtb3JlIHNpbWlsYXIuIE1vcmUKCSAgY29tbWVudHMgYW5kIGRlYnVnIGxvZ2dpbmcuCgoyMDExLTAxLTEyIDEzOjA1OjA2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgdHJhY2U6IGVuc3VyZSBtZXNzYWdlcyBhcmUgXDAgdGVybWluYXRlZAoKMjAxMS0wMS0xMiAxMjo1ODo0NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXR0aW1lcHJvdmlkZXI6IGhhbmRsZSBpbnZhbGlkIG5ldHdvcmsgYWRkcmVzc2VzIGVhcmxpZXIKCSAgSGFuZGxlIGluZXRfYXRvbigpIHJldHVybiBjb2RlLgoKMjAxMS0wMS0xMiAxMjo0NDo1OSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGNoZWNrczogYWRkIGEgY29tbWVudCB0byBpbmRpY2F0ZSB0aGF0IHdlIGludGVudGlvbmFsbHkgbGVhdmUgb3V0IHRoZSAnYnJlYWsnCgoyMDExLTAxLTEyIDEyOjQzOjA0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IHJlbW92ZSBkZWFkIGNvZGUKCSAgVGhlIEdFcnJvciBpcyBvbmx5IHVzZWQgZm9yIHRoZSBtbWFwIG9wZXJhdGlvbnMuIElmIHdlIGhhdmUgYW4gZXJyb3Igd2UgaGFuZGxlCgkgIGFuZCBjbGVhbiBpdCB0aGVyZSBhbHJlYWR5LgoKMjAxMS0wMS0xMiAwOTozMzo1MyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGRvY3M6IHNtYWxsIGNvbnRyb2xsZXIgYXBpIGRvY3MgaW1wcm92ZW1lbnQKCjIwMTEtMDEtMTEgMTU6MDk6NTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBjYW5vbmljYWxpemUgc2lnbmFsIG5hbWUKCjIwMTEtMDEtMTEgMTU6MDk6MzAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIGRvY3M6IG1lbnRpb24gaGF2ZS10eXBlIHNpZ25hbCBpbiB0aGUgZG9jcy4KCjIwMTEtMDEtMjUgMDk6MTU6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBkb2NzOiBtaW5vciBnc3QtbGF1bmNoIG1hbiBwYWdlIGZpeAoJICBUcmFuc21pdHRlci9yZWNlaXZlciBwaXBlbGluZXMgd2VyZSBtaXNsYWJlbGxlZC4gU3BvdHRlZCBieSBNYWppbi4KCjIwMTEtMDEtMjUgMTY6MDk6MTggKzEwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZSB0ZXN0OiBSZW1vdmUgd29ya2Fyb3VuZCBmb3IgcGFkX3Rhc2sgaGFuZ3MKCSAgUmVtb3ZlIGNvZGUgdGhhdCBpc24ndCBuZWVkZWQgYW55IGxvbmdlciwgd2hpY2ggc2V0cyB0aGUgbXVsdGlxdWV1ZQoJICB0byBQTEFZSU5HIGFuZCBiYWNrIGJlZm9yZSB1bnJlZmZpbmcsIGluIG9yZGVyIHRvIGF2b2lkIGEgZGVhZGxvY2sKCSAgd2FpdGluZyBmb3IgZ3N0cGFkIHRhc2tzIHRoYXQgd2VyZSBuZXZlciBzdGFydGVkLiBUaGUgcHJvYmxlbSBzZWVtcwoJICB0byBoYXZlIGJlZW4gZml4ZWQgbG9uZyBhZ28uCgoyMDExLTAxLTI1IDAwOjIwOjM0ICswODAwICBDYWkgWXVhbnFpbmcgPGNramFja2V0QGdtYWlsLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJICBkZXNpZ24gZG9jczogZml4IDIgdHlwb3MgaW4gcGFydC1NVC1yZWZjb3VudGluZwoKMjAxMS0wMS0yNCAxNzo0NjoxNSArMDgwMCAgWWFuZyBYaWNodWFuIDx4aWNodWFuLnlhbmdAdGlldG8uY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJICBkZXNpZ24gZG9jczogcGFydC1nc3RiaW4udHh0IGZpeCB0eXBvCgkgIFNpZ25lZC1vZmYtYnk6IFlhbmcgWGljaHVhbiA8eGljaHVhbi55YW5nQHRpZXRvLmNvbT4KCjIwMTEtMDEtMTkgMTU6NDg6MjYgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVybGlzdC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcmVyb2xsLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wdXNoLXB1bGwudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIGRlc2lnbiBkb2NzOiBmaXggYSBmZXcgdHlwb3MgYW5kIGEgdGhpbmtvCgoyMDExLTAxLTExIDE3OjQzOjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNsb2NrOiBBUEk6IEFkZCBmdW5jdGlvbiB0byByZS1pbml0IHBlcmlvZGljIEdzdENsb2NrSURzCgoyMDExLTAxLTIwIDE0OjM3OjI1ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgZ3N0cGx1Z2lubG9hZGVyOiBkbyBub3QgbGVhayB0aGUgZGVzY3JpcHRpb24gc3RyaW5nCgkgIFRoZSBkZXNjcmlwdGlvbiBzdHJpbmcgd2FzIGNoYW5nZWQgdG8gYW4gaW5saW5lZCBzdHJpbmcgYSB3aGlsZSBiYWNrLgoJICAoQnV0OiBubyBuZWVkIHRvIGludGVybiB0aGUgY29uc3Qgc3RyaW5ncyBoZXJlLCB3ZSBqdXN0IHVzZSB0aGUgaW50ZXJuaW5nCgkgIHRvIGF2b2lkIGFsbG9jYXRpbmcgZHVwbGljYXRlcyBhbmQgbWFrZSBtZW1vcnkgbWFuYWdlbWVudCBlYXNpZXIsCgkgIHNpbmNlIHRoZSBzdHJpbmdzIHdpbGwgYmUgYXJvdW5kIGZvciB0aGUgbGlmZS10aW1lIG9mIHRoZSBhcHAgYW55d2F5KS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MDA3MQoKMjAxMS0wMS0yMiAxNTozMzo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBjbGFyaWZ5IGRvY3MKCjIwMTEtMDEtMTEgMTA6MzM6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgIGRlc2lnbjogdXBkYXRlIGJ1ZmZlcmluZyBkb2MKCSAgQWRkIHN0cmF0ZWdpZXMgdG8gYnVmZmVyaW5nIGRvYwoKMjAxMS0wMS0yNCAxMTo1MzoxMiArMDIwMCAgTWFydCBSYXVkc2VwcCA8bWFydC5yYXVkc2VwcEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGRvY3M6IGFkZCBtaXNzaW5nICJTaW5jZTogMC4xMC4zMiIgbWFya2VycyBmb3IgR3N0Q2xvY2sKCSAgU2luY2UgdGFncyB3ZXJlIG1pc3NpbmcgZm9yIGdzdF9jbG9ja19zaW5nbGVfc2hvdF9pZF9yZWluaXQoKQoJICBhbmQgR1NUX0NMT0NLX0RPTkUuCgoyMDExLTAxLTI0IDEwOjU2OjIxICswMjAwICBNYXJ0IFJhdWRzZXBwIDxtYXJ0LnJhdWRzZXBwQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIGRvY3M6IEZpeCBHc3RRdWV1ZTI6cmluZy1idWZmZXItbWF4LXNpemUgcHJvcGVydHkgU2luY2UgdGFnICgwLjEwLjMxLCBub3QgMC4xMC4zMCkKCjIwMTEtMDEtMjQgMTA6MjY6NDUgKzAyMDAgIE1hcnQgUmF1ZHNlcHAgPG1hcnQucmF1ZHNlcHBAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBkb2NzOiBhZGQgbWlzc2luZyAiU2luY2U6IDAuMTAuMzEiIG1hcmtlciBmb3IgZ3N0X3N0cnVjdHVyZV9nZXRfZGF0ZV90aW1lKCkKCjIwMTEtMDEtMjQgMTQ6MjI6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgcmVhZC1iZXlvbmQtZW5kLW9mLXN0cmluZyBidWcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTY3NAoKMjAxMS0wMS0yNCAxNDoxNjozNyArMDAwMCAgTWlndWVsIEFuZ2VsIENhYnJlcmEgTW95YSA8bWFkbWFjMjUwMUBnbWFpbC5jb20+CgoJKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSAgcGFyc2UtbGF1bmNoOiBkb24ndCByZWFkIHBhc3QgZW5kIG9mIHN0cmluZyBpZiBsYXN0IGNoYXJhY3RlciBpcyBhbiBlc2NhcGUgY2hhcgoJICBXaGVuIHRoZSBsYXN0IGNoYXJhY3RlciBvZiBhIHByb3BlcnR5IHZhbHVlIGlzIGEgYmFja3NsYXNoCgkgIHRoZSB1bmVzY2FwaW5nIGNvZGUgcmVhZHMgb25lIGJ5dGUgcGFzcyB0aGUgZW5kIG9mIHRoZSBzdHJpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzk2NzQKCjIwMTEtMDEtMTQgMDk6MjE6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWxzLm1hazoKCSAgZG9jczogaGFjayBhIGNoYXJzZXQ9dXRmLTggaW50byBwd2cvYWRtIGh0bWwgdmVyc2lvbnMKCSAgU28gdGhlIGVuY29kaW5nIG9mIHRoZSBvcmlnaW5hbCBkb2N1bWVudCBpcyByZXNwZWN0ZWQgYW5kCgkgIGRpc3BsYXlzIHByb3Blcmx5IGluIGJyb3dzZXJzIHdoZXJlIHRoZSBlbmNvZGluZyBhdXRvZGV0ZWN0aW9uCgkgIGZhaWxzIHRvIHJlY29nbmlzZSB0aGF0IGl0J3MgdXRmLTguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzk0NDgKCjIwMTEtMDEtMTMgMTU6NDE6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IGRvbid0IGxlYWsgeG1sIGZpbGUgbmFtZSBpZiBHU1RfQ0hFQ0tfWE1MIGlzIHNldAoJICBTcG90dGVkIGJ5IG52aW5lZXRoQGdtYWlsLmNvbQoKMjAxMS0wMS0yMyAyMzo0NTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjEwLjMyID09PQoKMjAxMS0wMS0yMSAxMDoyNTozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMzIKCjIwMTEtMDEtMjAgMTk6MDc6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBSZXZlcnQgImNvbmZpZ3VyZTogcmVxdWlyZSBnb2JqZWN0LWludHJvc3BlY3Rpb24gPj0gMC45LjEyIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDNhNTlkNDE2YWY2ZDBmOGI2MWUyNDYwODMwZWI2ZjExMzg5MjllYzIuCgkgIFJldmVydGluZyB0aGlzLCBhcyB0aGUgZmVhdHVyZSB3ZSBidW1wZWQgdGhlIHJlcXVpcmVtZW50IGZvcgoJICBkaWRuJ3QgYWN0dWFsbHkgd29yayBwcm9wZXJseSBvciBoZWxwIHdpdGggdGhlIGlzc3VlIHdlIHdlcmUKCSAgdHJ5aW5nIHRvIGZpeCAoYW5kIGl0IHdhcyBmaXhlZCBkaWZmZXJlbnRseSBpbiB0aGUgZW5kKS4KCjIwMTEtMDEtMTggMjI6NTE6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtdGhyZWFkcy54bWw6CgkgIGRvY3M6IGZpeCBzcGVsbGluZyBvZiAndGhyZXNob2xkJyBpbiBhcHAgZGV2IG1hbnVhbAoKMjAxMS0wMS0xOCAxMDoxMDowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjMxLjQgcHJlLXJlbGVhc2UKCjIwMTEtMDEtMTggMDk6MDQ6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBnb2JqZWN0LWludHJvc3BlY3Rpb246IHRyeSBoYXJkZXIgdG8gbWFrZSBnLWlyLXNjYW5uZXIgdXNlIHRoZSByaWdodCBsaWJnc3RyZWFtZXIKCSAgQXBwbHkgZml4IGZyb20gbGliZ3N0YmFzZSB0byBhbGwgY29yZSBsaWJzIG5vdyB0aGF0IHdlIGtub3cgdGhhdCBpdAoJICB3b3Jrcy4gU2hvdWxkIGZpeCBwcm9ibGVtcyB3aXRoIGctaXItc2Nhbm5lciB1c2luZyB0aGUgd3JvbmcKCSAgKGllLiBzeXN0ZW0pIGxpYmdzdHJlYW1lciwgbGVhZGluZyB0byBsaW5raW5nIGVycm9ycyBzdWNoIGFzCgkgIHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGdzdF9jbG9ja19zaW5nbGVfc2hvdF9pZF9yZWluaXQnLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM3NTQ5CgoyMDExLTAxLTE0IDAwOjIwOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFscy5tYWs6CgkqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIGRvY3M6IGZpeCBnYXJibGVkIFVURi04IGNoYXJhY3RlcnMgd2hlbiBnZW5lcmF0aW5nIGFwcCBkZXYgbWFudWFsIHBzL3BkZgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5NDQ4CgoyMDExLTAxLTEzIDIwOjEyOjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgIGdvYmplY3QtaW50cm9zcGVjdGlvbjogYW5vdGhlciBhdHRlbXB0IHRvIG1ha2UgZy1pIGZpbmQgdGhlIHJpZ2h0IGxpYmdzdHJlYW1lcgoJICBUdXJucyBvdXQgZy1pIHB1dHMgdGhlIGFkZGl0aW9uYWwgLUwgd2Ugc3BlY2lmeSBhdCB0aGUgZW5kLCBoZWxwZnVsbHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzc1NDkKCjIwMTEtMDEtMTIgMTU6NDY6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHJlcXVpcmUgZ29iamVjdC1pbnRyb3NwZWN0aW9uID49IDAuOS4xMgoJICBFYXJsaWVyIHZlcnNpb25zIGRvbid0IGhvbm91ciB0aGUgLUwvLS1saWJyYXJ5LXBhdGggb3B0aW9uLAoJICB3aGljaCB3ZSBuZWVkLiBTZWUgY29tbWl0IDRkMGNjZGFkIGluIGdvYmplY3QtaW50cm9zcGVjdGlvbiBnaXQuCgoyMDExLTAxLTEyIDEwOjE3OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgIGNvbnRyb2xsZXI6IHVwZGF0ZSBnLWkgaW5jbHVkZSBwYXRocyBhcyB3ZWxsIGZvciBoZWFkZXIgY2hhbmdlcwoJICBIb3BlZnVsbHkgbWFrZXMgTHVjaWQgYW5kIE1hdmVyaWNrIGJ1aWxkIGJvdHMgaGFwcHkgYWdhaW4KCjIwMTEtMDEtMTEgMTg6Mzk6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4zMS4zIHByZS1yZWxlYXNlCgoyMDExLTAxLTExIDE4OjM4OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL0xJTkdVQVM6CgkqIHBvL2dsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vc3YucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDExLTAxLTExIDE5OjI2OjQwICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJICBjb250cm9sbGVyOiBGaXggaGVhZGVycyB0byB1c2UgPCA+IGluICNpbmNsdWRlIHN0YXRlbWVudHMKCSAgVGhlIGJlaGF2aW9yIG9mICIgIiBpbiBpbmNsdWRlIHN0YXRlbWVudHMgaXMgaW1wbGVtZW50YXRpb24tZGVmaW5lZCAtCgkgIHNlZSB0aGUgQyBzdGFuZGFyZCwgc2VjdGlvbiA2LjEwLjIgb3IKCSAgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yMTU5MwoKMjAxMS0wMS0xMSAxOToxNDoyOCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBnc3RuZXQ6IEZpeCAtLWMtaW5jbHVkZSBmb3IgZ2lyIGdlbmVyYXRpb24KCSAgUHJldmlvdXNseSBpdCB3YXMgLSBwcm9iYWJseSBkdWUgdG8gY29weS9wYXN0ZSBlcnJvciAtIGxvb2tpbmcgZm9yCgkgIGdzdGJhc2UgaGVhZGVycy4KCSAgSXQncyBjaGFuZ2VkIG5vdyB0byBvbmx5IGluY2x1ZGUgdGhlIG9uZSBwdWJsaWMgaGVhZGVyIGZvciBnc3RuZXQuaAoKMjAxMS0wMS0xMSAxMzo0NzozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGdvYmplY3QtaW50cm9zcGVjdGlvbjogbWFrZSBnLWlyLXNjYW5uZXIgdHJ5IGhhcmRlciB0byBmaW5kIHRoZSByaWdodCBsaWJnc3RyZWFtZXIKCSAgSXQncyBub3QgcXVpdGUgY2xlYXIgdG8gbWUgd2h5IGctaXItc2Nhbm5lciBkb2Vzbid0IGdldCB0aGlzIGluZm8gZnJvbQoJICB0aGUgcGtnLWNvbmZpZyBmaWxlLCBub3Igd2h5IGxpYnRvb2wgZG9lc24ndCBnZXQgaXQgZnJvbSB0aGUgLmxhLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM3NTQ5CgoyMDExLTAxLTExIDEzOjA1OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkgIHBrZ2NvbmZpZzogYWxzbyBhZGQgbGliZGlyIHRvIC11bmluc3RhbGxlZCAucGMgZmlsZXMKCSAgVGhpcyB3YXkgd2UgY2FuIGZpbmQgdGhlIHBhdGhzIHRvIHBhc3MgZS5nLiBnLWlyLXNjYW5uZXIgZm9yCgkgIHVuaW5zdGFsbGVkIHNldHVwcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTAzOQoKMjAxMS0wMS0xMSAxNTo0OToyMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBlNTcyYzg3IHRvIGY5NGQ3MzkKCjIwMTEtMDEtMTEgMTU6MTA6MzIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IGZpeGUgdGhlIHByb3BlcnR5IGxpbmsgYW5kIHRoZSBzaWNlIGRvY3MKCjIwMTEtMDEtMTEgMTI6NDY6MzEgKzAwMDAgIFJhaW1vIErDpHJ2aSA8cmFpbW8uamFydmlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogZml4IGNvbXBpbGVyIHdhcm5pbmcgd2l0aCBNaW5nVwoJICBnc3Rwb2xsLmM6IEluIGZ1bmN0aW9uICdnc3RfcG9sbF9nZXRfcmVhZF9ncG9sbGZkJzoKCSAgZ3N0cG9sbC5jOjY5MjoxMDogd2FybmluZzogYXNzaWdubWVudCBtYWtlcyBpbnRlZ2VyIGZyb20gcG9pbnRlciB3aXRob3V0IGEgY2FzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4OTAwCgoyMDExLTAxLTEwIDE0OjM3OjQxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIHRlc3Q6IG91dHB1dHNlbGVjdG9yOiBBZGQgYW5vdGhlciBuZWdvdGlhdGlvbiB0ZXN0CgkgIEFkZHMgYW4gdW5pdCB0ZXN0IHRvIGNoZWNrIHRoYXQgdGhlIG91dHB1dC1zZWxlY3RvciB3b3JrcwoJICB3aGVuIG5lZ290aWF0aW5nIGJlZm9yZSBzcmNwYWRzIGFyZSByZXF1ZXN0ZWQKCjIwMTEtMDEtMTAgMTQ6MTk6MTcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogSW1wcm92ZSBnZXQgYW5kIHNldCBjYXBzIGZ1bmN0aW9ucwoJICBJbXByb3ZlIHNpbmsgcGFkIGdldGNhcHMgYW5kIHNldGNhcHMgYnkgaGFuZGxpbmcgdGhlIGNhc2Ugd2hlcmUKCSAgbm8gc3JjIHBhZHMgZXhpc3QgeWV0CgoyMDExLTAxLTEwIDE2OjM1OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gY2NiYWE4NSB0byBlNTcyYzg3CgoyMDExLTAxLTEwIDE0OjUyOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNDY0NDVhZCB0byBjY2JhYTg1CgoyMDExLTAxLTEwIDA5OjU5OjE5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIHRlc3RzOiBzZWxlY3RvcjogdW5yZWYgcGVlciBwYWQKCSAgRG8gbm90IGZvcmdldCB0byB1bnJlZiBwZWVyJ3MgcGFkIG9uIG91dHB1dC1zZWxlY3RvciBuZWdvdGlhdGlvbgoJICB0ZXN0cwoKMjAxMS0wMS0xMCAxMzoxODoxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBtYWtlIHN1cmUgd2Ugd2FpdCBhbmQgcmVsZWFzZSB0aGUgbGl2ZSBsb2NrCgkgIE1ha2Ugc3VyZSB3ZSByZWxlYXNlIHRoZSBsaXZlIGxvY2sgYW5kIHdhaXQgaW4gYWxsIGNhc2VzIHdoZW4gd2UgbmVlZCB0byB3YWl0CgkgIGZvciB0aGUgcGxheWluZyBvciBmbHVzaGluZyBzdGF0ZSBjaGFuZ2UuCgkgIEZpeGVzICM2MzU3ODUKCjIwMTEtMDEtMDggMTQ6NTI6MjcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IERvbid0IHJlcGxhY2UgdmFsaWQgZXhpc3RpbmcgcGx1Z2lucyBieSBibGFja2xpc3RlZCBvbmVzCgkgIE9ubHkgcmVwbGFjZSBleGlzdGluZyBwbHVnaW5zIGJ5IGJsYWNrbGlzdGVkIG9uZXMgaWYgdGhleSBjb3JyZXNwb25kCgkgIHRvIHRoZSBleGFjdCBzYW1lIHBsdWdpbi4gSWYgdGhleSdyZSBub3QgdGhlIHNhbWUsIGtlZXAgdGhlIGV4aXN0aW5nCgkgIHZhbGlkIG9uZS4KCSAgRml4ZXMgIzYzODk0MQoKMjAxMS0wMS0wOCAwMjoxOTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC1lbGVtZW50LWNoZWNrLm00LmluOgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgY29uZmlndXJlLCBnc3QtdW5pbnN0YWxsZWQ6IHJlbW92ZSBhIGZldyBiYXNoaXNtCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzg5NjEKCjIwMTEtMDEtMDcgMTI6MTM6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4zMS4yIHByZS1yZWxlYXNlCgoyMDExLTAxLTA3IDAyOjE4OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgaW5kZXhlcnM6IGZpeCB0d28gc21hbGwgbGVha3MKCSAgZWxlbWVudCBmYWN0b3J5IHBsdWdpbl9uYW1lcyBhcmUgaW50ZXJuZWQgc3RyaW5ncyB0aGVzZSBkYXlzLgoKMjAxMS0wMS0wNyAwMDo1MzoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IG5ldmVyIGRpc2FibGUgZ19hc3NlcnQoKSBhbmQgY2FzdCBjaGVja3MgZm9yIHRoZSB1bml0IHRlc3RzCgkgIFRoZSB1bml0IHRlc3RzIGFyZSByaWRkbGVkIHdpdGggZ19hc3NlcnQoKSBhbmQgZnJpZW5kcywgbWFrZSBzdXJlIHdlCgkgIGRvbid0IGRpc2FibGUgYXNzZXJ0IGFuZCBjYXN0IGNoZWNrcyBmb3IgdGhlIHVuaXQgdGVzdHMgZXZlbiBpZgoJICB0aGlzIGhhcyBiZWVuIHNwZWNpZmllZCBmb3IgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgYmFzZSwgZS5nLiB2aWEKCSAgLS1kaXNhYmxlLWdsaWItYXNzZXJ0cy4KCjIwMTEtMDEtMDYgMTk6NDA6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBpZ25vcmUgb2xkIGxpYmdzdHZhbHZlLnNvIGFuZCBsaWJnc3RzZWxlY3Rvci5zbyBwbHVnaW5zIHRvIG1pbmltaXplIHVwZ3JhZGUgcGFpbgoJICBJZ25vcmUgcGx1Z2lucyB3aGljaCBoYXZlIGJlZW4gbW92ZWQgaW50byBjb3JlZWxlbWVudHMsIHNvIGl0J3MKCSAgc3RpbGwgcG9zc2libGUgdG8ganVzdCB1cGdyYWRlIEdTdHJlYW1lciBjb3JlIHdpdGhvdXQgaGF2aW5nIHRvCgkgIHVwZ3JhZGUgdGhlIHdob2xlIHN0YWNrLgoKMjAxMS0wMS0wNiAxOToyMTo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgUmV2ZXJ0ICJwYWR0ZW1wbGF0ZTogYWxsb3cgZGlzYWJsaW5iZyB0aGUgdGVtcGxhdGUgbmFtZSBjb25mb3JtYW5jZSBjaGVja3MiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZjkwMzljMjIwNDBlMWEzOGEzNjkxYmM0ZDI5OWFmNDI3Yzk2MzI1NS4KCSAgV2UgdXNlIC1ER19ESVNBQkxFX0FTU0VSVFMgZm9yIHJlbGVhc2VzIGFuZCBwcmUtcmVsZWFzZXMsIGJ1dAoJICBkb24ndCB3YW50IHRvIGRpc2FibGUgcGFkIG5hbWUgY2hlY2tpbmcgZm9yIHJlbGVhc2VzIGluIGdlbmVyYWwsCgkgIEkgdGhpbmsuIE5lZWQgYSBiZXR0ZXIgc29sdXRpb24gaGVyZS4gRml4ZXMgcGFkIHVuaXQgdGVzdCBpbgoJICBwcmUtcmVsZWFzZS9yZWxlYXNlIG1vZGUuCgoyMDExLTAxLTA0IDEyOjQyOjUwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkgIG91dHB1dC1zZWxlY3RvcjogQWRkIHBhZC1uZWdvdGlhdGlvbi1tb2RlIHByb3BlcnR5CgkgIEFkZHMgZ2V0Y2Fwcy9zZXRjYXBzIHRvIG91dHB1dC1zZWxlY3RvciBhbmQgYWRkcyBhIHByb3BlcnR5CgkgIHRvIHNlbGVjdCB3aGljaCB0eXBlIG9mIG5lZ290aWF0aW9uIHNob3VsZCBiZSBkb25lLgoJICBUaGUgYXZhaWxhYmxlIG1vZGVzIGFyZToKCSAgKiBub25lOiAgIG5vIG5lZ290aWF0aW9uIChjdXJyZW50IGJlaGF2aW9yKSwgZ2V0Y2FwcyByZXR1cm4gQU5ZIGFuZAoJICBzZXRjYXBzIGFyZW4ndCBzZXQgb24gYW55IG9mIHRoZSBwZWVycwoJICAqIGFsbDogICAgdXNlIGFsbCBwYWRzIChkZWZhdWx0KSwgZ2V0Y2FwcyByZXR1cm5zIHRoZSBpbnRlcnNlY3Rpb24gb2YKCSAgcGVlciBwYWRzIGFuZCBzZXRjYXBzIGlzIHNldCBvbiBhbGwgcGVlcnMKCSAgKiBhY3RpdmU6IGdldGNhcHMgYW5kIHNldGNhcHMgYXJlIHByb3hpZWQgdG8gdGhlIGFjdGl2ZSBwYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODM4MQoKMjAxMS0wMS0wNiAxODoxODoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgZG9jczogbWVudGlvbiBleHRyYSBpbnB1dC1zZWxlY3RvciBwYWQgcHJvcGVydGllcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4MzgxCgoyMDExLTAxLTA2IDE3OjQ3OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL0xJTkdVQVM6CgkqIHBvL2VsLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0wOS0yMyAxMjo0OTo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBhdm9pZCB1bm5lY2Vzc2FyeSBtYWxsb2MvZnJlZSBmb3IgZWFjaCBsb2cgZnVuY3Rpb24gY2FsbCBvbiBNU1ZDCgkgIEF2b2lkIHVubmVjZXNzYXJ5IG1hbGxvYy9mcmVlIHRvIGdldCB0aGUgZmlsZSBiYXNlbmFtZSBvbiBNU1ZDIHRvIGF2b2lkCgkgIHVubmVjZXNzYXJ5IG92ZXJoZWFkIHdoZW4gZG9pbmcgR1NUX0RFQlVHPWZvbzo1IG9yIHNvIChzaW5jZSBpdCB3b3VsZCBiZQoJICBkb25lIGJlZm9yZSB0aGUgY2F0ZWdvcnkgbG9nIGxldmVsIGZpbHRlcmluZykuCgoyMDExLTAxLTA2IDE3OjI5OjQ2ICswMDAwICBjaHJpc3RpYW4gc2NoYWxsZXIgPGNocmlzdGlhbi5zY2hhbGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgVXBkYXRlIHNwZWMgZmlsZSB3aXRoIGxhdGVzdCBjaGFuZ2VzIGFuZCBlbmFibGUgR0lSCgoyMDExLTAxLTA1IDEyOjU5OjQ4IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgb2JqZWN0OiBGaXggY3JlYXRpb24gb2YgZGVmYXVsdCBuYW1lCgkgIENoYW5nZSB0aGUgZml4ZWQgYWxsb2NhdGlvbiAoISkgdG8gZ19zdHJkdXBfcHJpbnRmKCkuCgoyMDEwLTEyLTIwIDEzOjMwOjQzICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgR3N0RWxlbWVudDogQWRkIGEgbW9yZSBmbGV4aWJsZSB3YXkgdG8gZ2V0IHJlcXVlc3QgcGFkcy4KCSAgVGhlIG5ldyByZXF1ZXN0X25ld19wYWRfZnVsbCB2bWV0aG9kIHByb3ZpZGVzIGFuIGFkZGl0aW9uYWwgY2FwcyBmaWVsZCwKCSAgd2hpY2ggYWxsb3dzIGVsZW1lbnRzIHRvIHRha2UgYmV0dGVyIGRlY2lzaW9uIHByb2Nlc3MuCgkgIEFsc28sIGFkZCBhIGdzdF9lbGVtZW50X3JlcXVlc3RfcGFkKCkgZnVuY3Rpb24gdG8gYWxsb3cgZGV2ZWxvcGVycyB0byBiZQoJICBhYmxlIHRvIHNwZWNpZnkgd2hpY2ggcGFkIHRlbXBsYXRlIHRoZXkgd2FudCBhIHBhZCBvZi4KCSAgQ29udmVydCBnc3R1dGlscyB0byB1c2UgdGhhdCBuZXcgbWV0aG9kIGluc3RlYWQgb2YgdGhlIG9sZCBvbmUgd2hlbiBtb3JlCgkgIGVmZmljaWVudC4KCSAgVGhpcyBpcyB1c2VmdWwgZm9yIGJlaW5nIGFibGUgdG8gcmVxdWVzdCBwYWRzIGluIGEgbW9yZSBmbGV4aWJsZSB3YXksCgkgIGVzcGVjaWFsbHkgd2hlbiB0aGUgZWxlbWVudCBjYW4gcHJvdmlkZSBwYWRzIHdob3NlIGNhcHMgZGVwZW5kIG9uCgkgIHJ1bnRpbWUgY29uZmlndXJhdGlvbiBhbmQgdGhlcmVmb3JlIGNhbid0IHByb3ZpZGUgcHJlLXJlZ2lzdGVyZWQKCSAgcGFkIHRlbXBsYXRlcy4KCSAgQVBJOiBHc3RFbGVtZW50OjpyZXF1ZXN0X25ld19wYWRfZnVsbAoJICBBUEk6IGdzdF9lbGVtZW50X3JlcXVlc3RfcGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzczMDAKCjIwMTEtMDEtMDUgMTU6NTM6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBpbnB1dHNlbGVjdG9yOiByZW1vdmUgInNlbGVjdC1hbGwiIHByb3BlcnR5CgkgIHNlbGVjdC1hbGwgbW9kZSBpcyBhIGJpdCBicm9rZW4gKGUuZy4gbmV3c2VnbWVudCBldmVudAoJICBoYW5kbGluZyksIHNvIHJlbW92ZSB0aGF0IGZvciBub3cuIFRoZSBmdW5uZWwgZWxlbWVudAoJICBpbiBmYXJzaWdodCBwcm92aWRlcyBzaW1pbGFyIGZ1bmN0aW9uYWxpdHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MzkwNDIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODM4MQoKMjAxMS0wMS0wNSAxNTozNjo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogcmVtb3ZlIHNhZmV0eSBjaGVjayBmb3IgR0xpYiA8IDIuOAoJICBEb24ndCB3b3JyeSBhYm91dCBhY2NpZGVudGFsbHkgdXNpbmcgR0xpYiA8IDIuOCBhdCBydW50aW1lIGFueW1vcmUuCgoyMDExLTAxLTA1IDExOjI2OjEzICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBnc3RkYXRldGltZTogRGlzYWJsZSB1c2FnZSBvZiBHRGF0ZVRpbWUgb24gTWFjT1NYCgkgIEdMaWIncyBHRGF0ZVRpbWUgZG9lc24ndCBoYW5kbGUgcHJvcGVybHkgdGhlIGdtdCBvZmZzZXQuIFRoZXJlZm9yZQoJICB1c2Ugb3VyIG93biBpbnRlcm5hbCB2ZXJzaW9uIGluc3RlYWQgb24gTWFjT1NYLgoJICBTZWUgYnVnICM2Mzg2NjYKCjIwMTEtMDEtMDUgMTA6NTY6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1wcm9ncmVzcy50eHQ6CgkgIGRlc2lnbjogbW9yZSB1cGRhdGVzIGZvciB0aGUgcHJvZ3Jlc3MgbWVzc2FnZXMKCjIwMTEtMDEtMDQgMTg6MzY6NDEgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctc2lnbmFscy54bWw6CgkgIHB3ZzogRml4IGxpbmsgdG8gR09iamVjdCBkb2N1bWVudGF0aW9uCgkgIEJldHRlciBoYXZlIGdub21lLm9yZyB0aGFuIHZpYWdyYSA6KQoKMjAxMS0wMS0wMyAyMDozMjoyMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogQWx3YXlzIG1hcmsgcmVjZXB0aW9uIGFzIGNvbXBsZXRlIGFmdGVyIEVYSVQKCSAgQXZvaWRzIHdhaXRpbmcgZm9yZXZlciBvbiBnc3RfcG9sbF93YWl0IHdoZW4gdXNpbmcgdGhlIHNlbGVjdAoJICBiYWNrZW5kLgoJICBGaXhlcyAjNjM3MDU3CgoyMDExLTAxLTA0IDAwOjQ4OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgZ3N0aW5mbzogZG9uJ3QgdXNlIHByaW50ZiBleHRlbnNpb25zIGlmIEdMaWIgaXNuJ3QgdXNpbmcgdGhlIHN5c3RlbSBwcmludGYKCSAgTWlnaHQgaGVscCB3aXRoIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzg1OTkKCjIwMTEtMDEtMDMgMjA6MTk6MDUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogRml4IGZvciAocClzZWxlY3QgYmFja2VuZAoJICBXZSBuZWVkIHRvIHJlc2V0IHRoZSByZXZlbnRzIGZpZWxkIG9mIGVhY2ggcG9sbGZkIHdoZW4gcmVhZGluZyB0aGUgcmVzdWx0cwoJICBmcm9tIHNlbGVjdCBlbHNlIHdlJ2xsIGVuZCB1cCB3aXRoIHN0cmF5IGluZm8gZnJvbSBwcmV2aW91cyBjYWxscyB0bwoJICBzZWxlY3QuCgoyMDExLTAxLTAzIDAxOjA2OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogbWFrZSBuZXcgZ3N0X3ZhbHVlX2xpc3RfbWVyZ2UoKSB3b3JrIHByb3Blcmx5CgkgIEZpeCBmcmVlaW5nIG9mIHBhcnRpYWxseS1pbml0ZWQgbGlzdCB2YWx1ZSB3aGVuIGJvdGggdmFsdWVzCgkgIHBhc3NlZCBhcmUgZXF1YWwgYW5kIHdlIHdhbnQgdG8gcmV0dXJuIGEgc2luZ2xlIG5vbi1saXN0CgkgIHZhbHVlIGFzIHJlc3VsdC4gRml4ZXMgdW5pdCB0ZXN0LiBBbHNvIGZpeCB1cCBkb2NzIGEgYml0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM3Nzc2CgoyMDEwLTEyLTIxIDIzOjAzOjEyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0YWdzOiBkb24ndCBwcm9kdWNlIGR1cGxpY2F0ZWQgZW50cmllcyB3aGVuIG1lcmdpbmcgc2FtZSB2YWx1ZSB0d2ljZQoJICBBZGQgYSB2YXJpYW50IG9mIGdzdF92YWx1ZV9saXN0X2NvbmNhdCgpIHRoYXQgc2tpcHMgZHVwbGljYXRlcyBhbmQgdXNlIHRoYXQgd2hlbgoJICBtZXJnaW5nIHRhZ2xpc3RzLgoJICBBUEk6IGdzdF92YWx1ZV9saXN0X21lcmdlKCkKCjIwMTEtMDEtMDIgMTY6NTg6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYywgYmFzZXNpbms6IGFkZCBzb21lIEZJWE1FcyBmb3IgdGhlIHR5cGUgb2YgdGhlIGJsb2Nrc2l6ZSBwcm9wZXJ0eQoKMjAxMC0xMi0zMSAxMjowODoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogbWFrZSBwYWQncyBnZXRfdHlwZSBmdW5jdGlvbiB0aHJlYWQtc2FmZQoKMjAxMC0xMi0zMSAxMTozNzo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNlbGVjdG9yLW1hcnNoYWwubGlzdDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzZWxlY3Rvci5jOgoJICBjb3JlZWxlbWVudHM6IHJlbW92ZSB1bnVzZWQgZmlsZXMKCjIwMTAtMTItMzEgMTI6Mjc6NDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFByb3RlY3RlZCBnX29iamVjdF9ub3RpZnkoKSBjYWxscyBmb3IgdGhlIGFjdGl2ZS1wYWQgd2l0aCBhIHJlY3Vyc2l2ZSBtdXRleAoJICBUaGlzIHdvcmtzIGFyb3VuZCBhIHRocmVhZCBzYWZldHkgcHJvYmxlbSBpbiBHTGliIDwgMi4yNi4wIGFuZCBzaG91bGQKCSAgYmUgcmVtb3ZlZCB3aGVuIHdlIGRlcGVuZCBvbiAyLjI2LjAuCgkgIEZpeGVzIGJ1ZyAjNjA3NTEzLgoKMjAxMC0xMi0zMSAxNjo1Mjo1NCArMDgwMCAgWmhhbmcgV2FubWluZyA8V2FubWluZy5aaGFuZ0B0aWV0by5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGVzdHM6IGZpeCB0eXBvCgkgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdhbm1pbmcgPFdhbm1pbmcuWmhhbmdAdGlldG8uY29tPgoKMjAxMC0xMi0zMSAxNjo1MDo1NyArMDgwMCAgWmhhbmcgV2FubWluZyA8V2FubWluZy5aaGFuZ0B0aWV0by5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBnc3RmZHNpbms6IGZpeCB0eXBvCgkgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdhbm1pbmcgPFdhbm1pbmcuWmhhbmdAdGlldG8uY29tPgoKMjAxMC0xMi0zMSAxNjo1MDoxNyArMDgwMCAgWmhhbmcgV2FubWluZyA8V2FubWluZy5aaGFuZ0B0aWV0by5jb20+CgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2RyYWZ0LWJ1ZmZlcnBvb2xzLnR4dDoKCSAgZG9jczogZml4IHR5cG8KCSAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2FubWluZyA8V2FubWluZy5aaGFuZ0B0aWV0by5jb20+CgoyMDEwLTEyLTMxIDAxOjA5OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2ljbGVzL291dHB1dC1zZWxlY3Rvci10ZXN0LmM6CgkgIHRlc3RzOiByZW1vdmUgb3V0cHV0LXNlbGVjdG9yIHRlc3Qgd2hpY2ggbmVlZHMgZWxlbWVudHMgZnJvbSAtYmFzZQoJICBNb3ZlIGl0IHRvIC1iYXNlIGluc3RlYWQuCgoyMDEwLTEyLTMxIDAwOjU5OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJICBjaGVja3M6IGVuYWJsZSBpbnB1dC1zZWxlY3RvciBhbmQgb3V0cHV0LXNlbGVjdG9yIHVuaXQgdGVzdHMgYWZ0ZXIgbW92ZQoKMjAxMC0xMi0zMSAwMDo0ODo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuc2lnbmFsczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkgIGRvY3M6IGFkZCBpbnB1dC1zZWxlY3RvciBhbmQgb3V0cHV0LXNlbGVjdG9yIHRvIGRvY3MKCjIwMTAtMTItMzEgMDA6NDU6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgY29yZWVsZW1lbnRzOiBHU1RfQk9JTEVSUExBVEUgYWxyZWFkeSBzZXRzIHBhcmVudF9jbGFzcwoKMjAxMC0xMi0zMSAwMDo0MzozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3Rvciwgb3V0cHV0LXNlbGVjdG9yOiBtaW5vciBjbGVhbi11cHMKCjIwMTAtMTItMzAgMTg6NTc6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgY29yZWVsZW1lbnRzOiBtb3ZlIGlucHV0LXNlbGVjdG9yIGFuZCBvdXRwdXQtc2VsZWN0b3IgdG8gY29yZQoJICBNb3ZlZCB0byBjb3JlIGZyb20gZ3N0LXBsdWdpbnMtYmFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE0MzA2CgoyMDEwLTExLTI0IDEyOjIyOjAxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9pY2xlcy9vdXRwdXQtc2VsZWN0b3ItdGVzdC5jOgoJICBvdXRwdXQtc2VsZWN0b3ItdGVzdDogZG9uJ3QgaGFyZGNvZGUgdmlkZW9zaW5rcyBhbmQgdXNlIG1vcmUgY29sb3JzcGFjZSBjb252LgoJICBVc2UgYXV0b3ZpZGVvc2luayBpbnN0ZWFkIG9mIGhhcmRjb2RlZCBzaW5rcy4gVXNlIGFuIGFkZGl0aW9uYWwgY29sb3JzcGFjZQoJICBjb252ZXJ0ZXIgYmV0d2VlbiB2aWRlb3Rlc3RzcmMgYW5kIHRpbWVvdmVybGF5LgoKMjAxMC0wOS0xNyAwOTo1MjoxMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBBdm9pZCBsb3NpbmcgdGhlIGxhc3RfYnVmZmVyIHdoZW4gc3dpdGNoaW5nCgkgIFRoaXMgcGF0Y2ggbWFrZXMgb3V0cHV0c2VsZWN0b3IgdGFrZSBhbiBleHRyYSByZWYgd2hlbiBwdXNoaW5nCgkgIHRoZSBsYXN0X2J1ZmZlciB0byBhdm9pZCBpdCBsb3NpbmcgaXQgZHVyaW5nIHRoZSBzd2l0Y2ggZnVuY3Rpb24uCgkgIFRoaXMgbWFrZXMgcmVzZW5kLWxhdGVzdCBwcm9wZXJseSB3b3JrIGlmIHRoZSBhY3RpdmUtcGFkIGlzIGNoYW5nZWQKCSAgZHVyaW5nIHRoZSBzd2l0Y2ggZnVuY3Rpb24gYnVmZmVyIHB1c2hpbmcgKG9uIGEgcGFkIHByb2JlLCBmb3IgZXhhbXBsZSkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjk5MTcKCjIwMTAtMDktMTcgMDk6NDQ6MDIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogUmVjaGVjayBwZW5kaW5nIHN3aXRjaCBhZnRlciBwdXNoaW5nIGJ1ZmZlcgoJICBUaGlzIHBhdGNoIG1ha2VzIG91dHB1dC1zZWxlY3RvciBhbHdheXMgcmVjaGVjayBpZiB0aGVyZSdzIGEKCSAgcGVuZGluZyBwYWQgc3dpdGNoIGFmdGVyIHB1c2hpbmcgYSBidWZmZXIsIHByZXZlbnRpbmcgdGhhdAoJICBpdCBwdXNoZXMgYSBidWZmZXIgb24gdGhlICd3cm9uZycgcGFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5OTE3CgoyMDEwLTExLTAxIDIzOjA0OjQ0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogbG9nIHRpbWVzIGluIGh1bWFuIHJlYWRhYmxlIGZvcm0KCjIwMTAtMTEtMDEgMjI6NDA6MzYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBtb3ZlIHJlb2NjdXJpbmcgbG9ncyB0byBMT0cgYW5kIHJlbW92ZSBhIGRvdWJsZSBpbmZvCgkgIExlc3MgZGVidWcgc3BldyBpbiBERUJVRyBjYXRlZ29yeS4gTm8gbmVlZCB0byBsb2cgcGFkIGFnYWluIGlmIHdlIHVzZQoJICBHU1RfTE9HX09CSkVDVChwYWQsLi4uKS4KCjIwMTAtMTAtMTkgMTM6NDM6MTQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIHZhcmlvdXMgKGdzdCk6IGFkZCBtaXNzaW5nIEdfUEFSQU1fU1RBVElDX1NUUklOR1MgZmxhZ3MKCSAgQ2Fub25pY2FsaXplIHByb3BlcnR5IG5hbWVzIGFzIG5lZWRlZC4KCjIwMTAtMDktMDYgMTE6MDM6MDcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBzeW5jIHdpdGggY29weSBpbiAtYmFzZQoJICBVc2UgX2dldF9jYXBzX3JlZmZlZCB0byBhdm9pZCBjb3BpZXMuCgoyMDEwLTA4LTI0IDExOjUwOjQ3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBtb3ZlIHRoZSBkZWJ1ZyBpbml0IHRvIHRoZSBib2lsZXJwbGF0ZSBtYWNybwoKMjAxMC0wOC0yNCAxMTo1MDowOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IHVzZSBHU1RfQk9JTEVSUExBVEUgbWFjcm8KCjIwMTAtMDMtMjIgMTM6MTY6MzMgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIEFkZCAtV3dyaXRlLXN0cmluZ3MKCSAgYW5kIGZpeCBpdHMgd2FybmluZ3MKCjIwMTAtMDMtMjEgMjE6Mzk6MTggKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIEFkZCAtV21pc3NpbmctZGVjbGFyYXRpb25zIC1XbWlzc2luZy1wcm90b3R5cGVzIHRvIGNvbmZpZ3VyZSBmbGFncwoJICBBbmQgZml4IGFsbCB3YXJuaW5ncwoKMjAxMC0wMy0xOCAxNzozMDoyNiArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHMgPT4gZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlCgoyMDEwLTAxLTI1IDEyOjIxOjM0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBSZXZlcnQgImlucHV0c2VsZWN0b3I6IFByb3RlY3QgZ19vYmplY3Rfbm90aWZ5KCkgd2l0aCB0aGUgb2JqZWN0J3MgbXV0ZXgiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgN2UwNjc2MTVmZmI1NjE0ZjA2OGY3NzUzYzEwZGRlOTlhZmU0OWMzYywgaXQncyBjYXVzaW5nCgkgIGRlYWRsb2NrcyB3aXRoIHBsYXliaW4yLgoKMjAxMC0wMS0yNCAyMDo1MzowMCArMDEwMCAgS2lwcCBDYW5ub24gPGtjYW5ub25AbGlnby5jYWx0ZWNoLmVkdT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBQcm90ZWN0IGdfb2JqZWN0X25vdGlmeSgpIHdpdGggdGhlIG9iamVjdCdzIG11dGV4CgkgIFRoaXMgd29ya3MgYXJvdW5kIHRoZSB0aHJlYWQgdW5zYWZldHkgb2YgZ19vYmplY3Rfbm90aWZ5KCkKCSAgRml4ZXMgYnVnICM2MDc1MTMuCgoyMDA5LTExLTA5IDExOjQ5OjE1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBSZW1vdmUgdXNlbGVzcyB2YXJpYWJsZXMgYW5kIGZpeCBhIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgY29tcGlsZXIgd2FybmluZ3MKCSAgTWVyZ2VkIGZyb20gZ3N0LXBsdWdpbnMtYmFzZSwgZGZkNTFhYTgyYTllMWM5OTI0Mzc1MTgzNzk2ZWFiNzBlNTc0YTIzMS4KCjIwMDktMTEtMDkgMTE6NDg6MzkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IE1ha2Ugc3VyZSB0aGF0IHJ1bm5pbmdfdGltZS0+dGltZXN0YW1wIGNhbGN1bGF0aW9uIG5ldmVyIGJlY29tZXMgbmVnYXRpdmUKCSAgTWVyZ2VkIGZyb20gZ3N0LXBsdWdpbnMtYmFzZSwgZjM2NTM4NTQ1ODU4NjRhMDlkMzVlMDM3ODUzNDA3MzMyZWE2OTAxZi4KCjIwMDktMTEtMDkgMTE6NDg6MDAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFVzZSB0aGUgc3RhcnQgdGltZSAoaS5lLiB0aW1lc3RhbXApIGFzIHRoZSBsYXN0IHN0b3AKCSAgVXNpbmcgdGhlIGVuZCB0aW1lIG1ha2VzIGl0IGltcG9zc2libGUgdG8gcmVwbGFjZSBidWZmZXJzLCB3aGljaCBpcwoJICBhIGJpZyBwcm9ibGVtIGZvciBzdWJ0aXRsZXMgdGhhdCBjb3VsZCBoYXZlIHZlcnkgbG9uZyBkdXJhdGlvbnMuCgkgIE1lcmdlZCBmcm9tIGdzdC1wbHVnaW5zLWJhc2UsIDI3MDM0YmU0NjExMjMxY2M1NWZhM2QzZTI1M2JhYTQwYzZiZmY0MWQuCgoyMDA5LTExLTA5IDExOjQ3OjE1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBJbXByb3ZlIGRlYnVnZ2luZwoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLgoKMjAwOS0xMS0wNSAxMzo1Mzo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBSZXZlcnQgImlucHV0c2VsZWN0b3I6IHVzZSBnZXRfY2Fwc19yZWZmZWQoKSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA0OWVjNGY3OTZhMGUzZjg4YTg1MTcwODc4MmM4NTNiYWY0YjA1NzI0LgoJICBXZSBjYW4ndCB1c2UgdGhpcyBuZXcgZnVuY3Rpb24geWV0LgoKMjAwOS0xMS0wNSAxMzoyOTo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiB1c2UgZ2V0X2NhcHNfcmVmZmVkKCkKCjIwMDktMTEtMDQgMDA6MjE6MTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBhbHNvIGFkZCBpbmxpbmUgdG8gdGhlIHByb3RvIHRvIGZpeCB0aGUgYnVpbGQKCjIwMDktMTEtMDMgMTg6MTQ6MTIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgZ3N0OiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50cyBhbmQgcmVzdWx0aW5nIHVudXNlZCB2YXJpYWJsZXMKCSAgTWVyZ2VkIGZyb20gZ3N0LXBsdWdpbnMtYmFzZSwgOGNkMWI1MjA5YjY4OTQ0ZTFiZTU2Y2E4YmI2OWU0NmQ0YWJiN2EzNC4KCjIwMDktMTEtMDMgMTg6MTI6MjEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFVzZSB0aGUgc2FtZSBpdGVyYXRlIGludGVybmFsIGxpbmtzIGZ1bmN0aW9uIGFzIGluIGdzdC1wbHVnaW5zLWJhc2UKCjIwMDktMTEtMDMgMTg6MTE6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBSZW1vdmUgR1NUX0RFQlVHX0ZVTkNQVFIgd2hlcmUgdGhleSdyZSBwb2ludGxlc3MKCSAgVGhlcmUncyBub3QgbXVjaCBwb2ludCBpbiB1c2luZyBHU1RfREVCVUdfRlVOQ1BUUiB3aXRoIEdPYmplY3QKCSAgdmlydHVhbCBmdW5jdGlvbnMgc3VjaCBhcyBnZXRfcHJvcGVydHksIHNldF9wcm9wZXJ5LCBmaW5hbGl6ZSBhbmQKCSAgZGlzcG9zZSwgc2luY2UgdGhleSdsbCBuZXZlciBiZSB1c2VkIGJ5IGFueW9uZSBhbnl3YXkuIFNhdmVzIGEKCSAgZmV3IGJ5dGVzIGFuZCBwb3NzaWJseSBhIHNpeHRlZW50aCBvZiBhIHBvbGFyIGJlYXIuCgkgIE1lcmdlZCBmcm9tIGdzdC1wbHVnaW5zLWJhc2UsIDZmNGMxYWM1ODM0MWVlMTg5MjI1ZDMxM2RkZmU5YWUyNGE2NWM4OGMuCgoyMDA5LTExLTAzIDE4OjA5OjU1ICswMTAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogUmVtb3ZlIFJvbmFsZCBCdWx0amUgZnJvbSBBdXRob3JzIGZpZWxkCgkgIFJlcGxhY2VkIHdpdGggIkdTdHJlYW1lciBtYWludGFpbmVycwoJICA8Z3N0cmVhbWVyLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD4iIG9yIGp1c3QgcmVtb3ZlZCwKCSAgZGVwZW5kaW5nIG9uIHRoZSBudW1iZXIgb2Ygb3RoZXIgYXV0aG9ycy4KCSAgTWVyZ2VkIGZyb20gZ3N0LXBsdWdpbnMtYmFzZSwgMGU5YmM1MTI1YWNhNTQ2ZDc3M2VkMTAwMmRmNTczZGQ4ZTJkYzEzNi4KCjIwMDktMTEtMDMgMTg6MDg6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3Rvcjogc2V0IG91dHB1dCBjYXBzIGJlZm9yZSBwdXNoaW5nCgkgIFNldCB0aGUgb3V0cHV0IGNhcHMgb24gdGhlIHNyY3BhZCBiZWZvcmUgcHVzaGluZyB0aGUgYnVmZmVyIGJlY2F1c2UgZWxzZSBjb3JlCgkgIHdpbGwgZG8gYSByYXRoZXIgZXhwZW5zaXZlIGNoZWNrIHRvIHNlZSBpZiB3ZSBjYW4gYWN0dWFsbHkgYWNjZXB0IHRob3NlIGNhcHMgb24KCSAgdGhlIHNyY3BhZC4KCSAgTWVyZ2VkIGZyb20gZ3N0LXBsdWdpbnMtYmFzZSwgYmRmYjRiNDZkNzQ2ZWYyOThmY2Y0NDI2MDg3OWMzNDJhZjRjYWZhMy4KCjIwMDktMTEtMDMgMTg6MDY6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogaW5zdGFsbCBhbiBhY2NlcHRjYXBzIGZ1bmN0aW9uCgkgIEluc3RhbGwgYSBjdXN0b20gYWNjZXB0Y2FwcyBmdW5jdGlvbiBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBkZWZhdWx0IGV4cGVuc2l2ZQoJICBjaGVjay4gV2UgYWNjZXB0IHdoYXRldmVyIGRvd25zdHJlYW0gYWNjZXB0cyBzbyB3ZSBwYXNzIGFsb25nIHRoZSBhY2NlcHRjYXBzCgkgIGNhbGwgdG8gdGhlIGRvd25zdHJlYW0gcGVlci4KCSAgTWVyZ2VkIGZyb20gZ3N0LXBsdWdpbnMtYmFzZSwgNWI3MmYyYWRmOTk2NzM5MDM2ZThkOWI1ZjkxMDA1NDU1ZDFmZmFjZS4KCjIwMDktMTAtMjcgMTE6NTE6MDUgLTA3MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogdGVzdHMvaWNsZXMvb3V0cHV0LXNlbGVjdG9yLXRlc3QuYzoKCSAgUmVtb3ZlIGV4ZWN1dGFibGUgYml0cyBmcm9tIG5vbi1leGVjdXRhYmxlIGZpbGVzLgoKMjAwOS0wOS0yNSAxMTowNzowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogVXNlIG5ldyBzaW5nbGUgaXRlcmF0b3IgZm9yIHRoZSBpbnRlcm5hbGx5IGxpbmtlZCBwYWRzCgkgIFRoaXMgZml4ZXMgYSBkZWFkbG9jayBhbmQgcmVtb3ZlcyBzb21lIHVzZWxlc3MgY29kZS4KCjIwMDktMDgtMzEgMTk6MzE6NTcgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IG1ha2UgR1NUX0ZPUk1BVF9USU1FIHRoZSBkZWZhdWx0IHNlZ21lbnQgZm9ybWF0CgoyMDA5LTA4LTE5IDE3OjA1OjMyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBVc2UgaXRlcmF0ZSBpbnRlcm5hbCBsaW5rcyBpbnN0ZWFkIG9mIGRlcHJlY2F0ZWQgZ2V0IGludGVybmFsIGxpbmtzCgoyMDA5LTA3LTMxIDExOjI3OjAzICswMzAwICBUb21taSBNecO2aMOkbmVuIDxleHQtdG9tbWkuMS5teW9oYW5lbkBub2tpYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBjaGVjayBmb3IgcGVuZGluZyBzcmNwYWQgaW4gX2dldF9wcm9wZXJ0eSgpCgkgIElmIHRoZXJlIGlzIGEgcGVuZGluZyBzcmNwYWQsIHJldHVybiBpdCBpbnN0ZWFkIG9mIGFjdGl2ZSBzcmNwYWQKCSAgaW4gZ3N0X291dHB1dF9zZWxlY3Rvcl9nZXRfcHJvcGVydHkoKSBmdW5jdGlvbi4KCjIwMDktMDYtMTIgMTA6MTQ6MjcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IGRvIHRoZSBwYWRfYWxsb2MgZm9yIHRoZSBwYWQgdGhhdCBpcyBwZW5kaW5nIGFuZCBoYXZlIGEgZmFsbGJhY2sKCSAgV2Ugc2hvdWxkIGRvIHRoZSBwYWRfYWxsb2MgZm9yIHRoZSBwZW5kaW5nIHBhZCBpZiBhbnksIGFzIHdlIHdpbGwgc3dpdGNoIHRvIHRoYXQKCSAgcGFkIG9uIG5leHQgX2NoYWluKCkgY2FsbC4gQWxzbyBkbyBhIGZhbGxiYWNrIGFsbG9jLCBpZiB0aGVyZSBpcyBubyBvdXRwdXQgeWV0IHRvCgkgIG5vdCBmYWlsIHN0YXRlIHRyYW5zaXRpb25zIGluIGR5bmFtaWMgcGlwZWxpbmVzLgoKMjAwOS0wNi0wMSAxNjozMTo0MiArMDMwMCAgTGFzc2UgTGF1a2thbmVuIDxleHQtbGFzc2UuMi5sYXVra2FuZW5Abm9raWEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXQtc2VsZWN0b3I6IHNlcmlhbGl6ZSBzZXR0aW5nIGFuZCBhY3R1YWwgY2hhbmdpbmcgb2YgbmV3IGFjdGl2ZSBwYWQKCjIwMDktMDUtMDQgMTI6Mjk6NTQgKzAzMDAgIExhc3NlIExhdWtrYW5lbiA8ZXh0LWxhc3NlLjIubGF1a2thbmVuQG5va2lhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0LXNlbGVjdG9yOiB1bnJlZiBsYXRlc3QgYnVmZmVyIGFsc28gd2hlbiByZXNlbmRpbmcgaGFzIGJlZW4gZGlzYWJsZWQKCjIwMDktMDQtMTYgMTc6MzI6MDMgKzAzMDAgIExhc3NlIExhdWtrYW5lbiA8ZXh0LWxhc3NlLjIubGF1a2thbmVuQG5va2lhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0LXNlbGVjdG9yOiBrZWVwIHJlZiB0byBidWZmZXIgZm9yIHJlc2VuZGluZyBvbmx5IGlmIGV4cGxpY2l0bHkgcmVxdWVzdGVkCgoyMDA5LTA2LTA0IDE5OjA4OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGRvbid0IGxlYWsgcGFkcyBpbiBpdGVyYXRvcgoKMjAwOS0wNi0wNCAwODo1NjoyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogTm90aWZ5IHdoZW4gdGhlIHRhZ3MgcHJvcGVydHkgb2YgdGhlIHNlbGVjdG9yIHNpbmtwYWRzIGNoYW5nZXMKCSAgRmlyc3QgcGFydCBvZiBidWcgIzU4NDY4Ni4KCjIwMDktMDUtMjggMTA6Mzg6NTAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuaDoKCSAgc2VsZWN0b3I6IHJlbW92ZSBub3QgbmVlZGVkIGluc3RhbmNlIHZhciAocHJldmlvdXMgY29tbWl0KS4KCjIwMDktMDUtMjggMTA6MTI6NTggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5oOgoJICBvdXRwdXRzZWxlY3RvcjogaW1wbGVtZW50IHBhZF9hbGxvYyBvbiBhY3RpdmUgcGFkLgoKMjAwOS0wNC0yMyAxMTowNDo0NiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBGb3J3YXJkIHNlZ21lbnQgZXZlbnRzIGZvciB0aGUgYWN0aXZlIHBhZCBpbW1lZGlhdGVseS4KCSAgV2hlbiBhIHNlZ21lbnQgZXZlbnQgaXMgcmVjZWl2ZWQgb24gdGhlIGFjdGl2ZSBwYWQsIGZvcndhcmQgaXQgZG93bnN0cmVhbQoJICBpbW1lZGlhdGVseSBpbnN0ZWFkIG9mIGRlZmVycmluZyBpdCB1bnRpbCB0aGUgbmV4dCBkYXRhIGJ1ZmZlciBhcnJpdmVzLiBUaGlzCgkgIGZpeGVzIHByb2JsZW1zIHdpdGggc2VnbWVudCB1cGRhdGVzIG5ldmVyIGJlaW5nIHNlbnQgZG93bnN0cmVhbSwgbGlrZSB0aG9zZQoJICBuZWVkZWQgZm9yIHNwYXJzZSBzdHJlYW1zLCBvciBmb3IgY2xvc2luZyBwcmV2aW91c2x5IG9wZW5lZCBzZWdtZW50cy4KCSAgVGhpcyBmaXhlcyBwbGF5YmFjayBvZiBEVkQgbWVudXMgd2l0aCBhIHN0aWxsIHZpZGVvIGZyYW1lIGFuZCBhbiBhdWRpbyB0cmFjaywKCSAgZm9yIGV4YW1wbGUuCgkgIEZpeGVzOiAjNTc3ODQzCgoyMDA5LTAzLTI3IDExOjIwOjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogcmVzZXQgc3RhdGUgd2hlbiBnb2luZyB0byBSRUFEWQoJICBSZXNldCB0aGUgbGFzdC1idWZmZXIsIHRoZSBwZW5kaW5nIHBhZCBhbmQgdGhlIHNlZ21lbnQgd2hlbiBnb2luZyB0byB0aGUgUkVBRFkKCSAgc3RhdGUuCgkgIEZpeGVzICM1NzY3MTIuCgoyMDA5LTAzLTI0IDE1OjIzOjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIHNlbGVjdG9yOiBtZXJnZSB0aGUgdGFncwoJICBNZXJnZSB0aGUgdGFncyByZWNlaXZlZCBvbiB0aGUgaW5wdXQtc2VsZWN0b3Igc2lua3BhZHMgaW5zdGVhZCBvZiBvbmx5IGtlZXBpbmcKCSAgdGhlIGxhc3Qgb25lIHdlIHNhdy4KCjIwMDktMDItMjUgMTE6NDU6MDUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBkb2NzOiB2YXJpb3VzIGRvYyBmaXhlcwoJICBObyBzaG9ydC1kZXNjIGFzIHdlIGhhdmUgdGhlbSBpbiB0aGUgZWxlbWVudCBkZXRhaWxzLgoJICBBbHNvIGtlZXAgdGhpbmdzIChNYWtlZmlsZS5hbSBhbmQgc2VjdGlvbnMudHh0KSBzb3J0ZWQuCgkgIFJld29yZCBhbWJpZ291cyByZXR1cm5zLiBObyB0ZXh0IGFmdGVyIHNpbmNlIHBsZWFzZS4KCjIwMDktMDItMTEgMTc6MjE6MjAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEZpeCBjb21waWxhdGlvbiwgYWN0aXZhdGVfc2lua3BhZCgpIGhhcyBubyBub3RpZnkgcGFyYW1ldGVyCgoyMDA5LTAyLTEwIDE2OjIyOjU0IC0wODAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogQWN0aXZhdGUgYW5kIG5vdGlmeSBwYWQgYmVmb3JlIHByb2Nlc3NpbmcgZXZlbnRzLgoJICBFdmVudHMgc2hvdWxkIHRyaWdnZXIgcGFkIHNlbGVjdGlvbiBpZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgYW4KCSAgZXhwbGljaXRseSBzZWxlY3RlZCBwYWQsIHNvIHRoYXQgZXZlbnRzIHByaW9yIHRvIGZpcnN0IGJ1ZmZlciBkb24ndCBnZXQKCSAgbG9zdC4KCjIwMDktMDEtMzAgMTg6Mjc6MDMgLTA4MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIFVucmVmIGV2ZW50IGlmIHdlIGRvbid0IGZvcndhcmQgaXQsIHVucmVmIHBhZHMgd2hlbiBkb25lIHdpdGggdGhlbS4KCjIwMDgtMTItMDQgMTc6NTE6MzcgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBFbnN1cmUgd2UgZW1pdCBub3RpZnk6OmFjdGl2ZS1wYWQgd2hlbiBhdXRvLXNlbGVjdGluZyBhIHBhZCBkdWUgdG8gaXQgaGF2aW5nIGFjdGl2aXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIEVuc3VyZSB3ZSBlbWl0IG5vdGlmeTo6YWN0aXZlLXBhZCB3aGVuIGF1dG8tc2VsZWN0aW5nIGEgcGFkCgkgIGR1ZSB0byBpdCBoYXZpbmcgYWN0aXZpdHkgYW5kIHVzIG5vdCBoYXZpbmcgYW4gZXhpc3RpbmcgYWN0aXZlCgkgIHBhZC4gRml4ZXMgIzU2MzE0NwoKMjAwOC0xMC0xNSAxNzo0NTozNyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBHcmFjZWZ1bGx5IGhhbmRsZSB0aGUgY2FzZXMgd2hlbiB3ZSBkb250JyBoYXZlIG90aGVycGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9pbnB1dF9zZWxlY3Rvcl9ldmVudCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfcXVlcnkpOgoJICBHcmFjZWZ1bGx5IGhhbmRsZSB0aGUgY2FzZXMgd2hlbiB3ZSBkb250JyBoYXZlIG90aGVycGFkLgoJICBGaXhlcyAjNTU2NDMwCgoyMDA4LTEwLTA3IDEzOjE0OjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6IENob29zZSByaWdodCBwYWQgZm9yIHNlbmRpbmcgZXZlbnRzLiBGaXhlcyAjNTU1MjQ0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgQ2hvb3NlIHJpZ2h0IHBhZCBmb3Igc2VuZGluZyBldmVudHMuIEZpeGVzICM1NTUyNDQKCjIwMDgtMDktMDggMjA6Mjc6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogUmVzZXQgdGhlIHNlbGVjdG9yIHN0YXRlIHdoZW4gZ29pbmcgdG8gUkVBRFkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X3NlbGVjdG9yX3BhZF9yZXNldCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfcmVzZXQpLCAoZ3N0X2lucHV0X3NlbGVjdG9yX2NoYW5nZV9zdGF0ZSk6CgkgIFJlc2V0IHRoZSBzZWxlY3RvciBzdGF0ZSB3aGVuIGdvaW5nIHRvIFJFQURZLgoKMjAwOC0wOS0wMSAxMzoyMzowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBSZXVzZSB0aGUgZ2V0X2xpbmtlZF9wYWRzIGZvciBib3RoIHNvdXJjZSBhbmQgc2lua3BhZHMgYmVjYXVzZSB0aGV5IGFyZSB0aGUgc2FtZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IChnc3RfaW5wdXRfc2VsZWN0b3JfaW5pdCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfZXZlbnQpLCAoZ3N0X2lucHV0X3NlbGVjdG9yX3F1ZXJ5KToKCSAgUmV1c2UgdGhlIGdldF9saW5rZWRfcGFkcyBmb3IgYm90aCBzb3VyY2UgYW5kIHNpbmtwYWRzIGJlY2F1c2UgdGhleSBhcmUKCSAgdGhlIHNhbWUuCgkgIEltcGxlbWVudCBhIGN1c3R1bSBldmVudCBoYW5kbGVyIGFuZCBnZXQgdGhlIGludGVybmFsbHkgbGlua2VkIHBhZAoJICBkaXJlY3RseSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gdGhlIGRlZmF1bHQgKHNsb3dlcikgaW1wbGVtZW50YXRpb24uCgoyMDA4LTA4LTI3IDE1OjQ1OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IEltcGxlbWVudCB0aGUgTEFURU5DWSBxdWVyeSBpbiBhIGJldHRlciB3YXkgYnkgdGFraW5nIHRoZSBsYXRlbmN5IG9mIGFsbCBzaW5rcGFkcyBhbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9pbnB1dF9zZWxlY3Rvcl9pbml0KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9xdWVyeSk6CgkgIEltcGxlbWVudCB0aGUgTEFURU5DWSBxdWVyeSBpbiBhIGJldHRlciB3YXkgYnkgdGFraW5nIHRoZSBsYXRlbmN5IG9mIGFsbAoJICBzaW5rcGFkcyBhbmQgdGFraW5nIHRoZSBtaW4vbWF4IGluc3RlYWQgb2YganVzdCB0YWtpbmcgYSByYW5kb20gcGFkLgoKMjAwOC0wOC0wNSAwOTowNTozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBNb3ZlIHRoZSBzZWxlY3QtYWxsIGxvZ2ljIGludG8gdGhlIGFjdGl2YXRpb24gb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBwYWQuIFdlIHdhbnQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IChnc3Rfc2VsZWN0b3JfcGFkX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfY2hhaW4pLCAoZ3N0X2lucHV0X3NlbGVjdG9yX2dldGNhcHMpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2FjdGl2YXRlX3NpbmtwYWQpOgoJICBNb3ZlIHRoZSBzZWxlY3QtYWxsIGxvZ2ljIGludG8gdGhlIGFjdGl2YXRpb24gb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZAoJICBwYWQuIFdlIHdhbnQgdG8gcmVtZW1iZXIgdGhlIGxhc3QgcGFkIHdpdGggYWN0aXZpdHkgaW4gc2VsZWN0LWFsbCBtb2RlLgoJICBGaXggdGhlIGdldGNhcHMgZnVuY3Rpb24sIHdlIGNhbiBwcm9kdWNlIHRoZSB1bmlvbiBvZiB0aGUgdXBzdHJlYW0gY2FwcwoJICBpbiBzZWxlY3QtYWxsIG1vZGUsIG5vdCB0aGUgaW50ZXJzZWN0aW9uIGxpa2UgcHJveHlfZ2V0Y2FwcygpIGRvZXMuCgoyMDA4LTA2LTE5IDEzOjE4OjI0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBvdXRwdXQtc2VsZWN0b3I6IFVzZSBCT0lMRVJQTEFURSBtYWNybyBhbmQgdXBkYXRlIHRlc3QgdG8gdGhlIGxhdGVzdCBhcGkgY2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICAqIHRlc3RzL2ljbGVzL291dHB1dC1zZWxlY3Rvci10ZXN0LmM6CgkgIFVzZSBCT0lMRVJQTEFURSBtYWNybyBhbmQgdXBkYXRlIHRlc3QgdG8gdGhlIGxhdGVzdCBhcGkgY2hhbmdlcy4KCjIwMDgtMDYtMTIgMTQ6NDk6MTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIERvIG5vdCB1c2Ugc2hvcnRfZGVzY3JpcHRpb24gaW4gc2VjdGlvbiBkb2NzIGZvciBlbGVtZW50cy4gV2UgZXh0cmFjdCB0aGVtIGZyb20gZWxlbWVudCBkZXRhaWxzIGFuZCB0aGVyZSB3aWxsIGJlIHdhci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZGMxMzk0L2dzdGRjMTM5NC5jOgoJICAqIGV4dC9pdm9yYmlzL3ZvcmJpc2RlYy5jOgoJICAqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzoKCSAgKiBleHQvbWV0YWRhdGEvZ3N0bWV0YWRhdGFkZW11eC5jOgoJICAqIGV4dC9teXRodHYvZ3N0bXl0aHR2c3JjLmM6CgkgICogZXh0L3RoZW9yYS90aGVvcmFkZWMuYzoKCSAgKiBnc3QtbGlicy9nc3QvYXBwL2dzdGFwcHNpbmsuYzoKCSAgKiBnc3QvYmF5ZXIvZ3N0YmF5ZXIycmdiLmM6CgkgICogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgICogZ3N0L3Jhd3BhcnNlL2dzdGF1ZGlvcGFyc2UuYzoKCSAgKiBnc3QvcmF3cGFyc2UvZ3N0dmlkZW9wYXJzZS5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGNsaWVudC5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHB0ZGVtdXguYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc3NyY2RlbXV4LmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICAqIGdzdC92aWRlb3NpZ25hbC9nc3R2aWRlb2FuYWx5c2UuYzoKCSAgKiBnc3QvdmlkZW9zaWduYWwvZ3N0dmlkZW9kZXRlY3QuYzoKCSAgKiBnc3QvdmlkZW9zaWduYWwvZ3N0dmlkZW9tYXJrLmM6CgkgICogc3lzL29zczQvb3NzNC1taXhlci5jOgoJICAqIHN5cy9vc3M0L29zczQtc2luay5jOgoJICAqIHN5cy9vc3M0L29zczQtc291cmNlLmM6CgkgIERvIG5vdCB1c2Ugc2hvcnRfZGVzY3JpcHRpb24gaW4gc2VjdGlvbiBkb2NzIGZvciBlbGVtZW50cy4gV2UgZXh0cmFjdAoJICB0aGVtIGZyb20gZWxlbWVudCBkZXRhaWxzIGFuZCB0aGVyZSB3aWxsIGJlIHdhcm5pbmdzIGlmIHRoZXkgZGlmZmVyLgoJICBBbHNvIGZpeGluZyB1cCB0aGUgQ2hhbmdlTG9nIG9yZGVyLgoKMjAwOC0wMy0yMCAxODoxMDoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBEbyBnX29iamVjdF9ub3RpZnkoKSBvbmx5IHdoZW4gbm90IGhvbGRpbmcgdGhlIGxvY2sgdG8gZ2V0IHRoZSBwcm9wZXJ0eSBiZWNhdXNlIG90aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIChnc3RfaW5wdXRfc2VsZWN0b3Jfc2V0X2FjdGl2ZV9wYWQpLCAoZ3N0X2lucHV0X3NlbGVjdG9yX3N3aXRjaCk6CgkgIERvIGdfb2JqZWN0X25vdGlmeSgpIG9ubHkgd2hlbiBub3QgaG9sZGluZyB0aGUgbG9jayB0byBnZXQgdGhlIHByb3BlcnR5CgkgIGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIHJ1biBpbnRvIGEgZGVhZGxvY2sgd2l0aCB0aGUgZGVlcC1ub3RpZnkgaGFuZGxlcnMKCSAgdGhhdCBhcmUgcG9zc2libHkgaW5zdGFsbGVkLgoKMjAwOC0wMy0yMCAxNzo0ODo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBSZWxlYXNlIHRoZSBzZWxlY3RvciBsb2NrIHdoZW4gcGFkIGFsbG9jIGhhcHBlbnMgb24gYSBub24gc2VsZWN0ZWQgcGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9zZWxlY3Rvcl9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2V2ZW50KSwgKGdzdF9zZWxlY3Rvcl9wYWRfYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9jaGFpbiksIChnc3RfaW5wdXRfc2VsZWN0b3Jfc2V0X2FjdGl2ZV9wYWQpOgoJICBSZWxlYXNlIHRoZSBzZWxlY3RvciBsb2NrIHdoZW4gcGFkIGFsbG9jIGhhcHBlbnMgb24gYSBub24gc2VsZWN0ZWQgcGFkLgoKMjAwOC0wMy0yMCAxNzowNzowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBBZGQgcGFkIHByb3BlcnR5IHRvIGNvbmZpZ3VyZSBiZWhhdmlvdXIgb2YgdGhlIHVuc2VsZWN0ZWQgcGFkLCBpdCBjYW4gcmV0dXJuIE9LIG9yIE4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IChnc3Rfc2VsZWN0b3JfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9pbml0KSwgKGdzdF9zZWxlY3Rvcl9wYWRfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfZ2V0X3Byb3BlcnR5KSwgKGdzdF9zZWxlY3Rvcl9wYWRfZXZlbnQpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9idWZmZXJhbGxvYyksIChnc3Rfc2VsZWN0b3JfcGFkX2NoYWluKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfYWN0aXZlX3BhZCk6CgkgIEFkZCBwYWQgcHJvcGVydHkgdG8gY29uZmlndXJlIGJlaGF2aW91ciBvZiB0aGUgdW5zZWxlY3RlZCBwYWQsIGl0IGNhbgoJICByZXR1cm4gT0sgb3IgTk9UX0xJTktFRCwgYmFzZWQgb24gdGhlIHVzZSBjYXNlLgoKMjAwOC0wMy0yMCAxNjo0ODo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci4qOiBGaWd1cmUgb3V0IHRoZSBsb2NraW5nIGEgYml0IG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICAoZ3N0X3NlbGVjdG9yX3BhZF9nZXRfcnVubmluZ190aW1lKSwgKGdzdF9zZWxlY3Rvcl9wYWRfcmVzZXQpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9ldmVudCksIChnc3Rfc2VsZWN0b3JfcGFkX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl93YWl0KSwgKGdzdF9zZWxlY3Rvcl9wYWRfY2hhaW4pLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2NsYXNzX2luaXQpLCAoZ3N0X2lucHV0X3NlbGVjdG9yX2luaXQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2Rpc3Bvc2UpLCAoZ3N0X3NlZ21lbnRfc2V0X3N0YXJ0KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfYWN0aXZlX3BhZCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3Jfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2dldF9saW5rZWRfcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9pc19hY3RpdmVfc2lua3BhZCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfYWN0aXZhdGVfc2lua3BhZCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfcmVxdWVzdF9uZXdfcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9yZWxlYXNlX3BhZCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfY2hhbmdlX3N0YXRlKSwgKGdzdF9pbnB1dF9zZWxlY3Rvcl9ibG9jayksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3Jfc3dpdGNoKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgRmlndXJlIG91dCB0aGUgbG9ja2luZyBhIGJpdCBtb3JlLgoJICBNYXJrIGJ1ZmZlcnMgd2l0aCBkaXNjb250IGFmdGVyIHN3aXRjaGluZy4KCSAgRml4IGluaXRpYWwgc2VnbWVudCBmb3J3YXJkaW5nLCBtYWtlIHN1cmUgdG8gb25seSBmb3J3YXJkIG9uZSBzZWdtZW50CgkgIHJlZ2FyZGxlc3Mgb2Ygd2hhdCB0aGUgc2VxdWVuY2Ugb2YgYnVmZmVycy9zZWdtZW50cyBpcy4gU2VlICM1MjIyMDMuCgkgIEltcHJvdmUgZmx1c2hpbmcgd2hlbiBibG9ja2VkLgoJICBSZXR1cm4gTk9UX0xJTktFRCB3aGVuIGEgc3RyZWFtIGlzIG5vdCBzZWxlY3RlZC4KCSAgTm90IEFQSSBjaGFuZ2UgZm9yIHRoZSBzd2l0Y2ggc2lnbmFsIGluIHRoZSBkb2NzLgoJICBGaXggc3RhcnQvdGltZS9hY2N1bSB2YWx1ZXMgb2YgdGhlIG5ldyBzZWdtZW50LgoJICBDb3JyZWN0bHkgdW5sb2NrIGFuZCBmbHVzaCBhIGJsb2NraW5nIHNlbGVjdG9yIHdoZW4gZ29pbmcgdG8gUkVBRFkuCgoyMDA4LTAzLTE0IDE3OjIyOjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IEFkZCBsb3RzIG9mIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IChnc3Rfc2VsZWN0b3JfcGFkX2V2ZW50KSwKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfYnVmZmVyYWxsb2MpLCAoZ3N0X3NlbGVjdG9yX3BhZF9jaGFpbiksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfY2xhc3NfaW5pdCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3Jfc2V0X2FjdGl2ZV9wYWQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfcHVzaF9wZW5kaW5nX3N0b3ApOgoJICBBZGQgbG90cyBvZiBkZWJ1Z2dpbmcuCgkgIEZpeCB0aW1lIG1lbWJlciBpbiB0aGUgbmV3c2VnbWVudCBldmVudC4KCjIwMDgtMDMtMTMgMTY6NDY6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuKjogVmFyaW91cyBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IChnc3Rfc2VsZWN0b3JfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9maW5hbGl6ZSksIChnc3Rfc2VsZWN0b3JfcGFkX2dldF9wcm9wZXJ0eSksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2V2ZW50KSwgKGdzdF9pbnB1dF9zZWxlY3Rvcl9jbGFzc19pbml0KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9pbml0KSwgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfYWN0aXZlX3BhZCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3Jfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3JlcXVlc3RfbmV3X3BhZCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfcmVsZWFzZV9wYWQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3B1c2hfcGVuZGluZ19zdG9wKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zd2l0Y2gpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBWYXJpb3VzIGNsZWFudXBzLgoJICBBZGRlZCB0YWdzIHRvIHRoZSBwYWRzLgoJICBTZWxlY3QgYWN0aXZlIHBhZCBiYXNlZCBvbiB0aGUgcGFkIG9iamVjdCBpbnN0ZWFkIG9mIGl0cyBuYW1lLgoJICBGaXggcmVmY291bnQgaW4gc2V0X2FjdGl2ZV9wYWQuCgkgIEFkZCBwcm9wZXJ0eSB0byBnZXQgdGhlIG51bWJlciBvZiBwYWRzLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgKGdzdF9vdXRwdXRfc2VsZWN0b3JfY2xhc3NfaW5pdCksCgkgIChnc3Rfb3V0cHV0X3NlbGVjdG9yX3NldF9wcm9wZXJ0eSksCgkgIChnc3Rfb3V0cHV0X3NlbGVjdG9yX2dldF9wcm9wZXJ0eSk6CgkgIFZhcmlvdXMgY2xlYW51cHMuCgkgIFNlbGVjdCB0aGUgYWN0aXZlIHBhZCBiYXNlZCBvbiB0aGUgcGFkIG9iamVjdCBpbnN0ZWFkIG9mIGl0cyBuYW1lLgoJICBGaXggbG9ja2luZyB3aGVuIHNldHRpbmcgdGhlIGFjdGl2ZSBwYWQuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RzZWxlY3Rvci1tYXJzaGFsLmxpc3Q6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzogKGNsZWFudXBfcGFkKSwKCSAgKHNlbGVjdG9yX3NldF9hY3RpdmVfcGFkKSwgKHJ1bl9pbnB1dF9zZWxlY3Rvcl9idWZmZXJfY291bnQpOgoJICBGaXhlcyBmb3IgcGFkIGluc3RlYWQgb2YgcGFkbmFtZSBmb3IgcGFkIHNlbGVjdGlvbi4KCjIwMDgtMDItMjYgMTI6MDE6MzcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzogRml4IGNoYW5naW5nIHRvIHNhbWUgcGFkIHR3aWNlIGJlZm9yZSBhIGNoYWluIGNhbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgRml4IGNoYW5naW5nIHRvIHNhbWUgcGFkIHR3aWNlIGJlZm9yZSBhIGNoYWluIGNhbGwuCgoyMDA4LTAyLTI1IDA4OjUzOjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuKjogQWRkZWQgInNlbGVjdC1hbGwiIHByb3BlcnR5IHRvIG1ha2UgaXQgd29yayBsaWtlIGFnZ3JlZ2F0b3IgaW4gMC44LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgQWRkZWQgInNlbGVjdC1hbGwiIHByb3BlcnR5IHRvIG1ha2UgaXQgd29yayBsaWtlIGFnZ3JlZ2F0b3IgaW4gMC44LgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgRml4IHJlc2VuZC1sYXRlc3QgYmVoYXZvaXVyLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgQWRkIHVuaXQgdGVzdHMgZm9yIHNlbGVjdG9yLgoKMjAwOC0wMi0wNyAxMzo0ODoyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6IEFkZCBhIGZpeG1lIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5jOgoJICBBZGQgYSBmaXhtZSBjb21tZW50LgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgRml4IHNhbWUgbGVhayBhcyBpbiBpbnB1dC1zZWxlY3Rvci4KCSAgKiB0ZXN0cy9pY2xlcy9vdXRwdXQtc2VsZWN0b3ItdGVzdC5jOgoJICBJbXByb3ZlIHRoZSB0ZXN0LgoKMjAwOC0wMi0wMSAxNzowODoxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBEb24ndCBsZWFrIGV2ZW50IG9uIHBhZHMgdGhhdCBhcmUgbm90IGxpbmtlZC4gRml4ZXMgIzUxMjgyNi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IChnc3Rfc2VsZWN0b3JfcGFkX2V2ZW50KToKCSAgRG9uJ3QgbGVhayBldmVudCBvbiBwYWRzIHRoYXQgYXJlIG5vdCBsaW5rZWQuIEZpeGVzICM1MTI4MjYuCgoyMDA4LTAxLTI5IDA3OjM4OjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBSZXBsYWNlIHRoZSBzd2l0Y2ggcGx1Z2luIHdpdGggdGhlIHNlbGVjdG9yIHBsdWdpbi4gQWRkIG91dHB1dC0gc2VsZWN0b3IgYXMgdGhlIG9wcG9zaXRlIG9mIGlucHV0LXNlbGVjdG9vICh3YXMgc3dpdGMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuaW50ZXJmYWNlczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuc2lnbmFsczoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWV0YWRhdGEueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zZWxlY3Rvci54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdW5kdG91Y2gueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zd2l0Y2gueG1sOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RzZWxlY3Rvci1tYXJzaGFsLmxpc3Q6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RzZWxlY3Rvci5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvc2VsZWN0b3IudmNwcm9qOgoJICAqIGdzdC9zd2l0Y2gvLmN2c2lnbm9yZToKCSAgKiBnc3Qvc3dpdGNoL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zd2l0Y2gvZ3N0c3dpdGNoLW1hcnNoYWwubGlzdDoKCSAgKiBnc3Qvc3dpdGNoL2dzdHN3aXRjaC5jOgoJICAqIGdzdC9zd2l0Y2gvZ3N0c3dpdGNoLmg6CgkgICogZ3N0L3N3aXRjaC9zd2l0Y2gudmNwcm9qOgoJICAqIHRlc3RzL2ljbGVzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvaWNsZXMvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvaWNsZXMvb3V0cHV0LXNlbGVjdG9yLXRlc3QuYzoKCSAgUmVwbGFjZSB0aGUgc3dpdGNoIHBsdWdpbiB3aXRoIHRoZSBzZWxlY3RvciBwbHVnaW4uIEFkZCBvdXRwdXQtCgkgIHNlbGVjdG9yIGFzIHRoZSBvcHBvc2l0ZSBvZiBpbnB1dC1zZWxlY3RvbyAod2FzIHN3aXRjaCkuIEFkZCBhIHRlc3QKCSAgZm9yIG91dHB1dC1zZWxlY3Rvci4gQWRkIGRvY3MgZm9yIHRoZSBlbGVtZW50cy4gVGhlIHZjcHJvaiBuZWVkcwoJICB1cGRhdGUuIEZpeGVzICM1MDAxNDIuCgoyMDEwLTEyLTMwIDAwOjQ2OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJICBkb2NzOiBhZGQgdmFsdmUgZWxlbWVudCB0byBkb2N1bWVudGF0aW9uCgoyMDEwLTEyLTMwIDAwOjQxOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICB2YWx2ZTogc29tZSBtaW5vciBjbGVhbi11cHMKCjIwMTAtMTItMzAgMDA6MzA6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogZml4IHR5cG8gaW4gcHJvcGVydHkgZGVzY3JpcHRpb24KCSAgQW5kIHJlcGhyYXNlIHdoaWxlIGF0IGl0LCB0byBtYWtlIGl0IG1vcmUgY29uY2lzZS4KCjIwMTAtMTItMzAgMDA6MjY6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkgIHRlc3RzOiBlbmFibGUgdmFsdmUgdW5pdCB0ZXN0CgoyMDEwLTEyLTMwIDAwOjIyOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBlbGVtZW50czogYWRkIG5ldyB2YWx2ZSBlbGVtZW50IHRvIGJ1aWxkCgkgIE1vdmVkIGZyb20gZ3N0LXBsdWdpbnMtYmFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzA4MDgKCjIwMTAtMTAtMTkgMjM6NDA6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSAgdGVzdHM6IGZpeCB2YWx2ZSB1bml0IHRlc3QKCSAgZ3N0X2J1ZmZlcl9wYWRfYWxsb2MoKSBuZWVkcyBzaW1wbGUgY2FwcyBvciBOVUxMIGNhcHMsCgkgIEFOWSBjYXBzIGFyZSBub3QgYWxsb3dlZC4KCjIwMTAtMDktMjggMTM6NTI6MjkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IG5vIG5lZWQgdG8gcmVmIHRoZSBvYmplY3QgaW4gX2NoYWluCgkgIERvbid0IHJlZiB0aGUgcGFkIGluIGNoYWluLCBsaWtlIGVsc2V3aGVyZQoKMjAxMC0wOS0zMCAxNzo0ODozNSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSAgdGVzdHM6IEZpeCBjYXBzIGxlYWsgaW4gdGhlIHZhbHZlIHRlc3QKCjIwMTAtMDktMzAgMTc6MjQ6MjkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkgIHZhbHZlOiBBZGQgdW5pdCB0ZXN0cwoJICBBZGQgYSB1bml0IHRlc3QgZm9yIHRoZSB2YWx2ZSBlbGVtZW50LgoKMjAxMC0wOS0zMCAxNjoyNjoxOSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIHZhbHZlOiBNYWtlIHRoZSBkcm9wIHZhcmlhYmxlIGludG8gYW4gYXRvbWljLgoJICBVc2luZyBhbiBhdG9taWMgYWxsb3dzIHVzIHRvIGF2b2lkIGxvY2tpbmcgdGhlIHdob2xlIG9iamVjdCBhbGwgdGltZSB0aW1lLgoJICBBcyBzdWdnZXN0ZWQgYnkgU3RlZmFuIEtvc3QuCgoyMDEwLTA5LTMwIDE2OjIyOjA0IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBDb3JyZWN0bHkgc2V0IHRoZSBESVNDT05UIGZsYWcgYWZ0ZXIgZHJvcHBpbmcgYnVmZmVycwoKMjAxMC0wOS0zMCAxNjoxNjo0NyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogUmVtb3ZlIHN1cGVyZmxvdXMgY2hlY2tpbmcgY2FzdHMKCjIwMTAtMDktMzAgMTY6MTM6MjMgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IEZpeCBzdHlsZSwgaW1wcm92ZSBjb21tZW50cwoJICBNaW5vciBpbXByb3ZlbWVudHMgdG8gdGhlIGNvbW1lbnRzIGFuZCBicmVhayBhIGZldyBvdmVybHkgbG9uZyBsaW5lcwoKMjAxMC0wOS0yOCAxNDoyNjoxMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogbW92ZSBkZWZhdWx0OiBwYXJzdCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudCB0byB0aGUgZW5kCgkgIE5vdyBzdXJlIGlmIGl0IG1hdHRlcnMsIGJ1dCB0aGUgcHJldmlvdXMgZm9ybSBsb29rcyB3ZWlyZWQuCgoyMDEwLTA5LTI4IDE0OjIzOjAxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBtb3ZlIGRlYnVnLWNhdGVnb3J5IHJlZ2lzdHJhdGlvbiB0byB0eXBlIGluaXQKCjIwMTAtMDktMjggMTQ6MTU6MTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IHVzZSBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTIG9uIHByb3BlcnRpZXMKCjIwMTAtMDktMjggMTQ6MDc6MzkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IEdTVF9CT0lMRVJQTEFURSBhbHJlYWR5IHNldHMgcGFyZW50X2NsYXNzCgoyMDEwLTAzLTE4IDE3OjMwOjI2ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlscyA9PiBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUKCjIwMDktMDItMTAgMTg6NTI6NTQgKzAwMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICBkb2NzOiBkb2N1bWVudCB2YWx2ZSBlbGVtZW50CgoyMDA5LTAyLTEwIDE3OjU3OjE2ICswMDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IHJlbmFtZSB0byB2YWx2ZQoKMjAwOS0wMi0xMCAxNzo1NTo0NyArMDAwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIGZzdmFsdmU6IHJlLWluZGVudCBnc3Qgc3R5bGUKCjIwMDgtMTItMTMgMDA6MzE6NDUgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogSWdub3JlIGVycm9ycyBpZiBkcm9wcGluZyBpcyBzZXQgdG8gdHJ1ZQoKMjAwOC0xMi0xMCAxNzowMDozMyAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBBZGQgZ2V0Y2FwcyBwcm94eWluZyB0byB0aGUgdmFsdmUKCjIwMDgtMDgtMjAgMTQ6MTE6MDIgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICBmc3ZhbHZlOiBSZWJhc2UgdmFsdmUgb250byBnc3RlbGVtZW50IGluc3RlYWQgb2YgYmFzZXRyYW5zZm9ybQoKMjAwOC0wOC0xOSAxODo0OTo1MSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBSZXZlcnQgIkZpeCByZWZjb3VudGluZyBpc3N1ZXMgaW4gcHJlcGFyZV9vdXRwdXRfYnVmZmVyIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDY1ZGQ0NjBmMGEzYTljNDg4MmU2MzhjODYyMDhmNzRlZjYyYzM0NjAuCgoyMDA4LTA4LTA1IDExOjMwOjU3ICswMDAwICBzam9lcmRAbHVvbi5uZXQgPHNqb2VyZEBsdW9uLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogRml4IHJlZmNvdW50aW5nIGlzc3VlcyBpbiBwcmVwYXJlX291dHB1dF9idWZmZXIKCSAgMjAwODA4MDUxMTMwNTctYmUwZjItOWRjMjcwNzgxZjBhMGYyMWM2MTZlZDExZGJkMWYxOThmZDFiMzI2ZS5negoKMjAwOC0wNC0wOSAxNjozMjoyMSArMDAwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IFJlbW92ZSB1bnVzZWQgZGlzcG9zZSBtZXRob2QgaW4gdmFsdmUKCSAgMjAwODA0MDkxNjMyMjEtM2UyZGMtOTJjY2IyZGI4NzRlNDZlMGQ5MmMxNTUyMDU3N2MxYmUwZTJiYzYxNy5negoKMjAwNy0xMi0xOSAyMDozMjozMCArMDAwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IERvbnQgaG9sZCB0aGUgb2JqZWN0IGxvY2sgd2hpbGUgY2FsbGluZyBiYXNlIGFsbG9jIGZ1bmN0aW9uCgkgIDIwMDcxMjE5MjAzMjMwLTNlMmRjLTY1MTkxNzVkOGQ4MTQ5NjUxNWIyZDkwNjBhYzMxNjY1MDU2MGY2OTEuZ3oKCjIwMDctMTItMTkgMjA6MzI6MTggKzAwMDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIGZzdmFsdmU6IFNldCB0aGUgRElTQ09OVCBmbGFnIGFmdGVyIGRyb3BwaW5nIGJ1ZmZlcnMKCSAgMjAwNzEyMTkyMDMyMTgtM2UyZGMtYmM1ZjAzZDg4ZmY1ODM3MDQwYjkyMTRkZTAxNmNjMTQyNzc2ZGZjMi5negoKMjAwNy0xMi0xOSAwMDo1NzozOSArMDAwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgZnN2YWx2ZTogVXNlIGRvIHRoZSBhbGxvY19idWZmZXIgZnVuY3Rpb24gaW4gdGhlIHZhbHZlCgkgIDIwMDcxMjE5MDA1NzM5LTNlMmRjLTJhMGZkZmEyZjM4ZjAzYWI0NzkxZmU1YzRhYjg1ZTg3OTAxMTM2ODMuZ3oKCjIwMDctMTEtMjEgMjA6MDg6NTggKzAwMDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBPbmx5IHNldCBwYXNzdGhyb3VnaCB0byBUUlVFIG9uIG5ld2VyIHZlcnNpb25zIG9mIGdzdAoJICAyMDA3MTEyMTIwMDg1OC0zZTJkYy1iMTZjZGVhYmJjM2MwNTYyYzZmYzdiMTFiOWI5NzkyYzkxMGY1NjllLmd6CgoyMDA3LTExLTIxIDE4OjE3OjI5ICswMDAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogQ29tcGFyZSBtaW5vciwgbm90IG1ham9yCgkgIDIwMDcxMTIxMTgxNzI5LTNlMmRjLWE1OTk3YzNiN2Y1Yzg2OTY2MzcwOTY5NzE0ZmFjZjhlZTI0MjY1OWQuZ3oKCjIwMDctMTAtMjYgMjI6Mzc6NDkgKzAwMDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBNYWtlIHRoZSB2YWx2ZSBlbGVtZW50IHdvcmsgd2l0aCBnc3QgPCAwLjEwLjEzCgkgIDIwMDcxMDI2MjIzNzQ5LTNlMmRjLTE4ZjY4NWE0ZTQ1ZmJkY2U2NzdhYzc3NzU4Njg3NmZjNzE5ZDcyMjIuZ3oKCjIwMDctMTAtMjQgMjI6NDI6NDYgKzAwMDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBSZW5hbWUgdmFsdmUgdG8gZnN2YWx2ZQoJICAyMDA3MTAyNDIyNDI0Ni0zZTJkYy1jNTQyMTZhZjJlZjBlZjNmMWEyMjA2ZDcyM2U4N2JlMmEyM2FiOGVkLmd6CgoyMDA3LTEwLTI0IDIyOjQxOjQ3ICswMDAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICBmc3ZhbHZlOiBBZGQgdmFsdmUgZWxlbWVudAoJICAyMDA3MTAyNDIyNDE0Ny0zZTJkYy1mMjhhYjBjMDczZTI4Mzg5NGI2NWMyMmM0ZjQ0Mzk3Yzg5N2RlYzAxLmd6CgoyMDEwLTEyLTMwIDE4OjMxOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IG1ha2UgdmFyaWFibGUgc3RhdGljCgoyMDEwLTEyLTI5IDExOjQ4OjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCBkZWFkbG9jawoJICBPbmx5IGdvIGludG8gTElWRV9XQUlUIHdoZW4gdGhlIGFyZSBub3QgbGl2ZV9ydW5uaW5nIGFuZCBvbmx5IHN0b3Agd2FpdGluZyB3aGVuCgkgIGxpdmVfcnVubmluZyBpcyBUUlVFLiBJZiB3ZSBkb24ndCBsb29wLCB3ZSBjb3VsZCBkZWFkbG9jayB3aGVuIGNhbGxlZCBmcm9tCgkgIG91dHNpZGUgb2YgYmFzZXNyYywgc3VjaCBhcyBiYXNlYXVkaW9zcmMuCgkgIEZpeGVzICM2MzU3ODUKCjIwMTAtMTItMjggMTY6NDA6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkgIGNoZWNrOiBhZGQgbW9yZSBzaW5rIHVuaXQgdGVzdHMKCjIwMTAtMTItMjggMTY6MjM6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBhbHNvIHByZXJvbGwgYXN5bmM9ZmFsc2Ugc2lua3MKCSAgQWxzbyBwcmVyb2xsIGFzeW5jPWZhbHNlIHNpbmtzIGFmdGVyIGEgZmx1c2guCgoyMDEwLTEyLTIyIDE2OjU1OjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtcHJvZ3Jlc3MudHh0OgoJICBkb2NzOiBmaXggdHlwbwoKMjAxMC0xMi0yNiAyMToyMDozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgUmV2ZXJ0ICJtaWNyby1vcHRpbTogaWYgKHgpIGlzIGNoZWFwZXIgdGhhbiBpZiAoeCA+IDApIGZvciB1bnNpZ25lZCBpbnRlZ2VycyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA2YWE4Y2EzN2VlYjlkZWJmYTY5MTk3NDFhMDIzMjUwYmYyNzgyNDhmLgoJICBTZWUgaHR0cDovL2FydGljbGUuZ21hbmUub3JnL2dtYW5lLmNvbXAudmlkZW8uZ3N0cmVhbWVyLmRldmVsLzMyMjgyCgoyMDEwLTEyLTI0IDE0OjAyOjA4IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgIGVsZW1lbnRzOiByZWVuYWJsZSBmZHNyYy9mZHNpbmsgb24gTVNWQwoKMjAxMC0xMi0yMiAxNjozNjowOSAtMDgwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJICBGaXggR1N0YXRCdWYgZGVmaW5pdGlvbiBmb3Igd2luMzIgd2hlbiBidWlsZGluZyBhZ2FpbnN0IG9sZGVyIGdsaWIuIE5vdyBtYXRjaGVzIHVwc3RyZWFtIGdsaWIgZGVmaW5pdGlvbi4KCjIwMTAtMTItMjIgMjI6MzY6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogYWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiBhbm5vdGF0aW9uCgoyMDEwLTEyLTIyIDE2OjQyOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtcHJvZ3Jlc3MudHh0OgoJICBkb2NzOiBhZGQgZHJhZnQgaWRlYSBmb3IgcHJvZ3Jlc3MgcmVwb3J0aW5nCgoyMDEwLTEyLTIxIDEwOjMzOjU5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IHR5cG8KCjIwMTAtMTItMjAgMTc6NDY6MzYgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxNjk0NjJhIHRvIDQ2NDQ1YWQKCjIwMTAtMTItMTkgMTI6NDk6NTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBEb24ndCBsZWFrIGNvcGllcyBvZiBlbXB0eSBzdHJpbmdzCgoyMDEwLTEyLTE3IDE5OjE5OjQwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICBiYXNlOiBkb2N1bWVudGF0aW9uIGZpeHVwcyBhbmQgYW5ub3RhdGlvbgoKMjAxMC0xMi0xNyAxOToxNDo0MSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdDogZG9jdW1lbnRhdGlvbiBmaXh1cHMgYW5kIGFubm90YXRpb24KCSAgUmVwb3J0ZWQgYnkgZW5hYmxpbmcgdGhlIC0td2Fybi1hbGwgb3B0aW9uIG9mIGctaXItc2Nhbm5lcgoKMjAxMC0xMi0xNyAxNTo0ODozNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZ3N0ZGF0ZXRpbWU6IEZpeCBkb2N1bWVudGF0aW9uCgkgIHNlY29uZCA9PiBzZWNvbmRzCgkgIG1pY3Jvc2Vjb25kIGFyZ3VtZW50IHdhcyBkcm9wcGVkCgoyMDEwLTEyLTA0IDE1OjMyOjA2ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFVzZSBhbiBhdG9taWMgaW50ZWdlciBpbnN0ZWFkIG9mIGEgbG9jayBmb3IgY2hlY2tpbmcgdGFncyBwcmVzZW5jZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM2NDU1CgoyMDEwLTEyLTE2IDEwOjU1OjIwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBIYW5kbGUgZG93bnN0cmVhbSBnaXZpbmcgYSBidWZmZXIgd2l0aCBuZXcgY2FwcyBidXQgaW52YWxpZCBzaXplCgkgIFRoaXMgY2FuIGhhcHBlbiBmb3IgZXhhbXBsZSB3aGVuIGRvd25zdHJlYW0gcHJvcG9zZWQgbmV3IGNhcHMsIGxhdGVyIHByb3Bvc2VkCgkgIHRoZSBwcmV2aW91cyBjYXBzIGFnYWluIHdoaWNoIGluIHR1cm4gZW5hYmxlcyBwYXNzdGhyb3VnaCBtb2RlIGluIHVwc3RyZWFtCgkgIGVsZW1lbnRzIGFuZCB0aGUgd3Jvbmctc2l6ZWQgYnVmZmVyIGFwcGVhcnMgaW4gYW4gZWxlbWVudCB3aGVyZSB0aGUgY2FwcwoJICBjaGFuZ2UgbmV2ZXIgaGFwcGVuZWQuIFNpbXBseSBhbGxvY2F0ZSBhIG5ldyBidWZmZXIgaW4gdGhpcyBjYXNlLgoJICBTZWUgYnVnICM2MzU0NjEuCgoyMDEwLTEyLTE1IDIzOjE5OjU0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiB1c2UgdGhlIHB1YmxpY2x5IHZpc2libGUgYWRkcmVzcyB0byBmaXggdGhlIHRlc3RzCgkgIFRoZSAtQnN5bWJvbGljIGNoYW5nZSBjYXVzZXMgdXMgdG8gZ2V0IGEgZGlmZmVyZW50IGFkZHJlc3Mgd2hlbiBpbnRlcm5hbHkKCSAgbG9va2luZyB1cCB0aGUgZnVuY3Rpb24gdGhhbiB3aGF0IGFwcGxpY2F0aW9uIHdvdWxkIGdldCB3aGVuIHRoZSB1c2UgdGhlIHN5bWJvbAoJICB0aGF0IHRoZXkgc2VlLiBUaGlzIG1hZGUgcmVtb3ZpbmcgdGhlIGRlZmF1bHQgbG9naGFuZGxlciB0byBmYWlsLCBhcyBpdCBpcyBzZXQKCSAgaW50ZXJuYWxseSBhbmQgcmVtb3ZlZCBleHRlcm5hbHkuCgoyMDEwLTEyLTE1IDE0OjU1OjEyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDIwNzQyYWUgdG8gMTY5NDYyYQoKMjAxMC0xMi0xNSAxMjoxMDowMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHVzZSB0aGUgLUJzeW1ib2xpYy1mdW5jdGlvbnMgbGlua2VyIGZsYWcgaWYgc3VwcG9ydGVkCgkgIFRoaXMgZmVhdHVyZSB0dXJucyBpbnRyYSBsaWJyYXJ5IGNhbGxzIGludG8gZGlyZWN0IGZ1bmN0aW9uIGNhbGxzIGFuZCB0aHVzIG1ha2VzCgkgIHRoZW0gYSBsaXR0bGUgZmFzdGVyLiBUaGUgZG93bnNpZGUgaXMgdGhhdCB0aGlzIGNhdXNlcyBwcm9ibGVtcyBmb3IgZS5nLgoJICBMRF9QUkVMT0FEIGJhc2VkIHRvb2xzLiBUaHVzIGFkZCBhIGNvbmZpZ3VyZSBvcHRpb24gdG8gdHVybiBpdCBvZmYuCgoyMDEwLTEyLTE0IDE5OjAwOjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaW1wcm92ZSBsYXN0X3N0b3AgY2FsY3VsYXRpb24KCSAgT25seSB1cGRhdGUgdGhlIGxhc3Rfc3RvcCB2YWx1ZSB3aGVuIHdlIGhhZCBhIHZhbGlkIHN0b3AgcG9zaXRpb24gZm9yIHRoZQoJICBjbGlwcGluZyBvciBlbHNlIHRoZSBjbGlwcGluZyBjb2RlIGFzc3VtZXMgdGhlIHN0b3AgcG9zaXRpb24gZXh0ZW5kcyB0byB0aGUgZW5kCgkgIG9mIHRoZSBzZWdtZW50LCB3aGljaCBtYWtlcyB0aGUgcG9zaXRpb24gcmVwb3J0aW5nIHJldHVybiB3ZWlyZCB2YWx1ZXMuCgoyMDEwLTEyLTE0IDE1OjUyOjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IG9iamVjdCB0eXBlIGhhbmRsaW5nIGluIHF1ZXVlZCBwcmVyb2xsCgkgIEZhY3RvciBvdXQgdGhlIG1ldGhvZCB0byBnZXQgdGhlIG9iamVjdCB0eXBlLgoJICBXaGVuIHByZXJvbGwtcXVldWUtbGVuID4gMCwgdXNlIHRoZSByaWdodCBvYmplY3QgdHlwZSBpbnN0ZWFkIG9mIGlnbm9yaW5nCgkgIGJ1ZmZlci1saXN0cy4KCjIwMTAtMTItMTMgMTY6MjI6NDYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMDExYmNjOCB0byAyMDc0MmFlCgoyMDEwLTEyLTExIDEwOjEwOjA0ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBsaWJzOiBGaXggR0lSIGJ1aWxkIGZvciBzcmNkaXIgIT0gYnVpbGRkaXIKCjIwMTAtMTItMDggMTc6NTE6MTAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgY29tbWl0ICcwZWFhMjVjYmY1YzBlNGJmODY1NDVmYjY3YzE4MWEwZWNkMmYxOWM3JyBpbnRvIDAuMTEKCjIwMTAtMTItMDggMTI6MTc6MzUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgZG9jczogZml4IHdyb25nIHVzZSBvZiBTaW5jZToga2V5d29yZAoKMjAxMC0xMi0wOCAxMTo1MjozMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiBtYWludGFpbiB0aGUgdHlwZWZpbmQgZXh0ZW5zaW9uIGxpc3Qgb3JkZXIKCjIwMTAtMTItMDggMTE6NTE6NTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSAgZG9jczogYWRkICgpIHRvIHhyZWYgdGhlIGZ1bmN0aW9uLgoKMjAxMC0xMi0wNyAxOTozNTo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHJlbW92ZSBzb21lIGRlYWQgY29kZSwgR1NUX0RFQlVHX0NPTE9SIGlzIG5ldmVyIGRlZmluZWQKCjIwMTAtMTItMDcgMTk6MzU6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogY29uc3QtaWZ5IGFyZ3VtZW50cyB0byBnc3Rfb2JqZWN0X2RlZmF1bHRfZXJyb3IoKQoKMjAxMC0xMi0wNyAxODo0NjowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgZG9jczogZ3N0X2Vycm9yX2dldF9tZXNzYWdlKCkgcmV0dXJucyBzdHJpbmcgaW4gVVRGLTgsIG5vdCBjdXJyZW50IGxvY2FsZQoJICBXZSB0ZWxsIGdldHRleHQgdG8gcmV0dXJuIGV2ZXJ5dGhpbmcgaW4gVVRGLTggZW5jb2RpbmcuCgoyMDEwLTEyLTA1IDIwOjE3OjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiByZWdpc3RlciBnc3RfcGFkX2dldF9maXhlZF9jYXBzX2Z1bmMoKSB3aXRoIHRoZSBkZWJ1ZyBsb2cgc3lzdGVtCgoyMDEwLTEyLTA3IDE4OjM1OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIGRvY3M6IGxpYmdzdGJhc2U6IG1vcmUgZ29iamVjdCBpbnRyb3NwZWN0aW9uIGFubm90YXRpb25zCgkgIE1hbnkgb2YgdGhlc2UgYXJlIHN1cGVyZmx1b3VzIGFuZCB3ZXJlIGFkZGVkIGZvciBjbGFyaXR5LgoKMjAxMC0xMi0wNyAxODozNTowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGZpbHRlci5jOgoJKiBnc3QvZ3N0ZmlsdGVyLmg6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZG9jczogZ3N0OiBtb3JlIGdvYmplY3QgaW50cm9zcGVjdGlvbiBhbm5vdGF0aW9ucwoJICBNYW55IG9mIHRoZXNlIGFyZSBzdXBlcmZsdW91cywgYWRkZWQgZm9yIGNsYXJpdHkuCgoyMDEwLTEyLTA3IDE4OjQwOjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogdXBkYXRlIGRvY3MKCjIwMTAtMTItMDcgMTg6MzM6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RkYXRhcHJvdG9jb2wuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGRlZnMKCjIwMTAtMTItMDcgMTg6MzI6NTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IGRpc2FibGUgQUJJIGNoZWNrcwoKMjAxMC0xMi0wNyAxODozMjozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBwb3J0aW5nIGRvY3VtZW50CgoyMDEwLTEyLTA3IDE4OjE0OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiByZW1vdmUgZ2V0X2NhcHNfcmVmZmVkIHZhcmlhbnRzCgkgIE1ha2UgdGhlIF9nZXRfY2FwcyBmdW5jdGlvbnMgYmVoYXZlIGxpa2UgdGhlIF9nZXRfY2Fwc19yZWZmZWQgdmFyaWFudHMgYW5kCgkgIHJlbW92ZSB0aGUgX3JlZmZlZCB2YXJpYW50cy4gVGhpcyBtZWFucyB0aGF0IF9nZXRfY2FwcyBkb2Vzbid0IHJldHVybiBhIHdyaXRhYmxlCgkgIGNhcHMgYW55bW9yZSBhbmQgYW4gZXhwbGljaXQgX21ha2Vfd3JpdGFibGUoKSBpcyBuZWVkZWQgYmVmb3JlIG1vZGlmeWluZyB0aGUKCSAgY2Fwcy4KCjIwMTAtMTItMDcgMTg6MTI6NTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgcG9ydGluZyBkb2MKCjIwMTAtMTItMDcgMTY6NTI6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBDbGVhbiB1cCAuaCBmaWxlCgoyMDEwLTEyLTA3IDE1OjUzOjU2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMC0xMi0wNyAxNTozMzowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRkZXRhaWxzLmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGVsZW1lbnRtZXRhZGF0YS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIGVsZW1lbnQ6IHJld29yayBHc3RFbGVtZW50RGV0YWlscwoJICBDbGVhbiB1cCB0aGUgR3N0RWxlbWVudCBzdHJ1Y3R1cmUKCSAgUmVwbGFjZSBHc3RFbGVtZW50RGV0YWlscyB3aXRoIG1ldGFkYXRhCgoyMDEwLTEyLTA3IDE1OjMxOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogcmVtb3ZlIGRlcHJlY2F0ZWQgbWV0aG9kcwoJICBSZW1vdmUgbW9yZSBkZXByZWNhdGVkIG1ldGhvZHMgYW5kIGZpeCB1bml0IHRlc3QuCgoyMDEwLTEyLTA3IDE1OjIxOjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9nZHAuYzoKCSAgY2hlY2s6IHJlbW92ZSBkZXByZWNhdGVkIHRlc3RzCgoyMDEwLTEyLTA3IDE1OjIwOjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBjaGVjazogZml4IG9iamVjdCB1bml0IHRlc3QKCjIwMTAtMTItMDcgMTU6MTk6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgb2JqZWN0OiBmaXggZG9jcwoKMjAxMC0xMi0wNyAxMzoxOToxMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBsaWJzOiBBZGQgLUkkKHRvcF9zcmNkaXIpL2xpYnMgdG8gZy1pci1zY2FubmVyIGNvbW1hbmRzCgkgIFdpdGhvdXQgdGhpcywgaXQgd2lsbCBmYWlsIGZpbmRpbmcgYWxsIGhlYWRlcnMuCgoyMDEwLTEyLTA3IDEyOjU3OjQwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogcmVjb21tZW5kICItLWdzdC1kaXNhYmxlLXJlZ2lzdHJ5LWZvcmsiIGFzIHdlbGwKCSAgRGlzYWJsaW5nIGZvcmtpbmcgaGVscHMgd2l0aCBkZWJ1Z2dpbmcgdGhlIGNhdXNlIG9mIHRoZSBjcmFzaCBpbiBnZGIuCgoyMDEwLTEyLTA3IDEyOjU2OjQ0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL3BsdWdpbmRvY3MudHh0OgoJICBkb2NzOiBzb21lIG5vdGVzIGFib3V0IG91ciBwbHVnaW4gZG9jcyB3b3JrZmxvdwoKMjAxMC0xMi0wNyAxMTo1ODozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgb2JqZWN0OiBSZW1vdmVkIGRlcHJlY2F0ZWQgZmllbGRzIGFuZCBtZXRob2RzCgkgIE1ha2UgR3N0T2JqZWN0IGV4dGVuZCBmcm9tIEdJbml0aWFsbHlVbm93bmVkLCByZW1vdmUgdGhlIEZMT0FUSU5HIGZsYWcgYW5kIHVzZQoJICBHT2JqZWN0IG1ldGhvZHMgZm9yIG1hbmFnaW5nIHRoZSBmbG9hdGluZyByZWYuCgkgIFJlbW92ZSBjbGFzcyBsb2NrLCBpdCB3YXMgYSB3b3JrYXJvdW5kIGZvciBhIGdsaWIgPCAyLjggYnVnLgoJICBSZW1vdmUgdGhlIHBhcmVudC1zZXQgYW5kIHBhcmVudC11bnNldCBzaWduYWxzLCBhdHRlbXB0IHRvIGltcGxlbWVudCB3aXRoIG5vdGlmeQoJICBidXQgZGlzYWJsZWQgYmVjYXVzZSBkZWFkbG9ja3MgaW4gZGVlcC1ub3RpZnkuCgoyMDEwLTEyLTA2IDIwOjAzOjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogbWVudGlvbiByZW1vdmFsIG9mIHByb3RvY29sIHByb3BlcnR5CgoyMDEwLTEyLTA2IDE5OjQwOjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgbGliczogcmVtb3ZlIGRlcHJlY2F0ZWQgY29kZQoKMjAxMC0xMi0wNiAxOToyNDozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMC0xMi0wNiAxOToxODozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R4bWwuYzoKCSogZ3N0L2dzdHhtbC5oOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIHJlbW92ZSBkZXByZWNhdGVkIHN5bWJvbHMgYW5kIG1ldGhvZHMKCjIwMTAtMTItMDYgMTM6NTE6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiBBZGQgcG9ydGluZyBkb2MKCjIwMTAtMTItMDYgMTM6NDg6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wbGFuLTAuMTEudHh0OgoJICBwbGFuOiBmaXggdHlwbwoKMjAxMC0xMS0xMSAxMDozODo1NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BsYW4tMC4xMS50eHQ6CgkgIHBsYW46IGFkZCBzb21ldGhpbmcgYWJvdXQgR1ZhcmlhbnQgcmVnaXN0cnkKCjIwMTAtMTEtMDggMTg6Mzk6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS91c2UtY2FzZXMtMC4xMS50eHQ6CgkgIGFkZCBzb21lIHVzZS1jYXNlcwoKMjAxMC0xMS0wOCAxNDowODozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BsYW4tMC4xMS50eHQ6CgkgIG1vcmUgdXBkYXRlcwoKMjAxMC0xMS0wOCAxMjoxNDoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BsYW4tMC4xMS50eHQ6CgkgIG1vcmUgdXBkYXRlcwoKMjAxMC0xMS0wOCAxMToxODowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BsYW4tMC4xMS50eHQ6CgkgIG1vcmUgdXBkYXRlcwoKMjAxMC0xMS0wNCAxOTozMDo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BsYW4tMC4xMS50eHQ6CgkgIHdvcmsgb24gdG9kbyBsaXN0IGZvciAwLjExIHdvcmsKCjIwMTAtMTItMDYgMTM6MjE6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBhbmRyb2lkL2Jhc2UubWs6CgkqIGFuZHJvaWQvY29udHJvbGxlci5tazoKCSogYW5kcm9pZC9kYXRhcHJvdG9jb2wubWs6CgkqIGFuZHJvaWQvZWxlbWVudHMubWs6CgkqIGFuZHJvaWQvZ3N0LWluc3BlY3QubWs6CgkqIGFuZHJvaWQvZ3N0LWxhdW5jaC5tazoKCSogYW5kcm9pZC9nc3QtcGx1Z2luLXNjYW5uZXIubWs6CgkqIGFuZHJvaWQvZ3N0Lm1rOgoJKiBhbmRyb2lkL2luZGV4ZXJzLm1rOgoJKiBhbmRyb2lkL25ldC5tazoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LWZlZWRiYWNrLW0ubToKCSogdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246CgkgIG1vcmUgMC4xMCAtPiAwLjExCgoyMDEwLTEyLTA2IDEyOjAzOjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IG9wZW4gMC4xMSBicmFuY2gKCjIwMTAtMTItMDYgMTE6MTg6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiByZXR1cm4gd2FrZXVwIGV2ZW50IGluIEdQb2xsRkQKCjIwMTAtMTItMDYgMTE6MDc6MzggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBzb21lIGRlYnVnIHRvIGZhc3QgcHVzaCBwYXRoCgkgIC4uLiBzbyB3ZSBkb24ndCBsb29zZSB0cmFjayBhdCB0aW1lcyBpdCBpcyBuZWVkZWQgdGhlIG1vc3QuCgoyMDEwLTEyLTA1IDE1OjU4OjQ4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogRG9uJ3QgZm9yZ2V0IHRvIHVucmVmIHRoZSBjYWNoZWQgQ2xvY2tJZAoKMjAxMC0xMi0wNSAxNDo0NjoyOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGdzdGNoZWNrOiBEb24ndCBjaGVjayBwYWQgcmVmY291bnQgdG9vIGVhcmx5CgkgIEJlY2F1c2Ugb2YgdGhlIG5ldyBwYWQgY2FjaGluZyBzeXN0ZW0sIHRoZSBwZWVyIHBhZCBtaWdodCBzdGlsbAoJICBoYXZlIGEgcmVmZXJlbmNlIG9uIGEgcGFkLiBXZSB0aGVyZWZvcmUgZGVsYXkgdGhlIHJlZmNvdW50IGNoZWNraW5nCgkgIHRpbCAnYWZ0ZXInIHdlIHVubGluayB0aGUgcGFkIGZyb20gYW55IHBvdGVudGlhbCBwZWVyLgoKMjAxMC0xMi0wNSAxNDoxMTo0NSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgZ3N0YmluOiBNYWtlIGVsZW1lbnQgbmFtZXMgY2xlYXJlciBpbiBkZWJ1ZyBzdGF0ZW1lbnRzCgkgIFJlcGxhY2VzIGNvbmZ1c2luZyBtZXNzYWdlcyBsaWtlOgoJICAiTmFtZSBuYW1lIGlzIG5vdCB1bmlxdWUgaW4gYmluIGJpbiwgbm90IGFkZGluZyIKCSAgYnkKCSAgIk5hbWUgJ25hbWUnIGlzIG5vdCB1bmlxdWUgaW4gYmluICdiaW4nLCBub3QgYWRkaW5nIgoKMjAxMC0xMi0wNCAyMTowNjozNCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IEZpeCBwZXJtaXNzaW9ucyBpZiB1bWFzayBpcyBicm9rZW4KCSAgRml4ZXM6ICM1NjQwNTYuCgoyMDEwLTEyLTA0IDE0OjIzOjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBidWlsZDogcmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3BhY2VzIGFmdGVyIGJhY2tzbGFzaCBpbiBNYWtlZmlsZS5hbQoKMjAxMC0xMi0wNCAxMzoxNDozOSArMDAwMCAgS29vcCBNYXN0IDxrd21ARnJlZUJTRC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogZml4IHRlc3Qgc28gaXQgd29ya3Mgd2l0aCBGcmVlQlNEJ3MgL2Jpbi9zaAoJICBVc2UgJz0nIGluc3RlYWQgb2YgJz09Jy4gRml4ZXM6CgkgIGNvbmZpZ3VyZTogd29ya2luZyBjKysgY29tcGlsZXIgZm91bmQ6IHllcwoJICB0ZXN0OiB4eWVzOiB1bmV4cGVjdGVkIG9wZXJhdG9yCgkgIGh0dHA6Ly9idWd6aWxsYS1hdHRhY2htZW50cy5nbm9tZS5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9MTc1NjkyCgoyMDEwLTEyLTAzIDExOjI5OjMwIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgVXNlIGdfc25wcmludGYoKSBpbnN0ZWFkIG9mIHNucHJpbnRmKCkKCjIwMTAtMTItMDMgMTY6NDQ6MjMgKzAxMDAgIEJlbmphbWluIEdhaWduYXJkIDxiZW5qYW1pbi5nYWlnbmFyZEBzdGVyaWNzc29uLmNvbT4KCgkqIEFuZHJvaWQubWs6CgkqIGFuZHJvaWQvTk9USUNFOgoJKiBhbmRyb2lkL2Jhc2UubWs6CgkqIGFuZHJvaWQvY29udHJvbGxlci5tazoKCSogYW5kcm9pZC9kYXRhcHJvdG9jb2wubWs6CgkqIGFuZHJvaWQvZWxlbWVudHMubWs6CgkqIGFuZHJvaWQvZ3N0LWluc3BlY3QubWs6CgkqIGFuZHJvaWQvZ3N0LWxhdW5jaC5tazoKCSogYW5kcm9pZC9nc3QtcGx1Z2luLXNjYW5uZXIubWs6CgkqIGFuZHJvaWQvZ3N0Lm1rOgoJKiBhbmRyb2lkL2dzdC9nc3Rjb25maWcuaDoKCSogYW5kcm9pZC9nc3QvZ3N0ZW51bXR5cGVzLmM6CgkqIGFuZHJvaWQvZ3N0L2dzdGVudW10eXBlcy5oOgoJKiBhbmRyb2lkL2dzdC9nc3RtYXJzaGFsLmM6CgkqIGFuZHJvaWQvZ3N0L2dzdG1hcnNoYWwuaDoKCSogYW5kcm9pZC9nc3QvZ3N0dmVyc2lvbi5oOgoJKiBhbmRyb2lkL2dzdC9wYXJzZS9ncmFtbWFyLm91dHB1dDoKCSogYW5kcm9pZC9nc3QvcGFyc2UvZ3JhbW1hci50YWIuYzoKCSogYW5kcm9pZC9nc3QvcGFyc2UvZ3JhbW1hci50YWIuaDoKCSogYW5kcm9pZC9nc3QvcGFyc2UvbGV4Ll9nc3RfcGFyc2VfeXkuYzoKCSogYW5kcm9pZC9pbmRleGVycy5tazoKCSogYW5kcm9pZC9uZXQubWs6CgkqIGFuZHJvaWQvdG9vbHMubWs6CgkgIEFkZCBidWlsZCBzeXN0ZW0gZm9yIEFuZHJvaWQKCjIwMTAtMTItMDMgMTY6MDI6MDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IGluaXQgdmFyaWFibGVzIGluIF9yZWluaXQoKQoJICBQcm9wZXJseSBpbml0aWFsaXplIHZhcmlhYmxlcyBpbiBfcmVpbml0KCkgdG9vCgoyMDEwLTEwLTIxIDE4OjA4OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IG1ha2Ugc3luYyBjbG9jayB3YWl0IGxvY2tmcmVlCgkgIE1ha2UgdGhlIGNvbW1vbiBjYXNlIGxvY2tmcmVlLgoKMjAxMC0xMi0wMyAxMjowNDoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgYmluYXJ5cmVnaXN0cnk6IHVzZSBmdW5jdGlvbiBpbnRyb2R1Y2VkIGluIEdMaWIgMi4yMiB1bmNvbmRpdGlvbmFsbHkKCjIwMTAtMTItMDMgMTI6NDI6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBzbWFsbCBjbGVhbnVwcwoKMjAxMC0xMS0wMyAxODozODoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IG1ha2Ugc3VyZSB3ZSByZW1vdmUgdGhlIHJlYWRmZCBtZXNzYWdlcwoKMjAxMC0xMS0wMyAxODoxNjowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3Rwb2xsLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwb2xsOiBhZGQgbWV0aG9kIHRvIGdldCBhIEdQb2xsRkQKCjIwMTAtMTEtMDMgMTc6NTY6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBSZWZhY3RvciBhbmQgbWFrZSBtb3JlIGxvY2tmcmVlCgkgIFJlZmFjdG9yIHRoZSB3YWtldXAgb2YgdGhlIHBvbGwgdGhyZWFkLgoJICBBbHdheXMgbWFrZSBhIGNvbnRyb2wgc29ja2V0IHRvIG1ha2UgdGhpbmdzIGVhc2llci4KCSAgTWFrZSBtb3JlIG1ldGhvZHMgbG9ja2ZyZWUuCgoyMDEwLTEwLTIxIDAyOjAyOjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogbW92ZSBsb2NrIHRvIHdoZXJlIGl0IG1ha2VzIG1vcmUgc2Vuc2UKCjIwMTAtMTAtMjEgMDE6MTU6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBtYWtlIHRpbWVyIHBvbGxzIGxvY2tmcmVlCgkgIE1ha2Ugc3VyZSB3ZSBkb24ndCB0YWtlIGEgbXV0ZXggaW4gdGhlIG5vcm1hbCBjb2RlIHBhdGggb2YgdGhlIHRpbWVyCgkgIHBvbGwuCgoyMDEwLTEyLTAyIDE3OjUxOjU4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiByZXR1cm4gdXBvbiBpbnB1dCB3aGVuIGFscmVhZHkgZW9zCgkgIC4uLiByYXRoZXIgdGhhbiBoYW5naW5nIGluY29taW5nIHRocmVhZCAoYXMgY29uc2lkZXJlZCBmdWxsIGluIGVvcykuCgoyMDEwLTEyLTAyIDE3OjQ5OjA0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGZpeCBkb2MgdHlwbwoKMjAxMC0xMC0xNiAxNjoxNjoxNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogcmVtb3ZlIHNvbWUgY29tbWVudGVkIGNvZGUKCjIwMTAtMTItMDMgMTM6NTI6MDMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBhZGQgc3RkaW8uaCBmb3Igc25wcmludAoKMjAxMC0xMi0wMyAxMToyNzoxNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogVXNlIGFuIG9iamVjdCBhcyBmaXJzdCBhcmd1bWVudCB0byBHU1RfV0FSTklOR19PQkpFQ1QKCjIwMDktMDQtMTEgMTU6MDQ6NDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgbWljcm8tb3B0aW06IGlmICh4KSBpcyBjaGVhcGVyIHRoYW4gaWYgKHggPiAwKSBmb3IgdW5zaWduZWQgaW50ZWdlcnMKCjIwMDktMDQtMTAgMDk6MDE6MjIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZ3N0cXVlcnk6IFVzZSBzdHJ1Y3R1cmUgcHJvcGVydHkgZGlyZWN0bHksIGF2b2lkIGZ1bmN0aW9uIHZhcmlhYmxlLgoJICBBbGwgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSBjYW4gYWNjZXNzIHRoZSBzdHJ1Y3R1cmUgZmllbGQgb2YgYSBxdWVyeSBkaXJlY3RseS4KCSAgVGhpcyBhdm9pZHMgaGF2aW5nIHRvIGNhbGwgZ3N0X3F1ZXJ5X2dldF9zdHJ1Y3R1cmUoKSB0byBnZXQgaXQsIGFsb25nIHdpdGggYmVpbmcKCSAgYWJsZSB0byByZW1vdmUgc29tZSBmdW5jdGlvbiB2YXJpYWJsZXMgdGhhdCB3ZXJlIHVzZWQgdG8gc3RvcmUgdGhlIHJlc3VsdCBvZiB0aGF0CgkgIGZ1bmN0aW9uLgoKMjAwOS0wNC0xMCAwODo1MTowMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGdzdGluZm86IHJlbW92ZSB1c2VsZXNzIHRlcm5hcnkgb3BlcmF0b3IgdXNhZ2UuCgoyMDEwLTA5LTE0IDEzOjA4OjU3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGdzdGV2ZW50OiBVc2Ugc3RydWN0dXJlIHByb3BlcnR5IGRpcmVjdGx5LCBhdm9pZCBmdW5jdGlvbiB2YXJpYWJsZS4KCSAgQWxsIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUgY2FuIGFjY2VzcyB0aGUgc3RydWN0dXJlIGZpZWxkIG9mIGFuIGV2ZW50IGRpcmVjdGx5LgoJICBUaGlzIGF2b2lkcyBoYXZpbmcgdG8gY2FsbCBnc3RfcXVlcnlfZ2V0X3N0cnVjdHVyZSgpIHRvIGdldCBpdCwgYWxvbmcgd2l0aCBiZWluZwoJICBhYmxlIHRvIHJlbW92ZSBzb21lIGZ1bmN0aW9uIHZhcmlhYmxlcyB0aGF0IHdlcmUgdXNlZCB0byBzdG9yZSB0aGUgcmVzdWx0IG9mIHRoYXQKCSAgZnVuY3Rpb24uCgoyMDEwLTEyLTAzIDExOjE5OjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBwdXNoIGNhY2hlIHRvIGJ1ZmZlcmxpc3RzCgkgIEFkZCB0aGUgcHVzaCBjYWhjZSBmb3IgdGhlIGJ1ZmZlcmxpc3QgcHVzaCBjb2RlIHBhdGggYXMgd2VsbC4KCjIwMTAtMTItMDMgMTE6MTE6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgY2FjaGUgdGhlIHBlZXIgY2hhaW5mdW5jCgkgIFRoZXJlIGlzIG5vIG5lZWQgdG8gY2FjaGUgdGhlIHBlZXIgY2hhaW5mdW5jdGlvbiBhcyB3ZSBjYW4ganVzdCBhcyBlZmZpY2llbnRseQoJICBnZXQgdG8gaXQgZnJvbSB0aGUgcGVlciBvYmplY3QuIEFsc28gbm90IGNhY2hpbmcgdGhlIGNoYWluIGZ1bmN0aW9uIHdvcmtzIGJldHRlcgoJICBiZWNhdXNlIHRoZW4gd2UgYXV0b21hdGljYWxseSBnZXQgdGhlIG5ldyBjaGFpbmZ1bmN0aW9ucyB3aGVuIHRoZXkgY2hhbmdlLgoKMjAxMC0xMi0wMyAxMDo1MjozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBwYWQ6IGNsZWFyIHBhZCBjYWNoZSB3aGVuIGluc3RhbGxpbmcgcHJvYmVzCgkgIE1vdmUgdGhlIG1ldGhvZCB0byBjbGVhciB0aGUgcGFkIGNhY2hlIGludG8gX3ByaXZhdGUuaAoJICBDbGVhciB0aGUgcGFkIGNhY2hlIHdoZW4gaW5zdGFsbGluZyBwYWQgcHJvYmVzLgoKMjAxMC0xMC0yMCAxNzoxMToxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBleHBsaWNpdGx5IGlubGluZSBzb21lIGZ1bmN0aW9ucwoKMjAxMC0xMC0xMyAwMjo0ODo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDEwLTEwLTEzIDAyOjQyOjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGludmFsaWRhdGUgY2FjaGVzIG9uIGZsdXNoIGFuZCBwYWQgYmxvY2sKCjIwMTAtMTAtMTMgMDI6MjA6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgdW5yZWYgTlVMTCBjYXBzCgoyMDEwLTEwLTEzIDAyOjE3OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBpbnZhbGlkYXRlIGZ1bmN0aW9uCgkgIE1vcmUgc21hbGwgb3B0aW1pc2F0aW9ucywgcmVtb3ZlIHRoZSB1bm5lZWRlZCB2YWxpZCBib29sZWFuLgoJICBBZGQgZnVuY3Rpb24gdG8gaW52YWxpZGUgdGhlIGNhY2hlLgoJICBJbnZhbGlkYXRlIHRoZSBjYWNoZSBvbiB1bmxpbmsuCgoyMDEwLTEwLTEzIDAxOjM3OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHNtYWxsIGNsZWFudXAKCjIwMTAtMTAtMTMgMDE6MjU6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW1wcm92ZSBwYWQgcHVzaCBjYWNoaW5nCgkgIEJ1aWxkIHRoZSBjYWNoZSB3aGlsZSB3ZSBwdXNoIGRhdGEuIFdoZW4gd2UgZG9uJ3QgaGF2ZSBhIGNhY2hlLCB3ZSBydW4gdGhlCgkgIHNsb3dwYXRoIGFuZCBjb2xsZWN0IGNhY2hlYWJsZSBwcm9wZXJ0aWVzLiBXaGVuIGFsbCBjb25kaXRpb25zIGFyZSBtZXQsIGtlZXAgdGhlCgkgIGNhY2hlZCBkYXRhIGFyb3VuZCBzbyB0aGF0IHdlIGNhbiBtb3JlIGVmZmljaWVudGx5IHB1c2ggZGF0YSBhcm91bmQuCgoyMDEwLTEwLTEyIDEyOjI5OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHByb3RvdHlwZSBvZiBwYWQgcHVzaCBjYWNoZQoJICBQcm90b3R5cGUgb2YgaG93IHdlIGNhbiBjYWNoZSB0aGUgcGVlciBhbmQgY2FwcyBmb3IgYSBwYWQgbGluay4KCjIwMTAtMTItMDMgMTI6MjM6MjcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9leHRyYWN0LnBsOgoJICBkb2NzOiBmaXggcHJldmlvdXMgZXh0cmFjdC5wbCBjb21taXQKCSAgTWFrZSBpdCBhbHNvIHdvcmsgaW4gdGhlIHNyY2Rpcj1idWlsZGRpciBjYXNlIGFnYWluLgoKMjAxMC0xMC0yMCAxMTo1ODowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IGF2b2lkIHRhc2sgbG9jayBmb3IgZWFjaCBpdGVyYXRpb24KCSAgTWFrZSB0aGUgdGFzayBzdGF0ZSBhbiBhdG9taWMgdmFyaWFibGUgc28gdGhhdCB3ZSBjYW4gYXZvaWQgdGFraW5nIGFuZCByZWxlYXNpbmcKCSAgdGhlIHRhc2sgbG9jayBmb3IgZWFjaCBpdGVyYXRpb24uCgoyMDEwLTEyLTAzIDEwOjE4OjE5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvZXh0cmFjdC5wbDoKCSAgZG9jczogZml4IGV4YW1wbGUgbWF0Y2hpbmcgaW4gZXh0cmFjdC5wbAoJICBXaGVuIGJ1aWxkaW5nIHdpdGggJHNyY2RpciAhPSAkYnVpbGRkaXIgb3V0cHV0IHdvdWxkIGNvbnRhaW4gdGhlIGJ1aWxkZGlyIHBhdGguCgkgIFN0cmlwIHRoZSBwYXRoIHdoZW4gc2Nhbm5pbmcgdGhlIHhtbCBmb3IgdGhlIGV4YW1wbGUgbWFya2Vycy4KCjIwMTAtMTEtMTkgMTU6MDY6MDUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGRvY3M6IHF1ZXJ5IGRvYyBpbXByb3ZlbWVudHMKCSAgTW9yZSB4cmVmcy4gTWVudGlvbmVkIHRoYXQgc29tZSBxdWVyaWVzIG5lZWQgYSBydW5uaW5nIHBpcGVsaW5lLgoKMjAxMC0xMS0xOSAxMTo0Mzo0MCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGVsZW1lbnRmYWN0b3J5OiBjbGFyaWZ5IGxpc3QgaXRlbSB0eXBlcyBpbiBjb21tZW50cwoKMjAxMC0xMS0xOSAxMDoyOTozNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICBwYWR0ZW1wbGF0ZTogYWRkIHR3byBGSVhNRTAuMTE6IGNvbW1lbnRzCgoyMDEwLTExLTE5IDEwOjIzOjU0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkdGVtcGxhdGU6IGFsbG93IGRpc2FibGluYmcgdGhlIHRlbXBsYXRlIG5hbWUgY29uZm9ybWFuY2UgY2hlY2tzCgoyMDEwLTExLTE4IDE2OjMxOjMwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkdGVtcGxhdGU6IHRoZSBzdXBwbGllZCBjYXBzIG1heSBub3QgYmUgTlVMTAoJICBUaGVyZSBpcyBhIGVhcmxpZXIgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgY2hlY2suIEFsc28KCSAgZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0IGRvZXMgbm90IGhhdmUgc3VjaCBhIGNoZWNrLgoKMjAxMC0xMS0wMyAxNjozNzoxMCArMDEwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDxhbW9yYWxlc0BmbHVtb3Rpb24uY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogUHJpbnQgc2luay1tZXNzYWdlIGV2ZW50cyBsaWtlIGEgbWVzc2FnZSBhbmQgdGhlIEdzdE1lc3NhZ2Ugc3RydWN0dXJlCgoyMDEwLTExLTAxIDE1OjMyOjQzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSogZG9jcy9kZXNpZ24vZHJhZnQtbWV0YWRhdGEudHh0OgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYWN0aXZhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVybGlzdC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jb252ZW50aW9ucy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZHluYW1pYy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNvdXJjZS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZnJhbWVzdGVwLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJ1cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0ZWxlbWVudC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdG9iamVjdC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxhdGVuY3kudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXB1c2gtcHVsbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1xdWVyeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcmVsYXRpb25zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3BhcnNlc3RyZWFtcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhbmRhcmRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbS1zdGF0dXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIGRlc2lnbi1kb2NzOiBhZGQgaHRtbCBvdXRwdXQgdXNpbmcgYXNjaWlkb2MKCSAgVW5pZnkgdGhlIGFkLWhvYyBtYXJrdXAgdG8gYmUgYXNjaWlkb2Mgc3R5bGUgaW4gbWFueSBwbGFjZXMuIEFkZCBhICJodG1sIiB0YXJnZXQKCSAgdG8gTWFrZWZpbGUgdG8gZ2VuZXJhdGUgdGhlIG91dHB1dC4KCjIwMTAtMTAtMTkgMTQ6Mjc6MjAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBtb3JlIGRlZmF1bHQgbmFtZSBnZW5lcmF0aW9uIG1vcmUgZWZmaWNpZW50CgkgIFNhdmUgfjIwMDAgbWFsbG9jL21lbWNweS9mcmVlIHBhaXJzIGF0IHN0YXJ0dXAgYnkgcnVubmluZyB0b19sb3dlciBpbi1wbGFjZS4KCSAgQWxzbyBza2lwIHRoZSBudW1iZXJzIGFzIHdlIGNhbi4KCjIwMTAtMTAtMTggMTQ6NDU6MTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIHBsdWdpbmZlYXR1cmU6IHVzZSB0aGUgcGFyZW50X2NsYXNzIGZyb20gR19ERUZJTkVfVFlQRSBtYWNybyBhbmQgZHJvcCBleHRyYSBjb3B5CgoyMDEwLTEwLTIwIDE0OjI3OjE2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IHVzZSBnX2ludGVybl9zdHJpbmcgZm9yIGludGVyZmFjZSBuYW1lcwoKMjAxMC0xMC0xOCAxMzoyOTo1MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeTogYWxzbyBpbnRlcm4gdGhlIHN0YXRpYyBjYXBzCgoyMDEwLTEyLTAzIDAwOjAwOjA5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IG1ldGEtZGF0YSBjYW4gYmUgTlVMTAoKMjAxMC0xMi0wMiAxNjoyODo0MyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGdzdGRhdGV0aW1lOiBGaXggaGFuZGxpbmcgb2YgdGltZXpvbmVzCgkgIEZpeCByZXR1cm5pbmcgb2YgdGltZXpvbmVzIG9uIHN5c3RlbXMgd2l0aCBnZGF0ZXRpbWUKCSAgdG8gdXNlIGZsb2F0cyBvbiB0aGUgbWF0aCBleHByZXNzaW9uIHRvIGF2b2lkCgkgIHRydW5jYXRpbmcgdGhlIGZyYWN0aW9uYWwgcGFydC4KCSAgQWxzbyBhZGRzIGEgdGVzdCBmb3IgY292ZXJpbmcgdGhpcyBjYXNlLgoKMjAxMC0xMi0wMiAxOTo0NDo0MSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGdzdGRhdGFxdWV1ZTogRG9uJ3QgYnJlYWsgQUJJCgkgIFRoZSBvcmRlciBvZiB0aGUgZmllbGQgd2FzIHdyb25nLCBhbmQgdGhlIHNpemUgb2YgdGhlIHN0cnVjdHVyZSBkaWRuJ3QKCSAgZW5kIHVwIGJlaW5nIHRoZSBzYW1lLgoKMjAxMC0xMS0yNSAxODo0ODowOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJICBiYXNlc2luazogcmV3b3JrIHBvc2l0aW9uIHJlcG9ydGluZyBjb2RlCgkgIFVuaWZ5IHRoZSBkaWZmZXJlbnQgcG9zaXRpb24gcmVwb3J0aW5nIGNvZGUgcGF0aHMgdG8gbWFrZSBpdCBtb3JlCgkgIHVuZGVyc3RhbmRhYmxlLgoJICBVc2Ugc3RhcnRfdGltZSB0byBnZXQgbW9yZSBhY2N1cmF0ZSBwb3NpdGlvbiByZXBvcnRpbmcgaW4gcGF1c2VkLgoJICBGaXggdW5pdCB0ZXN0cyBmb3IgbW9yZSBhY2N1cmF0ZSByZXBvcnRpbmcuCgoyMDEwLTExLTI1IDE2OjA2OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcGVyZm9ybSB3YWl0X3ByZXJvbGwgaW4gYSB3aGlsZSBsb29wCgkgIFdlIG5lZWQgdG8gY29udGludWUgY2FsbGluZyB3YWl0X3ByZXJvbGwoKSBhcyBsb25nIGFzIHRoZSBuZWVkX3ByZXJvbGwgdmFyaWFibGUKCSAgaXMgdHJ1ZS4KCjIwMTAtMTEtMTcgMTY6NDY6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHJldHVybiBpbW1lZGlhdGVseSBmb3IgLTEgY29udmVyc2lvbgoJICBXaGVuIHdlIGFyZSBhc2tlZCB0byBjb252ZXJ0IC0xLCB3ZSBjYW4gcmV0dXJuIGltbWVkaWF0ZWx5IHdpdGggYSAtMSByZXR1cm4KCSAgdmFsdWUuCgoyMDEwLTExLTE3IDE2OjQyOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBhIGNvbnZlcnQgcXVlcnkgY2FuIGhhdmUgYSAtMSBpbnB1dCB2YWx1ZQoJICBJdCBpcyBhbGxvd2VkIHRvIHBhc3MgLTEgdG8gdGhlIHNyY192YWwgZm9yIGEgY29udmVydC4KCjIwMTAtMTEtMTYgMTI6MjA6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSAgYmFzZXNpbms6IGFsc28gcHJlcm9sbCBhZnRlciBhIGZsdXNoIHdpdGggYXN5bmM9ZmFsc2UKCSAgTWFrZSBzdXJlIHRvIHByZXJvbGwgYWZ0ZXIgYSBmbHVzaCBldmVuIHdoZW4gd2UgYXJlIGFzeW5jPWZhbHNlLgoJICBBZGQgdW5pdCB0ZXN0LgoJICBGaXhlcyAjNjM0OTY1CgoyMDEwLTExLTE1IDE4OjIwOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGltcHJvdmUgZG9jcyBhIGxpdHRsZS4KCjIwMTAtMTEtMTUgMTg6MTc6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkgIGNoZWNrOiBsb2NrIHNyYyBzdGF0ZSB0byBhdm9pZCBlcnJvciBjYXNlcwoJICBMb2NrIHRoZSBzdGF0ZSBvZiB0aGUgc3JjIGVsZW1lbnQgb3IgZWxzZSB0aGUgcGlwZWxpbmUgbWlnaHQgZ28gaW50byB0aGUgZXJyb3IKCSAgc3RhdGUgd2hlbiB3ZSBzZXQgaXQgdG8gUEFVU0VEIGxhdGVyLgoKMjAxMC0xMS0xNSAxMjo0OTowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogYXZvaWQgdXNpbmcgaW52YWxpZCBjbG9jayB0aW1lcwoJICBCZSBleHRyYSBjYXJlZnVsIHRvIG5vdCB1c2UgaW52YWxpZCBjbG9jayB0aW1lcyBidXQgZ2l2ZSBhIHdhcm5pbmcgaW5zdGVhZC4gVGhpcwoJICBzaG91bGQgbWFrZSB0aGluZ3Mgd29yayBiZXR0ZXIgd2l0aCBmYXVsdHkgY2xvY2sgaW1wbGVtZW50YXRpb25zLgoKMjAxMC0xMS0xMSAxMDo0MToxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGltcHJvdmUgc29tZSBjb21tZW50cyBhYm91dCB0aGUgemlnemFnIGludGVyc2VjdGlvbgoKMjAxMC0xMi0wMiAxMzowNDozMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IEFkZCB1bnVzZWQgc3ltYm9scyB0byBwcm9wZXIgc2VjdGlvbnMKCjIwMTAtMTItMDIgMTM6MDM6NTcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBBZGQgR3N0RGF0ZVRpbWUgc2VjdGlvbiBhbmQgdXBkYXRlIGl0IGZvciBsYXRlc3Qgc3ltYm9scwoKMjAxMC0xMC0xOSAxODowOTo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogT25seSBjYWxsIHVwZGF0ZV9idWZmZXJpbmcgaWYgbmVlZGVkLgoJICB1cGRhdGVfYnVmZmVyaW5nIGlzIHNvIGJpZyBpdCB3aWxsIG5ldmVyIGJlIGlubGluZWQgKGFuZCBzaG91bGRuJ3QpLAoJICB3ZSB0aGVyZWZvcmUgbW92ZSB0aGUgY2hlY2sgb3V0c2lkZSBvZiBpdC4KCjIwMTAtMTAtMTkgMTc6NDU6MTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEF2b2lkIHJlLWNoZWNraW5nIG1hbnkgdGltZXMgd2hldGhlciBhbiBpdGVtIGlzIGEgYnVmZmVyCgkgIEF2b2lkcyBjYWxsaW5nIDYgdGltZXMgZ3N0X2J1ZmZlcl9nZXRfdHlwZSgpIGZvciBldmVyeSBpdGVtIGNvbWluZwoJICB0aHJvdWdoIHF1ZXVlMgoKMjAxMC0xMC0xOSAxNzo0Mzo1NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogUmVkdWNlIGFtb3VudCBvZiB0aW1lIGxvY2tzIGFyZSB0YWtlbgoKMjAxMC0xMC0xOSAxNzo0MjozOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4dXAgZG9jdW1lbnRhdGlvbiBvZiBzb21lIHByb3BlcnRpZXMKCjIwMTAtMTAtMTkgMTc6NDA6MTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IEF2b2lkIHVzZWxlc3Mgc2VnbWVudF90b19ydW5uaW5nX3RpbWUoKSBjYWxjdWxhdGlvbnMuCgkgICogQ2FjaGUgc3JjIGFuZCBzaW5rIHRpbWUKCSAgKiBVc2UgYSBib29sZWFuIHRvIGtub3duIHdoZXRoZXIgc3JjL3NpbmsgdGltZSBuZWVkcyB0byBiZSByZWNhbGN1bGF0ZWQKCSAgQXZvaWRzIDUwJSBvZiBjYWxscyB0byBnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUoKQoKMjAxMC0xMC0yMCAxNzo0MToyOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFJlLXVzaW5nIEdzdENsb2NrSUQgaW5zdGVhZCBvZiBjb25zdGFudGx5IHJlY3JlYXRpbmcgb25lCgkgIE1ha2VzIF9zaW5rX3dhaXRfY2xvY2sgYXQgbGVhc3QgMiB0aW1lcyBmYXN0ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzI3NzgKCjIwMTAtMTAtMjAgMTc6NDA6NDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RjbG9jazogTmV3IEFQSSB0byByZS11c2UgYSBzaW5nbGUgc2hvdCBHc3RDbG9ja0lECgkgIEFQSTogZ3N0X2Nsb2NrX3NpbmdsZV9zaG90X2lkX3JlaW5pdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMyNzc4CgoyMDEwLTEwLTIwIDEzOjUyOjAyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogUGFzcyBhbG9uZyBtaW5pb2JqZWN0IHR5cGUgdGhyb3VnaCB2YXJpb3VzIGZ1bmN0aW9ucwoJICBBdm9pZHMgZG9pbmcgdXNlbGVzcyBHU1RfSVNfKgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMyNzc4CgoyMDEwLTEwLTIwIDEzOjA4OjA4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogU3dpdGNoIGVuYWJsZV9sYXN0X2J1ZmZlciB0byBhbiBhdG9taWMgaW50CgkgIEF2b2lkcyBoYXZpbmcgdG8gdGFrZSBhIGxvY2sgdG8gcmVhZC93cml0ZSBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMjc3OAoKMjAxMC0xMC0xOSAxNTo1MzoyNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IFJlbW92ZSB1c2VsZXNzIGNoZWNrcyBmcm9tIGU0MDZmNwoJICBzcmNyZXN1bHQgd2FzIGJlaW5nIHJlY2hlY2tlZCBpbiBwbGFjZXMgaXQgY291bGRuJ3QgaGF2ZSBjaGFuZ2VkLgoJICBxdWV1ZSBsZXZlbCB3YXMgYmVpbmcgcmVjaGVja2VkIGluIHBsYWNlcyBpdCBjb3VsZG4ndCBoYXZlIGNoYW5nZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzI3ODAKCjIwMTAtMTAtMTMgMTM6NTA6MjIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBnc3RkYXRhcXVldWU6IE9ubHkgZW1pdCBnX2NvbmRfc2lnbmFsIHdoZW4gbmVlZGVkCgkgIEtlZXAgdHJhY2sgb2Ygd2hpY2ggY29uZCB3ZSdyZSB3YWl0aW5nIGZvciBhbmQgb25seSBlbWl0IHdoZW4gbmVlZGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMyNzc5CgoyMDEwLTEwLTIwIDE3OjEyOjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogbW92ZSBnX3JldHVybl9pZl9mYWlsIHRvIHdoZXJlIGl0IGlzIG5lZWRlZAoKMjAxMC0xMS0wMyAxMToxNDowMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJICB2ZXJzaW9uOiBUYWtlIG5hbm8gdmVyc2lvbiBpbnRvIGFjY291bnQgaW4gR1NUX0NIRUNLX1ZFUlNJT04oKQoJICBJZiB0aGUgbmFubyBpcyA+IDAgdGhlIGN1cnJlbnQgdmVyc2lvbiBzaG91bGQgYmUgaGFuZGxlZCB0aGUgc2FtZSBhcwoJICBtaWNybyArIDEuCgoyMDEwLTExLTAxIDE2OjM0OjQ2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBTZXQgdGhlIGV2ZW50IHNvdXJjZSBvYmplY3QgaWYgbm9uZSBpcyBzZXQgeWV0IGluIGdzdF9wYWRfcHVzaF9ldmVudCgpCgkgIE90aGVyd2lzZSB0aGUgc291cmNlIHdpbGwgc3RheSBhdCBOVUxMLCB0aGUgZXZlbnQgaXMgcGFzc2VkIHRvIHRoZQoJICBwZWVycGFkIHZpYSBnc3RfcGFkX3NlbmRfZXZlbnQoKSBhbmQgdGhlbiB0aGUgcGVlcnBhZCBpcyBzZXQgYXMKCSAgc291cmNlIG9mIHRoZSBldmVudCBpbnN0ZWFkIG9mIHRoZSBvcmlnaW5hdGluZyBwYWQuCgoyMDEwLTEwLTMxIDE4OjQ4OjE5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogUmVtb3ZlIGRlYWQgYXNzaWdubWVudCBhbmQgdW51c2VkIHZhcmlhYmxlCgoyMDEwLTEwLTMxIDE4OjQ2OjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogUmVtb3ZlIGRlYWQgYXNzaWdubWVudCBhbmQgbW92ZSB2YXJpYWJsZSBkZWNsYXJhdGlvbiBpbnRvIGlubmVyIGJsb2NrCgoyMDEwLTEwLTMxIDE4OjIzOjAwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogUmVtb3ZlIHJlZHVuZGFudCB2YXJpYWJsZQoJICBPdGhlciB0aGFuIHNhdmluZyBhbiBpbW1lbnNlIGFtb3VudCBvZiA0IGJ5dGVzIG9mIG1lbW9yeSB0aGlzCgkgIHByZXZlbnRzIGNsYW5nIGZyb20gY29tcGxhaW5pbmcgYW5kIGtlZXBzIHRoZSByaW5nIGJ1ZmZlciBzdGF0ZQoJICBpbiBhIHNpbmdsZSB2YXJpYWJsZSBpbnN0ZWFkIG9mIHR3by4KCjIwMTAtMTAtMjAgMTA6MTg6MTggKzAyMDAgIERhdmlkIEhveXQgPGRob3l0QGxsbmwuZ292PgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgZ3N0dGFzazogU2V0IHRocmVhZCBuYW1lcyBvbiBXaW5kb3dzIHdpdGggTVNWQyBpZiBhIGRlYnVnZ2VyIGlzIGF0dGFjaGVkCgkgIEZpeGVzIGJ1ZyAjNjMyMTY4LgoKMjAxMC0xMC0xOSAxNTo1MjozMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWFjcm9zLmg6CgkgIG1hY3JvczogRGVmaW5lIHJlc3RyaWN0IGtleXdvcmQgaWYgbm90IGF2YWlsYWJsZQoJICBUaGlzIGNoYW5nZSBhbHdheXMgZGVmaW5lcyB0aGUgcmVzdHJpY3Qga2V5d29yZCBpZiBhCgkgIG5vbi1DOTkgQyBjb21waWxlciBpcyB1c2VkLiBJbiB0aGUgY2FzZSBvZiBHQ0MgPj0gNAoJICBpdCB3aWxsIGJlIGRlZmluZWQgdG8gX19yZXN0cmljdF9fLCBpbiBhbGwgb3RoZXIKCSAgY2FzZXMgdG8gbm90aGluZy4gVGhpcyBhbGxvd3MgdG8gdXNlIHRoZSByZXN0cmljdAoJICBrZXl3b3JkIHVuY29uZGl0aW9uYWxseS4KCjIwMTAtMTItMDEgMjM6NTc6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBCdW1wIEdMaWIgcmVxdWlyZW1lbnQgdG8gPj0gMi4yMgoJICBTZWUgaHR0cDovL2dzdHJlYW1lci5mcmVlZGVza3RvcC5vcmcvd2lraS9SZWxlYXNlUGxhbm5pbmcvR0xpYlJlcXVpcmVtZW50CgoyMDEwLTEyLTAxIDIzOjU2OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTAuMzEgPT09CgoyMDEwLTExLTMwIDE3OjQwOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4zMQoKMjAxMC0xMS0yNyAxOToxMzozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IGF2b2lkICd1bnVzZWQgYXJndW1lbnQnIHdhcm5pbmdzIGNhdXNlZCBieSBHU1RfQk9JTEVSUExBVEVfRlVMTAoJICBUaGUgdW51c2VkIGRhdGEgcGFyYW1ldGVyIGluIHRoZSBjbGFzc19pbml0IHRyYW1wb2xpbmUgZnVuY3Rpb24KCSAgc2VlbXMgdG8gY2F1c2Ugd2FybmluZ3Mgd2l0aCBzb21lIGMrKyBjb21waWxlcnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzU4NjkKCjIwMTAtMTEtMDkgMjM6Mjc6MTcgLTAzMDAgIHJleW5hbGRvIDxyZXluYWxkb0BvcGVuZG90LmNsPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgZG9jczogc29tZSBzbWFsbCBmaXhlcyB0byB0aGUgcGx1Z2luIHdyaXRlcidzIGd1aWRlCgkgIEZpeCB3cm9uZ2x5IHBsYWNlZCBleGFtcGxlIGFuZCB3ZWlyZGx5IHBocmFzZWQgJ25vdGUnIGxhY2tpbmcgcHJvcGVyCgkgIGZvcm1hdHRpbmcuIEZpeCBtaXNzaW5nIGhpbnQgZm9yIGF1dG9nZW4uc2ggbG9jYXRpb24gYW5kIHJlcGhyYXNlCgkgICdidWlsdCBhbmQgaW5zdGFsbGVkJyBzZW50ZW5jZS4gRml4IHdyb25nbHkgcGhyYXNlZCBhbmQgcmVkdW5kYW50CgkgIHBhcmFncmFwaCBpbiBQV0cKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNDkyMQoKMjAxMC0xMS0yNyAxMTowMjo0OCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICBtYW51YWw6IEltcHJvdmUgc3RhdGVzIGRvY3VtZW50YXRpb24KCSAgQmUgbW9yZSBleHBsaWNpdCBhYm91dCBiZWluZyBvbiBOVUxMIGJlZm9yZSB1bnJlZnMKCjIwMTAtMTEtMjAgMTQ6NTQ6MjMgLTA4MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGludHJvc3BlY3Rpb246IEluY2x1ZGUgZXhwb3J0ZWQgcGFja2FnZXMgaW5mb3JtYXRpb24gaW4gR0lScwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM1Mzg5CgoyMDEwLTExLTE4IDAwOjI5OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjMwLjUgcHJlLXJlbGVhc2UKCjIwMTAtMTEtMTggMDA6Mjk6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBmaXggY2FwcyBsZWFrIGluIGVsZW1lbnQgZmFjdG9yeSBsaXN0IHV0aWxpdHkgZnVuY3Rpb25zCgoyMDEwLTExLTE3IDIzOjU1OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vZGEucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vaHUucG86CgkqIHBvL3NrLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0xMS0xNyAwOTozOTozNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkYXRldGltZTogQWRkIF9mcm9tX3VuaXhfZXBvY2ggdmFyaWFudHMKCSAgQWRkcyAyIHZhcmlhbnRzIGZvciB0aGUgZ3N0X2RhdGVfdGltZV9mcm9tX3VuaXhfZXBvY2ggZnVuY3Rpb24sCgkgIG9uZSBmb3IgVVRDIGFuZCBhbm90aGVyIGZvciBsb2NhbCB0aW1lLgoJICBBUEk6IGdzdF9kYXRlX3RpbWVfbmV3X2Zyb21fdW5peF9lcG9jaF91dGMKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX25ld19mcm9tX3VuaXhfZXBvY2hfbG9jYWxfdGltZQoJICBGaXhlcyAjNjUzMDMxCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzUwMzEKCjIwMTAtMTEtMDMgMTQ6MjE6MDIgKzAwMDAgIFZsYWRpbWlyIEVyZW1lZXYgPHdsMjc3NkBnbWFpbC5jb20+CgoJKiBnc3QvbWF0aC1jb21wYXQuaDoKCSAgbWF0aC1jb21wYXQ6IGRvbid0IHJlLWRlZmluZSBfVVNFX01BVEhfREVGSU5FUyBpZiBhbHJlYWR5IGRlZmluZWQKCSAgVGhpcyBhdm9pZHMgY29tcGlsZXIgd2FybmluZ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzM4ODYKCjIwMTAtMTEtMDEgMTY6MDY6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzAuNCBwcmUtcmVsZWFzZQoKMjAxMC0xMS0wMSAxNTozNjo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9kZS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTEwLTMxIDIwOjE3OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZG9uJ3QgbGVhayBwYWQgcmVmIGluIHB1bGwgbW9kZSB3aGVuIGZsdXNoaW5nCgkgIEZpeCBwYWQgbGVhayB3aGVuIHF1ZXVlMiBpcyBmbHVzaGluZyBvciBiZWluZyBzaHV0IGRvd24uCgoyMDEwLTEwLTMxIDE5OjQ3OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogZG9uJ3Qgc2VuZCBzZWVrcyBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZmlsZSB1cHN0cmVhbSBpbiBwdWxsIG1vZGUKCSAgSWYgZG93bnN0cmVhbSBpcyBvcGVyYXRpbmcgaW4gcHVsbCBtb2RlLCBzaG9ydC1jaXJjdWl0IGFueSBwdWxscyBiZXlvbmQKCSAgdGhlIGVuZCBvZiB0aGUgZmlsZSBhbmQgcmV0dXJuIEZMT1dfVU5FWFBFQ1RFRCBpbW1lZGlhdGVseSBpbnN0ZWFkIG9mCgkgIHNlbmRpbmcgYSBzZWVrIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBmaWxlIHVwc3RyZWFtLCBzaW5jZSB0aGlzIG1pZ2h0CgkgIGNvbmZ1c2UgdXBzdHJlYW0gZWxlbWVudHMgKGFuZC9vciBodHRwIHNlcnZlcnMsIGZvciBleGFtcGxlKS4gRml4ZXMKCSAgcGxheWJhY2sgb2YgYXBwbGUgdHJhaWxlcnMgaW4gdG90ZW0gYW5kIHlvdXR1YmUvaHRtbDUgY2xpcHMgaW4KCSAgV2Via2l0R1RLKy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMjk3NwoKMjAxMC0xMC0yOCAyMzoyODoxNSArMTAwMCAgSm9uYXRoYW4gTWF0dGhldyA8am9uYXRoYW5AZDE0bi5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogdXNlIGlucHV0IHBvc2l0aW9uIGZvciBxdWVyaWVzIGlmIHdlIGhhdmUgbm8gb3V0cHV0IHBvc2l0aW9uCgoyMDEwLTEwLTI4IDEzOjI5OjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCByZXZlcnNlIG5lZ290aWF0aW9uCgkgIFdoZW4gdGhlIGRvd25zdHJlYW0gZWxlbWVudCBzdWdnZXN0cyBhIG5ldyBmb3JtYXQsIHBhc3MgdGhlIHN1Z2dlc3Rpb24KCSAgdXBzdHJlYW0gaWYgd2UgY2FuJ3QgY29udmVydCB0byBpdC4KCSAgRml4ZXMgIzYzMzE0NwoKMjAxMC0xMC0yNyAxODoxMjozNiArMDIwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZpeCB0cmFja2luZyBvZiB1bmxpbmtlZCBzdHJlYW1zLgoJICAzMzA4MmViOWU0MmM1MmU0ZGY4NDgxOTU5NDZmMWI3YmJjZTc2OGM1IGludHJvZHVjZWQgYSBidWcKCSAgcHJldmVudGluZyBzcGFyc2UgdW5saW5rZWQgc3RyZWFtcyBmcm9tIGFkdmFuY2luZyBwcm9wZXJseSwKCSAgbGVhZGluZyB0byB0aGUgcXVldWUgYmxvY2tpbmcuCgkgIEZpeGVzOiAjNjMzMTc2CgoyMDEwLTEwLTI3IDE4OjExOjM1ICswMjAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIHRlc3RzOiBBZGQgYSBtdWx0aXF1ZXVlIHNwYXJzZSBzdHJlYW1zIHRlc3QKCjIwMTAtMTAtMjcgMTM6MTY6MTEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gN2JiZDcwOCB0byAwMTFiY2M4CgoyMDEwLTEwLTIyIDE3OjM1OjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjMwLjMgcHJlLXJlbGVhc2UKCjIwMTAtMTAtMTggMTc6NDI6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICBieXRlcmVhZGVyOiBjb25zdC1pZnkgYnl0ZSByZWFkZXIgYXJndW1lbnQgaW4gcGVlay9zY2FuIEFQSQoJICBCZWNhdXNlIHdlIGNhbi4KCjIwMTAtMTAtMjIgMTE6NTI6NDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZWxlbWVudGZhY3Rvcnk6IEZpeCA2NGJpdCBjb25zdGFudAoJICBCYXNpY2FsbHkgd2UncmUgbm90IG1lYW50IHRvIHB1dCBhbnl0aGluZyBtb3JlIGNvbXBsZXggdGhhbiBzaW1wbGUgbnVtYmVycywKCSAgZHVlIHRvIHRoZSBkZWZpbml0aW9uIG9mIEdfR1VJTlQ2NF9DT05TVEFOVDoKCSAgR19HVUlOVDY0X0NPTlNUQU5UKHZhbCkJKHZhbCMjVUwpCgkgIFdoaWNoIHByZXZpb3VzbHkgcmVzdWx0ZWQgaW4gLi4uLiAxIDw8IDQ5VUwKCjIwMTAtMTAtMTggMTA6NDY6NTkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcmVjb21wdXRlIGNvcnJlY3QgcnVubmluZyB0aW1lIGZvciBidWZmZXIgZW5kaW5nIGZsdXNoaW5nIHN0ZXAKCSAgUHJldmVudHMgZGVsYXlpbmcvaGFuZ2luZyB3aGVuIHJlc3VtaW5nIFBMQVlJTkcuCgkgIEZpeGVzICM2MzI0MzMuCgoyMDEwLTEwLTE2IDE5OjE5OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSAgZG9jczogZml4IG1pc2MuIGd0ay1kb2Mgd2FybmluZ3MgaW4gbGlicwoJICAoZm9yIGd0ay1kb2MgMS4xNSkKCjIwMTAtMTAtMTYgMTg6MjY6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgUmV2ZXJ0ICJsaWJzL2dzdC9kYXRhcXVldWU6IERvY3VtZW50IGdzdF9kYXRhX3F1ZXVlX25ld19mdWxsIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDgwNzI3YzExNzcwMzUwN2Y3OTBhODZiMDk2MmFiM2Q5MTVlNWE0OTEuCgkgIFRoaXMgZG9lc24ndCBtYWtlIHNlbnNlLiBnc3RfZGF0YV9xdWV1ZV9uZXdfZnVsbCgpIGlzIGFscmVhZHkKCSAgZG9jdW1lbnRlZCBhYm92ZS4gQW5kIHdlIG5lZWQgdGhlIGRvYyBibHVyYiBmb3IgX25ldygpIGhlcmUuCgoyMDEwLTEwLTE2IDE3OjAwOjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IGZsZXNoIG91dCByZWxlYXNlIGluc3RydWN0aW9ucyBhIGJpdCBtb3JlCgoyMDEwLTEwLTE2IDE2OjUzOjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBkb2NzOiBhZGQgc29tZSBndGstZG9jIFNpbmNlOiBtYXJrZXJzCgkgIEFkZCBzb21lIGd0ay1kb2MgU2luY2U6IG1hcmtlcnMsIGZpeCBvbmUgU2luY2U6IG1hcmtlciwKCSAgZml4IHR5cG8uCgoyMDEwLTEwLTE2IDAwOjI1OjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzAuMiBwcmUtcmVsZWFzZQoKMjAxMC0xMC0xNiAwMDoxNDoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9MSU5HVUFTOgoJKiBwby9lcy5wbzoKCSogcG8vZnIucG86CgkqIHBvL2x0LnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3YucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMTAtMTUgMTk6NDU6MTQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IHVzZWZ1bCBmYWN0b3J5IG5hbWVzIGZvciB1cmktaGFuZGxlcnMgb3V0cHV0CgkgIEZpeGVzICM2MzIyMzYuCgoyMDEwLTEwLTE0IDEyOjMxOjMyIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNWE2NjhiZiB0byA3YmJkNzA4CgoyMDEwLTEwLTEyIDE1OjEzOjQ4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgZGF0ZXRpbWU6IFVzZSBzZWNvbmRzIGFzIGRvdWJsZQoJICBVc2Ugc2Vjb25kcyBhcyBkb3VibGUgdG8gbWFrZSBBUEkgc2ltaWxhciB0byBnbGliJ3MKCSAgZ2RhdGV0aW1lLiBBbHNvIG1vdmUgdGltZXpvbmUgcGFyYW1ldGVyIHRvIHRoZQoJICBmaXJzdCBwb3NpdGlvbiwganVzdCBsaWtlIGdsaWIncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyODQwOAoKMjAxMC0xMC0xMSAxNjoxNToyOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZ3N0ZGF0ZXRpbWU6IE1vdmUgZG9jIG91dHNpZGUgdGhlIGlmZGVmcwoJICBNb3ZlIHRoZSBkYXRldGltZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBmdW5jdGlvbnMgb3V0c2lkZSB0aGUKCSAgaWZkZWZzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjg0MDgKCjIwMTAtMDktMjcgMTk6MzU6MDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJICBkYXRldGltZTogVXNlIEdEYXRlVGltZSBpZiBhdmFpbGFibGUKCSAgVXNlIEdEYXRlVGltZSBpbnRlcm5hbGx5IG9uIEdzdERhdGVUaW1lIGlmIGdsaWIgYWxyZWFkeQoJICBwcm92aWRlcyBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyODQwOAoKMjAxMC0wOS0yOCAxNzo0NjoyOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJICBnbGliLXByaXZhdGU6IEFkZCBpbmNsdWRlIHByb3RlY3Rpb24gbWFjcm8KCjIwMTAtMTAtMTMgMTI6NTE6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFkZCBndWFyZCB0byBidWZmZXJfc2V0X2NhcHMoKSB0aGF0IGNoZWNrcyBpZiBjYXBzIGFyZSBzaW1wbGUKCjIwMTAtMTAtMTMgMTU6NTY6MjYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogYWRkIGEgbWlzc2luZyBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTCgoyMDA5LTEwLTAxIDExOjE0OjA2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgbGlicy9nc3QvZGF0YXF1ZXVlOiBEb2N1bWVudCBnc3RfZGF0YV9xdWV1ZV9uZXdfZnVsbAoKMjAwOS0wOS0yOCAxMzozNTozNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgIGJhc2UvZ3N0ZGF0YXF1ZXVlOiBpbmxpbmUgc29tZSBmdW5jdGlvbnMsIGdldCBsZXZlbHMgd2l0aCBtZW1jcHkuCgoyMDEwLTEwLTEzIDExOjU0OjA0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBSZW1vdmUgdW51c2VkIGFyZ3VtZW50IGZyb20gZmluZF9yYW5nZSgpCgoyMDEwLTEwLTEzIDExOjUyOjI1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rOiBjbGVhbnVwIGdldF9wcm9wZXJ0eS9zZXRfcHJvcGVydHkKCjIwMTAtMTAtMTIgMTg6NDg6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IGF2b2lkIGdfY29uZF9zaWduYWwgd2hlbiB3ZSBjYW4KCSAgS2VlcCB0cmFjayBvZiB3aGF0IGNvbmQgd2UgYXJlIHdhaXRpbmcgb24gYW5kIG9ubHkgc2lnbmFsIHdoZW4gc29tZSBvdGhlciB0aHJlYWQKCSAgaXMgd2FpdGluZy4KCjIwMTAtMTAtMTEgMTk6Mjc6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogYXZvaWQgZHVwbGljYXRlIHR5cGUgY2hlY2sgd2hlbiBmcmVlaW5nIG1pbmlvYmplY3QKCSAgZ3N0X21pbmlfb2JqZWN0X3VucmVmKCkgaGFzIGd1YXJkcyB0aGF0IGNoZWNrIHRoZSB0eXBlIGFscmVhZHksIHNvCgkgIHdlIGRvbid0IHJlYWxseSBuZWVkIHRvIHJlLWNoZWNrIGl0IGhlcmUgYWdhaW4gd2hpbGUgZ2V0dGluZyB0aGUKCSAgY2xhc3MgKHRoZXJlJ3Mgbm90IHJlYWxseSBtdWNoIHBvaW50IHRvIHRoYXQgYW55d2F5LCBzaW5jZSB3ZSBkb24ndAoJICBjaGVjayB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBnZXRfY2xhc3MsIHNvIHdlJ2QgY3Jhc2ggYW55d2F5IGlmCgkgIHdlJ3JlIG5vdCBkZWFsaW5nIHdpdGggYSBtaW5pIG9iamVjdCwgdGhlIG9ubHkgcXVlc3Rpb24gd291bGQKCSAgYmUgaWYgdGhlcmUnZCBiZSBhIHdhcm5pbmcgYmVmb3JlIHRoZSBjcmFzaCBvciBub3QpLgoKMjAxMC0xMC0xMSAxODo1NToxNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IERpcmVjdGx5IGluY3JlYXRlIG1pbmlfb2JqZWN0IGluIG1pbmlfb2JqZWN0X2ZyZWUoKQoJICBTcGVlZHMgdXAgbWluaV9vYmplY3RfdW5yZWYgYnkgMjUlIGJ5IGF2b2lkaW5nIHRoZSB0eXBlY2hlY2sgd2hpY2gKCSAgaXMgYXZvaWRhYmxlIGhlcmUgc2luY2UgaXQgaXMgb25seSBjYWxsZWQgb24gZXhpc3RpbmcgbWluaW9iamVjdHMuCgoyMDEwLTEwLTExIDE4OjMwOjU0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogUmVtb3ZlIGNvbmZ1c2luZyBERUJVR19SRUZDT1VOVCBkZWZpbmUKCSAgdGhlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzIHdpbGwgYmUgc2lsZW5jZWQgYXV0b21hdGljYWxseSBpZiBkZWJ1Z2dpbmcKCSAgaXMgZGlzYWJsZWQsIGFuZCB0aGUgdHlwZSBjaGVjayBpcyBhY3R1YWxseSByZXF1aXJlZC4KCjIwMTAtMTAtMTEgMTg6MTA6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlbGVhc2UgcXVldWUyIGxvY2sgYmVmb3JlIG5vdGlmeQoJICBNYWtlIHN1cmUgdGhhdCB3ZSBkb24ndCBob2xkIHRoZSBsb2NrIHdoZW4gd2Ugbm90aWZ5IHRoZSB0ZW1wLWxvY2F0aW9uCgkgIHByb3BlcnR5LAoJICBGaXhlcyAjNjMxODUzCgoyMDEwLTEwLTExIDE2OjQ1OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogYWRkIGRlYnVnIHN0YXRlbWVudAoKMjAxMC0xMC0xMSAxMDoyNzo1MiArMDIwMCAgT2dueWFuIFRvbmNoZXYgPG9nbnlhbkBheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICBxdWV1ZTogYXBwbHkgc2luayBzZWdtZW50IG9uIHRoZSBzb3VyY2UgaWYgcXVldWUgaXMgZW1wdHkKCSAgQXBwbHkgdGhlIHNpbmsgc2VnbWVudCBvbiB0aGUgc291cmNlIGltbWVkaWF0bHkgd2hlbiBpdCBpcyByZWNlaXZlZAoJICBhbmQgdGhlcmUgaXMgbm90aGluZyBpbiB0aGUgcXVldWUuCgkgIFNvbHZlcyAjNDgyMTQ3CgoyMDEwLTEwLTExIDE1OjUxOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGZpeCBkb2N1bWVudGF0aW9uIGZvciBpdGVyYXRlX3NvdXJjZXMKCjIwMTAtMTAtMTEgMTY6NDE6MjYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBkb2NzOiB1c2UgdGhlIGd0ay1kb2Mgc2hvcnRjdXRzIHRvIGdldCBjb2xvdXJlZCBhbmQgeHJlZmVkIGV4YW1wbGUKCjIwMTAtMTAtMTEgMTQ6MjA6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IEluaXRpYWxpemUgdmFyaWFibGUKCjIwMTAtMTAtMTEgMTA6NTY6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogSW1wcm92ZSB0cmFja2luZyBvZiBzb3VyY2UgZWxlbWVudHMKCSAgVHJhY2sgZWxlbWVudHMgdGFnZ2VkIHdpdGggdGhlIElTX1NPVVJDRSBmbGFnIGluIGEgc2ltaWxhciB3YXkgd2UgdHJhY2sgdGhlIHNpbmsKCSAgZWxlbWVudHMuIFRoaXMgYWxsb3dzIHVzIHRvIGVmZmljaWVudGx5IGRpc3BhdGNoIGRvd25zdHJlYW0gZXZlbnRzIHRvIHRoZSByaWdodAoJICBlbGVtZW50cy4KCjIwMTAtMTAtMTEgMTA6NTU6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogdGFnIGFzIGEgU09VUkNFIGVsZW1lbnQKCSAgVGFnIGFsbCBlbGVtZW50cyBkZXJpdmluZyBmcm9tIHRoZSBiYXNlc3JjIHdpdGggdGhlIElTX1NPVVJDRSBmbGFnLgoKMjAxMC0xMC0xMSAxMDo1Mzo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IGFkZCBJU19TT1VSQ0UgZmxhZwoJICBBZGQgdGhlIEdTVF9FTEVNRU5UX0lTX1NPVVJDRSBmbGFnIHNvIHRoYXQgd2UgY2FuIHRhZyBzb3VyY2UgZWxlbWVudHMgbGlrZSB3ZQoJICBjYW4gd2l0aCBzaW5rIGVsZW1lbnRzLgoKMjAxMC0xMC0wOSAxNDoxODo0NCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDxvZ2cuay5vZ2cua0Bnb29nbGVtYWlsLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogZ19tYXBwZWRfZmlsZV91bnJlZiBleGlzdHMgYWxyZWFkeSBzaW5jZSBHTGliIDIuMjEuMwoKMjAxMC0xMC0xMCAxODoxNDo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUmVwb3J0IHRoZSBvdXRwdXQgcG9zaXRpb24gb24gUE9TSVRJT04gcXVlcmllcyBvbiB0aGUgc3JjcGFkCgkgIFRoZXJlIGNhbiBiZSBhIGRpZmZlcmVuY2UgYmV0d2VlbiBpbnB1dCBhbmQgb3V0cHV0IGxhc3Rfc3RvcC4KCSAgRml4ZXMgYnVnICM2Mjk0MTAuCgoyMDEwLTEwLTA4IDEyOjQzOjIwIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYzRhOGFkYyB0byA1YTY2OGJmCgoyMDEwLTEwLTA4IDEyOjU0OjUyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgYW5kIHNpbXBsaWZ5IGNvZGUKCSAgb2xkaWQgd2FzIG9ubHkgdXNlZCB3aGVuIHdlIHdlcmUgZG9pbmcgbXVsdGlwbGUgcG9wcyBwZXIgbG9vcC4KCjIwMTAtMTAtMDggMTI6NTA6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1ZTNjOWJmIHRvIGM0YThhZGMKCjIwMTAtMTAtMDggMTI6NDg6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLWRvY3MuaDoKCSAgYnl0ZXdyaXRlcjogQWRkIG1pc3NpbmcgZmlsZQoKMjAxMC0xMC0wOCAxMjoxODoyMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgYnl0ZXdyaXRlcjogQWRkIHVuY2hlY2tlZCB2YXJpYW50cyBvZiB0aGUgd3JpdGluZyBmdW5jdGlvbnMKCSAgVGhlc2UgZG9uJ3QgY2hlY2sgaWYgdGhlcmUncyBlbm91Z2ggZnJlZSBzcGFjZSBhdmFpbGFibGUgYW5kIGFyZQoJICBhdmFpbGFibGUgYXMgaW5saW5lIGZ1bmN0aW9ucyBvbmx5LgoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfaW50OF91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2ludDE2X2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfaW50MTZfbGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9pbnQyNF9iZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2ludDI0X2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfaW50MzJfYmVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9pbnQzMl9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2ludDY0X2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfaW50NjRfbGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF91aW50OF91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X3VpbnQxNl9iZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X3VpbnQxNl9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X3VpbnQyNF9iZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X3VpbnQyNF9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X3VpbnQzMl9iZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X3VpbnQzMl9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X3VpbnQ2NF9iZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X3VpbnQ2NF9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2Zsb2F0MzJfYmVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9mbG9hdDMyX2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfZmxvYXQ2NF9iZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2Zsb2F0NjRfbGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9kYXRhX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9maWxsX3VuY2hlY2tlZAoKMjAxMC0xMC0wOCAwOTozNDo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICBjb250cm9sbGVyLCBkYXRhcHJvdG9jb2w6IG1ha2UgcHVibGljIGVudW0gX2dldF90eXBlKCkgZnVuY3Rpb25zIHRocmVhZC1zYWZlCgkgIE5vdCB0aGF0IGl0IGlzIGxpa2VseSB0byBtYXR0ZXIgaW4gcHJhY3RpY2UsIGJ1dCBzaW5jZSB0aGVzZSBhcmUgcHVibGljCgkgIEFQSSB0aGV5IHNob3VsZCBwcm9iYWJseSBiZSB0aHJlYWQtc2FmZS4KCjIwMTAtMTAtMDggMDA6Mzg6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgZGF0YXByb3RvY29sLCBsZm9jb250cm9sc291cmNlOiBmaXggZW51bSB2YWx1ZSBuYW1lIGluIGVudW1zIHRoYXQgYXJlIHB1YmxpYyBBUEkKCSAgU28gcnVuLXRpbWUgYmluZGluZ3MgY2FuIGludHJvc3BlY3QgdGhlIG5hbWVzIGNvcnJlY3RseSAod2UgYWJ1c2UgdGhpcwoJICBmaWVsZCBhcyBkZXNjcmlwdGlvbiBmaWVsZCBvbmx5IGluIGVsZW1lbnRzLCBub3QgZm9yIHB1YmxpYyBBUEkKCSAgKHdoZXJlIHRoZSBkZXNjcmlwdGlvbiBiZWxvbmdzIGludG8gdGhlIGd0ay1kb2MgY2h1bmspLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5OTQ2CgoyMDEwLTEwLTA4IDA5OjQ3OjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRld3JpdGVyOiBGaXggcG9zc2libGUgaW5maW5pdGUgbG9vcCBjYXVzZWQgYnkgYW4gb3ZlcmZsb3cKCjIwMTAtMTAtMDcgMTg6NDY6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBlbGVtZW50czogbWlub3IgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgd2hlbiBkb2luZyBnX29iamVjdF9ub3RpZnkoKSBmb3IgdGhlICJsYXN0LW1lc3NhZ2UiIHByb3BlcnR5CgkgIE1ha2Ugc3VyZSBwcm9wZXJ0eSBuYW1lcyBwYXNzZWQgdG8gZ19vYmplY3Rfbm90aWZ5KCkgYXJlIGluIHRoZSBjYW5vbmljYWwgZm9ybQoJICAoaWUuICJsYXN0LW1lc3NhZ2UiIG5vdCAibGFzdF9tZXNzYWdlIiksIHNvIHRoYXQgZ19wYXJhbV9zcGVjX3Bvb2xfbG9va3VwKCkKCSAgZG9lc24ndCBoYXZlIHRvIGRvIHN0cmR1cC9jYW5vbmljYWxpemUvZnJlZSBmb3IgZXZlcnkgc2luZ2xlIG5vdGlmeSBjYWxsLgoJICBUaGlzIG9ubHkgYXBwbGllcyB3aGVuIGJ1aWxkaW5nIGFnYWluc3Qgb2xkZXIgR0xpYiB2ZXJzaW9ucyAoPCAyLjI2KS4KCjIwMTAtMTAtMDcgMTg6Mjc6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgIGZha2VzaW5rOiB1c2UgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgYW5kIHJlbW92ZSB3b3JrLWFyb3VuZCBmb3Igb2xkIEdMaWIgdmVyc2lvbnMgaWYgcG9zc2libGUKCSAgVXNlIG1vcmUgZWZmaWNpZW50IGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIGlmIHdlJ3JlIGNvbXBpbGluZyBhZ2FpbnN0CgkgIEdMaWIgPj0gMi4yNiwgYW5kIGFsc28gcmVtb3ZlIHdvcmstYXJvdW5kIGZvciBnX29iamVjdF9ub3RpZnkoKSB0aHJlYWQtCgkgIHNhZmV0eSBpc3N1ZXMgd2l0aCBvbGRlciBHTGliIHZlcnNpb25zIGlmIGl0J3Mgbm90IG5lZWRlZCBhbnkgbW9yZS4KCjIwMTAtMTAtMDcgMTg6MjE6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiB1c2UgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgaWYgcG9zc2libGUKCSAgVXNlIG1vcmUgZWZmaWNpZW50IGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIGlmIHdlJ3JlIGNvbXBpbGluZyBhZ2FpbnN0CgkgIEdMaWIgPj0gMi4yNi4KCjIwMTAtMTAtMDcgMTg6MTk6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZha2VzcmM6IHVzZSBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSBpZiBwb3NzaWJsZQoJICBVc2UgbW9yZSBlZmZpY2llbnQgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgaWYgd2UncmUgY29tcGlsaW5nIGFnYWluc3QKCSAgR0xpYiA+PSAyLjI2LgoKMjAxMC0xMC0wNyAxNzo1MzoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgaWRlbnRpdHk6IHVzZSBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSBhbmQgcmVtb3ZlIHdvcmstYXJvdW5kIGZvciBvbGQgR0xpYiB2ZXJzaW9ucyBpZiBwb3NzaWJsZQoJICBVc2UgbW9yZSBlZmZpY2llbnQgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgaWYgd2UncmUgY29tcGlsaW5nIGFnYWluc3QKCSAgR0xpYiA+PSAyLjI2LCBhbmQgYWxzbyByZW1vdmUgd29yay1hcm91bmQgZm9yIGdfb2JqZWN0X25vdGlmeSgpIHRocmVhZC0KCSAgc2FmZXR5IGlzc3VlcyB3aXRoIG9sZGVyIEdMaWIgdmVyc2lvbnMgaWYgaXQncyBub3QgbmVlZGVkIGFueSBtb3JlLgoKMjAxMC0xMC0wNyAxNzoyMzoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWRzOiB1c2UgbmV3IGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIGZvciBjYXBzIG5vdGlmaWVzIGlmIGF2YWlsYWJsZQoJICBJZiB3ZSdyZSBidWlsZGluZyBhZ2FpbnN0IEdMaWIgPj0gMi4yNi4wLCB3ZSBjYW4gdXNlIHRoZSBtb3JlIGVmZmljaWVudAoJICBnX29iamVjdF9ub3RpZnlfYnlfY2FwcygpLCB3aGljaCBhdm9pZHMgdGhlIHBhcmFtIHNwZWMgbG9va3VwLgoKMjAxMC0xMC0wNyAxNjoyNzoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IHJlbW92ZSB1bm5lY2Vzc2FyeSBnX29iamVjdF9ub3RpZnkoKSBjYWxsCgkgIEdPYmplY3Qgd2lsbCBkbyB0aGF0IGZvciB1cyB3aGVuIGdfb2JqZWN0X3NldCooKSBpcyBjYWxsZWQuCgoyMDEwLTEwLTA3IDE5OjE4OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBkb2NzOiB1cGRhdGUgcW9zIGRlc2lnbiBkb2MKCSAgRml4IHNvbWUgdHlwb3MuCgkgIGNoYW5nZSB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgcXVhbGl0eSBmaWVsZCBmb3IgdmlkZW8gZGVjb2RlcnMgdG8gc29tZXRoaW5nIHRoYXQKCSAgbWFrZXMgbW9yZSBzZW5zZS4KCjIwMTAtMTAtMDUgMTc6MDI6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkgIEFkZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gdGVtcCBkaXJlY3RvcmllcyB0byBDUlVGVF9ESVJTCgoyMDEwLTEwLTA1IDE1OjA1OjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBsZm9jb250cm9sc291cmNlOiB1c2UgbWF0aC1jb21wYXQuaCBmb3IgTV9QSQoKMjAxMC0xMC0wNSAxNDo0NTowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RpbmZvOiByZW1vdmUgcmFuZG9tIE1TVkMgY29tcGF0aWJpbGl0eSBkZWZpbmUgZm9yIE1fUEkgdGhhdCBkb2Vzbid0IGJlbG9uZyBoZXJlCgkgIENvZGUgdGhhdCBuZWVkcyB0aGlzIHNob3VsZCBpbmNsdWRlIGdzdC9tYXRoLWNvbXBhdC5oIG9yIHVzZSBHX1BJLgoKMjAxMC0xMC0wNSAxNDoxNjoxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvbWF0aC1jb21wYXQuaDoKCSAgZ3N0OiBhZGQgbWF0aC1jb21wYXQuaCBoZWFkZXIKCSAgQWRkIG1pbmltYWwgbWF0aC1jb21wYXRoLmggaGVhZGVyIHdoZXJlIHdlIGNhbiBkZWZpbmUgZmFsbGJhY2sKCSAgdmVyc2lvbnMgZm9yIG1pc2NlbGxhbmVvdXMgbWF0aCBmdW5jdGlvbnMgdGhhdCBhcmVuJ3QgYWx3YXlzCgkgIGF2YWlsYWJsZSwgc28gd2UgZG9uJ3QgaGF2ZSB0byBkdXBsaWNhdGUgdGhpcyBpbiBwbHVnaW5zLgoJICBUaGUgaGVhZGVyIGlzIG5vdCBpbmNsdWRlZCBieSBkZWZhdWx0LCBzbyBuZWVkcyB0byBiZQoJICBpbmNsdWRlZCBleHBsaWNpdGx5IGZvciBub3cuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzA4MDIKCjIwMTAtMTAtMDUgMTE6NDc6NTkgKzAyMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weToKCSAgdG9vbHM6IGZpeCBwYXJzaW5nIG9mIHRpbWVzdGFtcCBpbiBnc3QtcGxvdC10aW1lbGluZQoKMjAxMC0wOS0yNSAxNDoyNDo0NiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZG9uJ3QgdGFrZSBwcmVyb2xsLWxvY2sgaW4gZ2V0X3Byb3BlcnR5CgkgIFVzZSBhdG9taWMgb3BzIHRvIHJlYWQgYW5kIHdyaXRlIG1vcmUgcHJvcGVydGllcy4gVGFraW5nIHRoZSBwcmVyb2xsIGxvY2sgaW4gZ2V0X3Byb3BlcnR5CgkgIGNhbiBsb2NrIHVwIGFwcGxpY2F0aW9ucyByZWFkaW5nIHRoZSBwcm9wZXJ0eSBkdXJpbmcgcHJlcm9sbC4KCjIwMTAtMTAtMDIgMTg6MTE6MzIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IGFkZCBhIGZpeG1lIGZvciAwLjExCgoyMDEwLTEwLTA0IDE1OjQ5OjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZm9ybWF0IG5lZ2F0aXZlIHZhbHVlcyBiZXR0ZXIKCSAgRm9ybWF0IG5lZ2F0aXZlIHZhbHVlcyBwcm9wZXJseSBpbiB0aGUgZGVidWcgbG9nLgoKMjAxMC0xMC0wMyAyMzo0MToyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJICBiaXRyZWFkZXI6IEZpeCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGNvbXBpbGVyIHdhcm5pbmdzCgkgIGdjYyBkb2Vzbid0IG5vdGljZSB0aGF0IHRoZSBjaGVjayBhc3NlcnRpb24gbWFjcm9zIHdpbGwgYWJvcnQKCSAgZnVydGhlciBleGVjdXRpb24gb2YgdGhlIHRlc3RzLgoKMjAxMC0xMC0wMyAyMzozMjowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGV3cml0ZXI6IEFkZCBpbmxpbmUgdmFyaWFudHMgb2YgYWxsIGltcG9ydGFudCBmdW5jdGlvbnMKCjIwMTAtMTAtMDMgMTU6Mjc6MzcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJICBiaXRyZWFkZXI6IEFkZCBpbmxpbmVkIGFuZCB1bmNoZWNrZWQgdmVyc2lvbnMgb2YgdGhlIGltcG9ydGFudCBmdW5jdGlvbnMKCSAgQVBJOiBnc3RfYml0X3JlYWRlcl9za2lwX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX3NraXBfdG9fYnl0ZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYml0X3JlYWRlcl9nZXRfYml0c191aW50MTZfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfZ2V0X2JpdHNfdWludDMyX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX2dldF9iaXRzX3VpbnQ2NF91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYml0X3JlYWRlcl9nZXRfYml0c191aW50OF91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYml0X3JlYWRlcl9wZWVrX2JpdHNfdWludDE2X3VuY2hlY2tlZAoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX3BlZWtfYml0c191aW50MzJfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfcGVla19iaXRzX3VpbnQ2NF91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYml0X3JlYWRlcl9wZWVrX2JpdHNfdWludDhfdW5jaGVja2VkCgkgIFRoaXMgYWxvbmUgbWFrZXMgZmxhY3BhcnNlIGFib3V0IDMgdGltZXMgZmFzdGVyLgoKMjAxMC0xMC0wMyAxNDo1OTo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgIGJ5dGV3cml0ZXI6IEFkZCBndWFyZHMgdG8gdGhlIGlubGluZWQgZ2V0X3Bvcy9nZXRfcmVtYWluaW5nL2dldF9zaXplL2V0YyBmdW5jdGlvbnMKCjIwMTAtMTAtMDMgMTQ6MjQ6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSAgYml0cmVhZGVyOiBPcHRpbWl6ZSBwZWVrX2JpdHMvZ2V0X2JpdHMgYSBiaXQKCSAgVXNlIGxvY2FsIHZhcmlhYmxlcyBpbnN0ZWFkIG9mIGRlcmVmZXJlbmNpbmcgdGhlIGJpdHJlYWRlcgoJICBwb2ludGVyIGFsbCB0aGUgdGltZSBhbmQgZG9uJ3QgY29weSB0aGUgcmVhZGVyIGZvciBwZWVrX2JpdHMuCgoyMDEwLTA5LTI3IDE5OjI5OjI0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0ZGF0ZXRpbWU6IEZpeCBzdHJpbmcgc2VyaWFsaXphdGlvbgoJICBDb3JyZWN0bHkgc2VyaWFsaXplIHR6b2Zmc2V0IGFzIGEgZ3N0dmFsdWUKCjIwMTAtMDktMjQgMTI6MjI6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBpbXByb3ZlIGFkanVzdF90aW1lKCkKCSAgQWRkIHNvbWUgbW9yZSBjb21tZW50cy4KCSAgTWFrZSBzdXJlIHdlIGRvbid0IGVuZCB1cCB3aXRoIG5lZ2F0aXZlIHRpbWVzdGFtcHMuCgoyMDEwLTA1LTI2IDIwOjI5OjIyICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiByZW5kZXJkZWxheSBuZWVkcyB0byBiZSBzdWJ0cmFjdGVkIGluIGFkanVzdF90aW1lKCkKCSAgbGF0ZW5jeSBpcyBhbHJlYWR5IHNpbmstbGF0ZW5jeSArIHJlbmRlci1kZWxheSwgYW5kIGhlcmUgd2Ugb25seQoJICB3YW50IHRvIGRlYWwgd2l0aCB0aGUgc2luay1sYXRlbmN5LgoJICBGaXhlcyAjNjMwNDM2CgoyMDEwLTA5LTI0IDAwOjEzOjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdG1hcnNoYWwuYzoKCSAgd2luMzI6IGRlZmluZSBHU1RfUEFDS0FHRV9SRUxFQVNFX0RBVEVUSU1FIGluIHdpbjMyIGNvbmZpZy5oIGFzIHdlbGwKCjIwMTAtMDktMjMgMjA6NTc6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHN0cmluZ3MKCjIwMTAtMDktMjMgMjA6NDg6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IHByaW50IEdTVF9QQVJBTV9NVVRBQkxFXyogcHJvcGVydHkgZmxhZ3MKCjIwMTAtMDUtMDQgMDk6MzY6NDMgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBNYWtlIGEgV0FSTklORyBpbnRvIGEgREVCVUcgc3RhdGVtZW50CgkgIEZpeGVzIGJ1ZyAjNjMwNDM3LgoKMjAxMC0wMS0xMiAxNzoxMDo1OSArMDEwMCAgVHJvbmQgQW5kZXJzZW4gPHRyb25kLmFuZGVyc2VuQHRhbmRiZXJnLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogZml4IHJhY3kgc2h1dGRvd24gY2xvY2sgaWQgbGVhawoJICBDbG9jayBJRHMgd2VyZSBsZWFrZWQgaWYgdGhlIGNsb2NrIGdvdCBkaXNwb3NlZCBiZWZvcmUgdGhlIHdvcmtlciB0aHJlYWQKCSAgZ290IGEgY2hhbmNlIHRvIHJlYXAgdW5zY2hlZHVsZWQgZW50cmllcy4KCSAgRml4ZXMgYnVnICM2MzA0MzkuCgoyMDEwLTA5LTIzIDE4OjE4OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGF2b2lkIHVzZWxlc3MgbWVtY3B5CgkgIEJlY2F1c2Ugb2YgdGhlIGF3a3dhcmQgcmVmY291bnRpbmcgaW4gcHJlcGFyZV9vdXRwdXRfYnVmZmVyLCB3ZSBtaWdodCBlbmQgdXAKCSAgd2l0aCB3cml0YWJsZSBidWZmZXJzIHRoYXQgcG9pbnQgdG8gdGhlIHNhbWUgZGF0YS4gQ2hlY2sgZm9yIHRob3NlIGNhc2VzIHNvIHRoYXQKCSAgd2UgYXZvaWQgYSB1c2VsZXNzIG1lbWNweSBhbmQga2VlcCB2YWxncmluZCBxdWlldC4KCSAgRml4ZXMgIzYyODE3NgoKMjAxMC0wOS0yMyAxNDozNzo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogZml4ICdtYWtlIGNoZWNrJyBidWlsZCBmb3Igc2V0dXBzIHdoZXJlIG5vIGMrKyBjb21waWxlciBpcyBhdmFpbGFibGUKCSAgT25seSB0cnkgdG8gYnVpbGQgKHBzZXVkby0pQysrIHVuaXQgdGVzdCBpZiBhIHdvcmtpbmcgQysrIGNvbXBpbGVyIGhhcyBiZWVuCgkgIGZvdW5kLCBvdGhlcndpc2UgdGhlIGJ1aWxkIHdpbGwgZmFpbC4gKFdlIGRvIHRoaXMgdG8gbWFrZSBzdXJlIG91ciBoZWFkZXJzCgkgIGFyZSAnQysrIGNsZWFuJykuCgoyMDEwLTA5LTIzIDEwOjA4OjA1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZzogQWRkcyBHU1RfVEFHX0dFT19MT0NBVElPTl9IT1JJWk9OVEFMX0VSUk9SCgkgIEFkZHMgYSBuZXcgdGFnIHRvIGluZGljYXRlIHRoZSBlcnJvciBpbiBob3Jpem9udGFsIHBvc2l0aW9uaW5nCgkgIGluIG1ldGVycy4gVGhpcyBpcyBvbmUgb2YgdGhlIGF2YWlsYWJsZSAnZ3BzIGVycm9yJyBmaWVsZHMgaW4KCSAgZXhpZiwgZm9yIGV4YW1wbGUuCgkgIEFQSTogR1NUX1RBR19HRU9fTE9DQVRJT05fSE9SSVpPTlRBTF9FUlJPUgoKMjAxMC0wOS0yMyAxNTozNDo1NCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogdXNlIGEgbmVzdGVkIGxvY2sgdG8gYXZvaWQgcmVmZmluZyB0aGUgcGVlciIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5YjQyNGIxNTcwMzY2YjEwNzQ2YTc2MmU4YzljNGMxYjM1YjIxZTkxLgoKMjAxMC0wOS0yMyAxNToxMjozMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZW1vdmUgdmFyIG9ubHkgdXNlZCBmb3IgZGVidWcgc3RhdGVtZW50CgoyMDEwLTA5LTA3IDE2OjU2OjM4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdXNlIGEgbmVzdGVkIGxvY2sgdG8gYXZvaWQgcmVmZmluZyB0aGUgcGVlcgoJICBGaXhlcyAjNTAzNTkyCgoyMDEwLTA3LTE1IDE1OjQ3OjM2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNwcC5jYzoKCSAgdGVzdHM6IHJlYnVpbGQgb25lIHRlc3QgdXNpbmcgY3BwCgkgIFRoaXMgYWltcyB0byBjYXRjaCBjcHAgaXNzdWVzIGluIGNvcmUuIEFkZCBjKysgYm9pbGVycGxhdGUgdG8gY29uZmlndXJlLgoKMjAxMC0wOS0yMSAxODozMzoyNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYWEwZDFkMCB0byA1ZTNjOWJmCgoyMDEwLTA5LTE5IDE2OjEwOjE2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIHRlc3RzOiBIYW5kbGUgbmV3IGFzc2VydGlvbiBpbiBnc3RfYWRhcHRlcl9tYXNrZWRfc2Nhbl91aW50MzIKCjIwMTAtMDktMTggMTk6Mjk6MDkgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IEFkZCBjaGVjayBmb3IgcGF0dGVybiBiaXRzIG5vdCBpbiBtYXNrCgoyMDEwLTA5LTE3IDE5OjUzOjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogVXNlIGdfZmlsZV90ZXN0KCkgaW5zdGVhZCBvZiBhY2Nlc3MoKSB3aGljaCBkb2VzIG5vdCBleGlzdCBvbiBNU1ZDNgoJICBGaXhlcyBidWcgIzYyOTQ5NC4KCjIwMTAtMDktMTcgMTc6MzQ6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVybGlzdDogYWRkIGZ1bmN0aW9uIHRvIGFkZCBhIGxpc3Qgb2YgYnVmZmVycwoJICBBZGQgYSBmdW5jdGlvbiB0byBhZGQgYSBsaXN0IG9mIGJ1ZmZlcnMgdG8gdGhlIGJ1ZmZlcmxpc3QuCgoyMDEwLTA5LTE3IDE1OjUxOjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZGFwdGVyOiBhZGQgZnVuY3Rpb24gdG8gZ2V0IGEgbGlzdCBvZiBidWZmZXJzCgkgIEFkZCBhIGZ1bmN0aW9uIHRvIHJldHJpZXZlIGEgbGlzdCBvZiBidWZmZXJzIGNvbnRhaW5pbmcgdGhlIGZpcnN0IE4gYnl0ZXMgZnJvbQoJICB0aGUgYWRhcHRlci4gVGhpcyBjYW4gYmUgZG9uZSB3aXRob3V0IGEgbWVtY3B5IGFuZCBzaG91bGQgbWFrZSBpdCBwb3NzaWJsZSB0bwoJICB0cmFuc2ZlciB0aGUgbGlzdCB0byBhIEdzdEJ1ZmZlckxpc3QgbGF0ZXIuCgoyMDEwLTA5LTE3IDE1OjA3OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHJldXNlIG1vcmUgZGF0YSBpbiBfcGVlaygpCgkgIE9wdGltaXplIF9wZWVrKCkgc29tZSBtb3JlIGJ5IHJldXNpbmcgYWxyZWFkeSBhc3NlbWJsZWQgZGF0YSB3aGVuIHdlIGNhbi4KCjIwMTAtMDktMTcgMTM6NTc6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogb3B0aW1pemUgX3Rha2UoKSBhIGxpdHRsZSBtb3JlCgkgIFdoZW4gd2UgaGF2ZSBhbHJlYWR5IGFzc2VtYmxlZCBzb21lIGRhdGEgYmVmb3JlLCByZXVzZSB0aGlzIGRhdGEgYW5kIG9ubHkgY29weQoJICB0aGUgcGFydCB0aGF0IGlzIG5ldy4KCjIwMTAtMDktMTcgMTI6NDg6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogcmVmYWN0b3IgYWRhcHRlciB0YWtlCgkgIE1vdmUgc29tZSBjb21tb24gY29kZSBpbnRvIG9uZSBwbGFjZQoKMjAxMC0wOS0xNyAxMjo0MDoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgYWRhcHRlcjogYWRkIHN1cHBvcnQgZm9yIDAgc2l6ZWQgYnVmZmVycwoJICBBZGQgc3VwcG9ydCBmb3IgMCBzaXplZCBidWZmZXJzLiBUaGlzIGlzIGludGVyZXN0aW5nIGluIGNvbWJpbmF0aW9uIHdpdGggdGhlCgkgIHRpbWVzdGFtcCBmdW5jdGlvbnMuCgkgIEZpeGVzICM2Mjk1NTMKCjIwMTAtMDktMTcgMTA6MDE6MDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDoKCSAgcHdnOiBNYWtlIGEgc2VudGVuY2UgY2xlYXJlci4KCjIwMTAtMDktMTYgMTk6Mjc6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBtYWtlIHN1cmUgZ3N0cmVhbWVyIGhhcyBiZWVuIGluaXRpYWxpemVkIHdoZW4gY3JlYXRpbmcgZWxlbWVudHMKCSAgQWRkIGdzdF9pc19pbml0aWFsaXplZCgpIGd1YXJkIHRvIGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgpLCBzbwoJICBwZW9wbGUgd2hvIGZvcmdvdCB0byBjYWxsIGdzdF9pbml0KCkgZ2V0IGEgdXNlZnVsIHdhcm5pbmcgZm9yIHdoYXQKCSAgc2VlbXMgdG8gYmUgYSBjb21tb24gZW5vdWdoIG1pc3Rha2UuCgoyMDEwLTA5LTE2IDAwOjM3OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogbWlub3IgZ3N0X3F1ZXJ5X2FkZF9idWZmZXJpbmdfcmFuZ2UoKSBjb2RlIHJlZmxvdwoJICBTcHJpbmtsZSBzb21lIEdfVU5MSUtFTFkoKSwgcmV0dXJuIFRSVUUvRkFMU0UgY29uc3RhbnRzLCBhdm9pZCBhbgoJICB1bm5lY2Vzc2FyeSBnX3ZhbHVlX3Vuc2V0KCksIG1vdmUgZ192YWx1ZV9pbml0KCkrc2V0X2ludDY0X3JhbmdlKCkKCSAgY2xvc2VyIHRvIHdoZXJlIHRoZXkncmUgbmVlZGVkLgoKMjAxMC0wOS0xNiAwMDozMDoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGdzdF9xdWVyeV9hZGRfYnVmZmVyaW5nX3JhbmdlKCkgb3B0aW1pc2F0aW9ucwoJICBEb24ndCBjcmVhdGUgYSBuZXcgR1ZhbHVlQXJyYXkgY29weSBmb3IgZXZlcnkgc2luZ2xlIF9hZGRfYnVmZmVyaW5nX3JhbmdlKCkKCSAgY2FsbCwgYnV0IGFwcGVuZCB0byB0aGUgZXhpc3RpbmcgdmFsdWUgYXJyYXkgb3duZWQgYnkgdGhlIHN0cnVjdHVyZSBpbnN0ZWFkLgoKMjAxMC0wOS0xNiAwMDowMzozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogbWljcm8tb3B0aW1pc2F0aW9uIGZvciBzb21lIHNldHRlciBmdW5jdGlvbnMKCSAgU3BsaXQgb3V0IGZ1bmN0aW9ucyB0aGF0IGRvIHRoZSBhY3R1YWwgd29yaywgc28gd2UgYXZvaWQgZG9pbmcKCSAgdGhlIHNhbWUgZ19yZXR1cm5faWZfZmFpbCgpIGNoZWNrcyBtdWx0aXBsZSB0aW1lcyBmb3IgZWFjaCBjYWxsLgoKMjAxMC0wOS0xNSAyMzo0Mjo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZTogYWRkIGdzdF9zdHJ1Y3R1cmVfe2lkX310YWtlX3ZhbHVlKCkKCSAgQWRkIF9zZXRfdmFsdWUoKSB2YXJpYW50cyB0aGF0IHRha2Ugb3duZXJzaGlwIG9mIHRoZSB2YWx1ZSBwYXNzZWQKCSAgaW5zdGVhZCBvZiBtYWtpbmcgYSBjb3B5IG9mIHRoZSB2YWx1ZS4gVGhpcyBpcyB1c2VmdWwgZm9yIHNldHRpbmcKCSAgdmFsdWVzIHRvIHRoaW5ncyB0aGF0IGFyZW4ndCByZWZjb3VudGVkIChlLmcuIEdWYWx1ZUFycmF5cyBvcgoJICBzdHJpbmdzIG9yIHN0cmluZyBhcnJheXMsIGV0Yy4pLgoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfdGFrZV92YWx1ZSgpCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9pZF90YWtlX3ZhbHVlKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTgzMQoKMjAxMC0wOS0xNiAxOToxOToyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBmaXggZG9jIHN0cmluZywgd2UgcG9zdCBlbGVtZW50IG1lc3NhZ2VzCgoyMDEwLTA5LTE2IDE5OjA2OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGFkZCBtZXNzYWdlLWZvcndhcmQgb3B0aW9uCgkgIEFkZCBhbiBvcHRpb24gdG8gZm9yd2FyZCBhbGwgdGhlIGludGVybmFsIG1lc3NhZ2VzIHRoYXQgd291bGQgb3RoZXJ3aXNlIGJlCgkgIGZpbHRlcmVkIHN1Y2ggYXMgRU9TLCBTRUdNRU5UIGFuZCBBU1lOQyBtZXNzYWdlcy4KCSAgVGhpcyBhbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvLCBmb3IgZXhhbXBsZSwgZGV0ZWN0IHRoYXQgYSBwYXJ0aWFsIHBpcGVsaW5lIGlzCgkgIHByZXJvbGxlZCBvciByZWFjaGVkIGVvcy4KCSAgVGhlIG9yaWdpbmFsIG1lc3NhZ2VzIGFyZSB3cmFwcGVkIGluc2lkZSBhbiBlbGVtZW50IG1lc3NhZ2UgYmVjYXVzZSB0aGUgcGFyZW50CgkgIGJpbnMgYXJlIG5vdCBzdXBwb3NlZCB0byBzZWUgdGhvc2UgaW50ZXJuYWwgbWVzc2FnZXMgZXNjYXBlLgoKMjAxMC0wOS0xMiAxNjo1MDoxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogdXNlIHN0cnN0cigpIGluc3RlYWQgb2YgZ19zdHJzdHJfbGVuKCkKCSAgU2F2ZXMgdXMgYSBzdHJsZW4oKSBjYWxsLgoKMjAxMC0wOS0xNSAxMzoyOTo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogb25seSBwb3N0IGJ1ZmZlcmluZyBtZXNzYWdlIHdoZW4gcGVyY2VudCBjaGFuZ2VkCgoyMDEwLTA5LTE1IDEzOjE1OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhbHdheXMgdXBkYXRlIGJ1ZmZlcmluZyBzdGF0dXMKCSAgVXBkYXRlIHRoZSBidWZmZXJpbmcgc3RhdHVzIGV2ZW4gd2hlbiB3ZSBhcmUgbm90IHVzaW5nIGEgcXVldWUgc28gdGhhdCBFT1MgY2FuCgkgIHByb3Blcmx5IGZpbmlzaCB0aGUgYnVmZmVyaW5nLgoKMjAxMC0wOS0xMyAyMDozOTo1MCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogRml4IGZsdXNoLXN0b3AgZXZlbnQgaGFuZGxpbmcKCSAgQSBmbHVzaC1zdG9wIGV2ZW50IHdvdWxkIG1ha2UgYSBwYWQgdW5mbHVzaGluZywgY2F1c2luZyBpdAoJICB0byBzdGFydCBhY3RpbmcgYXMgYW4gYWN0aXZhdGVkIHBhZC4gVGhpcywgZm9yIGV4YW1wbGUsCgkgIGNvdWxkIGxlYWQgdG8gdGhlIGNoYWluIGZ1bmN0aW9uIGJlaW5nIGNhbGxlZCB3aGVuIHN0dWZmCgkgIGlzbid0IGluaXRpYWxpemVkLgoJICBUaGlzIGNvdWxkIGhhcHBlbmQgd2hlbiBzZXR0aW5nIHF0ZGVtdXggdG8gTlVMTCB3aGlsZSBhIHNlZWsKCSAgd2FzIGJlaW5nIGhhbmRsZWQgaW4gdGhlIHVwc3RyZWFtIGZpbGVzcmMgKGluIHB1c2ggbW9kZSkuCgkgIFRoaXMgcGF0Y2ggbWFrZXMgaXQgY2hlY2sgaWYgaXQgaXMgYWN0aXZhdGVkIGJlZm9yZSBzZXR0aW5nCgkgIGl0IHRvIHVuZmx1c2hpbmcuCgoyMDEwLTA5LTEzIDExOjE3OjM0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgZG9jczogZml4IHdhcm5pbmdzIHBvaW50ZWQgb3V0IGJ5IGd0ay1kb2MKCjIwMTAtMDktMTMgMDk6NTA6NTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJICB0YXNrcG9vbDogbWFrZSBkZWJ1ZyBvbmx5IGNvZGUgY29uZGl0aW9uYWwKCjIwMTAtMDktMTAgMTU6MDc6MDMgLTA0MDAgIENvbGluIFdhbHRlcnMgPHdhbHRlcnNAdmVyYnVtLm9yZz4KCgkqIGdzdC9nc3RlcnJvci5oOgoJICBpbnRyb3NwZWN0aW9uOiBCdWlsZCB3aXRoIGxhdGVzdCBnLWkKCSAgSGlkZSBhIGNvbXBhdGliaWxpdHkgdHlwZWRlZi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTI0MQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUwNjE2CgoyMDEwLTA5LTA5IDIyOjI0OjM4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogZG9uJ3QgbGVhayBlbnRyaWVzIGZvciBibGFja2xpc3RlZCBmaWxlcwoKMjAxMC0wOS0wOSAyMTo1OToyOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSAgY2hlY2tzOiBhbmQgY2hlY2sgdGhlIHJpZ2h0IGVudi12YXIgKGZpeHVwIGxhc3QgY29tbWl0KQoKMjAxMC0wOS0wOSAyMTo1NjoyOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkgIHRlc3RzOiBhbGxvdyBydW5uaW5nIHN0YXRlIHRlc3RzIGZvciBhbGwgZWxlbWVudHMKCSAgTm93IG9uZSBjYW4gdXNlIEdTVF9OT19TVEFURV9JR05PUkVfRUxFTUVOVFM9MSBtYWtlIGdlbmVyaWMvc3RhdGVzLmNoZWNrCgkgIHRvIHRyeSBlbGVtZW50cyB0aGF0IHdvdWxkIG5vcm1hbHkgYmUgc2tpcHBlZC4KCjIwMTAtMDktMDYgMTU6MTY6MTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogYXZvaWQgc3RyaW5nIGNyZWF0aW9uIHdoZW4gbm90IG5lZWRlZAoKMjAxMC0wOS0wOSAxNjoxMTo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBpZGVudGl0eSBpcyBHQVAgZmxhZyBhd2FyZSwgbm8gbmVlZCB0byBsZXQgaXQgYmUgdW5zZXQgYnkgYmFzZXRyYW5zZm9ybQoKMjAxMC0wOS0wOSAxNTo1NzoxNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBhZGQgYSBzeW5jIGJ1cyBoYW5kbGVyIGFuZCBtb3ZlIHN0YXRlLWNoYW5nZSBsb2dnaW5nIHRoZXJlCgkgIFRoZSBzeW5jIGhhbmRsZXIgaXMgY2FsbGVkIGZvciBhbGwgbWVzYWdlcywgdGhlIGV2ZW50IGxvb3Agd2UgcHJldmlvdXNseSB1c2VkCgkgIHdhcyBub3QuIEluIHRoZSBzeW5jIGhhbmRsZXIgdHJpZ2dlciBwaXBlbGluZSBkb3QgZHVtcHMgYW5kIGNhbGwgYWNjZXNzIGZvciBhCgkgIGZpbGUgaW4gdG1wLWRpciB0byBhZGQgbWFya2VycyBpbnRlcmNlcHRhYmxlIGJ5IHN0cmFjZSBhbmQgY28uCgoyMDEwLTA5LTA4IDE4OjQxOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHNpbXBsaWZ5IGNvZGUgYSBiaXQKCSAgTm8gbmVlZCB0byBjYWxsIGdfc2xpc3RfbGVuZ3RoKCkgaGVyZS4KCjIwMTAtMDktMDggMDk6Mzc6NDIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgYSB1bmNoZWNrZWQgdmFyaWFudCBmb3IgcHVsbAoJICBBZGQgaW50ZXJuYWwgX2dldF9yYW5nZV91bmNoZWNrZWQgdGhhdHMgaXMgY2FsbGVkIGZyb20gX2dldF9yYW5nZSBhbmQKCSAgX3B1bGxfcmFuZ2UuCgoyMDEwLTA5LTA3IDIzOjQ4OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCB1Z2x5L2JhZC9mZm1wZWcgcGtnLWNvbmZpZyBkaXJzIHRvIFBLR19DT05GSUdfUEFUSAoJICBTbyB3ZSBjYW4gZmlndXJlIG91dCBwbHVnaW4gZGlyZWN0b3JpZXMgb2Ygb3RoZXIgbW9kdWxlcyBwcm9wZXJseSBpbgoJICB0aGUgdW5pbnN0YWxsZWQgc2V0dXAgY2FzZSwgZm9yIHVuaXQgdGVzdHMgdGhhdCBuZWVkIGVsZW1lbnRzIGZyb20KCSAgb3RoZXIgbW9kdWxlcy4KCjIwMTAtMDktMDcgMTI6MDE6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkgIGRvY3M6IHVwZGF0ZSBwbHVnaW4gZG9jcyBmb3IgcmVjZW50IGNoYW5nZXMKCSAgQW5kIHNvcnRlZCBoaWVyYXJjaHkKCjIwMTAtMDktMDcgMTE6NDE6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjMmUxMGJmIHRvIGFhMGQxZDAKCjIwMTAtMDktMDcgMTE6MDk6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IGRvbid0IHVzZSBnc3Rfc3RydWN0dXJlX2ZvcmVhY2goKSBvbiBOVUxMIHBvaW50ZXJzCgoyMDEwLTA5LTA2IDIwOjE5OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zIGZvciBuZXcgc3RyaW5ncwoKMjAxMC0wOS0wNiAyMDoxNjoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgZ3N0ZXJyb3I6IGFkZCBkZWZhdWx0IGVycm9yIG1lc3NhZ2UgZm9yIEdTVF9MSUJSQVJZX0VSUk9SX0VOQ09ERQoJICBObyBpZGVhIHRob3VnaCB3aHkgd2UgZXZlbiBoYXZlIEdTVF9MSUJSQVJZX0VSUk9SX0VOQ09ERSBvciB3aGVuIG9uZQoJICB3b3VsZCB3YW50IHRvIHVzZSB0aGF0IGluc3RlYWQgb2YgR1NUX1NUUkVBTV9FUlJPUl9FTkNPREUuCgoyMDEwLTA5LTA2IDIwOjA2OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlcnJvci5jOgoJICBnc3RlcnJvcjogYXZvaWQgcG9pbnRsZXNzIHN0cmluZyBjb3B5aW5nCgkgIFRoZXJlJ3Mgbm8gbmVlZCB0byBjcmVhdGUgdGhlc2UgdGFibGVzIHdpdGggZHVwbGljYXRlcyBvZiB0aGUKCSAgdW50cmFuc2xhdGVkIGVycm9yIG1lc3NhZ2Ugc3RyaW5nIGNvbnN0YW50cywgd2UgY2FuIGp1c3QgdXNlCgkgIG9sZC1mYXNoaW9uZWQgc3dpdGNoL2Nhc2UgYW5kIGNhbGwgZ2V0dGV4dCBkaXJlY3RseS4gVGhpcyBhbHNvCgkgIG1ha2VzIHRoaW5ncyBzbGlnaHRseSBtb3JlIHRocmVhZCBzYWZlIGFuZCBtb3JlIHJvYnVzdCB0byBiYWQKCSAgaW5wdXQgKGludmFsaWQgZXJyb3IgY29kZXMpLgoKMjAxMC0wOS0wNiAxODozMzo1MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBjaGVjazogQXZvaWQgZXJyb3I6IGFycmF5IHN1YnNjcmlwdCBpcyBhYm92ZSBhcnJheSBib3VuZHMKCSAgQ291bGQgaGF2ZSBjb21lIHVwIHdpdGggc29tZXRoaW5nIGJldHRlciBmb3IgbXkgMjAwMHRoIGNvbW1pdAoJICB0byBHU3RyZWFtZXIuLi4KCjIwMTAtMDktMDYgMTc6MDE6MTkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZG9jczogZ2l2ZSBhIHByYWN0aWNhbCBleGFtcGxlIGZvciB0aGUgZ3N0X29iamVjdF9oYXNfYW5jaGVzdG9yCgoyMDEwLTA5LTA2IDE0OjMzOjQ0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IHVzZSB0aGUgcGFyZW50X2NsYXNzIGRlZmluZWQgYnkgR19ERUZJTkVfVFlQRQoKMjAxMC0wOS0wNiAxNDozMjowMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogdHVuZSBza2lwcGluZyBjaGVja3MgaWYgd2UgaGF2ZSBkaXNhYmxlZCBzdWJzeXN0ZW1zCgkgIFNraXAgQUJJIHRlc3RzIGlmIHNvbWUgc3Vic3lzdGVtcyBhcmUgb2ZmLiBSZW1vdmUgRElTQUJMRV9HU1RfREVCVUcgZnJvbQoJICBza2lwcGluZyBleHBvcnQgY2hlY2tzIGFzIHRoaXMgaXMgc2FmZSBub3cuCgoyMDEwLTA5LTA2IDE0OjA5OjUyICswMzAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IFVzZSB0aGUgY29ycmVjdCB2YXJpYWJsZSBmb3IgZGVidWcgbWVzc2FnZQoJICBEZWJ1ZyBwcmludCB3YXMgdXNpbmcgYSB2YXJpYWJsZSB0aGF0IHdhcyBub3QgaW5pdGlhbGl6ZWQuCgoyMDEwLTA4LTEwIDE0OjA1OjIyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudC1kZXRhaWxzOiBhbGxvdyBmb3IgYXJiaXRyYXJ5IGVsZW1lbnQgZGV0YWlscwoJICBBZGQgYSBHc3RTdHJ1Y3R1cmUgdG8gR3N0RWxlbWVudENsYXNzIGFuZCBHc3RFbGVtZW50RmFjdG9yeS4gQWRkIHNldHRlcnMvZ2V0dGVyLgoJICBIYW5kbGUgaXQgaW4gdGhlIHJlZ2lzdHJ5IGNvZGUuIFByaW50IGl0ZW1zIGluIGdzdC1pbnNwZWN0LgoJICBGaXhlcyAjMzk2Nzc0LgoJICBBUEk6IGdzdF9lbGVtZW50X2NsYXNzX3NldF9tZXRhX2RhdGEoKSwgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YV9kYXRhX2RldGFpbCgpCgoyMDEwLTA5LTA1IDE4OjU3OjU2IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZDNkOWFjZiB0byBjMmUxMGJmCgoyMDEwLTA5LTA1IDEyOjEzOjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gY2ExYzg2NyB0byBkM2Q5YWNmCgoyMDEwLTA5LTA1IDEwOjIyOjIwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBBZGQgbmV3IHN5bWJvbHMgZnJvbSBHc3RFbGVtZW50RmFjdG9yeUxpc3QKCSAgQW5kIGhlcmUncyBhIHJlbWluZGVyIHNpbmNlIEkgZm9yZ290IHRvIHB1dCB0aGVtIGluIG15IHByZXZpb3VzCgkgIGNvbW1pdC4KCSAgQVBJOiBnc3RfZWxlbWVudF9mYWN0b3J5X2xpc3RfZmlsdGVyCgkgIEFQSTogZ3N0X2VsZW1lbnRfZmFjdG9yeV9saXN0X2dldF9lbGVtZW50cwoJICBBUEk6IGdzdF9lbGVtZW50X2ZhY3RvcnlfbGlzdF9pc190eXBlCgkgIEFQSTogZ3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfZGVidWcKCSAgQVBJOiBnc3RfcGx1Z2luX2ZlYXR1cmVfcmFua19jb21wYXJlX2Z1bmMKCSAgQVBJOiBHc3RFbGVtZW50RmFjdG9yeUxpc3RUeXBlCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0FOWQoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9BVURJT1ZJREVPX1NJTktTCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0FVRElPX0VOQ09ERVIKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVDT0RBQkxFCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0RFQ09ERVIKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVNVVhFUgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9ERVBBWUxPQURFUgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9FTkNPREVSCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0ZPUk1BVFRFUgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NQVhfRUxFTUVOVFMKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTUVESUFfQVVESU8KCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTUVESUFfSU1BR0UKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTUVESUFfTUVUQURBVEEKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTUVESUFfU1VCVElUTEUKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTUVESUFfVklERU8KCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTUVESUFfQU5ZCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX01VWEVSCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX1BBUlNFUgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9QQVlMT0FERVIKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfU0lOSwoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9TUkMKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfVklERU9fRU5DT0RFUgoKMjAxMC0wOC0zMSAxMTozNzo0MiArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYnVmZmVyaW5nX3JhbmdlcyBxdWVyeSBzdXBwb3J0CgkgIEZpeGVzIGJ1ZyA2MjMxMjEKCjIwMTAtMDktMDMgMTk6NTg6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGdzdHF1ZXJ5OiBPbmx5IGZpbGwgdGhlIHN0YXJ0L3N0b3AgdmFsdWVzIG9mIHRoZSBidWZmZXJpbmcgcmFuZ2VzIGlmIGEgbm9uLU5VTEwgcG9pbnRlciB3YXMgcHJvdmlkZWQKCjIwMTAtMDgtMzEgMTE6MzU6MTIgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGlnYWxpYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RxdWVyeTogbmV3IGJ1ZmZlcmluZ19yYW5nZXMgQVBJCgkgIEFkZGVkIGEgbmV3IHF1ZXJ5IHR5cGUgdG8gcmV0cmlldmUgaW5mb3JtYXRpb25zIGFib3V0IHRoZSBhcmVhcyBvZiB0aGUKCSAgbWVkaWEgY3VycmVudGx5IGJ1ZmZlcmVkLiBTZWUgYnVnIDYyMzEyMS4KCSAgQVBJOiBnc3RfcXVlcnlfYWRkX2J1ZmZlcmluZ19yYW5nZQoJICBBUEk6IGdzdF9xdWVyeV9nZXRfbl9idWZmZXJpbmdfcmFuZ2VzCgkgIEFQSTogZ3N0X3F1ZXJ5X3BhcnNlX250aF9idWZmZXJpbmdfcmFuZ2UKCjIwMTAtMDgtMTYgMTk6MDE6MTUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICBHc3RFbGVtZW50RmFjdG9yeTogQWRkIGxpc3RpbmcgZmVhdHVyZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNjE4MQoKMjAxMC0wOS0wMiAxMjo0NDowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgZG9jczogbWVudGlvbiBHU1RfREVCVUdfT1BUSU9OUywgT1JDX0NPREUsIEdfREVCVUcgYW5kIEdfU0xJQ0UgZW52aXJvbm1lbnQgdmFyaWFibGVzCgkgIE1lbnRpb24gYSBmZXcgbW9yZSB1c2VmdWwgZW52aXJvbm1lbnQgdmFyaWFibGVzIGluIHRoZSAnUnVubmluZyBHU3RyZWFtZXIKCSAgYXBwbGljYXRpb25zJyBzZWN0aW9uIG9mIHRoZSBBUEkgcmVmZXJlbmNlLgoKMjAxMC0wOS0wMiAxNDoxNToyOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZha2VzcmM6IGZpeCB1c2Ugb2YgZW1wdHkgc3ViYnVmZmVycwoJICBSZW1vdmUgYSBzaG9ydCBjdXQgdGhhdCB3YXMgaWdub3Jpbmcgc3JjLT5kYXRhIGFsbG9jYXRpb24gbW9kZS4gQWxsCgkgIHRoZSBjYWxsZWQgY29kZS1wYXRoIGJlbG93IGhhbmRsZSBzaXplPT0wLgoKMjAxMC0wOS0wMiAwMDowMToyNSArMDEwMCAgSmVmZnJleSBTLiBTbWl0aCA8d2h5ZG91YnRAeWFob28uY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgRml4IGNhc3RzIGluIGEgYnVuY2ggb2YgaW5saW5lIGZ1bmN0aW9ucyB0byBtYWludGFpbiBjb3JyZWN0IGNvbnN0LW5lc3MKCSAgTWFrZSBjb2RlIGluY2x1ZGluZyBHU3RyZWFtZXIgaGVhZGVycyBjb21waWxlIHdpdGggLVdjYXN0LXF1YWwgYnkKCSAgbWFpbnRhaW5pbmcgY29uc3QtbmVzcyB3aGVuIGNhc3RpbmcuIEFsc28gZml4IGZ1bmN0aW9uIHNpZ25hdHVyZSBvZgoJICBnc3RfYnl0ZV93cml0ZXJfc2V0X3BvcygpOiB0aGUgYnl0ZSB3cml0ZXIgc2hvdWxkIG5vdCBiZSBtYXJrZWQgYXMKCSAgY29uc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjc5MTAKCjIwMTAtMDgtMzEgMTg6NDA6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IHVzZSBuZXcgQUdfR1NUX1BLR19DT05GSUdfUEFUSCBtNCBtYWNybyBmcm9tIGNvbW1vbgoJICBTZXRzIHVwIGEgR1NUX1BLR19DT05GSUdfUEFUSCB2YXJpYWJsZSBmb3IgdXNlIGluIE1ha2VmaWxlLmFtCgkgIChhdm9pZHMgdHJhaWxpbmcgJzonIGluIFBLR19DT05GSUdfUEFUSCB1c2VkKS4gQSB1c2VmdWwgc2lkZQoJICBlZmZlY3Qgb2YgdGhpcyBpcyBhbHNvIHRoYXQgdGhlIFBLR19DT05GSUdfUEFUSCBlbnZpcm9ubWVudAoJICBpcyBub3cgbG9nZ2VkIGluIHRoZSBjb25maWd1cmUgb3V0cHV0LgoKMjAxMC0wOS0wMSAxMTozNDowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkgIG1hbnVhbDogaW1wcm92ZSBjbG9jayBkb2NzIGEgbGl0dGxlCgoyMDEwLTA5LTAxIDExOjA2OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogRml4IG1lbW9yeSBsZWFrcyBpbiB0aGUgaW50NjRyYW5nZSB0ZXN0cwoKMjAxMC0wOC0yNCAxMjoyNzozMCArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHZhbHVlOiBBZGQgbmV3IEdzdEludDY0UmFuZ2UgdHlwZQoJICBuZXcgR3N0SW50NjRSYW5nZSB0byBzdG9yZSBnaW50NjQgcmFuZ2VzLgoJICBBUEk6IEdTVF9UWVBFX0lOVDY0X1JBTkdFCgkgIEFQSTogZ3N0X3ZhbHVlX3NldF9pbnQ2NF9yYW5nZQoJICBBUEk6IGdzdF92YWx1ZV9nZXRfaW50NjRfcmFuZ2VfbWluCgkgIEFQSTogZ3N0X3ZhbHVlX2dldF9pbnQ2NF9yYW5nZV9tYXgKCSAgRml4ZXMgYnVnICM2Mjc4MjYuCgoyMDEwLTA4LTMwIDIxOjI2OjE4IC0wMzAwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGRvY3M6IFRyaXZpYWwgY2xlYW51cCBmb3IgR1NUX0RFQlVHX0NBVEVHT1JZX0dFVAoKMjAxMC0wOC0zMCAxNjowMjo1NSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IFJlLWluc3RhdGUgdGhlIGRlZmF1bHQgZm9yIGNvbG9yIHVzYWdlCgkgIFRoaXMgd2FzIGFjY2lkZW50bHkgcmVtb3ZlZCBpbiA3YTcyMjA5MWI2ZDFiNWQ3Zjk0MDRmZGVmNGM2OTVhMjlhNjVhOTg5CgoyMDEwLTA4LTMwIDEyOjQ3OjMxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IFVzZSBnX3N0cmNtcDAgaW5zdGVhZCBvZiBzdHJjbXAKCSAgQXZvaWRzIHNlZ2ZhdWx0cyB3aGVuIHVzaW5nIE5VTEwgYXJndW1lbnRzLgoKMjAxMC0wOC0yNyAxNTozNTo0OSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiBhZGQgc2lsZW50IHByb3BlcnR5IHRvIHN1cHByZXNzIHNpZ25hbCBlbWlzc2lvbgoJICBBbGxvdyB0byB0dXJuIG9mZiBzaWduYWwgZW1pc3Npb24gYW5kIHRoZXJlZm9yZSBleHRyYSBsb2NraW5nIGlmIHRoaXMgaXMgbm90IG5lZWRlZC4KCSAgRml4ZXMgIzYyMTI5OQoKMjAxMC0wOC0yOCAxMDoxNjowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IEFkZCBnc3RfdXRpbF9mcmFjdGlvbl9jb21wYXJlKCkgdG8gdGhlIGRvY3MgYW5kIGV4cG9ydGVkIHN5bWJvbHMKCjIwMTAtMDgtMjggMTc6NTE6MTQgKzEwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IFJlbW92ZSBjaGVja3MgZm9yIGRlcHJlY2F0ZWQgZmxvdyBjaGVjayBtYWNyb3MKCSAgR1NUX0ZMT1dfSVNfRkFUQUwoKSBhbmQgR1NUX0ZMT1dfSVNfU1VDQ0VTUygpIGFyZSBkZXByZWNhdGVkLAoJICBzbyBhcmVuJ3QgYXZhaWxhYmxlIGZvciB0aGUgdGVzdHN1aXRlIGFueSBtb3JlLgoKMjAxMC0wOC0yOCAwOTozNTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEZpeCBpbnZlcnRlZCBhc3NlcnRpb24gbG9naWMgaW4gZ3N0X3V0aWxfZnJhY3Rpb25fY29tcGFyZSgpCgoyMDEwLTA4LTI4IDA5OjMwOjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHV0aWxzOiBBZGQgZ3N0X3V0aWxfZnJhY3Rpb25fY29tcGFyZSgpIHRvIGNvbXBhcmUgZnJhY3Rpb25zCgkgIEFuZCB1c2UgaXQgZm9yIHRoZSBmcmFjdGlvbiBjb21wYXJpc29ucyBpbiBnc3R2YWx1ZS5jIGluc3RlYWQKCSAgb2YgdXNpbmcgY29tcGFyaXNvbnMgYnkgZmlyc3QgY29udmVydGluZyB0aGUgZnJhY3Rpb25zIHRvIGRvdWJsZS4KCSAgU2hvdWxkIGZpeCBidWcgIzYyODE3NC4KCSAgQVBJOiBnc3RfdXRpbF9mcmFjdGlvbl9jb21wYXJlKCkKCjIwMTAtMDgtMjggMTc6MDQ6NDMgKzEwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9jYXBzbGlzdC5oOgoJICB0ZXN0czogQWRkIGEgY291cGxlIG9mIGV4dHJhIGNhcHMgc3RyaW5ncyB0byB0ZXN0CgoyMDEwLTA4LTI3IDE2OjUyOjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCBkbyBhbiBpbmZpbml0ZSBsb29wIGluIHRoZSBsb29wIGZ1bmN0aW9uCgkgIEluc3RlYWQgcmV0dXJuIGFmdGVyIGV2ZXJ5IGl0ZXJhdGlvbiwgd2hpY2ggbWFrZXMgc3VyZSB0aGF0IHRoZQoJICBzdHJlYW0gbG9jayBpcyByZWxlYXNlZCBmb3IgYSBzaG9ydCB0aW1lIGFmdGVyIGV2ZXJ5IGl0ZXJhdGlvbiwKCSAgdGFzayBzdGF0ZSBjaGFuZ2VzIGFyZSBjaGVja2VkLCBldGMgYW5kIHRoaXMgYWxsb3dzIHRoZSB0YXNrCgkgIHRvIGJlIHN0b3BwZWQgcHJvcGVybHkuCgoyMDEwLTA4LTI3IDE2OjQ5OjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBGbHVzaCB0aGUgZGF0YSBxdWV1ZSBpZiBkb3duc3RyZWFtIHJldHVybiBXUk9OR19TVEFURSB0b28KCjIwMTAtMDgtMjYgMjM6Mzk6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgZWxlbWVudHM6IFN0b3AgdXNpbmcgR1NUX0ZMT1dfSVNfRkFUQUwoKQoKMjAxMC0wOC0yNiAyMzozNzowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlOiBTdG9wIHVzaW5nIEdTVF9GTE9XX0lTX0ZBVEFMKCkKCSAgQW5kIGRvY3VtZW50IHRoZSBzcGVjaWFsIGhhbmRsaW5nIG9mIFdST05HX1NUQVRFLgoKMjAxMC0wOC0yNiAyMzowNzo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogRGVwcmVjYXRlIEdTVF9GTE9XX0lTX0ZBVEFMKCkgYW5kIEdTVF9GTE9XX0lTX1NVQ0NFU1MoKQoJICBUaGUgcHJvYmxlbSB3aXRoIGJvdGggbWFjcm9zIGlzLCB0aGF0IHRoZXkgc3VnZ2VzdCBzb21ldGhpbmcgdGhhdCBpc24ndCB0cnVlLgoJICBJZiBHU1RfRkxPV19JU19GQVRBTCBpcyB0cnVlLCB0aGVyZSBjb3VsZCBzdGlsbCBiZSBhIHByb2JsZW0gZm9yIG1hbnkgZWxlbWVudHMKCSAgYW5kIHRoZXkgc2hvdWxkIHN0b3Agd2hhdCB0aGV5J3JlIGN1cnJlbnRseSBkb2luZyBhbmQgcmV0dXJuIHRoYXQgdmFsdWUKCSAgdXBzdHJlYW0gKGUuZy4gbm90LWxpbmtlZCBpbiBhIHBhcnNlcikuIElmIEdTVF9GTE9XX0lTX1NVQ0NFU1MgaXMgZmFsc2UsIGl0CgkgIGNvdWxkIHN0aWxsIGJlIHRoYXQgdGhpcyBpcyAib2siIGZvciB0aGUgZWxlbWVudCAoZS5nLiBub3QtbGlua2VkIGZvciBhIGRlbXV4ZXIKCSAgb24gYSBmZXcgb2YgaXRzIHBhZHMgYnV0IG5vdCBhbGwpLgoJICBJdCdzIGJldHRlciB0byBub3QgaGF2ZSB0aGVzZSAiY29udmVuaWVuY2UiIG1hY3JvcyBidXQgaW5zdGVhZCBsZXQgcGVvcGxlCgkgICp0aGluayogYWJvdXQgdGhlIGhhbmRsaW5nIG9mIGRpZmZlcmVudCBmbG93IHJldHVybnMsIHRoYXQgbWFrZXMgc2Vuc2UgZm9yCgkgIHRoZWlyIGVsZW1lbnQuIEFuZCB3ZSBzaG91bGQgZG9jdW1lbnQgdGhlIGV4cGVjdGVkIGhhbmRsaW5nIG9mIGZsb3cgcmV0dXJucyBmb3IKCSAgZGlmZmVyZW50IGNsYXNzZXMgb2YgZWxlbWVudHMgaW4gdGhlIHBsdWdpbiB3cml0ZXIncyBndWlkZS4KCSAgRml4ZXMgYnVnICM2MjgwMTQuCgoyMDEwLTA4LTI3IDExOjExOjAwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBrZWVwIHByb3BlcnRpZXMgaW4gb3JkZXIKCjIwMTAtMDgtMjcgMTA6MjI6MjcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IEFSR18gLT4gUFJPUF8gZm9yIHByb3BlcnR5IGNvbnN0YW50cwoKMjAxMC0wOC0yNiAxNzowNDoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IG9uLWRpc2sgYnVmZmVyaW5nIGFnYWluCgoyMDEwLTA4LTI2IDE1OjEyOjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlY292ZXIgZnJvbSBpbnZhbGlkIGRvd25zdHJlYW0gc3VnZ2VzdGlvbnMKCSAgV2hlbiB3ZSBhcmUgaGFuZGxpbmcgYSBidWZmZXIgYW5kIG5lZWQgdG8gYWxsb2NhdGUgYW4gb3V0cHV0IGJ1ZmZlciwgaGFuZGxlIHRoZQoJICBjYXNlIHdoZW4gZG93bnN0cmVhbSBzdWdnZXN0cyB1cyBhIGZvcm1hdCB0aGF0IHdlIGNhbid0IGNvbnZlcnQgdGhlIGlucHV0IGJ1ZmZlcgoJICB0by4gSW4gdGhhdCBjYXNlLCBjaGVjayBpZiB0aGVyZSBpcyBhbm90aGVyIGZvcm1hdCBhdmFpbGFibGUgZG93bnN0cmVhbSBpbnN0ZWFkCgkgIG9mIGZhaWxpbmcuCgkgIEZpeGVzICM2MjEzMzIgYW5kIHNlZSBhbHNvICM2MTQyOTYKCjIwMTAtMDgtMjYgMTM6NDY6MzQgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIGdzdHBsdWdpbjogbG9hZCB0aGUgZ3N0LXB5dGhvbiBwbHVnaW4gbG9hZGVyIHdpdGggR19NT0RVTEVfQklORF9MQVpZLgoKMjAxMC0wOC0xNiAxNDoxMjozNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWc6IEFkZHMgR1NUX1RBR19BUFBMSUNBVElPTl9EQVRBCgkgIEFkZHMgR1NUX1RBR19BUFBMSUNBVElPTl9EQVRBIGZvciByZXByZXNlbnRpbmcgYXJiaXRyYXJ5IHByaXZhdGUKCSAgZGF0YSB0aGF0IGFwcGxpY2F0aW9ucyBtaWdodCB3YW50IHRvIHN0b3JlIGludG8gdGFncy4gRXhpZi9pZDMsCgkgIGZvciBleGFtcGxlLCBoYXZlIHRhZ3MgZm9yIHRoaXMuCgkgIEFQSTogR1NUX1RBR19BUFBMSUNBVElPTl9EQVRBCgkgIEZpeGVzICM2MjY2NTEKCjIwMTAtMDgtMjQgMTI6NDY6MzggLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBnc3QtbGF1bmNoOiBGaXggT0lMX0NQVV9GTEFHUyBkb2NzIGZvciBPcmMKCjIwMTAtMDgtMjQgMTY6MjQ6MTkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgbWFuOiByZW1vdmUgT0lMX0NQVV9GTEFHUyBmcm9tIG1hbiBwYWdlCgkgIFdlJ3JlIHVzaW5nIE9SQyBpbnN0ZWFkIG9mIGxpYk9pbCBub3cuCgoyMDEwLTA4LTIzIDE4OjIwOjIzIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIFZhbGdyaW5kIGRlZmluZSBpcyBIQVZFX1ZBTEdSSU5EX1ZBTEdSSU5EX0gKCjIwMTAtMDctMjcgMTg6MjQ6NDQgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgQWxsb3cgZ3N0X2RlYnVnX3NldF9kZWZhdWx0X3RocmVzaG9sZCgpIGJlZm9yZSBnc3RfaW5pdCgpCgkgIENhbGxpbmcgZ3N0X2RlYnVnX3NldF9kZWZhdWx0X3RocmVzaG9sZCgpIGJlZm9yZSBpbml0aWFsaXphdGlvbgoJICBzZWVtcyBsaWtlIHRoZSAib2J2aW91cyIgb3JkZXIuCgoyMDEwLTA4LTIzIDEzOjA2OjE5ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmdAYXhpcy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICBxdWV1ZTogZml4IHNlZ2ZhdWx0IGluIHRlc3QKCjIwMTAtMDgtMjMgMTA6NTg6MTYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBpbnRlcm4gYWxsIEdzdFBsdWdpbkRlc2MgbWVtYmVycyB3aGVuIHVucGFja2luZwoKMjAxMC0wOC0yMyAxMDo1NjozMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogZml4IGxlYWsgd2hlbiBuYW1pbmcgcGFyZW50ZWQgb2JqZWN0CgoyMDEwLTA4LTIwIDAzOjA3OjU4ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0OiBBZGQgYSBnc3RfaXNfaW5pdGlhbGl6ZWQoKSBBUEkKCSAgRm9yIG9uZSwgdGhpcyB3aWxsIGFsbG93IGxpYnJhcmllcyB0aGF0IGV4cGVjdCBhcHBsaWNhdGlvbnMgdG8KCSAgaW5pdGlhbGl6ZSBHU3RyZWFtZXIgYmVmb3JlIHVzaW5nIHRoZWlyIEFQSSB0byBoYXZlIGEgY2hlY2sgZm9yIHRoaXMKCSAgY29uZGl0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI3NDM4CgoyMDEwLTA4LTIwIDE4OjA0OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IHJlbGF4IHRoZSBzb3VyY2UgZWxlbWVudCBjaGVjawoJICBXaGVuIHRoZXJlIGlzIGEgc2luayBpbnNpZGUgYSBiaW4sIHRoZSBTSU5LIGZsYWcgaXMgc2V0IG9uIHRoZSBiaW4uIFdoZW4gd2UgYXJlCgkgIHRyeWluZyB0byBpdGVyYXRlIHRoZSBzb3VyY2UgZWxlbWVudHMsIGFsc28gaW5jbHVkZSB0aGUgYmlucyB3aXRoIHRoZSBTSU5LIGZsYWcKCSAgYmVjYXVzZSB0aGV5IGNvdWxkIGFsc28gY29udGFpbiBzb3VyY2UgZWxlbWVudHMsIGluIHdoaWNoIGNhc2UgdGhleSBhcmUgYWxzbyBhCgkgIHNvdXJjZS4KCSAgVGhpcyBzb2x2ZXMgdGhlIGNhc2Ugd2hlcmUgc2VuZGluZyBhbiBFT1MgdG8gYSBwaXBlbGluZSBkaWRuJ3QgZ2V0IGRpc3BhdGNoZWQgdG8KCSAgYWxsIHNvdXJjZSBlbGVtZW50cy4KCSAgU2VlICM2MjU1OTcKCjIwMTAtMDgtMTkgMTc6MDc6MDAgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZ0BheGlzLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHF1ZXVlOiBhZGRlZCB1bml0IHRlc3QgZm9yIG5ld3NlZ21lbnQgZXZlbnRzCgoyMDEwLTAzLTA1IDE3OjE4OjIzICswMTAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmdAYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IFB1c2ggbmV3c2VnbWVudCB3aGVuIGxpbmtpbmcgaW4gUExBWUlORwoJICBGaXhlcyAjNjExOTE4CgoyMDEwLTA4LTEyIDIwOjIzOjQ1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBlbGVtZW50OiBsaW5rX21hbnkgc2hvdWxkIGFjdGl2YXRlIHBhZHMgaWYgbmVlZGVkCgkgIGdzdF9lbGVtZW50X2xpbmtfbWFueSBkb2VzIHNvbWUgbWFnaWMgYW5kIGNyZWF0ZXMgZ2hvc3RwYWRzCgkgIGlmIG5lZWRlZCwgYnV0IGl0IGRpZG4ndCBzZXQgdGhlIG5ld2x5IGNyZWF0ZWQgZ2hvc3RwYWQgdG8KCSAgYWN0aXZlIGlmIG5lZWRlZC4gVGhpcyBwYXRjaCBmaXhlcyBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNjc4NAoKMjAxMC0wOC0xOSAxMToxMToyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZGF0ZXRpbWU6IEZpeCBtZW1vcnkgbGVhayBpbiB0aGUgdW5pdCB0ZXN0IGJ5IHVucmVmZmluZyBHc3REYXRlVGltZSBpbnN0YW5jZSBhZnRlciB1c2FnZQoKMjAxMC0wOC0xOSAxMDowMzowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHRlc3RzOiBmaXggY29tbWVudHMgaW4gdGVzdAoKMjAxMC0wOC0xOSAwOTo1ODo1NSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogVXNlIEdfR1VJTlQ2NF9GT1JNQVQgd2hlcmUgbmVlZGVkCgkgIEZpeGVzIGJ1aWxkIG9uIG1hY29zeAoKMjAxMC0wOC0xOCAxNTozMTowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogZW5hYmxlIHF1ZXVlIHRlc3QgYWdhaW4KCjIwMTAtMDgtMTggMTU6MTI6NDUgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZ0BheGlzLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHF1ZXVlOiBmaXhlZCByYWN5IHVuaXQgdGVzdHMKCSAgRml4ZXMgIzYwMDAwNAoKMjAxMC0wOC0xNiAxODowMToyNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgcGx1Z2luczogYWRkIGV4YW1wbGUgbGF1bmNoIGxpbmVzIGFuZCBtb3JlIGV4cGxhbmF0aW9uIHRvIHRoZSBkb2NzLgoJICBUaGUgcGx1Z2lucyB3aGVyZSBhbG1vc3QgdW5kb2N1bWVudGVkIDovIC4uLgoKMjAxMC0wOC0xMyAxNjoxOTozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGNvbXBpbGF0aW9uCgoyMDEwLTA3LTA3IDA4OjIwOjIxICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeCBhIHNwZWNpYWwgY2FzZSBkdXJpbmcgcmFuZ2UgbWFuYWdlbWVudAoJICBXaGVuIGEgcmFuZ2UgY29udGFpbmVkIG5vIGRhdGEsIGlmIGl0IHdhcyBuZXcgb3IgbmV3bHkgZW1wdHksIGl0IHdvdWxkCgkgIGJlIG1pc2hhbmRsZWQgaWYgaXQgd2VyZSB0aGUgY3VycmVudCByYW5nZS4KCjIwMTAtMDctMDUgMTM6NDM6MDUgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGxvY2tpbmcgYXJvdW5kIGluaXRfcmFuZ2VzCgkgIFRoaXMgZml4ZXMgYSBzZWdmYXVsdCB3aGVyZSB0aGUgcmVhZHkgdG8gcGF1c2VkIHN0YXRlIGNoYW5nZSBjYXVzZXMKCSAgZnJlZWluZyBhbmQgYWxsb2NhdGlvbiBvZiBuZXcgcmFuZ2VzIHdoaWxlIGFub3RoZXIgdGhyZWFkIGlzIHRyeWluZyB0bwoJICB1c2UgdGhlbS4KCjIwMTAtMDctMDIgMTc6NDA6MDggKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogTW9yZSByaW5nIGJ1ZmZlciBmaXhlcwoJICAtIFNldCByZWFkaW5nX3BvcyBjb3JyZWN0bHkgaW4gX2NyZWF0ZV9yZWFkICgpCgkgIC0gU2VlayB0byBkYXRhIGlmIGl0IGlzIGZ1cnRoZXIgdGhhbiBRVUVVRV9NQVhfQllURVMgKHF1ZXVlKSAtCgkgIGN1cl9sZXZlbC5ieXRlcyBhd2F5LiBUaGlzIHNob3VsZCBhdm9pZCBhIHNpdHVhdGlvbiB3aGVyZSB0aGUgcmluZwoJICBidWZmZXIgaXMgZnVsbCBidXQgdGhlIGRhdGEgb2Zmc2V0IGZyb20gd2hpY2ggd2Ugc2hhbGwgcmVhZCBpcyBub3QgaW4KCSAgdGhlIHJpbmcgYnVmZmVyLgoJICAtIE9ubHkgdXBkYXRlIHRoZSBtYXhfcmVhZGluZ19wb3MgdG8gYSBsb3dlciB2YWx1ZSB0byBwcm90ZWN0IGRhdGEgd2hlbgoJICBuZWNlc3NhcnkKCSAgLSBBbHdheXMgc2lnbmFsIGFuIEFERCBpbiBfbG9ja2VkX2VucXVldWUgKCkgc28gdGhhdCBhbiBFT1MgdW5sb2NrcyB0aGUKCSAgcmVhZGVyCgkgIC0gTW9yZSB1c2VmdWwgZGVidWcgb3V0cHV0CgoyMDEwLTA2LTI4IDE3OjUwOjA2ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJpbmcgYnVmZmVyIGZpeGVzCgkgIE9uZSBtdXN0IG5vdCBhZmZlY3QgdGhlIHZhbHVlcyBvZiB0aGUgY3VycmVudCByYW5nZSBiYXNlZCBvbiBhIHJlYWQKCSAgcmVxdWVzdCBiZWZvcmUgdGhlIGNvcnJlY3QgcmFuZ2UgaXMgYWN0aXZhdGVkLgoKMjAxMC0wNi0yNSAxMjo1ODoyNyArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggYnVncwoJICB1cGRhdGVfYnVmZmVyaW5nICgpIG5lZWRzIHRvIGJlIGNhbGxlZCBldmVyeSB0aW1lIHdlIHdyaXRlIHRvIHRoZSByaW5nCgkgIGJ1ZmZlciBzbyB0aGF0IGFwcGxpY2F0aW9ucyBkb24ndCBnZXQgc3R1Y2sgd2FpdGluZyBmb3IgYSAxMDAlIGJ1ZmZlcmVkCgkgIG1lc3NhZ2Ugd2hpbGUgcXVldWUyIGlzIHdhaXRpbmcgZm9yIHNwYWNlCgkgIF9jcmVhdGVfd3JpdGUgKCkgbXVzdCBvbmx5IGJlIGNhbGxlZCBmb3IgdGVtcCBmaWxlL3JpbmcgYnVmZmVyIGNhc2VzCgoyMDEwLTA2LTE4IDE3OjQzOjQwICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IGV4dGVuZCByaW5nIGJ1ZmZlciB0byBzdXBwb3J0IHJhbSBtb2RlCgoyMDEwLTA2LTE4IDE0OjM2OjMzICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IG1lcmdlIHdyaXRlIGJ1ZmZlciBmdW5jdGlvbnMgYW5kIGZpeCBidWdzCgkgIENhY2hlZCBkYXRhIGNvdWxkIGhhdmUgYmVlbiBvdmVyd3JpdHRlbiBzbyBpdCBpcyBub3cgcHJvdGVjdGVkIHVudGlsCgkgIGl0IGlzIHJlYWQuIFNpbWlsYXJseSBkYXRhIHdhcyBvdmVycmVhZCBhcyBfaGF2ZV9kYXRhICgpIHdhcyBhbHdheXMKCSAgbG9va2luZyBmb3IgdGhlIG9yaWdpbmFsbHkgcmVxdWVzdGVkIGRhdGEgZXZlbiBpZiBwYXJ0IG9mIGl0IGhhZCBiZWVuCgkgIHJlYWQgYWxyZWFkeS4KCjIwMTAtMDYtMTcgMTA6MTg6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHNtYWxsIGNsZWFudXAKCjIwMTAtMDYtMTYgMTg6MjU6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGNsZWFudXAgd3JpdGVfdG9fcmluZ19idWZmZXIKCSAgVXNlIGN1cl9sZXZlbC5ieXRlcyB0byBzZWUgaG93IG11Y2ggc3BhY2UgaXMgZnJlZSBpbiB0aGUgcmluZ2J1ZmZlci4KCSAgU2ltcGx5ZnkgdGhlIHdyaXRlIGZ1bmN0aW9uLCBhdm9pZCB0YWtpbmcgc3ViYnVmZmVycywgbW92ZSB3YWl0aW5nIGZvciBmcmVlCgkgIHNwYWNlIGluIG9uZSBzcG90LCB1c2Ugc2ltcGx5IGNvdW50ZXIgdG8gd3JpdGUgZGF0YSBvZiBhIGJ1ZmZlci4KCjIwMTAtMDYtMTYgMTc6MDM6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGNsZWFudXBzCgkgIEFkZCBhIG1hY3JvIHRvIGdldCB0aGUgbWF4IHNpemUgb2YgdGhlIHF1ZXVlIGluIGJ5dGVzLCB3aGljaCBkZXBlbmRzIG9uIHRoZQoJICBtYXhfbGV2ZWwuYnl0ZXMgYW5kIHRoZSByaW5nX2J1ZmZlcl9tYXhfc2l6ZS4KCSAgU29tZSBjbGVhbnVwcy4KCjIwMTAtMDYtMTYgMTY6MjM6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMTAtMDYtMTYgMTY6MTM6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGNsZWFudXBzCgkgIE1ha2Ugc3VyZSB0aGUgY3VyX2xldmVsLmJ5dGVzIGlzIHVwZGF0ZWQgYWZ0ZXIgd2UgY2hhbmdlIHRoZSB3cml0aW5nX3BvcyBvciB0aGUKCSAgbWF4X3JlYWRpbmdfcG9zLgoJICBSZWZhY3RvciBnZXRfZnJlZV9zcGFjZSgpCgkgIEFkZCBzb21lIGNvbW1lbnRzCgoyMDEwLTA2LTE2IDEyOjAwOjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZW1vdmUgdW5uZWVkZWQgc2lnbmFsCgoyMDEwLTA2LTE2IDEyOjAwOjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBzZXQgYnVmZmVyaW5nIG1vZGUgY29ycmVjdGx5CgoyMDEwLTA2LTE2IDExOjIwOjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggY2FsY3VsYXRpb24gb2YgYXZhaWxhYmxlIHJpbmdidWZmZXIgZGF0YQoKMjAxMC0wNi0xNiAxMToxMTozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVhZGluZ19wb3MgaXMgdXBkYXRlZCBpbiBjcmVhdGVfcmVhZCBvbmx5CgoyMDEwLTA2LTE2IDExOjExOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZWZhY3RvciBhbmQgYWRkIGRlYnVnCgoyMDEwLTA2LTE2IDExOjEwOjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggZmx1c2hpbmcKCjIwMTAtMDYtMTYgMTE6MDk6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCBkZWJ1ZwoKMjAxMC0wNi0xNSAxNzoyNjoxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZG9uJ3QgdHJ5IHRvIHdyaXRlIDAgYnl0ZXMKCjIwMTAtMDYtMTUgMTY6MTI6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI7IGNsZWFudXBzIGFuZCBmaXhlcwoJICBNYWtlIGEgbWFjcm8gZm9yIHNvbWUgZnJlcXVlbnQgY2hlY2tzCgkgIEVtaXQgdGhlIHJlbW92ZWQgc2lnbmFsIGluIGFsbCBjYXNlcyB3aGVuIHdlIHJlbW92ZSBzb21ldGhpbmcKCjIwMTAtMDYtMTUgMTI6Mzc6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlZmFjdG9yaW5ncwoJICBDaGVjayBhbmQgaGFuZGxlIHNlZWsgZXJyb3JzCgkgIFJlZmFjdG9yIHRoZSB3YWl0X2ZyZWVfc3BhY2UgZnVuY3Rpb24uCgoyMDEwLTA2LTE2IDEyOjI0OjI1ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFVzZSByaW5nLWJ1ZmZlci1tYXgtc2l6ZSBwcm9wIHRvIGNvbnRyb2wgcmluZyBidWZmZXIKCjIwMTAtMDYtMDYgMDk6MzA6NDggKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogQ2xlYW4gdXAgYW5kIGltcHJvdmUgY29kZQoKMjAxMC0wNS0yNiAwNDoxMTo0OCArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggY29uZGl0aW9ucyB3aGVyZSBiZWhhdmlvdXIgc2hvdWxkIGRpZmZlciBiZXR3ZWVuIHJpbmcgYnVmZmVyIGFuZCB0ZW1wIGZpbGUKCjIwMTAtMDUtMTkgMTY6MDQ6MTUgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIHVzZWZ1bCBkZWJ1ZyBtZXNzYWdlcyBhbmQgZml4IGFuIGFzc3VtcHRpb24gaW4gX2hhdmVfZGF0YSAoKQoKMjAxMC0wNS0xOCAxNzo0MjowNyArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggYnVmZmVyaW5nIHBlcmNlbnRhZ2UgaW4gcmluZyBidWZmZXIgbW9kZQoKMjAxMC0wNS0xOCAxNzoyMTo0MCArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiB2YXJpb3VzIHJpbmcgYnVmZmVyIGZpeGVzCgkgIC0gbWFrZSBfZ2V0X3JhbmdlICgpIGVtaXQgdGhlIGRlbCBzaWduYWwgb25jZSBhIGJ1ZmZlciBoYXMgYmVlbiByZWFkCgkgIC0gdXNlIGRvIHt9IHdoaWxlICgpOyBmb3Igd2FpdCBjb2RlIGFzIHF1ZXVlIGlzIGxvY2tlZCBhbmQgbm8gZGF0YSBjb3VsZAoJICBoYXZlIGJlZW4gcmVhZCBpbiB0aGUgbWVhbiB0aW1lIHNvIGl0IG1ha2VzIG5vIHNlbnNlIHRvIGNoZWNrIGJlZm9yZQoJICB3YWl0aW5nCgkgIC0gbWFrZSBfaXNfZmlsbGVkICgpIG1vcmUgcm9idXN0CgoyMDEwLTA1LTA3IDA5OjMwOjQ0ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IHJpbmcgYnVmZmVyIHdvcmsgaW4gcHJvZ3Jlc3MKCjIwMTAtMDUtMDUgMTA6MjE6NTUgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogQWRkIHVzZS1yaW5nLWJ1ZmZlciBhbmQgcmluZy1idWZmZXItbWF4LXNpemUgcHJvcGVydGllcwoKMjAxMC0wNi0xNSAwODo1OToxMSArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgU1QtRXJpY3Nzb24gY29weXJpZ2h0CgoyMDEwLTA4LTEzIDE3OjIzOjMxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDNlOGRiMWQgdG8gZWM2MDIxNwoKMjAxMC0wOC0xMiAyMjowODo0NCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogeHJlZnMgZ2xpYiBzeW1ib2wgaW4gZG9jcwoKMjAxMC0wOC0xMiAxNjowNTozNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIGdzdGNvbGxlY3RwYWRzOiBGaXggZG9jcyBhYm91dCBHc3RDb2xsZWN0RGF0YSBsaXN0CgkgIEFkZCB0byB0aGUgZG9jcyB0aGUgZmFjdCB0aGF0IGlzIG9ubHkgc2FmZSB0byBpdGVyYXRlCgkgIEdzdENvbGxlY3RQYWQncyBkYXRhIGxpc3QgaW5zaWRlIHRoZSBjb2xsZWN0ZWQgY2FsbGJhY2suCgkgIEZpeGVzICM2MTAzNjYKCjIwMTAtMDgtMTAgMTA6NTY6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiZDIwNTRiIHRvIDNlOGRiMWQKCjIwMTAtMDgtMDQgMTE6MjQ6MTIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnOiBBZGRzIEdTVF9UQUdfQVBQTElDQVRJT05fTkFNRSB0YWcKCSAgQWRkcyBhIG5ldyB0YWcgZm9yIHJlcHJlc2VudGluZyBhcHBsaWNhdGlvbiB1c2VkIHRvIGNyZWF0ZQoJICBhIG1lZGlhCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjYwMjcKCjIwMTAtMDgtMDggMTc6NTc6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogSW5pdGlhbGl6ZSB0aGUgR1R5cGUgY2FjaGUgZm9yIHRoZSBidWZmZXJsaXN0IGFnYWluCgkgIFRoaXMgd2FzIGFjY2lkZW50aWFsbHkgcmVtb3ZlZCB3aXRoIGxhc3QgY29tbWl0LgoKMjAxMC0wOC0wNiAxOTozODoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBEb24ndCBjaGFpbiB1cCBmaW5hbGl6ZSB0byB0aGUgcGFyZW50IGNsYXNzCgkgIEdzdE1pbmlPYmplY3Q6OmZpbmFsaXplIGRvZXMgbm90aGluZyBhbmQgdGhpcyBwcmV2ZW50cyBhCgkgIHJ1bnRpbWUtdHlwZS1jaGVjayBjYXN0IGFuZCBmdW5jdGlvbiBjYWxsIHBlciBidWZmZXIgbGlzdC4KCjIwMTAtMDctMjAgMDk6MjM6MTEgLTA1MDAgIFNoaXhpbiBaZW5nIDx6ZW5nLnNoaXhpbkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0OiBtYWtlIF9nZXRfdHlwZSgpIGluIGdzdC8qIHRocmVhZCBzYWZlCgkgIFRoaXMgaXMgbm90IHJlYWxseSBuZWNlc3NhcnkgaGVyZSBiZWNhdXNlIGV2ZXJ5dGhpbmcgaXMKCSAgaW5pdGlhbGl6ZWQgZnJvbSBnc3RfaW5pdCgpIGFscmVhZHkgYnV0IHVzaW5nIEdfREVGSU5FX1RZUEUoKQoJICByZW1vdmVzIHNvbWUgY29weSZwYXN0ZSBib2lsZXJwbGF0ZSBjb2RlLgoKMjAxMC0wOC0wNiAxOTozNDo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICBwbHVnaW5zOiBBZGQgZGVjbGFyYXRpb25zIGZvciBfZ2V0X3R5cGUoKSBmdW5jdGlvbnMgdG8gZml4IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDEwLTA3LTIwIDA5OjIzOjU0IC0wNTAwICBTaGl4aW4gWmVuZyA8emVuZy5zaGl4aW5AZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgcGx1Z2luczogTWFrZSAqX2dldF90eXBlKCkgaW4gcGx1Z2lucy8qIHRocmVhZCBzYWZlCgkgIEl0J3Mgbm90IHJlYWxseSBuZWVkZWQgaGVyZSBidXQgdXNpbmcgR19ERUZJTkVfVFlQRSgpIHJlZHVjZXMKCSAgc29tZSBjb3B5JnBhc3RlIGJvaWxlcnBsYXRlIGNvZGUuCgoyMDEwLTA4LTA2IDE4OjQzOjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBNYWtlIHN1cmUgdGhlIGJ1ZmZlciBtZXRhZGF0YSBpcyB3cml0YWJsZSBiZWZvcmUgY2hhbmdpbmcgaXQKCjIwMTAtMDgtMDUgMTM6NTY6MTEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMjAwNGQwMyB0byBiZDIwNTRiCgoyMDEwLTA4LTA1IDEwOjA0OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogc3BlZWQgdXAgcGFkIGxpbmtpbmcgdXRpbGl0eSBmdW5jdGlvbnMgYnkgbm90IHRyeWluZyBwYWRzIHRoYXQgd2lsbCBuZXZlciB3b3JrCgkgIEluIGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZCgpLCB3aGVuIHRyeWluZyB0byBmaW5kIGEgY29tcGF0aWJsZSBwYWQgb24gYW4KCSAgZWxlbWVudCBmb3IgYSBnaXZlbiBwYWQsIHRoZXJlJ3Mgbm8gcG9pbnQgaW4gY2hlY2tpbmcgdGhlIGVsZW1lbnQncyBzaW5rIHBhZHMKCSAgaWYgdGhlIHBhZCB0byBsaW5rIGlzIGEgc2luayBwYWQgYXMgd2VsbCwgb3IgdGhlIGVsZW1lbnQncyBzb3VyY2UgcGFkcyBpZiB0aGUKCSAgZ2l2ZW4gcGFkIGlzIGEgc291cmNlIHBhZCBhbHJlYWR5LCBzaW5jZSB0aG9zZSB3b3VsZCBuZXZlciBiZSBhYmxlIHRvIGxpbmsKCSAgYW55d2F5LiBTaG91bGQgc3BlZWQgdXAgbGlua2luZyB1c2luZyB0aGUgY29udmVuaWVuY2UgZnVuY3Rpb25zIGEgbGl0dGxlIGJpdCwKCSAgb3IgYXQgbGVhc3QgcmVkdWNlIGRlYnVnIGxvZyBvdXRwdXQuCgoyMDEwLTA4LTA1IDEwOjMyOjUzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiB0YWtlIHRoZSB0aW1lc3RhbXAgYSB0aWNrIGxhdGVyCgkgIFRoZSBsb2dnaW5nIGlzIG5vdCBhbiBhdG9taWMgb3BlcmF0aW9uIGFuZCBiZWNhdXNlIG9mIHRoZSBtdWx0aS10aHJlYWRpbmcgd2UgZW5kCgkgIHVwIHdpdGggb3V0LW9mLW9yZGVyIGxvZyBsaW5lcy4gVG9vbHMgdGhhdCBwcmVzZW50IHRoZSBsb2ctZmlsZSBzaG91bGQgcHJvYmFibHkKCSAgcmVzb3J0IHRoZSBsaW5lcy4gVGhpcyBjaGFuZ2UganVzdCB0YWtlcyB0aGUgdGltZXN0YW1wIGEgYml0IGNsb3NlciB0byB0aGUKCSAgYWN0dWFsIGxvZ2dpbmcuCgoyMDEwLTA4LTA1IDA5OjM2OjE2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgZGVidWc6IGxvZ2dpbmcgaW1wcm92ZW1lbnRzCgkgIFVzZSB0aGUgZXZlbnQgc2VyaWFsaXNhdGlvbi4gTG9nIGZvcm1hdHMgbmFtZSBpbnN0ZWFkIG9mIG51bWJlci4KCjIwMTAtMDctMTUgMTU6NDY6MjQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBkb24ndCB1c2UgYysrIGtleXdvcmRzIGFzIHZhcmlhYmxlIG5hbWVzCgoyMDEwLTA3LTE1IDExOjM3OjMwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogbG9nIHNlZWsgZXZlbnQgZGV0YWlscwoKMjAxMC0wNy0xMiAxMDo1MDo1MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgIG1hbnVhbDogdXBkYXRlIGdzdC1jb250cm9sbGVyIGNoYXB0ZXIKCSAgVGhlIGRvY3Mgd2VyZSBzdGlsbCBkZXNjcmliaW5nIGRlcHJlY2F0ZWQgYXBpLiBVcGRhdGUgaXQgdG8gdGVsbCBhYm91dAoJICBjb250cm9sLWNvdXJjZXMuCgoyMDEwLTA3LTA5IDE1OjU4OjUwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2xhdW5jaC9tcDNwYXJzZWxhdW5jaC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9xdWV1ZS9xdWV1ZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvc3RyZWFtLXN0YXR1cy5jOgoJKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOgoJICB0ZXN0czogY2xlYW4gdXAgZXZlbnRsb29wIGluIGV4YW1wbGVzCgkgIERvbid0IGxlYWsgdGhlIGJ1cy4gRG9uJ3QgcGFyc2UgbWVzc2FnZXMgd2l0aCB0aGUgbWV0aG9kIGZvciBlcnJvcnMgKHRyaWdnZXJzCgkgIGdvYmplY3Qgd2FybmluZykuCgoyMDEwLTA3LTA4IDE0OjA4OjI3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkgIGJlbmNobWFyazogaGFuZGxlIGVycm9ycyBmcm9tIHRoZSBwaXBlbGluZQoJICBDYXRjaCBlcnJvcnMgYW5kIHdhcm5pbmdzIG9uIHRoZSBidXMuIFRoaXMgZml4ZXMgaGFuZ2luZyBwaXBlbGluZXMgaW4gdGhlIGNhc2UKCSAgb2YgYnVncyBlbHNld2hlcmUuIEFsc28gcHJpbnQgc3RhdGUtY2hhbmdlIG1lc3NhZ2VzIHRvIGdpdmUgbW9yZSBkZXRhaWwgb24gdGhlIHByb2dyZXNzLgoKMjAxMC0wNy0wNiAxODoyMDo0MCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJICBiZW5jaG1hcms6IGNsZWFudXAgbGFzdCBjaGFuZ2UgaW4gY2Fwc25lZ28gYmVuY2htYXJrCgkgIEEgcGFkIG5hbWUgaXMgbm90IGEgZmFjdG9yeSBuYW1lLgoKMjAxMC0wNy0wNiAxNDoyOTozOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkgIGRvY3M6IG1vcmUgZG9jcyBmb3IgZ3N0X3BhcnNlX2xhdW5jaCBhbmQgY28KCSAgVGVsbCBhYm91dCBsaW1pdGVkIHJldXNhYmlsaXR5IG9mIHNvbWUgcGFyc2VkIHBpcGVsaW5lcy4KCjIwMTAtMDctMDUgMTY6MzI6MDAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGluc3BlY3Q6IHBhZCBpbmZvIG91dHB1dCBpbXByb3ZlbWVudHMKCSAgRG9uJ3QgcHJpbnQgZW1wdHkgcXVlcnkgdHlwZXMuIEFsc28gcHJpbnQgY2Fwcy12bWV0aG9kcy4KCjIwMTAtMDctMDYgMTY6NDc6MjIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBsb2cgZWxlbWVudDpwYWQgbmFtZXMgd2l0aCBjYXBzCgoyMDEwLTA2LTMwIDExOjQ2OjExICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGJldHRlciBlcnJvciBsb2dnaW5nIGluIGxpbmtfcGFkc19maWx0ZXJlZAoKMjAxMC0wNi0yNCAxMDowMDowNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkgIHRlc3RzOiBhZGQgY29tbWVudHMgdGVsbGluZyB0aGUgbWVhbmluZyBvZiB0aGUgYWJicmV2aWF0aW9ucwoKMjAxMC0wNy0wNSAxMjoxOToyOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGF2b2lkIHNvbWUgY2FwcyBtYW5pcHVsYXRpb24KCSAgQWZ0ZXIgdGhlIGludGVyc2VjdCB3ZSBoYXZlIHdyaXRhYmxlIGNhcHMuIENvcHkgdGhlIHRlbXBsYXRlIGNhcHMgc28gdGhhdCBhbHNvCgkgIHRoZXJlIHdlIGhhdmUgd3JpdGFibGUgY2Fwcy4KCjIwMTAtMDgtMDUgMDE6MDk6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRlc3RzOiBhZGQgYmFzaWMgdW5pdCB0ZXN0IGZvciBnc3RfcGFkX3Byb3h5X2dldGNhcHMoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI0MjAzCgoyMDEwLTA4LTA1IDAxOjA2OjU3ICswMTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IE1ha2UgZ3N0X3BhZF9wcm94eV9nZXRjYXBzKCkgcmV0dXJuIGVtcHR5IGNhcHMgaWYgaXQncyB3aGF0IHRoZSBvdGhlciBzaWRlIGhhcwoJICBnc3RfcGFkX3Byb3h5X2dldGNhcHMoKSB3b3VsZCByZXR1cm4gdGhlIHBhZCB0ZW1wbGF0ZSBjYXBzIGlmIHRoZSBvdGhlciBzaWRlCgkgIHJldHVybmVkIGVtcHR5IGNhcHMgb3IgaWYgdGhlIGludGVyc2VjdGlvbiBvZiBhbGwgdGhlIGNhcHMgb24gdGhlIG90aGVyIHNpZGUKCSAgd2FzIGVtcHR5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI0MjAzCgoyMDEwLTA4LTA0IDE5OjE5OjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBDaGVjayBpZiB0aGUgY29tcGlsZXIgc3VwcG9ydHMgSVNPIEM4OSBvciBDOTkgYW5kIHdoaWNoIHBhcmFtZXRlcnMgYXJlIHJlcXVpcmVkCgkgIFRoaXMgZmlyc3QgY2hlY2tzIHdoYXQgaXMgcmVxdWlyZWQgZm9yIElTTyBDOTkgc3VwcG9ydCBhbmQgc2V0cyB0aGUgcmVsZXZhbnQKCSAgY29tcGlsZXIgcGFyYW1ldGVycyBhbmQgaWYgbm8gQzk5IGNvbXBpbGVyIGlzIGZvdW5kLCBpdCBjaGVja3MgZm9yIGEKCSAgQzg5IGNvbXBpbGVyLiBUaGlzIGVuYWJsZXMgdXMgdG8gY2hlY2sgZm9yIGFuZCB1c2UgQzg5L0M5OSBmdW5jdGlvbnMKCSAgdGhhdCBnY2MgaGlkZXMgZnJvbSB1cyB3aXRob3V0IHRoZSBjb3JyZWN0IGNvbXBpbGVyIHBhcmFtZXRlcnMuCgoyMDEwLTA4LTA0IDEzOjQ3OjIzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBieXRlcmVhZGVyOiBGaXggZG9jcwoJICBGaXggdHlwbyBpbiBkb2NzIGZvciB0aGUgdW5zaWduZWQgcGVlayBmdW5jdGlvbnMKCjIwMTAtMDctMDUgMTA6MDA6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogcmVtb3ZlIFxuIGZyb20gZGVidWcgc3RhdGVtZW50cwoKMjAxMC0wOC0wMyAxMTozNzoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBmaXggYnVpbGQgd2l0aCBndGstZG9jIGZyb20gZ2l0CgkgIEZvciBzb21lIHJlYXNvbiB0aGUgc3RhdGljIGlubGluZSBmdW5jdGlvbiBHU1RfQ0FUX0xFVkVMX0xPR192YWxpc3QgaXMKCSAgbm93IHBpY2tlZCB1cCwgd2hpY2ggdGhlbiBicmVha3MgdGhlIGJ1aWxkIGJlY2F1c2UgaXQncyBub3QgZG9jdW1lbnRlZCwKCSAgc28gYWRkIGl0IHRvIHRoZSBzZWN0aW9ucyBmaWxlLgoJICBCYXNlZCBvbiBwYXRjaCBieSBWw61jdG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgPHZqYXF1ZXpAaWdhbGlhLmNvbT4uCgkgIEZpeGVzICM2MjU4NjIuCgoyMDEwLTA3LTE1IDIzOjA1OjA5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogYWRkIGNvbW1lbnQgYW5kIG1vcmUgbG9nZ2luZwoKMjAxMC0wNy0yOSAxNzoyNzowNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGRvd25sb2FkIG1vZGU7IHByZXZlbnQgcmFuZ2UgY29ycnVwdGlvbiBkdWUgdG8gcmFjZQoJICBDdXJyZW50IHJhbmdlIHdhcyBiZWluZyB1cGRhdGVkIGluIHRoZSB0aHJlYWQgcGVyZm9ybWluZyBzZWVrLCBidXQgYXMKCSAgbm8gbG9ja3Mgd2VyZSBrZXB0IGZvciBhIHNob3J0IHNlY3Rpb24sIGRhdGEgZmxvdyBjb3VsZCByZXN1bWUgYmVmb3JlCgkgIGN1cnJlbnQgcmFuZ2UgdXBkYXRlZCwgc28gZGF0YSBmb3IgdGhlIG5ldyByYW5nZSB3b3VsZCBiZSBhY2NlcHRlZCBhcwoJICBmcm9tIHRoZSBwcmV2aW91cyByYW5nZS4KCSAgUmF0aGVyLCByYW5nZSBzaG91bGQgYmUgdXBkYXRlZCBpbiBzZXJpYWxpemVkIG1hbm5lciBiYXNlZCBvbgoJICBuZXdzZWdtZW50IGV2ZW50LgoKMjAxMC0wNS0yMiAxNjozMzoxMSAtMDUwMCAgUm9iIENsYXJrIDxyb2JAdGkuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm0gZml4IGZvciB1cHN0cmVhbSBjYXBzLXJlbmVnb3RpYXRpb24KCSAgSWYgaW5pdGlhbGx5IHBhc3MtdGhyb3VnaCBjYXBzIGFyZSBuZWdvdGlhdGVkIGJldHdlZW4gYSB0cmFuc2Zvcm0gZWxlbWVudCdzCgkgIHNpbmsgYW5kIHNyYyBwYWRzLCBidXQgdGhlbiB0aGUgZG93bnN0cmVhbSBlbGVtZW50IHJldHVybnMgZGlmZmVyZW50IGNhcHMKCSAgb24gYSBidWZmZXIgZnJvbSBwYWRfYWxsb2MoKSwgYmFzZXRyYW5zZm9ybSBnZXRzIHN0dWNrIHdpdGggcHJveHlfYWxsb2M9VFJVRQoJICBldmVuIHRob3VnaCB0aGUgdXBzdHJlYW0gcGVlciBkb2Vzbid0IGFjY2VwdCB0aGUgY2FwcywgY2F1c2luZwoJICBnc3RfcGFkX3BlZXJfYWNjZXB0X2NhcHMoKSB0byBiZSBjYWxsZWQgb24gZWFjaCBidWZmZXIgaW4gX2J1ZmZlcl9hbGxvYygpOgoJICBpZiAoIWdzdF9jYXBzX2lzX2VxdWFsIChuZXdjYXBzLCBjYXBzKSkgewoJICBHU1RfREVCVUdfT0JKRUNUICh0cmFucywgImNhcHMgYXJlIG5ldyIpOwoJICAvKiB3ZSBoYXZlIG5ldyBjYXBzLCBzZWUgaWYgd2UgY2FuIHByb3h5IGRvd25zdHJlYW0gKi8KCSAgPj4gICAgaWYgKGdzdF9wYWRfcGVlcl9hY2NlcHRfY2FwcyAocGFkLCBuZXdjYXBzKSkgewoJICAvKiBwZWVyIGFjY2VwdHMgdGhlIGNhcHMsIHJldHVybiBhIGJ1ZmZlciBpbiB0aGlzIGZvcm1hdCAqLwoJICBHU1RfREVCVUdfT0JKRUNUICh0cmFucywgInBlZXIgYWNjZXB0ZWQgbmV3IGNhcHMiKTsKCSAgd2hpY2ggaXMgdGFraW5nIH40MG1zL2ZyYW1lLgoJICBUaGlzIHBhdGNoIGRvZXMgdHdvIHRoaW5ncy4gICgxKSBpZiB0aGUgYnVmZmVyIHJldHVybmVkIGZyb20gcGFkX2FsbG9jKCkgaGFzCgkgIG5ldyBjYXBzLCB0cmlnZ2VyIHRoZSBkZWNpc2lvbiB3aGV0aGVyIHRvIHByb3h5IHRoZSBidWZmZXItYWxsb2MgdG8gYmUKCSAgcmV2aXNpdGVkLCBhbmQgKDIpIGRpc2FibGUgcHJveHkgaWYgcGVlciBkb2VzIG5vdCBhY2NlcHQgbmV3IGNhcHMuICAoVGhlIGZpcnN0CgkgIHBhcnQgbWF5IG5vdCBiZSBzdHJpY3RseSBuZWVkZWQsIGJ1dCBzZWVtZWQgbGlrZSBhIGdvb2QgaWRlYS4pCgkgIE5vdGUgdGhhdCB0aGlzIGlzc3VlIHdvdWxkIG5vdCBhcmlzZSBleGNlcHQgaW4gY2FzZSBvZiBkb3duc3RyZWFtIGVsZW1lbnRzCgkgIHdobyBoYXZlIG9uIHRoZWlyIHRlbXBsYXRlLWNhcHMsIHNvbWUgdGhhdCB3b3VsZCBiZSBzdWl0YWJsZSBmb3IgcGFzcy10aHJvdWdoLAoJICBidXQgYXQgcnVudGltZSBwaWNrIG1vcmUgcmVzdHJpY3RpdmUgY2FwcyAoZm9yIGV4LCBhZnRlciBxdWVyeWluZyBhIGRyaXZlciBmb3IKCSAgd2hhdCBmb3JtYXRzIGl0IGFjdHVhbGx5IHN1cHBvcnRzKS4KCjIwMTAtMDctMjcgMTQ6MzA6NTEgKzAyMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZml4IGNvbXBpbGF0aW9uIG9uIHdpbmRvd3MKCSAgRml4IG1pc21hdGNoZWQgYnJhY2tldHMgKCM2MjUyOTUpLgoKMjAxMC0wNy0yNyAwNzoyMToxOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZ3N0ZGF0ZXRpbWU6IEZpeCBsb2NhbHRpbWUgdXNhZ2UKCSAgbG9jYWx0aW1lIG9ubHkgdGFrZXMgb25lIHBhcmFtZXRlciBhbmQgcmV0dXJucyBhIHN0YXRpY2FsbHkKCSAgYWxsb2NhdGVkIHRtIHN0cnVjdC4gVXNlIGl0IGNvcnJlY3RseS4KCSAgRml4ZXMgIzYyNTM2OAoKMjAxMC0wMy0yOSAxODowNTo0MCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFRyeSBzdWdnZXN0aW5nIGNhcHMgb24gYmFkIGNhcHMgcGFkX2FsbG9jCgkgIFdoZW4gYmFzZXRyYW5zZm9ybSByZWNlaXZlZCBhbiB1bnN1cHBvcnRlZCBjYXBzIG9uIHBhZF9hbGxvYwoJICBpdCBqdXN0IHJldHVybmVkIG5vdC1uZWdvdGlhdGVkLiBUaGlzIHBhdGNoIG1ha2VzIGl0IHF1ZXJ5CgkgIHRoZSBhbGxvd2VkIGNhcHMgYmV0d2VlbiBoaXMgc2lua3BhZCBhbmQgdXBzdHJlYW0ncyBzcmNwYWQKCSAgdG8gZmluZCBhIGNhcHMgdG8gc3VnZ2VzdC4KCSAgVGhpcyBoYXBwZW5zIHdoZW4gZGluYW1pY2FsbHkgc3dpdGNoaW5nIHBpcGVsaW5lIGVsZW1lbnRzCgkgIGFuZCB1cHN0cmVhbSBwYWRfYWxsb2NzIHdpdGggdGhlIHByZXZpb3VzIGNhcHMgdGhhdCB3YXMKCSAgYmVpbmcgdXNlZC4KCSAgRml4ZXMgIzYxNDI5NgoKMjAxMC0wNy0yNiAxODo1Mzo1NyArMDIwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBmbHVzaCBhZ2FpbiBhZnRlciBldmVyeSBsaW5lIG9mIGRlYnVnIG91dHB1dAoJICBnX3ByaW50ZXJyKCkgdXNlZCB0byBkbyB0aGlzIGZvciB1cy4gQWxzbyB1c2UgbGliYydzIGZwcmludGYoKSBmdW5jdGlvbnMsCgkgIHRvIG1ha2Ugc3VyZSB0aGUgc3RkZXJyIHBvaW50ZXIgd2UgdXNlIGlzIGFjdHVhbGx5IGNvbXBhdGlibGUgd2l0aCB0aGUKCSAgbGliYyBsaW5rZWQgYWdhaW5zdCBieSBHU3RyZWFtZXIgKHdoaWNoIGFwcGFyZW50bHkgbWF5IG5vdCBhbHdheXMgYmUgdGhlCgkgIHNhbWUgYXMgd2hhdCBHTGliIGlzIGxpbmtlZCBhZ2FpbnN0IG9uIHdpbmRvd3MpLCBhbmQgd2UgZG9uJ3QgbmVlZCB0aGUKCSAgZnVuY3Rpb25hbGl0eSBlbnN1cmVkIGJ5IGdfZnByaW50ZigpLgoJICBGaXhlcyAjNjI1Mjk1LgoKMjAxMC0wNy0yNiAxODo1MzozNSArMDIwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgc3RyaW5ncwoKMjAxMC0wNi0yMyAxMTozMTozMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEFkZHMgdGVzdHMgZm9yIGRhdGV0aW1lCgkgIEFkZHMgdGVzdHMgZm9yIGRhdGV0aW1lIGZpZWxkcyBpbiBnc3R2YWx1ZSB0ZXN0cwoJICBGaXhlcyAjNTk0NTA0CgoyMDEwLTA2LTIzIDExOjMwOjAyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0c3RydWN0dXJlOiBBZGRzIGRhdGV0aW1lIGdldHRlciBmdW5jdGlvbgoJICBBZGRzIGdzdF9zdHJ1Y3R1cmVfZ2V0X2RhdGVfdGltZSBmdW5jdGlvbgoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfZ2V0X2RhdGVfdGltZQoJICBGaXhlcyAjNTk0NTA0CgoyMDEwLTA2LTIxIDIzOjQyOjQ0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZzogQWRkcyBHU1RfVEFHX0RBVEVfVElNRSB0YWcKCSAgQWRkcyBhIG5ldyB0YWcgdGhhdCByZXByZXNlbnRzIGEgZGF0ZSBhbmQgdGltZSBhIG1lZGlhIHdhcwoJICBjcmVhdGVkCgkgIEFQSTogR1NUX1RBR19EQVRFX1RJTUUKCSAgRml4ZXMgIzU5NDUwNAoKMjAxMC0wNy0yMSAyMjowODoyMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFnbGlzdDogQWRkIGRhdGV0aW1lIGdldCBmdW5jdGlvbnMKCSAgQWRkcyBfZGF0ZV90aW1lX2dldCBhbmQgX2RhdGVfdGltZV9nZXRfaW5kZXggZnVuY3Rpb25zIHRvCgkgIHRhZ2xpc3QuCgkgIEFQSTogZ3N0X3RhZ19saXN0X2dldF9kYXRlX3RpbWUKCSAgQVBJOiBnc3RfdGFnX2xpc3RfZ2V0X2RhdGVfdGltZV9pbmRleAoJICBGaXhlcyAjNTk0NTA0CgoyMDEwLTA3LTIxIDIyOjA0OjIzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3R2YWx1ZTogQWRkcyBkYXRldGltZSBmdW5jdGlvbnMKCSAgQWRkcyBhIGRhdGV0aW1lIGZ1bmN0aW9ucyB0byBnc3R2YWx1ZQoJICBGaXhlcyAjNTk0NTA0CgoyMDEwLTA3LTE2IDE0OjA5OjEyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdGRhdGV0aW1lOiBBZGRzIEdzdERhdGVUaW1lCgkgIEFkZHMgR3N0RGF0ZVRpbWUgdG8gcmVwcmVzZW50IGRhdGVzICsgdGltZSArIHRpbWV6b25lCgkgIGluZm9ybWF0aW9uLgoJICBUZXN0cyBpbmNsdWRlZC4KCSAgQVBJOiBHc3REYXRlVGltZQoJICBBUEk6IGdzdF9kYXRlX3RpbWVfZ2V0X2RheQoJICBBUEk6IGdzdF9kYXRlX3RpbWVfZ2V0X21vbnRoCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9nZXRfeWVhcgoJICBBUEk6IGdzdF9kYXRlX3RpbWVfZ2V0X2hvdXIKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX2dldF9taWNyb3NlY29uZAoJICBBUEk6IGdzdF9kYXRlX3RpbWVfZ2V0X21pbnV0ZQoJICBBUEk6IGdzdF9kYXRlX3RpbWVfZ2V0X3NlY29uZAoJICBBUEk6IGdzdF9kYXRlX3RpbWVfZ2V0X3RpbWVfem9uZV9vZmZzZXQKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX25ldwoJICBBUEk6IGdzdF9kYXRlX3RpbWVfbmV3X2xvY2FsX3RpbWUKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX25ld19mcm9tX3VuaXhfZXBvY2gKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX25ld19ub3dfbG9jYWxfdGltZQoJICBBUEk6IGdzdF9kYXRlX3RpbWVfbmV3X25vd191dGMKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX3JlZgoJICBBUEk6IGdzdF9kYXRlX3RpbWVfdW5yZWYKCSAgRml4ZXMgIzU5NDUwNAoKMjAxMC0wNy0yNiAxNDo1OTo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogRml4IHVzYWdlIG9mIGdsaWJfY2hlY2tfdmVyc2lvbigpCgkgIEl0IHJldHVybnMgTlVMTCBpZiB0aGUgaW5zdGFsbGVkIEdMaWIgdmVyc2lvbiBpcyBhcyBsZWFzdCBhcwoJICBuZXcgYXMgdGhlIHJlcXVpcmVkIHZlcnNpb24gYW5kIHNvbWUgZXhwbGFuYXRvcnkgc3RyaW5nIG90aGVyd2lzZS4KCjIwMTAtMDctMjMgMjA6NDY6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IG1ha2UgZ3N0LWluc3BlY3QgcHJpbnQgdGhlIHJlbGVhc2UgZGF0ZSB0aW1lIHN0YW1wCgoyMDEwLTA2LTIxIDE3OjM0OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHVzZSBuZXcgQUdfR1NUX1NFVF9QQUNLQUdFX1JFTEVBU0VfREFURVRJTUVfV0lUSF9OQU5PIG1hY3JvCgoyMDEwLTA2LTIwIDAxOjU1OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgYmluYXJ5cmVnaXN0cnk6IHNhdmUgYW5kIGxvYWQgcmVsZWFzZSBkYXRlIHRpbWUgaW4gR3N0UGx1Z2luRGVzYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIzMDQwCgoyMDEwLTA2LTIwIDAwOjMzOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogYWRkIHJlbGVhc2UgZGF0ZXRpbWUgZmllbGQgdG8gR3N0UGx1Z2luRGVzYyBhbmQgc2V0IGl0IGlmIEdTVF9QQUNLQUdFX1JFTEVBU0VfREFURVRJTUUgaXMgZGVmaW5lZAoJICBUaGlzIGlzIGEgc3RyaW5nIGRlc2NyaWJpbmcgYSBkYXRlIGFuZC9vciBkYXRlL3RpbWUgaW4gYSBzaW1wbGUgc3Vic2V0IG9mCgkgIHRoZSBJU08tODYwMSBmb3JtYXQsIG5hbWVseSBlaXRoZXIgIllZWVktTU0tREQiIG9yICJZWVlZLU1NLUREVEhIOk1NWiIgKHdpdGgKCSAgJ1QnIHRoZSBkYXRlL3RpbWUgc2VwYXJhdG9yIGFuZCB0aGUgJ1onIGluZGljYXRpbmcgVVRDKS4KCSAgVGhlIG1haW4gcHVycG9zZSBvZiB0aGlzIGZpZWxkIGlzIHRvIGtlZXAgdHJhY2sgb2YgcGx1Z2luIGFuZCBlbGVtZW50IHZlcnNpb25zCgkgIG9uIGFuIGFic29sdXRlIHRpbWVsaW5lLCBzbyBpdCdzIHBvc3NpYmxlIHRvIGRldGVybWluZSB3aGljaCBvbmUgaXMgbmV3ZXIgd2hlbgoJICBjb21wYXJpbmcgdHdvIGRhdGUgdGltZSBudW1iZXJzLiBUaGlzIHdpbGwgYWxsb3cgdXMgdG8gZXhwcmVzcyAncmVwbGFjZXMnLXR5cGUKCSAgcmVsYXRpb25zaGlwcyBiZXR3ZWVlbiBwbHVnaW5zIGFuZCBlbGVtZW50IGZhY3RvcmllcyBpbiBmdXR1cmUsIGV2ZW4gYWNyb3NzCgkgIGRpZmZlcmVudCBtb2R1bGVzIGFuZCBwbHVnaW4gbWVyZ2VzIG9yIHNwbGl0cyAoc291cmNlIG1vZHVsZSB2ZXJzaW9uIG51bWJlcnMKCSAgYXJlbid0IHBhcnRpY3VsYXJseSB1c2VmdWwgaGVyZSwgc2luY2UgdGhleSBjYW4gb25seSBtZWFuaW5nZnVsbHkgYmUgY29tcGFyZWQKCSAgd2l0aGluIHRoZSBzYW1lIG1vZHVsZSkuIEl0IGFsc28gYWxsb3dzIGFwcGxpY2F0aW9ucyBhbmQgbGlicmFyaWVzIHRvIHJlbGlhYmx5CgkgIGNoZWNrIHRoYXQgYSBwbHVnaW4gaXMgcmVjZW50IGVub3VnaCB3aXRob3V0IG1ha2luZyBhc3N1bXB0aW9ucyBhYm91dCBtb2R1bGVzCgkgIG9yIG1vZHVsZSB2ZXJzaW9ucy4KCSAgV2UgdXNlIGEgc3RyaW5nIGhlcmUgdG8ga2VlcCB0aGluZ3Mgc2ltcGxlIGFuZCBjbGVhciwgZXNwLiBvbiB0aGUgYnVpbGQgc3lzdGVtCgkgIHNpZGUgb2YgdGhpbmdzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIzMDQwCgoyMDEwLTA3LTIwIDA5OjI1OjIwIC0wNTAwICBTaGl4aW4gWmVuZyA8emVuZy5zaGl4aW5AZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJlc2V0LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICB0ZXN0czogbWFrZSAqX2dldF90eXBlKCkgaW4gdGVzdHMgdGhyZWFkIHNhZmUKCSAgRXZlbiBpZiBpdCBzaG91bGRuJ3QgYmUgbmVlZGVkIGhlcmUuIFNlZSAjNjIzNDkxLgoKMjAxMC0wNi0wNCAxMToyNDo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiB3cml0ZSBkZWJ1Z2dpbmcgb3V0cHV0IHRvIGZpbGUgaWYgR1NUX0RFQlVHX0ZJTEUgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgc2V0CgkgIFRoaXMgY2hhbmdlcyBiZWhhdmlvdXIgc2xpZ2h0bHkgaW4gdGhhdCB3ZSBubyBsb25nZXIgb3V0cHV0IHRoaW5ncwoJICB2aWEgZ19wcmludGVycigpLCBzbyBhbnkgbm9uLXN0YW5kYXJkIGdsaWIgcHJpbnRlcnIgaGFuZGxlcnMgYXJlIG5vCgkgIGxvbmdlciBjYWxsZWQgd2hlbiBHU1RfREVCVUcgaXMgZW5hYmxlZC4gSG93ZXZlciwgdGhpcyBzZWVtcyBub3QKCSAgcmVhbGx5IGRlc2lyYWJsZSBpbiBtb3N0IGNhc2VzIGFueXdheSwgYW5kIHRoZSBHTGliIGRvY3MgYWxzbyBzYXkKCSAgdGhhdCBsaWJyYXJpZXMgc2hvdWxkIG5vdCB1c2UgZ19wcmludGVycigpIGZvciBsb2dnaW5nLgoJICBPdGhlciBzdGRlcnIgb3V0cHV0IChlLmcuIHdhcm5pbmdzLCBvciBhcHBsaWNhdGlvbiBtZXNzYWdlcykgd2lsbAoJICBvZiBjb3Vyc2Ugbm90IGJlIGNhcHR1cmVkIGluIHRoZSBsb2cgZmlsZSB0aGlzIHdheS4KCSAgR1NUX0RFQlVHX0ZJTEU9LSB3aWxsIHJlZGlyZWN0IGRlYnVnIG91dHB1dCB0byBzdGRvdXQuCgoyMDEwLTA3LTIwIDIwOjQ5OjEyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IEFzc3VtZSBwYWRzIGFyZSBjb21wYXRpYmxlIGlmIHdlIGRvbid0IGhhdmUgdGVtcGxhdGVzCgkgIFRoaXMgaXMgdGhlIHNhbWUgYmVoYXZpb3VyIGFzIGlmIHdlIGhhZCBhIHBhZCB0ZW1wbGF0ZSBjYXBzIG9mCgkgIEdTVF9DQVBTX0FOWSBvbiBhbnkgb2YgdGhlIHBhZHMgKGkuZS4gdGhlIGFjdHVhbCBjaGVjayB3aWxsIGJlIGRvbmUKCSAgZHVyaW5nIGNhcHMgbmVnb3RpYXRpb24pLgoKMjAxMC0wNy0xNyAyMToyODo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQWxsb3cgdGhlIHN1YmNsYXNzIHRvIGFkZCBuZXcgZmllbGRzIHRvIGNhcHMgd2hlbiBnZXR0aW5nIG5ldyBjYXBzIGZyb20gZG93bnN0cmVhbQoJICBUaGlzIHdhcyBhbHJlYWR5IGRvbmUgaW4gYWxsIG90aGVyIGNhc2VzIHdoZXJlIG5ldyBjYXBzIGFyZSBoYW5kbGVkCgkgIGV4Y2VwdCB1cHN0cmVhbSBuZWdvdGlhdGlvbi4KCjIwMTAtMDctMTIgMTQ6Mzk6MDAgKzAyMDAgIE1pY2hhZWwgQnVuayA8YnVua0BpYXQudW5pLWxlaXB6aWcuZGU+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1tZXRhZGF0YS54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXRocmVhZHMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgIGRvY3M6IGZpeCBzb21lIHR5cG9zIGFuZCBhZGQgc29tZSBtaXNzaW5nIGxpbmtzIGluIHRoZSBhcHAgZGV2IG1hbnVhbAoJICBGaXhlcyAjNjI0MTY0LgoKMjAxMC0wNy0xMiAxNDoyMjo1MCArMDIwMCAgTWljaGFlbCBCdW5rIDxidW5rQGlhdC51bmktbGVpcHppZy5kZT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LjEuaW46CgkgIGRvY3M6IGZpeCB0eXBvIG9uIGdzdC1pbnNwZWN0IG1hbiBwYWdlCgkgIFNlZSAjNjI0MTY0LgoKMjAxMC0wNy0wMyAxNTowODoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBnc3RjaGVjazogZml4IHNvbWUgc2lsbHkgbGlzdCBpdGVyYXRpb24gY29kZQoJICBnX2xpc3RfbGVuZ3RoKCkgaXMgbm90IHRoZSBiZXN0IHdheSB0byBjaGVjayBpZiBhIGxpc3QgaXMgZW1wdHkgb3Igbm90LgoKMjAxMC0wNy0xNiAxNzo1MzozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IHVzZSBHU3RhdEJ1ZiB1bmNvbmRpdGlvbmFsbHkgYW5kIGFkZCB0eXBlZGVmIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQoJICBObyBuZWVkIHRvIGNsdXR0ZXIgdGhlIGNvZGUgd2l0aCAjaWYgI2Vsc2UgI2VuZGlmLgoJICBTZWUgIzYyMzg3NS4KCjIwMTAtMDctMTYgMTc6MzM6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIHN0cnVjdHVyZTogVXNlIGEgY29uc3QgR3N0U3RydWN0dXJlICogYXMgcGFyYW1ldGVyIGZvciBzb21lIG1vcmUgZ3N0X3N0cnVjdHVyZV9nZXQgdmFyaWFudHMKCjIwMTAtMDctMTQgMTk6NDc6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBSZXZlcnQgIi1sYXVuY2g6IGRpc2FibGUgQ0xPQ0tfTE9TVCBtZXNzYWdlIGhhbmRsaW5nIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDFmOGViYTYxMWE2M2Y0NTc2NmMzOGM2NDAyODhlNDJiMjdiMTBiZDQuCgkgIFRoaXMgc2hvdWxkIGJlIGZpeGVkIG5vdyAoYW5kIGlmIG5vdCBzaG91bGQgYmUgZml4ZWQpIGFuZCB0aGUKCSAgY2xvY2stbG9zdCBoYW5kbGluZyBpcyBub3cgbmVlZGVkIGZvciBwbGF5YmluMiBnYXBsZXNzIHBsYXliYWNrLgoJICBTZWUgYnVnICM1NzkxMjcuCgoyMDEwLTA3LTA4IDIxOjA0OjU0ICswMjAwICBEYXZpZCBIb3l0IDxkaG95dEBsbG5sLmdvdj4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeWJpbmFyeTogRml4IGNvbXBhdGliaWxpdHkgd2l0aCBHTGliIDIuMjUgd2hlbiB1c2luZyBNU1ZDCgkgIE5ld2VyIEdMaWIgdXNlcyBhIG5ldyB0eXBlIGZvciBnX3N0YXQoKSBhbmQgZnJpZW5kcyB0byBpbXByb3ZlCgkgIFdpbmRvd3MgY29tcGF0aWJpbGl0eS4gT24gUE9TSVggdGhpcyBpcyBhIHR5cGVkZWYgdG8gc3RydWN0IHN0YXQuCgkgIEZpeGVzIGJ1ZyAjNjIzODc1LgoKMjAxMC0wNy0wOCAwNzo0ODowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IElmIHRoZSBjdXJyZW50bHkgdXNlZCBjbG9jayBnZXRzIGxvc3QgdXBkYXRlIGl0IHRoZSBuZXh0IHRpbWUgd2hlbiBnb2luZyBmcm9tIFBBVVNFRCB0byBwbGF5aW5nCgkgIEZpeGVzIGJ1ZyAjNjIzODA2LgoKMjAxMC0wNy0wNSAxOTozMzowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogUmV0dXJuIHZhbHVlcyBpbiBzdHJlYW0gdGltZSBmb3IgdGhlIFBPU0lUSU9OIHF1ZXJ5CgkgIEZpeGVzIGJ1ZyAjNjIzNjIyLgoKMjAxMC0wNy0wNSAxODo1NDo0NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBJbXBsZW1lbnQgR3N0RWxlbWVudDo6Z2V0X3F1ZXJ5X3R5cGVzKCkKCjIwMTAtMDctMDYgMTA6MTM6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogT25seSBhbnN3ZXIgdGhlIFNFR01FTlQgcXVlcnkgaW4gcHVsbCBtb2RlCgkgIE90aGVyd2lzZSB0aGUgZWxlbWVudCBoYW5kbGluZyB0aGUgc2Vla3Mgc2hvdWxkIGFuc3dlciB0aGlzIHF1ZXJ5LgoJICBGaXhlcyBidWcgIzYyMzYyMi4KCjIwMTAtMDctMDUgMTA6MzY6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEltcGxlbWVudCBQT1NJVElPTiBxdWVyeQoJICBGaXhlcyBidWcgIzYyMzU0MS4KCjIwMTAtMDYtMjUgMTY6MzE6MDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIEdzdFBhZDogRG8gbm90IGNhbGwgZ3N0X3BhZF9hY2NlcHRfY2FwcygpIHdoZW4gY2FwcyBjaGFuZ2UKCSAgSW5zdGVhZCBqdXN0IGNoZWNrIHRoYXQgdGhlIGNhcHMgaW50ZXJzZWN0IHdpdGggdGhlIHBhZCB0ZW1wbGF0ZS4KCSAgVGhlIGVsZW1lbnRzIHNob3VsZCBwcm9wZXJseSBhY2NlcHQvcmVmdXNlIHRoZSBjYXBzIGluIHNldGNhcHMoKS4KCSAgU2hhdmVzIG9mZiBjYWxsaW5nIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIGFjY2VwdGNhcHMgd2hpY2ggZG9lcwoJICBhbiBleHBlbnNpdmUgZ3N0X3BhZF9nZXRfY2FwcygpIChzbyBpZiB5b3UgaGF2ZSA1MCBvZiB0aG9zZSBlbGVtZW50cyBpbgoJICBhIHJvdywgeW91J2QgYmUgZG9pbmcgZmFjdG9yaWFsKDUwKSBnc3RfcGFkX2dldF9jYXBzLi4uKS4KCSAgRG9lcyBub3QgYnJlYWsgYW55IG1vZHVsZSB1bml0IHRlc3QgYW5kIG1vc3QgYXBwcyB3b3JrIGZpbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjI3NDAKCjIwMTAtMDctMDggMTY6MjQ6MjEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEFkZCBtb3JlIGRldGFpbHMgYWJvdXQgZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkCgoyMDEwLTA3LTE2IDExOjE2OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQuCgo9PT0gcmVsZWFzZSAwLjEwLjMwID09PQoKMjAxMC0wNy0xNCAyMzo1OTo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMzAKCjIwMTAtMDctMTQgMTc6NTg6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vZGUucG86CgkqIHBvL2lkLnBvOgoJKiBwby96aF9DTi5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMDctMTUgMTI6MDE6MjQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiByZW1vdmUgY29tbWEgYXQgdGhlIGVuZCBvZiB0aGUgbGFzdCBlbnVtIHZhbHVlCgkgIEZpeGVzIHRoZSBidWlsZCBmb3IgYysrLgoKMjAxMC0wNy0xMSAxOTowMDo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIGNoZWNrczogYWRkIHVuaXQgdGVzdCBmb3IgcmVjZW50IHRhZ2xpc3QgbWVyZ2Vfc3RyaW5nc193aXRoX2NvbW1hIGZpeAoJICBTZWUgIzYyNDExMy4KCjIwMTAtMDctMTEgMTg6NTk6NTMgKzAxMDAgIEVkdWFyZG8gRG9iYXkgPGVkdWRvYmF5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGZpeCBtZXJnZV9zdHJpbmdzX3dpdGhfY29tbWEoKSBmb3IgbW9yZSB0aGFuIHR3byBzdHJpbmdzCgkgIEZpeGVzICM2MjQxMTMuCgoyMDEwLTA3LTA4IDEzOjQ2OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgLmdpdGlnbm9yZTogaWdub3JlIG5ldyBiYXNlc2luayB1bml0IHRlc3QgYmluYXJ5CgoyMDEwLTA3LTA4IDEzOjQzOjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogcmVtb3ZlIC1wIHNob3J0aGFuZCBmb3IgLS1uby1zaWd1c3ItaGFuZGxlcgoJICBJdCdzIG5vdCByZWFsbHkgbmVlZGVkLCBhbmQgZG9lc24ndCBtYXAgYW55IGxvbmdlciBhZnRlciB0aGUgbG9uZyBvcHRpb24KCSAgaGFzIGJlZW4gcmVuYW1lZC4KCjIwMTAtMDctMDYgMTU6NDc6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjkuNCBwcmUtcmVsZWFzZQoJICBBbHNvIGJ1bXAgbGlidG9vbCB2ZXJzaW9ucyBub3cgKHdoaWNoIEkgbWVhbnQgdG8gZG8gZm9yIHRoZSBmaXJzdAoJICBwcmUtcmVsZWFzZSBidXQgZm9yZ290KS4KCjIwMTAtMDctMDYgMjM6NDQ6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vTElOR1VBUzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3YucG86CgkqIHBvL3poX0NOLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0wNy0wNiAxNjoyMTowNSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc2luay5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2VzaW5rOiBhZGQgYWNjZXNzb3JzIGZvciB0aGUgZW5hYmxlLWxhc3QtYnVmZmVyIHByb3BlcnR5LgoJICBBUEk6IGdzdF9iYXNlX3Npbmtfc2V0X2xhc3RfYnVmZmVyX2VuYWJsZWQKCSAgQVBJOiBnc3RfYmFzZV9zaW5rX2lzX2xhc3RfYnVmZmVyX2VuYWJsZWQKCjIwMTAtMDctMDYgMTI6MTg6NDUgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc2luay5jOgoJICBiYXNlc2luazogYWRkIG5ldyBlbmFibGUtbGFzdC1idWZmZXIgcHJvcGVydHkuCgkgIEFkZCBhIG5ldyBlbmFibGUtbGFzdC1idWZmZXIgcHJvcGVydHkuIFdoZW4gZmFsc2UsIGl0IGRpc2FibGVzIHN0b3JpbmcgdGhlIGxhc3QKCSAgcmVjZWl2ZWQgYnVmZmVyIGluIGJhc2VzaW5rOjpsYXN0LWJ1ZmZlci4gVGhpcyBjYW4gYmUgdXNlZnVsIGluIGNhc2VzIHdoZXJlCgkgIGJ1ZmZlcnMgbmVlZCB0byBiZSByZWxlYXNlZCBhc2FwLgoJICBBUEk6IEdzdEJhc2VTaW5rOjplbmFibGUtbGFzdC1idWZmZXIKCjIwMTAtMDctMDYgMTA6NDg6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOgoJICBjaGVja3M6IHJld3JpdGUgZ3N0dGFnc2V0dGVyIHRlc3QgdG8gdXNlIGZld2VyIGdfdXNsZWVwKCkKCSAgU29tZXRoaW5nIGFib3V0IHRoYXQgc2VlbXMgdG8gaW50ZXJhY3QgYmFkbHkgd2l0aCBzb21lIHNjaGVkdWxlcnMsCgkgIHNvIGRvIHRoaW5ncyBkaWZmZXJlbnRseS4KCSAgRml4ZXMgIzYyMzQ2OS4KCjIwMTAtMDctMDYgMTA6MTk6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIG5ldyBhZGQgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmNfZnVsbCgpIHRvIGRvY3MKCSAgQVBJOiBhZGQgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmNfZnVsbAoJICBTZWUgIzYyMzU4OS4KCjIwMTAtMDctMDYgMTA6Mjg6MTQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEltcHJvdmUgZ3N0X3ZhbHVlX3tzZXR8Z2V0fV9jYXBzIGRvY3MKCjIwMTAtMDctMDYgMTA6MzU6MDkgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGV4cG9ydCBnc3RfY2xvY2tfaWRfd2FpdF9hc3luY19mdWxsCgoyMDEwLTA3LTA2IDEwOjMxOjI1ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kZWNpbmFAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICB0ZXN0czogcmVtb3ZlIEFCSSBjaGVja3MgZm9yIEdzdENsb2NrRW50cnkuCgoyMDEwLTA3LTA1IDE4OjQ1OjU1ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kZWNpbmFAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiBkb2N1bWVudCB0aGF0IEdzdENsb2NrRW50cnkgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYW5hIG9wYXF1ZSBzdHJ1Y3R1cmUuCgoyMDEwLTA3LTA1IDEzOjEwOjA5ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kZWNpbmFAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiB1c2UgdGhlIG5ldyBnc3RfY2xvY2tfaWRfd2FpdF9hc3luY19mdWxsLgoJICBVc2UgdGhlIG5ldyBnc3RfY2xvY2tfaWRfd2FpdF9hc3luY19mdWxsIGluIGdzdF9jbG9ja19zZXRfbWFzdGVyLgoJICBBbHNvIGFkZCBzb21lIHRlc3RzLgoKMjAxMC0wNy0wNSAxMzowMTo1MyArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogZml4IHJlZmNvdW50aW5nIGJ1ZyBpbiBnc3RfY2xvY2tfc2V0X21hc3Rlci4KCSAgTWFrZSBzdXJlIGNsb2NrLT5jbG9ja2lkIGlzIHVucmVmZmVkIGJlZm9yZSBjbG9jay0+bWFzdGVyLgoJICBnc3RfY2xvY2tfaWRfdW5zY2hlZHVsZSAoY2xvY2stPmNsb2NraWQpIHRyaWVzIHRvIGFjY2VzcyBjbG9jay0+bWFzdGVyLiBJZgoJICBjbG9jay0+bWFzdGVyIGlzIHVucmVmZmVkIGJlZm9yZSBhbmQgaXQncyBkZWFsbG9jYXRlZCwgX3Vuc2NoZWR1bGUgY291bGQgYWNjZXNzCgkgIGZyZWUnZCBtZW1vcnkuCgoyMDEwLTA3LTA1IDEyOjU2OjQwICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kZWNpbmFAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJICBjbG9jazogYWRkIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jX2Z1bGwuCgkgIEFkZCBnc3RfY2xvY2tfaWRfd2FpdF9hc3luY19mdWxsLiBJdCdzIHRoZSBzYW1lIGFzIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jIGJ1dAoJICBhbGxvd3MgcGFzc2luZyBhIEdEZXN0cm95Tm90aWZ5IHRvIGRlc3Ryb3kgdXNlcl9kYXRhLgoKMjAxMC0wNy0wNSAxNzo1MDozMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZG9jczogaW1wcm92ZSB0aGUgYXBpIGRvY3MgZm9yIG5ldyBHc3RQYWRMaW5rQ2hlY2tzIGFuZCBpdHMgdXNlCgoyMDEwLTA3LTA1IDEyOjIxOjUxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9SRUFETUU6CgkgIFJFQURNRTogdXBkYXRlIGFmdGVyIHJlbW92YWwgb2YgIm9sZCIgZGlyLgoJICBSZW1vdmUgIm9sZCIgYW5kIGFkZCBhIGxpbmUgYWJvdXQgImV4YW1wbGVzIi4KCjIwMTAtMDctMDQgMTc6MzQ6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvVE9ETzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2FwcHJlYWRlci8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvYXBwcmVhZGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvYXBwcmVhZGVyL2FwcHJlYWRlci5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY3V0dGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jdXR0ZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jdXR0ZXIvY3V0dGVyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jdXR0ZXIvY3V0dGVyLmg6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9ldmVudHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9ldmVudHMvc2Vlay5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvaGVsbG93b3JsZDIvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2hlbGxvd29ybGQyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvaGVsbG93b3JsZDIvaGVsbG93b3JsZDIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21hbnVhbC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWFudWFsL2V4dHJhY3QucGw6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9taXhlci8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWl4ZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9taXhlci9taXhlci5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuaDoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3Bpbmdwb25nLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9waW5ncG9uZy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3Bpbmdwb25nL3Bpbmdwb25nLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wbHVnaW5zLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuaDoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3B3Zy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcHdnL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcHdnL2V4dHJhY3QucGw6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZTIvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlMi9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlMi9xdWV1ZTIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlMy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWUzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWUzL3F1ZXVlMy5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWU0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZTQvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZTQvcXVldWU0LmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9yZXRhZy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcmV0YWcvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9yZXRhZy9yZXRhZy5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcmV0YWcvdHJhbnNjb2RlLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy90aHJlYWQvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3RocmVhZC9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3RocmVhZC90aHJlYWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL1J1bGVzOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvYXBwX2ZpeGF0ZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvYXVkaW9zY2FsZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvY2Fwcy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvY2Fwcy5oOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvY2Fwc19zdHJpbmdzOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvY29tcGF0aWJpbGl0eS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvZGVzZXJpYWxpemUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2VudW1jYXBzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9lcmF0b3N0aGVuZXMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2ZpbHRlcmNhcHMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2ZpeGVkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9mcmFjdGlvbi1jb252ZXJ0LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9mcmFjdGlvbi1tdWx0aXBseS1hbmQtemVyby5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvaW50ZXJzZWN0Mi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvaW50ZXJzZWN0aW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9ub3JtYWxpc2F0aW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9yYW5kb20uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3JlbmVnb3RpYXRlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9zZXRzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9zaW1wbGlmeS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvc3RyaW5nLWNvbnZlcnNpb25zLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9zdHJ1Y3R1cmUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3N1YnRyYWN0LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy91bmlvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2RlYnVnLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvY2F0ZWdvcnkuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy9jb21tYW5kbGluZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2RlYnVnL2dsb2JhbC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2RlYnVnL291dHB1dC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2RlYnVnL3ByaW50Zl9leHRlbnNpb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kbG9wZW4vLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kbG9wZW4vTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGxvcGVuL2Rsb3Blbl9nc3QuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kbG9wZW4vbG9hZGdzdC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvZ3N0LWluc3BlY3QtY2hlY2suaW46CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9zdHJ1Y3Rfc2l6ZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2luZGV4ZXJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvaW5kZXhlcnMvY2FjaGUxLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvaW5kZXhlcnMvaW5kZXhkdW1wLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGFyc2UvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wYXJzZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wYXJzZS9wYXJzZTEuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wYXJzZS9wYXJzZTIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL1JFQURNRToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vZHluYW1pYy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9saW5rZWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vbG9hZGluZy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9yZWdpc3RyeS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9zdGF0aWMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vc3RhdGljMi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi90ZXN0cGx1Z2luLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL3Rlc3RwbHVnaW4yLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL3Rlc3RwbHVnaW4yX3MuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vdGVzdHBsdWdpbl9zLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9iaW4uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9lbGVtZW50LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvZWxlbWVudF9wYWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9tYWlubG9vcC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL21lbS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL21lbS5oOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL29iamVjdC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL3BhZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL3NjaGVkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvdGhyZWFkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc3RhdGVzLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc3RhdGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3N0YXRlcy9iaW4uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zdGF0ZXMvbG9ja2VkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc3RhdGVzL3BhcmVudC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzLzE1OTU2Ni5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvMTU5ODUyLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3F1ZXVlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy9zaWduYWxzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy9zdGF0aWNyZWMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3RocmVhZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkYi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkYy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkZi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkZy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkaC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkaS5jOgoJICBSZW1vdmUgb2xkIDAuOCB0ZXN0cyBhbmQgZXhhbXBsZXMgZnJvbSBnaXQgdHJlZQoJICBEb2Vzbid0IHJlYWxseSBsb29rIGxpa2UgYW55dGhpbmcncyB3b3J0aCBrZWVwaW5nLgoKMjAxMC0wNy0wMyAxNjozOTo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIGNoZWNrOiBza2lwIHNpbGx5IHRlc3QgdGhhdCBzZWdmYXVsdHMgd2hlbiBpbiBhIENLX0ZPUks9bm8gZW52aXJvbm1lbnQKCSAgU2VlICM2MjM0NjkuCgoyMDEwLTA3LTAzIDE1OjEzOjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSAgY2hlY2tzOiBtYWtlIGZha2VzcmMgY2hlY2sgd29yayBpbiBhIENLX0ZPUks9bm8gZW52aXJvbm1lbnQKCSAgUmVzZXQgaGF2ZV9lb3MgYXQgdGhlIGJlZ2lubmluZyBvZiBlYWNoIHRlc3QuCgkgIFNlZSAjNjIzNDY5LgoKMjAxMC0wNy0wMyAxNDowOTozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkgIGNoZWNrczogcnVuIHRlc3RzIGNhbGxpbmcgZ3N0X2RlaW5pdCgpIGxhc3Qgc28gdGhpbmdzIHdvcmsgd2l0aCBDS19GT1JLPW5vCgkgIEJlY2F1c2UgZ3N0X2luaXQoKSB3aWxsIGZhaWwgb25jZSBnc3RfZGVpbml0KCkgaGFzIGJlZW4gY2FsbGVkLgoJICBTZWUgIzYyMzQ2OS4KCjIwMTAtMDctMDMgMTQ6MDQ6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSAgY2hlY2tzOiBkb24ndCBhc3N1bWUgZWxlbWVudCBmYWN0b3J5IGlzIG5vdCBsb2FkZWQgeWV0CgkgIEl0IG1heSBhbHJlYWR5IGJlIGxvYWRlZCBpZiBjaGVjayBpcyBiZWluZyBydW4gd2l0aCBDS19GT1JLPW5vLgoJICBTZWUgIzYyMzQ2OS4KCjIwMTAtMDctMDEgMTk6NTg6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgZG9jczogZml4IGEgY291cGxlIG9mIHR5cG9zIGluIHRoZSBtYW51YWwKCSAgU3BvdHRlZCBieSBBbGV4YW5kZXIgU2FwcnlraW4uCgkgIEZpeGVzICM2MjIzNzkuCgoyMDEwLTA3LTAxIDE3OjU2OjMzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgZ3N0Y2FwczogTWFrZSBzdXJlIF9ub3JtYWxpemUoKSBpcyBhcHBsaWVkIG9uIGFsbCBzdHJ1Y3R1cmVzLgoJICBXZSBuZWVkIHRvIHVzZSBnc3RfY2Fwc19nZXRfc2l6ZSgpIGluIHRoZSBsb29wIGNvdW50ZXIgc2luY2Ugc29tZQoJICBzdHJ1Y3R1cmVzIGNvdWxkIGJlIGFkZGVkIHdoaWxlIGl0ZXJhdGluZy4KCSAgRml4ZXMgIzYyMzMwMQoKMjAxMC0wNi0zMCAxMzoxNjozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwteG1sLnhtbDoKCSAgZG9jczogdXBkYXRlICdYTUwgaW4gR1N0cmVhbWVyJyBzZWN0aW9uIGluIGFwcGxpY2F0aW9uIGRldmVsb3BlcidzIG1hbnVhbAoKMjAxMC0wNi0yOSAxODo0ODowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjI5LjMgcHJlLXJlbGVhc2UKCjIwMTAtMDYtMjUgMTk6MDM6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogaW1wbGVtZW50IGFjY2VwdGNhcHMgZnVuY3Rpb24KCSAgT3VyIGFjY2VwdGNhcHMgZnVuY3Rpb24gY2FuIHNpbXBseSBmb3J3YXJkIHRoZSBxdWVyeS4KCjIwMTAtMDYtMjggMTU6Mjg6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogYXV0b2dlbi5zaDoKCSogY29uZmlndXJlLmFjOgoJICBCdW1wIGF1dG9tYWtlIHJlcXVpcmVtZW50IHRvIDEuMTAKCSAgRm9yIG1haW50YWluYWJpbGl0eSByZWFzb25zIGFuZCAkKGJ1aWxkZGlyKS4KCSAgRml4ZXMgIzYyMjk0NC4KCjIwMTAtMDYtMjggMTM6NTY6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICB0b29sczogbWVudGlvbiAtLWVvcy1vbi1zaHV0ZG93biBvbiBnc3QtbGF1bmNoIG1hbiBwYWdlCgoyMDEwLTA2LTI4IDEwOjIwOjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogRG9uJ3QgdXNlIEdfR05VQ19DT05TVCBmb3IgdGhlIHVpbnQ2NCBzY2FsaW5nIGZ1bmN0aW9ucwoJICBUaGV5IGFyZSBhY3R1YWxseSAqbm90KiBjb25zdCBmdW5jdGlvbnMgYmVjYXVzZSBvbiBhcmNoaXRlY3R1cmVzCgkgIHdpdGhvdXQgaW50MTI4IGluc3RydWN0aW9ucyB0aGUgcGFyYW1ldGVycyB3ZXJlIGNoYW5nZWQuCgkgIGdjYyByZS11c2VkIHRoZSBwYXJhbWV0ZXJzIG9uIHRoZSBzdGFjayBmb3IgbXVsdGlwbGUgY2FsbHMgdGhvdWdoCgkgIGFuZCB0aGUgY2hhbmdlZCBwYXJhbWV0ZXJzIHdlcmUgdXNlZCBmb3IgdGhlIHNlY29uZCBjYWxsIHRoZW4uCgkgIEZpeGVzIGJ1ZyAjNjIzMDAzLgoKMjAxMC0wNi0yNiAxNzo0ODozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjkuMiBwcmUtcmVsZWFzZQoKMjAxMC0wNi0yNiAxNzo0Nzo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTA2LTI2IDEwOjE2OjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2V4YW1wbGVzL3htbC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy94bWwvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3htbC9jcmVhdGV4bWwuYzoKCSogdGVzdHMvZXhhbXBsZXMveG1sL3J1bnhtbC5jOgoJICBleGFtcGxlczogcmVtb3ZlIHhtbCBleGFtcGxlIGJ1aWxkIHN5c3RlbSBiaXRzIGFuZCBwdXJnZSBmcm9tIHRyZWUKCSAgRml4ZXMgbWFrZSBkaXN0Y2hlY2suCgoyMDEwLTA2LTI2IDA5OjU5OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R4bWwuYzoKCSAgeG1sOiBrZWVwIGR1bW15IGdzdF94bWxfZ2V0X3R5cGUoKSBmdW5jdGlvbiBmb3IgZy1pIGV2ZW4gaWYgcmVzdCBvZiBHc3RYTUwgaXMgcmVtb3ZlZAoJICBBZGQgYSBtaW5pbWFsIGdzdF94bWxfZ2V0X3R5cGUoKSBmdW5jdGlvbiwgc28gdGhhdCBnb2JqZWN0LWludHJvc3BlY3Rpb24gZG9lc24ndAoJICBicmVhayB0aGUgY29tcGlsYXRpb24gaWYgd2UncmUgY29tcGlsaW5nIHdpdGggR1NUX1JFTU9WRV9ERVBSRUNBVEVEIGRlZmluZWQgb3IKCSAgLS1kaXNhYmxlLWxvYWRzYXZlIGhhdmluZyBiZWVuIHBhc3NlZCB0byBjb25maWd1cmUuIFVudGlsIHNvbWVvbmUgZmlndXJlcyBvdXQKCSAgYSBiZXR0ZXIgd2F5IGF0IGxlYXN0LgoKMjAxMC0wNi0yNiAwMTowMTo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0eG1sLmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkgIERvbid0IGluY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4gZnJvbSBwdWJsaWMgaGVhZGVycyBpZiBHU1RfRElTQUJMRV9ERVBSRUNBVEVEIGlzIGRlZmluZWQKCSAgU2luY2UgZXZlcnl0aGluZyBHc3RYTUwgcmVsYXRlZCBoYXMgYmVlbiBkZXByZWNhdGVkLCB3ZSBjYW4gbm93IHNraXAgdGhlCgkgIGxpYnhtbCBpbmNsdWRlcyBmcm9tIHRoZSBwdWJsaWMgaGVhZGVycyB3aGVuIEdTVF9ESVNBQkxFX0RFUFJFQ0FURUQgaXMKCSAgZGVmaW5lZC4KCSAgU2VlICM0NjM0MzUuCgoyMDEwLTA2LTI2IDAwOjE4OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kL3R5cGVmaW5kLmM6CgkgIGV4YW1wbGVzOiBhZGQgbWlzc2luZyBzdGRsaWIuaCBpbmNsdWRlIGluIHR5cGVmaW5kIGV4YW1wbGUKCjIwMTAtMDYtMjUgMjE6MjM6MjIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRvdC1kdW1wOiB0ZXJtaW5hdGUgdHJ1bmNhdGVkIHN0cmluZ3MgYW5kIGVzY2FwZSBzcGVjaWFsIGNoYXJzCgkgIEZpeGVzIHN5bnRheCBlcnJvcnMgaW4gZ2VuZXJhdGVkIGRvdCBmaWxlcyBmb3IgY2FwcyB3aXRoIHN0cmluZ3MuCgoyMDEwLTA2LTI1IDE4OjUyOjAyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogbW9yZSBkb2N1bWVudGF0aW9uIHJlZ2FyZGluZyB0aGUgbmV3IGZsYWdzCgoyMDEwLTA2LTI1IDE4OjE4OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IG1ha2UgdGhlIE5PVEhJTkcgbGluayBjaGVjayBmbGFnIGJlIDAKCSAgTWFrZSB0aGUgcGFkIGxpbmsgY2hlY2sgb2YgTk9USElORyBiZSAwLiBUaGlzIHdheSB3ZSBoYXZlIGEgZmxhZyBmb3IgZWFjaAoJICBmZWF0dXJlIGFuZCAwIHdoZW4gbm8gZmxhZ3MgYXJlIHNldC4KCjIwMTAtMDYtMjUgMTg6MjQ6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgdGVzdHM6IFJlbW92ZSBHc3RYTUwgdGVzdHMKCjIwMTAtMDYtMjUgMTg6MTM6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0eG1sLmM6CgkqIGdzdC9nc3R4bWwuaDoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0eG1sOiBEZXByZWNhdGUgR3N0WG1sIGFuZCByZWxhdGVkIGZ1bmN0aW9ucwoJICBQaXBlbGluZSBzZXJpYWxpc2F0aW9uIHRvIGFuZCBmcm9tIFhNTCBpcyBob3JyaWJseSBicm9rZW4gZm9yIGFsbAoJICBidXQgdGhlIG1vc3Qgc2ltcGxlIHVzZSBjYXNlcywgYW5kIHdpbGwgbGlrZWx5IG5ldmVyIGJlIGZpeGVkLgoJICBNYWtlIHN1cmUgZXZlcnlvbmUgcGxheWluZyBhcm91bmQgd2l0aCB0aGVzZSB0b29scyBpcyBhd2FyZSBvZgoJICB0aGlzLCB0byBhdm9pZCBmcnVzdHJhdGlvbi4gU2VlIGNvdW50bGVzcyBidWcgcmVwb3J0cyBpbiBidWd6aWxsYS4KCSAgRml4ZXMgYnVnICM2MjI2ODUuCgoyMDEwLTA2LTI1IDE4OjExOjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBGaXggYnVpbGQgd2l0aCBHU1RfUkVNT1ZFX0RFUFJFQ0FURUQKCjIwMTAtMDYtMjQgMTI6MTk6MjAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkgIGJlbmNobWFya3M6IFVzZSBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbAoJICBXZSdyZSB0ZXN0aW5nIGNhcHMgbmVnb3RpYXRpb24sIG5vdCBwYWQgbGlua2luZy4gQnJpbmdzIHRoZSBzdGFydHVwCgkgIHRpbWUgZG93biAxMDAgZm9sZC4KCjIwMTAtMDYtMjQgMTc6NTM6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QteG1sbGF1bmNoLjEuaW46CgkgIHRvb2xzOiBkZXByZWNhdGUgZ3N0LXhtbGxhdW5jaCBhbmQgcHJpbnQgZmF0IHdhcm5pbmcgaWYgc29tZW9uZSB0cmllcyB0byB1c2UgaXQKCSAgUGlwZWxpbmUgc2VyaWFsaXNhdGlvbiB0byBhbmQgZnJvbSBYTUwgaXMgaG9ycmlibHkgYnJva2VuIGZvciBhbGwKCSAgYnV0IHRoZSBtb3N0IHNpbXBsZSB1c2UgY2FzZXMsIGFuZCB3aWxsIGxpa2VseSBuZXZlciBiZSBmaXhlZC4KCSAgTWFrZSBzdXJlIGV2ZXJ5b25lIHBsYXlpbmcgYXJvdW5kIHdpdGggdGhlc2UgdG9vbHMgaXMgYXdhcmUgb2YKCSAgdGhpcywgdG8gYXZvaWQgZnJ1c3RyYXRpb24uIFNlZSBjb3VudGxlc3MgYnVnIHJlcG9ydHMgaW4gYnVnemlsbGEuCgoyMDEwLTA2LTI0IDE3OjIyOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiByZW5hbWUgbmV3IC0tbm8tcGxheSBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIC0tbm8tc2lndXNyLWhhbmRsZXIKCSAgLS1uby1wbGF5IHNlZW1zIGEgYml0IGNvbmZ1c2luZy4KCSAgRml4ZXMgIzYyMTg2Ny4KCjIwMTAtMDYtMjQgMTU6MDc6MTEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNzNmZjkzYSB0byBhNTE5NTcxCgoyMDEwLTA2LTIzIDExOjAyOjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5oOgoJICBiaW5hcnlyZWdpc3RyeTogaWdub3JlIHRoZSBwbHVnaW4gY2FjaGUgaWYgdGhlIGZpbHRlciBlbnZpcm9ubWVudCBoYXMgY2hhbmdlZAoJICBNYWtlIHN1cmUgdGhhdCB3ZSBwcm9wZXJseSB1cGRhdGUgdGhlIHJlZ2lzdHJ5IGFuZCB0aGUgY2FjaGUgZmlsZSB3aGVuZXZlcgoJICB0aGUgZmlsdGVyIGVudmlyb25tZW50IGNoYW5nZXMgb3IgdGhlcmUncyBubyBtb3JlIGZpbHRlciBzZXQuCgoyMDEwLTA1LTI3IDEyOjM2OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbmxvYWRpbmc6IGFkZCBzdXBwb3J0IGZvciB3aGl0ZWxpc3RpbmcgYmFzZWQgb24gcGx1Z2luIG9yIHNvdXJjZSBtb2R1bGUgbmFtZSBhbmQgcGF0aAoJICBUaGlzIGZlYXR1cmUgaXMgcHJpbWFyaWx5IGludGVuZGVkIGZvciB1c2UgaW4gcGx1Z2luIG1vZHVsZXMnIHVuaXQgdGVzdHMuCgkgIENvbnNpZGVyIHRoZSBmb2xsb3dpbmcgc2l0dWF0aW9uOiBnc3QtcGx1Z2lucy1nb29kIGlzIGJ1aWx0IGFnYWluc3QgYW4KCSAgaW5zdGFsbGVkIEdTdHJlYW1lciBjb3JlLiBBbiBvbGRlciB2ZXJzaW9uIG9mIGdzdC1wbHVnaW5zLWdvb2QgaXMgYWxzbwoJICBpbnN0YWxsZWQgaW4gdGhhdCBwcmVmaXgsIGFsb25nIHdpdGggcmFuZG9tIG90aGVyIHBsdWdpbiBtb2R1bGVzLiBOb3csCgkgIHdoZW4gZG9pbmcgJ21ha2UgY2hlY2snIGluIHRoZSBqdXN0LWJ1aWx0IGdzdC1wbHVnaW5zLWdvb2QgdHJlZSwgd2UKCSAgd2FudCB0byBvbmx5IGxvYWQgcGx1Z2lucyBmcm9tIEdTdHJlYW1lciBjb3JlLCBnc3QtcGx1Z2lucy1iYXNlLCBhbmQKCSAgZ3N0LXBsdWdpbnMtZ29vZCwgYnV0IG5vdCByYW5kb20gb3RoZXIgbW9kdWxlcyAod2UgZG9uJ3Qgd2FudCBhbnkgdW5pdAoJICB0ZXN0cyB0byBmYWlsIGp1c3QgYmVjYXVzZSBzb21lIG1vZHVsZSBpbiBnc3QtcGx1Z2lucy1iYWQgaGFzIGEgYnJva2VuCgkgIHBsdWdpbl9pbml0LCBmb3IgZXhhbXBsZSkuIEFsc28sIHdlIHdhbnQgdG8gb25seSBsb2FkIGdzdC1wbHVnaW5zLWdvb2QKCSAgbW9kdWxlcyBmcm9tIHRoZSBsb2NhbGx5LWJ1aWx0IHNvdXJjZSB0cmVlLCBidXQgbm90IGFueSBvZiB0aGUgb2xkZXIKCSAgZ3N0LXBsdWdpbnMtZ29vZCBtb2R1bGVzIGluc3RhbGxlZC4gVGhpcyBpcyB1c3VhbGx5IGFzc3VyZWQgYnkgbG9hZGluZwoJICB0aGUgb25lcyBpbiB0aGUgc291cmNlIHRyZWUgZmlyc3QgKGJ5IGFkZGluZyB0aGF0IHBhdGggZmlyc3QgdG8gdGhlCgkgIHJpZ2h0IGVudmlyb25tZW50IHZhcmlhYmxlcyksIGJ1dCBpdCBnZXRzIHRyaWNreSB3aGVuIHBsdWdpbnMgYXJlCgkgIG1vdmVkLCByZW1vdmVkLCBtZXJnZWQsIG9yIHJlbmFtZWQsIG9yIHRoZSBwbHVnaW4gZmlsZW5hbWUgY2hhbmdlcy4KCSAgTm90ZSB0aGF0ICdtYWtlIGNoZWNrJyBzaG91bGQgcmVhbGx5IHdvcmsgcmlnaHQgd2l0aG91dCBkb2luZwoJICAnbWFrZSBpbnN0YWxsJyBvciB1bmluc3RhbGxpbmcgdGhlIG9sZCBnc3QtcGx1Z2lucy1nb29kIHBhY2thZ2UgKG9yCgkgIGFueSBvdGhlciBnc3QtcGx1Z2lucy1mb28gcGFja2FnZSkgZmlyc3QuCgkgIEVudGVyIEdTVF9QTFVHSU5fTE9BRElOR19XSElURUxJU1QuIFRoaXMgZW52aXJvbm1lbnQgdmFyaWFibGUgbWF5CgkgIGNvbnRhaW4gc291cmNlLXBhY2thZ2VAcGF0aC1wcmVmaXggcGFpcnMgc2VwYXJhdGVkIGJ5IHRoZSBwbGF0Zm9ybQoJICBzZWFyY2ggcGF0aCBzZXBhcmF0b3IgKEdfU0VBUkNIUEFUSF9TRVBBUkFUT1JfUykuIFRoZSBzb3VyY2UgcGFja2FnZQoJICBhbmQgcGF0aCBwcmVmaXggYXJlIHNlcGFyYXRlZCBieSB0aGUgJ0AnIGNoYXJhY3Rlci4gVGhlIHBhdGggcHJlZml4IGlzCgkgIGVudGlyZWx5IG9wdGlvbmFsLCBhcyBpcyB0aGUgJ0AnIHNlcGFyYXRvciBpZiBubyBwYXRoIGlzIGdpdmVuLgoJICBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGZpbHRlciBiYXNlZCBvbiBwbHVnaW4gbmFtZXMgaW5zdGVhZCBvZiB0aGUgbmFtZQoJICBvZiB0aGUgc291cmNlLXBhY2thZ2UgYnkgc3BlY2lmeWluZyBvbmUgb3IgbW9yZSBwbHVnaW4gbmFtZXMgc2VwYXJhdGVkCgkgIGJ5IGNvbW1hcyBiZWZvcmUgdGhlIG9wdGlvbmFsIHBhdGggcHJlZml4LgoJICBJbiBzaG9ydCwgdGhlIGZvbGxvd2luZyBtYXRjaCBwYXR0ZXJucyBhcmUgcG9zc2libGU6CgkgIHBsdWdpbjEscGx1Z2luMkBwYXRocHJlZml4IG9yCgkgIHBsdWdpbjEscGx1Z2luMkAqIG9yIGp1c3QKCSAgcGx1Z2luMSxwbHVnaW4yIG9yCgkgIHNvdXJjZS1wYWNrYWdlQHBhdGhwcmVmaXggb3IKCSAgc291cmNlLXBhY2thZ2VAKiBvciBqdXN0CgkgIHNvdXJjZS1wYWNrYWdlCgkgIFNvIGZvciBvdXIgZ3N0LXBsdWdpbnMtZ29vZCB1bml0IHRlc3QgZXhhbXBsZSBhYm92ZSwgd2UgIHdvdWxkIHNldCB0aGUKCSAgZW52aXJvbm1lbnQgdmFyaWFibGUgb24gKm5peCB0byBzb21ldGhpbmcgbGlrZSB0aGlzICh3aWxsIGxpa2VseSBiZSBhCgkgIHJlbGF0aXZlIHBhdGggaW4gcHJhY3RpY2UpOgoJICBnc3RyZWFtZXI6Z3N0LXBsdWdpbnMtYmFzZTpnc3QtcGx1Z2lucy1nb29kQC9wYXRoL3RvL3NyYy9nc3QtcGx1Z2lucy1nb29kCgkgIEZpeGVzICM2MTk4MTUgYW5kICM2MTk3MTcuCgoyMDEwLTA2LTIzIDE3OjI0OjA3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdzdGdob3N0cGFkOiBXZSBkb24ndCBuZWVkIGFueSBjaGVja3Mgd2hlbiBsaW5raW5nIHRhcmdldCBwYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjUwNAoKMjAxMC0wNi0yMyAxNzowMDoxNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHV0aWxzOiBOZXcgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwgbWV0aG9kCgkgIExpbmtzIHRoZSBlbGVtZW50cyB3aXRoIHRoZSBzcGVjaWZpZWQgcGFkIGxpbmtpbmcgY2hlY2tzLgoJICBBUEk6Z3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjUwNAoKMjAxMC0wNi0yMyAxNjo0NToxOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBHc3RQYWQ6IEFkZCBuZXcgcGFkIGxpbmtpbmcgbWV0aG9kIHdpdGggY29uZmlndXJhYmxlIGNoZWNrcy4KCSAgVG8gYmUgdXNlZCBmb3IgY2FzZXMgd2hlcmUgd2UgZG9uJ3QgbmVlZCBhbGwgY2hlY2tzIHRvIGJlIHZhbGlkYXRlZC4KCSAgQVBJOiBnc3RfcGFkX2xpbmtfZnVsbAoJICBBUEk6IEdzdFBhZExpbmtDaGVjawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyNTA0CgoyMDEwLTA2LTE1IDE4OjI2OjAxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZzogQWRkcyBHU1RfVEFHX0lNQUdFX09SSUVOVEFUSU9OIHRhZwoJICBBZGRzIGEgbmV3IHRhZyB0byBpbmZvcm0gYWJvdXQgdGhlIGltYWdlIG9yaWVudGF0aW9uIGFuZCBob3cKCSAgdG8gcm90YXRlIGFuZCBmbGlwIGl0IGJlZm9yZSBkaXNwbGF5LgoJICBOb3RlIHRoYXQgdGhpcyB0YWcgaXMgYSBzdHJpbmcgd2l0aCBhIHByZWRlZmluZWQgc2V0IG9mCgkgIHBvc3NpYmxlIHZhbHVlcy4KCSAgQVBJOiBHU1RfVEFHX0lNQUdFX09SSUVOVEFUSU9OCgkgIEZpeGVzICM2MTk1MDgKCjIwMTAtMDYtMjIgMTg6NTM6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGdzdG9iamVjdDogZGVwcmVjYXRlIGdzdF9vYmplY3Rfe3NldHxnZXR9X25hbWVfcHJlZml4KCkKCSAgVGhlIG5hbWUgcHJlZml4IHN0dWZmIGhhcyBuZXZlciBiZWVuIHVzZWQgZm9yIGFueXRoaW5nIGFuZCBpdCBkb2Vzbid0CgkgIGxvb2sgbGlrZSB3ZSdsbCBldmVyIHdhbnQgdG8gdXNlIGl0IGZvciBhbnl0aGluZy4KCSAgRml4ZXMgIzYyMTAwNi4KCjIwMTAtMDYtMjIgMTA6MjA6NTMgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBBZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGFubm90YXRpb25zIGZvciBHc3RQYWRJbnRMaW5rRnVuY3Rpb24KCSAgRml4ZXMgYnVpbGQgd2l0aCBsYXRlc3QgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGZyb20gZ2l0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyMDI1CgoyMDEwLTA2LTIxIDExOjQxOjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggbWVyZ2luZyBvZiByYW5nZXMKCSAgV2hlbiB3ZSBtZXJnZSB0d28gcmFuZ2VzLCBkb24ndCB1cGRhdGEgdGhlIGN1cnJlbnQgcmFuZ2Ugd3JpdGluZ19wb3Mgd2l0aAoJICB3aGVyZWV2ZXIgd2Ugd2VyZSB3cml0aW5nIGVhcmxpZXIgaW4gdGhlIG1lcmdlZCByYW5nZS4gIFNwb3R0ZWQgYnkgYmlsYm9lZC4KCjIwMTAtMDYtMTkgMTE6MTk6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBhbHNvIHNraXAgLmRlcHMgZGlycyB3aGVuIHNjYW5uaW5nIGZvciBwbHVnaW5zCgkgIE5vIG5lZWQgdG8gZGVzY2VuZCBpbnRvIC5kZXBzIGRpcnMgaW4gdW5pbnN0YWxsZWQgc2V0dXBzLCB3ZSBrbm93CgkgIHRoZXNlIGRvbid0IGNvbnRhaW4gYW55IHBsdWdpbnMuCgoyMDEwLTA2LTE3IDExOjM5OjA0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0YWdsaXN0OiBhZGQgZ3N0X3RhZ19saXN0X3BlZWtfc3RyaW5nX2luZGV4IHRvIGF2b2lkIGEgY29weQoJICBBZGRzIGEgdmFyaWF0aW9uIG9mIHRoZSBfZ2V0X3N0cmluZ19pbmRleCBmdW5jdGlvbiB0aGF0IGRvZXNuJ3QgY29weQoJICB0aGUgc3RyaW5nLgoJICBBUEk6IGdzdF90YWdfbGlzdF9wZWVrX3N0cmluZ19pbmRleAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxODk2CgoyMDEwLTA2LTE4IDEyOjAwOjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBtYWtlIHN1cmUgYnVmZmVycycgbWV0YWRhdGEgaXMgd3JpdGFibGUgYmVmb3JlIHNldHRpbmcgY2FwcyBvbiB0aGVtCgkgIEZpeGVzIHdhcm5pbmdzIHdoZW4gdXNpbmcgcGxheWJpbjIgd2l0aCBkdmI6Ly8gc3RyZWFtcywgd2hlcmUgdHlwZWZpbmQKCSAgY29tZXMgYWZ0ZXIgbXBlZ3RzcGFyc2UuCgoyMDEwLTA2LTE3IDE1OjUyOjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJICBkb2NzOiB1cGRhdGUgaW50cm9zcGVjdGVkIHBsdWdpbiBkb2NzIGZvciBnc3Rkb2Mtc2Nhbm9iaiBjaGFuZ2VzCgkgIFVwZGF0ZSBjb21tb24gZm9yIGxhdGVzdCBnc3Rkb2Mtc2Nhbm9iaiBhbmQgaW5zcGVjdCB4bWwgZmlsZXMgZm9yCgkgIGVzY2FwaW5nIGFuZCBwYWQgdGVtcGxhdGUgb3JkZXIgY2hhbmdlcy4KCjIwMTAtMDYtMTcgMTM6MTk6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogSW5pdGlhbGl6ZSBqaXR0ZXIgdG8gcHJldmVudCBwcmludGluZyBhbiB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGlmIHdhaXRpbmcgZm9yIHRoZSBjbG9jayBmYWlsZWQKCjIwMTAtMDYtMTcgMTA6MzQ6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgc3RyaW5ncwoKMjAxMC0wNi0xNyAwOTozMzo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICBtYW51YWw6IGZpeCBhbm90aGVyIHR5cG8gYW5kIHNvbWUgaW5hY2N1cmFjaWVzCgkgIEZpeCBhIHdyb25nIHN0YXRlbWVudCBhbmQgZmxlc2ggb3V0IHNlY3Rpb24gb24gbWVzc2FnZXMgYW5kIHF1ZXJpZXMKCSAgYSBiaXQuCgoyMDEwLTA2LTE3IDA5OjA1OjU4ICswMjAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgbWFudWFsOiBGaXggYW5vdGhlciB0eXBvCgoyMDEwLTA2LTE3IDA5OjA1OjI4ICswMjAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgbWFudWFsOiBGaXggdHlwbwoKMjAxMC0wNi0xNiAxMzoxMTowNiAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IEFkZCBhbiBhbGxvdy1ub25lIGFubm90YXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTc3MwoKMjAxMC0wNi0xNiAxMzoxMDoyNiAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0OiBBZGQgaW50cm9zcGVjdGlvbiBhbm5vdGF0aW9ucwoJICBUaGVzZSBhcmUgcmVxdWlyZWQgdG8ga25vdyBob3cgdG8gdW5yZWYvcmVmIGFuZAoJICBjb252ZXJ0IHRvL2Zyb20gYSBHVmFsdWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjE3NzMKCjIwMTAtMDYtMTYgMTM6MTA6MTMgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBBZGQgb3V0IGFubm90YXRpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjE3NzMKCjIwMTAtMDYtMTYgMTM6MTA6MDYgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBBZGQgb3V0IGFubm90YXRpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjE3NzMKCjIwMTAtMDYtMTYgMTM6MDk6NTcgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogQWRkIG91dCBhbm5vdGF0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxNzczCgoyMDEwLTA2LTE2IDEzOjAwOjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rOiBtYWtlIHN5bmMgcHJvcGVydHkgd29yayBjb3JyZWN0bHkKCSAgRG9uJ3Qgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgZ2V0X3RpbWVzIHZtZXRob2Qgc28gdGhhdCB3ZSBjYW4gdXNlIHRoZSBzeW5jCgkgIHByb3BlcnR5LgoJICBTZXQgdGhlIGRlZmF1bHQgc3luYyBwcm9wZXJ0eSB0byBGQUxTRS4gSXQgdXNlZCB0byBiZSBzZXQgdG8gVFJVRSBidXQgYmVjYXVzZQoJICB0aGUgZ2V0X3RpbWVzIHdhcyBOVUxMLCBpdCBhbHdheXMgYmVoYXZlZCBsaWtlIEZBTFNFLgoJICBGaXhlcyAjNjIxNTMwCgoyMDEwLTA2LTE1IDE4OjQ4OjUzICswMjAwICBCZW5qYW1pbiBHYWlnbmFyZCA8YmVuamFtaW4uZ2FpZ25hcmRAZ21haWwuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogSW1wcm92ZSBnc3RfZWxlbWVudF9nZXRfbmFtZSgpIGRvY3MKCSAgRml4ZXMgYnVnICM2MjE2NjAuCgoyMDEwLTA2LTE1IDE2OjQ5OjA0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5MzM5Y2NjIHRvIDM1NjE3YzIKCjIwMTAtMDYtMTUgMTY6NTM6MzUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNWFkYjFjYSB0byA5MzM5Y2NjCgoyMDEwLTA2LTE1IDE2OjM0OjM3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDU3Yzg5YjcgdG8gNWFkYjFjYQoKMjAxMC0wNi0xNSAxNTozMToxMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjODA0OTg4IHRvIDU3Yzg5YjcKCjIwMTAtMDYtMTUgMTE6NDg6MjYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFJldmVydCAiR3N0UGFkOiBBZGQgR1NUX1BBRF9ORUdPVElBQkxFIEdzdFBhZEZsYWciCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZGMzOGU3NWQ4OGJkODkyMTg5NTgyMWY3YWZlZDAxY2FiMzBlNDZjOS4KCSAgYm9vbQoKMjAxMC0wNi0xNSAxMTo0ODoxNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIFJldmVydCAiZ3N0cGFkOiBSZXR1cm4gcGFkIHRlbXBsYXRlIGluIGdldF9jYXBzIGlmIHBhZCBpcyBub3QgbmVnb3RpYWJsZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA3NDYwMzIxYTYwMDQzODk2NmQ3MTUyYWIyYjQzMThiZTQ4ZWFkY2UwLgoJICBjcmFjawoKMjAxMC0wNi0xNSAxMTo0ODowNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IGZpeCBjb21tZW50IgoJICBUaGlzIHJldmVydHMgY29tbWl0IDhlOTJjYjRhN2Q1NmNkZmE0Njc0MzE1YzY0YjU4YzFiMWI5ZDgyMDguCgkgIHdoYXRldmVyLi4uCgoyMDEwLTA2LTE1IDExOjQ3OjU3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgUmV2ZXJ0ICJlbGVtZW50OiBvbmx5IGNsZWFyIG5lZ290aWFibGUgd2hlbiBnb2luZyB0byBOVUxMIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDhmNWVjMWY3MzdjM2IzNzUzOGIyMzA3YWVmMTYwZDlkMjFmMWM0MjIuCgkgIGJsZWVlZWgKCjIwMTAtMDYtMTUgMTA6NDY6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogYWRkIGR1bW15IFRSQUNFIGxvZyBsZXZlbCBtYWNyb3MgZm9yIHdoZW4gZGVidWdnaW5nIGlzIGRpc2FibGVkCgkgIEZvcmdvdCB0aG9zZSB3aGVuIGFkZGluZyB0aGUgb3JpZ2luYWwgQVBJLCBqdXN0IGxpa2UgdGhlIEFQSSBtYXJrZXJzCgkgIGluIHRoZSBjb21taXQgbWVzc2FnZToKCSAgQVBJOiBHU1RfVFJBQ0UKCSAgQVBJOiBHU1RfVFJBQ0VfT0JKRUNUCgkgIEFQSTogR1NUX0NBVF9UUkFDRQoJICBBUEk6IEdTVF9DQVRfVFJBQ0VfT0JKRUNUCgkgIEFQSTogR1NUX0xFVkVMX1RSQUNFCgkgIEZpeGVzIGNvbXBpbGF0aW9uIHdpdGggLS1kaXNhYmxlLWdzdC1kZWJ1ZwoKMjAxMC0wNi0xNSAwMToxNTo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IHByaW50IG1vcmUgZXJyb3JzIHRvIHN0ZGVyciBhbmQgc3VwcHJlc3MgbW9yZSBvdXRwdXQgaW4gcXVpZXQgbW9kZQoJICBJZiAtLXF1aWV0IGlzIGdpdmVuLCBkb24ndCBwcmludCBhbnl0aGluZyBidXQgZXJyb3JzLiBBbHNvLCBtYWtlCgkgIHN1cmUgZXJyb3JzIGFyZSBhbHdheXMgcHJpbnRlZCB0byBzdGRlcnIgYW5kIG5vdCB0byBzdGRvdXQuCgkgIEZpeGVzICM2MjE1OTUuCgoyMDEwLTA2LTE0IDE4OjA3OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogb25seSBjbGVhciBuZWdvdGlhYmxlIHdoZW4gZ29pbmcgdG8gTlVMTAoJICBEb24ndCBjbGVhciB0aGUgbmVnb3RpYWJsZSBmbGFnIHdoZW4gZ29pbmcgdG8gUkVBRFkgYmVjYXVzZSB0aGVuIGl0IHdpbGwgbmV2ZXIKCSAgYmUgc2V0IHRvIFRSVUUgYWdhaW4uCgoyMDEwLTA2LTE0IDE3OjMzOjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBjb21tZW50CgoyMDEwLTA1LTE3IDE1OjA2OjM3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ3N0cGFkOiBSZXR1cm4gcGFkIHRlbXBsYXRlIGluIGdldF9jYXBzIGlmIHBhZCBpcyBub3QgbmVnb3RpYWJsZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE4NjQ0CgoyMDEwLTA1LTE3IDE1OjA0OjQ4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBHc3RQYWQ6IEFkZCBHU1RfUEFEX05FR09USUFCTEUgR3N0UGFkRmxhZwoJICBBIHBhZCBpcyAnbmVnb3RpYWJsZScgd2hlbiBpdHMgY29udGFpbmVyIGVsZW1lbnQgaXMgaW4gYSBzdGF0ZSBncmVhdGVyCgkgIHRoYW4gR1NUX1NUQVRFX1JFQURZCgkgIEFQSTpnc3RfcGFkX2lzX25lZ290aWFibGUKCSAgQVBJOmdzdF9wYWRfc2V0X25lZ290aWFibGUKCSAgQVBJOkdTVF9QQURfTkVHT1RJQUJMRQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE4NjQ0CgoyMDEwLTA2LTE0IDE2OjUxOjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogdXNlIG1ldGhvZCB0byBzZXQgc3luYyBwcm9wZXJ0eQoJICBVc2UgdGhlIGJhc2VzaW5rIG1ldGhvZCB0byBjb25maWd1cmUgdGhlIHN5bmMgcHJvcGVydHkgaW5zdGVhZCBvZiBwb2tpbmcgdGhlCgkgIHBhcmVudCBzdHJ1Y3R1cmUuCgoyMDEwLTA2LTE0IDE2OjUwOjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogdXNlIHRoZSBkZWZhdWx0IGdldF90aW1lcyBmdW5jdGlvbgoJICBVc2UgdGhlIGRlZmF1bHQgZ2V0X3RpbWVzIGZ1bmN0aW9uIG9mIGJhc2VzaW5rIHNvIHRoYXQgd2UgaG9ub3VyIHRoZSBzeW5jCgkgIHByb3BlcnR5IGluc3RlYWQgb2YgbmV2ZXIgc3luY2hyb25pemluZyB0byB0aGUgY2xvY2suCgkgIEZpeGVzICM2MjE1MzAKCjIwMTAtMDYtMTQgMTY6MjA6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVldmFsdWF0ZSBwcm94eV9hbGxvYyB3aGVuIHJlY29uZmlndXJlZAoJICBXaGVuIHdlIHJlY29uZmlndXJlIHRoZSB0cmFuc2Zvcm0gZWxlbWVudCwgbWFrZSBzdXJlIHdlIHJlZXZhbHVhdGUgdGhlIHByb3h5aW5nCgkgIG9mIGJ1ZmZlcl9hbGxvYyB0aGUgbmV4dCB0aW1lIGFyb3VuZC4KCSAgRml4ZXMgIzYyMTMzMgoKMjAxMC0wNi0xNCAxNTozOTo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSAgY2FwczogRG9uJ3QgdXNlIGludmFsaWQgZnJhY3Rpb24gcmFuZ2UgaW4gdGhlIHVuaXQgdGVzdAoKMjAxMC0wNi0xNCAxNTozMDowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEFkZCBzb21lIG1vcmUgYXNzZXJ0aW9ucyBhbmQgY2hlY2tzIGZvciB2YWxpZCBpbnB1dCBwYXJhbWV0ZXJzCgoyMDEwLTA1LTI3IDE1OjEzOjE4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBvcHRpbWl6ZSBwcm9ncmVzc2l2ZSBtYXNrZWRfc2NhbgoJICBSZXRhaW4gdGhlIGxhc3Qgc2Nhbm5lZCBidWZmZXIgZW50cnkgYW5kIG9mZnNldCwgc28gd2UgY2FuIHJlc3VtZSBidWZmZXIKCSAgc2Nhbm5pbmcgdGhlcmUgaW4gY2FzZSBvZiBhIHR5cGljYWwgcHJvZ3Jlc3NpdmUgc2Nhbi4KCSAgQWxzbyBwb3RlbnRpYWxseSBvcHRpbWl6ZSBfY29weSBzdWJzZXF1ZW50bHkgb2NjdXJyaW5nIGluIHRoYXQgYXJlYS4KCjIwMTAtMDUtMjcgMTI6MTU6MjIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkYXB0ZXI6IGFkZCBleHRlbmRlZCBtYXNrZWRfc2Nhbl91aW50MzJfcGVlayB0aGF0IGFsc28gcHJvdmlkZXMgbWF0Y2hpbmcgdmFsdWUKCSAgQWxzbyBhZGQgdG8gLmRlZiBhbmQgZG9jcy4KCSAgRml4ZXMgIzYxOTgyOC4KCSAgQVBJOiBnc3RfYWRhcHRlcl9tYXNrZWRfc2Nhbl91aW50MzJfcGVlawoKMjAxMC0wNi0xNCAxMzozODo0MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogZml4IC5kZWYgZmlsZQoKMjAxMC0wNi0xNCAxMjoyNTozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBkb2NzOiBhZGQgU2luY2U6IHRhZyBmb3IgbmV3IGdzdF9jYXBzX3N0ZWFsX3N0cnVjdHVyZQoKMjAxMC0wNi0xMSAxNTozNjoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBkb2NzOiBmaXggZXhhbXBsZSB0byB1c2UgYSBjYXRlZ29yeSBuYW1lIHRoYXQgYWN0dWFsbHkgZXhpc3RzCgoyMDEwLTA2LTE0IDExOjM5OjQwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdGNhcHM6IE5ldyBnc3RfY2Fwc19zdGVhbF9zdHJ1Y3R1cmUoKSBtZXRob2QKCSAgVGhpcyBhbGxvd3MgcmVtb3Zpbmcgc3RydWN0dXJlcyBmcm9tIGNhcHMgd2l0aG91dCB0aGVtIGJlaW5nIGZyZWVkLiBIZWxwZnVsIHdoZW4KCSAgcGx1Z2lucyBuZWVkIHRvIG1vdmUgYXJvdW5kIHN0cnVjdHVyZXMgd2l0aG91dCBoYXZpbmcgdG8gZG8gYW4gZXhwZW5zaXZlIHN0cnVjdHVyZQoJICBjb3B5LgoJICBBUEk6Z3N0X2NhcHNfc3RlYWxfc3RydWN0dXJlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjE1MjcKCjIwMTAtMDYtMTQgMTM6MTA6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IERvbid0IGFkZCBHX1RIUkVBRFNfTUFOREFUT1JZIHRvIEdTVF9BTExfQ0ZMQUdTCgkgIEl0J3MgYWxyZWFkeSBpbmNsdWRlZCBpbiBHTElCX0VYVFJBX0NGTEFHUwoKMjAxMC0wNi0xNCAxMzowNzozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogdXNlIEdMSUJfRVhUUkFfQ0ZMQUdTCgoyMDEwLTA2LTE0IDEzOjAyOjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gN2EwZmRmNSB0byBjODA0OTg4CgoyMDEwLTA2LTE0IDEzOjAxOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IGZpeCBwcmludGYgZm9ybWF0CgoyMDEwLTA2LTE0IDEyOjM5OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IGltcGxlbWVudCBjdXN0b20gYWNjZXB0X2NhcHMgbWV0aG9kCgkgIEltcGxlbWVudCBhIGN1c3RvbSBhY2NlcHRjYXBzIGZ1bmN0aW9uLiBXZSBjYW4gc2ltcGx5IGNoZWNrIGlmIHRoZXJlIGlzIGFuCgkgIGludGVyc2VjdGlvbiB3aXRoIHRoZSBuZXcgY2Fwcy4gVGhpcyBtYWtlcyB0aGUgYWNjZXB0IGNhcHMgZnVuY3Rpb24gbXVjaCBmYXN0ZXIuCgkgIFNlZSAjNjIxMTkwCgoyMDEwLTA2LTE0IDEyOjM2OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBhZGQgYWNjZXB0X2NhcHMgdm1ldGhvZAoJICBBbGxvdyBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlIHRoZSBhY2NlcHRjYXBzIGZ1bmN0aW9uIGJlY2F1c2UgaW4gc29tZSBjYXNlcyBhCgkgIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiBjYW4gYmUgbXVjaCBtdWNoIGZhc3RlciB0aGFuIHRoZSBkZWZhdWx0IG9uZS4KCSAgU2VlICM2MjExOTAKCjIwMTAtMDYtMTQgMTE6MzA6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2ZGEzYmFiIHRvIDdhMGZkZjUKCjIwMTAtMDYtMTEgMTg6NDk6MDIgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBSZW1vdmUgdHJhbnNmb3JtX3NpemUKCSAgR3N0QmFzZVRyYW5zZm9ybSBub3cgYXNzdW1lcyB0aGF0IHRoZSBzaXplIGlzIHRoZSBzYW1lIGlmIHRoZXJlIGlzIG5vdAoJICB0cmFuc2Zvcm1fc2l6ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTMzNAoKMjAxMC0wNi0xMSAxODo0NjozMCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEFzc3VtZSBzaXplIGlzIHRoZSBzYW1lIGlmIG5vIHRyYW5zZm9ybV9zaXplL2dldF91bml0X3NpemUKCSAgU3ViY2xhc3NlcyB0aGF0IGRvbid0IGltcGxlbWVuIHRyYW5zZm9ybV9zaXplIHNob3VsZCBiZSBhc3N1bWVkIHRvIHByb2R1Y2Ugb3V0cHV0CgkgIGJ1ZmZlcnMgb2YgdGhlIHNhbWUgc2l6ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTMzNAoKMjAxMC0wNi0xNCAwODoxODowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IERvbid0IGluaXRpYWxpemUgYXJyYXlzIGZyb20gdmFyaWFibGVzCgoyMDEwLTA2LTE0IDA4OjExOjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IFN0b3JlIHJlc3VsdCBvZiBzdHJ0b2wgaW4gYW4gdW51c2VkIHZhcmlhYmxlIHRvIHJlYWxseSBmaXggYSBjb21waWxlciB3YXJuaW5nLi4uCgoyMDEwLTA2LTEzIDIwOjUyOjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IENhc3QgcmV0dXJuIHZhbHVlIHRvIHZvaWQgdG8gcHJldmVudCBjb21waWxlciB3YXJuaW5nCgoyMDEwLTA2LTEzIDE4OjEyOjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvcnRwb29sLXRlc3QuYzoKCSAgcnRwb29sLXRlc3Q6IFByZXZlbnQgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlCgoyMDEwLTA2LTEzIDE4OjA1OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IE1ha2Ugc3VyZSB3ZSBoYXZlIGEgdmFsaWQgb2JqZWN0IHRvIHJlbmRlciBpbiBfcmVuZGVyX29iamVjdCgpCgoyMDEwLTA2LTEzIDE4OjAwOjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogQWRkIHNvbWUgYXNzZXJ0aW9uIGd1YXJkcyBhZ2FpbnN0IGludmFsaWQgcGFyYW1ldGVycyB0byBwdWJsaWMgQVBJCgoyMDEwLTA2LTEzIDE3OjA4OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBSZW1vdmUgc29tZSBkZWFkIGFzc2lnbm1lbnRzCgoyMDEwLTA2LTEzIDE3OjA2OjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkgIGJ1ZmZlcnN0cmVzczogQ2hlY2sgaWYgdGhlIG51bWJlciBvZiB0aHJlYWRzIGFuZCBidWZmZXJzIG1ha2VzIHNlbnNlCgoyMDEwLTA2LTEzIDE3OjAzOjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzoKCSAgcmVhZC1tZXRhZGF0YTogU3RvcCBpZiBzZXR0aW5nIHRoZSBwaXBlbGluZSBzdGF0ZSBiYWNrIHRvIE5VTEwgZmFpbHMKCjIwMTAtMDYtMTMgMTY6NTk6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmM6CgkgIGNvbXBsZXhpdHk6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzIGFuZCB1bnVzZWQgdmFyaWFibGVzCgoyMDEwLTA2LTEzIDE2OjMxOjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRG9uJ3QgaWdub3JlIGZhaWx1cmUgdG8gb3BlbiB0aGUgdGVtcG9yYXJ5IGZpbGUgbG9jYXRpb24KCSAgQW5kIGltbWVkaWF0ZWx5IGxlYXZlIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gb24gZmFpbHVyZXMuCgoyMDEwLTA2LTEzIDE2OjI3OjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggaXRlcmF0b3IgYWdncmVnYXRpb24gb2YgYWxsIHBhZHMgaW4gdGhlIGludGVybmFsIGxpbmtzIGZhbGxiYWNrCgkgIGdfbGlzdF9wcmVwZW5kKCkgcmV0dXJucyB0aGUgbmV3IGhlYWQgb2YgdGhlIGxpc3QgYW5kIG5vdAoJICB1c2luZyB0aGlzIHdpbGwgY3JlYXRlIGEgbWVtb3J5IGxlYWsgYW5kIGEgc2luZ2xlLWVsZW1lbnQgbGlzdC4KCjIwMTAtMDYtMTMgMTU6MjU6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBBZGQgbmV3IEZJWE1FIGZvciAwLjExIGFuZCB1cGRhdGUgZ3N0X2l0ZXJhdG9yX2ZpbmRfY3VzdG9tIGRvY3MKCSAgVGhlIGNvbXBhcmUgZnVuY3Rpb24gc2hvdWxkIG9ubHkgdW5yZWYgdGhlIGVsZW1lbnQgaWYgaXQncwoJICBub3QgdGhlIG1hdGNoaW5nIGVsZW1lbnQuCgkgIEFsc28gdGhlIEZJWE1FIGluIF9mb2xkKCkgaXMgbm90IHJlbGV2YW50IGJlY2F1c2UgdGhlIHJlZi91bnJlZgoJICBoYXBwZW5zIGluIHRoZSBmb2xkIGZ1bmN0aW9uLgoKMjAxMC0wNi0xMyAxMToyNDoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IElmIHRoZSBpdGVyYXRvciByZXN5bmMgaW4gZmluZF9jdXN0b20oKSBqdXN0IHJldHJ5CgoyMDEwLTA2LTEyIDA4OjI1OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNzMzZmNhOSB0byA2ZGEzYmFiCgoyMDEwLTA2LTEyIDA4OjA0OjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogQWRkIHRlc3QgZm9yIGRlc2VyaWFsaXppbmcgZm91cmNjcwoKMjAxMC0wNi0xMSAyMjo1NjoxMyArMDAwMCAgTWFydGluIEJpc3NvbiA8bWFydGluLmJpc3NvbkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBGaXhlZCBzZXJpYWxpemF0aW9uIGZvciBzaG9ydCBmb3VyY2NzLgoJICAiWTE2ICIgYW5kICJZOCAgIiB3ZXJlIG5vdCBkaXNwbGF5ZWQgcHJvcGVybHkgYmVjYXVzZSB0aGUgc3BhY2UKCSAgY2hhcmFjdGVyIGlzIG5vdCBhbG51bS4gIEEgdW5pdCB0ZXN0IGlzIGFsc28gaW5jbHVkZWQuCgkgIEZpeGVzIGJ1ZyAjNjIxMjgyLgoKMjAxMC0wNi0xMSAxNjoxMjozMyAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogcHJpbnQgcmFua3Mgd2l0aCBvZmZzZXRzIGZyb20gbmFtZXMKCjIwMTAtMDYtMDkgMTI6Mzk6NTQgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmYWQxNDViIHRvIDczM2ZjYTkKCjIwMTAtMDYtMDkgMTI6MzA6NDkgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0NzY4M2MxIHRvIGZhZDE0NWIKCjIwMTAtMDYtMDkgMTI6MTc6MDMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGZpeCBjb21tZW50IHR5cG8gZXZlbiBtb3JlCgoyMDEwLTA2LTA5IDEyOjA2OjUyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgZG9jczogdXBkYXRlIGRvY3MgKGZvcm1hdCBhbmQgc2VhcmNoIHBhdGgpLgoJICBSZW1vdmUgb2Jzb2xldGUgeG1sIHJlZ2lzdHJ5IGNhY2hlIGV4dGVuc2lvbi4gVGVsbCB0aGF0IGNvbnRlbnQgYW5kIGxvY2F0aW9uIGlzCgkgIGludGVybmFsIGRldGFpbC4gRG9jdWVtbnQgdGhlIHBsdWdpbiBzZWFyY2ggb3JkZXIuCgoyMDEwLTA2LTA5IDEyOjA2OjE2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIGNvbW1lbnRzOiBhZGQgYSBmZXcgY29tbWVudHMgdG8gdGhlIHNwYXJzZWx5IGRvY3VtZW50ZWQgcGx1Z2luIGxvYWRlcgoKMjAxMC0wNi0wOCAxMTo0MToxMSArMDIwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGZpeCBjb21tZW50IHR5cG8KCjIwMTAtMDYtMDggMTI6MTI6NDIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHVzZSBnc3RfY2Fwc19hcHBlbmRfc3RydWN0dXJlX3VuY2hlY2tlZCgpIG1hY3JvIG9uY2UgbW9yZQoKMjAxMC0wNi0wOCAxMjoxMDozNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogdXNlIGEgc2FmZXIgbmFtZSBmb3IgdGVtcG9yYXJ5IHZhci4gdG8gbm90IHNoYWRvdyBvbmUgZnJvbSBvdXRlciBzY29wZQoKMjAxMC0wNi0wNyAxMjoyMDo0MSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiB1c2UgZ2xpYiB0eXBlcyBpbiBtb3JlIHBsYWNlcwoJICBEbyBhIGJ1bmNoIG9mIGNoYXIgLT4gZ2NoYXIsIGludCAtPiBnaW50LCBkb3VibGUgLT4gZ2RvdWJsZSBjaGFuZ2VzLgoKMjAxMC0wNi0wNyAxMjowNzozMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBqdXN0IGNvbXB1dGUgc3RybGVuKCkgb25jZQoKMjAxMC0wNi0wNyAxMDoxNjowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZG9uJ3Qgd2FpdCBmb3IgZGF0YSB3aGVuIEVPUwoJICBXaGVuIGluIGRvd25sb2FkIG1vZGUgYW5kIHdlIG5lZWQgdG8gcHJvdmlkZSBkYXRhIGZvciBhbiBvZmZzZXQgdGhhdCB3ZSBkb24ndAoJICBoYXZlLCBhbHNvIHBlcmZvcm0gYSBzZWVrIHRvIHRoZSByZXF1ZXN0ZWQgbG9jYXRpb24gd2hlbiB3ZSBhcmUgRU9TLiBUaGUgcmVhc29uCgkgIHdoeSB3ZSBzaG91bGRuJ3Qgd2FpdCBmb3IgbW9yZSBkYXRhIGlzIGJlY2F1c2UgYWZ0ZXIgRU9TLCB0aGVyZSBzaW1wbHkgd2lsbCBiZQoJICBubyBtb3JlIGRhdGEgYW5kIHdlIGVuZCB1cCB3YWl0aW5nIGZvcmV2ZXIuCgkgIEZpeGVzICM2MjA1MDAKCjIwMTAtMDYtMDcgMDg6MTg6NDAgKzAyMDAgIE1hcnRpbiBCaXNzb24gPG1hcnRpbi5iaXNzb25AZ21haWwuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBBZGQgc3VwcG9ydCBmb3IgcGFyc2luZyBzaG9ydCBmb3VyY2NzIGZyb20gc3RyaW5ncwoJICBGb3IgZXhhbXBsZSAiWTE2ICIgYW5kICJZOCAgIi4KCjIwMTAtMDYtMDYgMjM6MTk6NTggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiB1c2UgZ2xvYmJpbmcgZm9yIHNlbGVjdGl2ZSB0ZXN0IGludm9jYXRpb24gdmlhIEdTVF9DSEVDS1MKCSAgVXNlIGdsaWIgZ2xvYmJpbmcgaW5zdGVhZCBvZiBzaW1wbGUgc3RyaW5nIG1hdGNoaW5nIHRvIGFsbG93IGUuZy4KCSAgR1NUX0NIRUNLUz0idGVzdF9pbnRlcioiIG1ha2UgZ3N0L2dzdGNhcHMuY2hlY2sKCjIwMTAtMDYtMDYgMjE6MjA6MjEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSAgY2Fwc25lZ286IGFsc28gbWVhc3N1cmUgcGlwZWxpbmUgYnVpbGRpbmcgdGltZQoKMjAxMC0wNi0wNSAyMzoxODowOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGF2b2lkIGEgY2Fwcy1jb3B5CgkgIFdlIGNhbiBzaW1wbHkgdHJ1bmNhdGUgdGhlIGNhcHMsIGFzICdvdGhlcmNhcHMnIGlzIHRoZSByZXN1bHQgb2YgaW50ZXJzZWN0CgkgIG9wZXJhdGlvbnMgYW5kIHRodXMgb3VycyBhbmQgd3JpdGFibGUuCgoyMDEwLTA2LTAzIDAxOjQ5OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgaW5mbzogYWRkIG5ldyBUUkFDRSBsb2cgbGV2ZWwgYW5kIG1vdmUgcmVmY291bnRpbmcgdGhlcmUgZnJvbSBMT0cgbGV2ZWwKCSAgVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBlYXNpbHkgZ2V0IGEgKjo1IGRlYnVnIGxvZyB3aXRob3V0IGFsbAoJICB0aGUgcmVmY291bnRpbmcgbm9pc2UsIGFuZCBkcmFzdGljYWxseSByZWR1Y2VzIHRoZSBudW1iZXIgb2YgbGluZXMKCSAgb3V0cHV0IGZvciBhIG5vcm1hbCBsb2cgKDQ2bSB0byAyOG0gZm9yIGEgMjBtaW4gdmlkZW8pLiBUaGUgZnVsbCBsb2cKCSAgaW5jbHVkaW5nIHJlZmNvdW50aW5nIGluZm9ybWF0aW9uIGNhbiBzdGlsbCBiZSBnb3R0ZW4gdXNpbmcgKjo3LgoJICBGaXhlcyAjNjIwNDYwLgoKMjAxMC0wNi0wNCAxNzoxMDowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFVzZSBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTIGZvciBzdGFuZGFyZCBwcm9wZXJ0aWVzCgoyMDEwLTA2LTAzIDE3OjIxOjAwICswMjAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsQGJhc2UtYXJ0Lm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IE1ha2UgZ3N0X2Jhc2Vfc2lua19xdWVyeSByZXR1cm4gVFJVRSBpZiB0aGUgc2VnbWVudCBxdWVyeSBzdWNjZWVkZWQuCgkgIEZpeGVzIGJ1ZyAjNjIwNDkwLgoKMjAxMC0wNi0wMSAyMzo0ODo1OSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDE3Zjg5ZTUgdG8gNDc2ODNjMQoKMjAxMC0wNi0wMSAyMjo1NDoyMCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGZkN2NhMDQgdG8gMTdmODllNQoKMjAxMC0wNS0yNCAxNzoyNTo1MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWRzOiBJbXByb3ZlIHJlYWRhYmlsaXR5IGZvciBnc3RfcGFkX2ZpeGF0ZV9jYXBzKCkKCSAgSnVzdCB0cnVuY2F0ZSBhbmQgdGhlbiBmaXhhdGUuIFdlIGNoZWNrIGZvciBlbXB0eSBjYXBzIGluIHRoZSBiZWdpbiBhbmQgYQoJICBmaXhhdGUtZnVuYyB0aGF0IGVtcHRpZXMgYSBjYXBzIHdvdWxkIGJlIGJyb2tlbi4gSXQgYWxzbyBoZWxwcyBsYXp5IGNhcHMgaW1wbC4KCSAgaW4gYnVnIDYxODg1MyBieSBhdm9pZGluZyB0aGUgZ3N0X2NhcHNfZ2V0X3NpemUoKS4KCjIwMTAtMDYtMDEgMTE6NDY6MTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IGxvZyBwbHVnaW5zIGF2YWlsYWJsZSB0byB1bml0IHRlc3RzIGFuZCB0aGVpciBwYXRocwoKMjAxMC0wNi0wMSAxMTo0NToxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSAgd2luMzI6IGNvbW1pdCBNYWtlZmlsZSBjaGFuZ2VzIGZvciB3aW4zMi11cGRhdGUgYXMgd2VsbAoKMjAxMC0wNS0zMSAxNToxNDo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5jOgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5oOgoJICB3aW4zMjogYWRkIHByZS1nZW5lcmF0ZWQgdmVyc2lvbnMgb2YgZ3N0bWFyc2hhbC5bY2hdIGFzIHdlbGwKCSAgYW5kIHB1dCB0aGVtIG5leHQgdG8gdGhlIHByZS1nZW5lcmF0ZWQgZW51bXR5cGVzIGZpbGVzIGZvciB0aG9zZQoJICBub3QgdXNpbmcgYXV0b3Rvb2xzIGZvciBidWlsZGxpbmcgR1N0cmVhbWVyLgoKMjAxMC0wNS0yNyAxNToxMDozNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgdGVzdHM6IGFsc28gY2hlY2sgZm9yIGFkYXB0ZXIgYnVmZmVyIG1lcmdpbmcgaW4gdW5pdCB0ZXN0CgoyMDEwLTA1LTI3IDEyOjUwOjIyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBmaXggX3RyeV90b19tZXJnZV91cAoJICBUaGF0IGlzLCBwcm92aWRlIGNvcnJlY3QgcmV0dXJuIHZhbHVlIChhcyBkb2N1bWVudGVkKSwgYW5kIGFjdHVhbGx5CgkgIGxvb3AgdG8gY29uc2lkZXIgbW9yZSB0aGFuIHRoZSBmaXJzdCAyIGJ1ZmZlcnMuCgoyMDEwLTA1LTI3IDEyOjQ4OjE4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGZpeCBkb2N1bWVudGF0aW9uIGdsaXRjaAoKMjAxMC0wNS0yNiAxMTo1NDozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDM1N2IwZGIgdG8gZmQ3Y2EwNAoKMjAxMC0wNS0yNSAxOToxNzo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IHVubG9jayBfZ2V0X3N0YXRlKCkgb24gZXJyb3IKCSAgV2hlbiBhbiBlcnJvciBtZXNzYWdlIGlzIHJlY2VpdmVkIG9uIHRoZSBidXMsIG1hcmsgdGhlIGJpbiBhcyBiZWluZyBpbiB0aGUgZXJyb3IKCSAgc3RhdGUgYW5kIHVubG9jayBhbGwgY3VycmVudCBfZ2V0X3N0YXRlKCkgY2FsbHMgd2l0aCBhbiBlcnJvci4KCSAgRml4ZXMgIzUwNTc3MAoKMjAxMC0wNS0yNCAxOTowNzozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIGNoZWNrczogYWRkIG11bHRpLXRocmVhZCB0ZXN0IGZvciB0YWdzZXR0ZXIKCSAgU2VlICM2MTk1MzMuCgoyMDEwLTA1LTI0IDE5OjA2OjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgdGFnc2V0dGVyOiBtYWtlIHN1cmUgb25seSBvbmUgdGhyZWFkIGNyZWF0ZXMgdGhlIFRhZ0RhdGEKCjIwMTAtMDUtMjQgMTg6MTY6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICB0YWdzZXR0ZXI6IHByb3RlY3QgdGFnc2V0dGVyIG9wZXJhdGlvbnMgd2l0aCBhIGxvY2sKCSAgU28gd2UgZG9uJ3QgY3Jhc2ggd2hlbiBhIG11eGVyIHRyaWVzIHRvIGFkZCB0YWdzIGZyb20gdHdvCgkgIHRocmVhZHMgYXQgdGhlIHNhbWUgdGltZSwgZWcuIGJlY2F1c2UgaXQgcmVjZWl2ZWQgdGFnIGV2ZW50cwoJICBvbiB0d28gaW5wdXQgcGFkcyBzaW11bHRhbmVvdXNseS4KCSAgU2VlICM2MTk1MzMuCgoyMDEwLTA1LTIyIDIzOjI2OjE2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiB1c2Ugb3VyIG1hY3JvcyBtb3JlIG9mdGVuIGluIHRoZSBjb2RlCgoyMDEwLTA1LTIyIDIzOjA3OjEwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBhZGQgYXBwZW5kX3N0cnVjdHVyZV91bmNoZWNrZWQKCSAgVGhpcyBpcyB1c2VmdWwgd2hlbiB3ZSBrbm93IHRoYXQgY2FwcyBpcyAhTlVMTCwgd3JpdGFibGUgYW5kIHN0cnVjdHVyZSBpcwoJICAhTlVMTCB0b28uCgoyMDEwLTA1LTIyIDIyOjQ2OjQwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB0ZXN0czogcmVuYW1lIHRlc3RzdWl0ZQoJICBQcmV2aW91cyBuYW1lIHdhcyBvbmx5IGFwcGxpY2FibGUgdG8gYSBmZXcgb2YgdGhlIHRlc3RzLgoKMjAxMC0wNS0yMiAyMjo0NTozMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBkb2NzOiB4cmVmIGZ1bmN0aW9uIG5hbWUKCjIwMTAtMDUtMjIgMjI6NDQ6MDIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHVzZSBvdXIgbWFjb3MgbW9yZQoKMjAxMC0wNS0yMiAyMjozMzowOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9sYXp5Y2Fwcy50eHQ6CgkgIGRlc2lnbjogbW9yZSBwbGFubmluZyBvbiBsYXp5IGNhcHMuCgoyMDEwLTA1LTIyIDEwOjAxOjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBBUEk6IEFkZCBnc3Rfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9zdHJpbmcoKQoKMjAxMC0wNS0xOSAxNjoyMTo0OSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9sYXp5Y2Fwcy50eHQ6CgkgIGRlc2lnbjogY29sbGVjdCBpZGVhcyBmb3IgaGF2aW5nIGxhenkgY2FwcwoJICBEZXNpZ24gZG9jIGZvciBoYXZpbmcgb24gdGhlIGZseSBldmFsdWF0ZWQgY2FwcyAoc2VlIGJ1ZyAjNjE4ODUzKS4KCjIwMTAtMDUtMTkgMTU6NTc6MDggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidXMuYzoKCSAgZG9jczogYWRkIGxpbmtzIGZvciBHU291cmNlIHByaW9yaXRpZXMKCSAgTm93IGl0IGlzIHhyZWZmZWQgd2l0aCB0aGUgZ2xpYiBkb2NzLCB3aGVyZSB0aGUgcHJpb3JpdHkgc2NhbGUgaXMgZXhwbGFpbmVkLgoKMjAxMC0wNS0xOSAxNDowODoyNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJICBiZW5jaG1hcms6IGFkZCBjb21tYW5kbGluZSBwYXJhbWV0ZXJzIGZvciBjYXBzbmVnbwoJICBBbGxvdyB0byBzcGVjaWZ5IHRoZSBncmFwaCBzaXplIGFuZCBvZmZlciB0d28gZmxhdm91cnMgKGF1ZGlvL3ZpZGVvKS4KCjIwMTAtMDUtMTkgMDk6NTY6NTEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvLmdpdGlnbm9yZToKCSogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJICBiZW5jaG1hcmtzOiBhZGQgYSBiZW5jaG1hcmsgZm9yIGNhcHNuZWdvdGlhdGlvbgoJICBUaGUgdGVzdCBidWlsZHMgYSB0cmVlIGxpa2UgZ3JhcGggaGF2aW5nIGNvbnZlcnNpb24gYW5kIGJhc2V0cmFuc2Zvcm0gZWxlbWVudHMuCgoyMDEwLTA1LTE4IDE3OjUxOjAxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHMuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5jOgoJICBiZW5jaG1hcmtzOiB1c2UgZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCgpIGluc3RlYWQgb2Ygb3duIGltcGxlbWVudGF0aW9uCgoyMDEwLTA1LTE4IDE4OjM4OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogYWRkIGppdHRlciB0byBkZWJ1ZyBvdXRwdXQKCjIwMTAtMDUtMTggMTg6MzU6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBjbGVhbnVwIHR5cGUgcmVnaXN0cmF0aW9uIGEgbGl0dGxlCgkgIFdlIGNhbiBtYWtlIHNvbWUgc3RydWN0cyBjb25zdCBzdGF0aWMgd2l0aCBsaXR0bGUgZWZmb3J0LgoKMjAxMC0wNS0xNyAxMzowOToxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgcHJpbnQgV0FSTklORyBkZWJ1ZyBzdGF0ZW1lbnRzIGZvciBub3JtYWwgdGhpbmdzIGxpa2UgRU9TLCBwYXJ0IElJCgoyMDEwLTA1LTE0IDE4OjIyOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNGQ2N2JkNiB0byAzNTdiMGRiCgoyMDEwLTA1LTE0IDExOjUyOjAzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBjb21tZW50IGFuZCB3aGl0ZXNwYWNlIGNsZWFudXAKCSAgTWFrZSBjb21tZW50IG1vcmUgc3BlY2lmaWMsIHJlcG9zaXRpb24gaXQgYW5kIGFkZCBtb3JlIG9mIHRoZSBraW5kLgoJICBNb3ZlIG9uZSBpZmRlZidlZCBmdW5jdGlvbiBhcm91bmQuCgoyMDEwLTA1LTEzIDA4OjIxOjM3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogU2ltcGxpZnkgZnJhY3Rpb25zIGJlZm9yZSBkb2luZyBjYWxjdWxhdGlvbnMgdGhhdCBjb3VsZCBjYXVzZSBvdmVyZmxvd3MKCSAgLi4uIHRvIHByZXZlbnQgc29tZSB1bm5lY2Vzc2FyeSBvdmVyZmxvd3MgZnJvbSBoYXBwZW5lbmluZy4KCjIwMTAtMDUtMTMgMDg6MDA6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBHQ0QgaXMgMCBpZiBib3RoIHBhcmFtZXRlcnMgYXJlIDAsIGRvbid0IGRpdmlkZSBieSB6ZXJvCgkgIEFuZCB0dXJuIG92ZXJmbG93IGNoZWNrcyBmcm9tIGFzc2VydGlvbnMgaW50byBzaW1wbGUgY2hlY2tzIHRvCgkgIHJldHVybiBGQUxTRS4KCjIwMTAtMDUtMTMgMDc6NTE6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBTaW1wbGlmeSByZXN1bHQgb2YgZ3N0X2ZyYWN0aW9uX211bHRpcGx5KCkKCjIwMTAtMDUtMTAgMTM6MjU6MDQgLTA0MDAgIFRyaXN0YW4gTWF0dGhld3MgPHRyaXN0YW5Ac2F0LnFjLmNhPgoKCSogZG9jcy9mYXEvdXNpbmcueG1sOgoJICBmYXE6IHVwZGF0ZWQgbGluZSBhYm91dCBqYWNrIG91dHB1dAoKMjAxMC0wNS0wMyAxMTozMjoyMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJICB0ZXN0czogUmVhZCByZXR1cm4gdmFsdWUgdG8gbWFrZSBjbGFuZy9pY2MgaGFwcHkKCjIwMTAtMDUtMDYgMTY6NDE6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiBkb24ndCBjaGVjayB0d2ljZSBmb3IgY2hhbmdlZCBjYXBzIHBlciBwdXNoIgoJICBXZSBuZWVkIHRvIGNoZWNrIHRoZSBwYWQgY2FwcyBvbiB0aGUgc3JjcGFkIGFzIHdlbGwgYXMgb24gdGhlIHNpbmtwYWQuIFJldmVydAoJICB0aGlzIGNvbW1pdCBhcyBpdCByZW1vdmVzIHRoZSBjaGVjayBvbiB0aGUgc3JjcGFkIGFuZCBjYW4gbGVhdmUgdGhlIHNyY3BhZAoJICB1bm5lZ290aWF0ZWQgKG9yIG5lZ290aWF0ZWQgd2l0aCB3cm9uZyBjYXBzKQoJICBUaGlzIHJldmVydHMgY29tbWl0IDA3ZGMxZTViNDk1ODBhODliZmVmMjdmZjI3NDc2ZDUxZmIzY2UyYzIuCgoyMDEwLTA1LTA2IDE3OjAyOjQ5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgY2hlY2sgdHdpY2UgZm9yIGNoYW5nZWQgY2FwcyBwZXIgcHVzaAoJICBnc3RfcGFkX2NoYWluX2RhdGFfdW5jaGVja2VkKCkgZG9lcyB0aGUgc2FtZSBjaGVjayBhbHJlYWR5LgoKMjAxMC0wNS0wNiAxNjo1MToxNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHJlZmxvdyB0byB0cnVuY2F0ZSBjYXBzIGp1c3Qgb25jZQoJICBXZSBnZXQgd3JpdGFibGUgY2FwcyBmcm9tIHRoZSBpbnRlcnNlY3Rpb24gKHVubGVzcyBpdCBmYWlsZWQpLiBBcyB3ZSB0cnVuY2F0ZQoJICB0aG9zZSBhbnl3YXksIHdlIGRvbid0IG5lZWQgdG8gbWFudWFseSBjb3B5IHRoZSBmaXJzdCBzdHJ1Y3R1cmUuCgoyMDEwLTA1LTA0IDEzOjI5OjAyICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHRvb2xzL2dzdC1ydW4uYzoKCSAgdG9vbHM6IGZpeCBnc3QtcnVuIHdyYXBwZXIgdG8gd29yayBvbiBXaW5kb3dzCgkgIEZpeGVzICM2MTc2MjUKCjIwMTAtMDUtMDMgMDA6MjY6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBkb2NzOiBkb2N1bWVudCB0aGF0IGdzdF9ieXRlX3dyaXRlcl9wdXRfc3RyaW5nKigpIHdyaXRlcyB0aGUgdGVybWluYXRvciB0b28KCjIwMTAtMDUtMDUgMTI6MDE6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGRvY3M6IGNsYXJpZnkgdGhlIHB1bGxfcmFuZ2UgZnVuY3Rpb25zCgkgIENsYXJpZnkgdGhlIGdzdF9wYWRfcHVsbF9yYW5nZSgpLCBHc3RCYXNlU3JjOjpjcmVhdGUoKSwgZ3N0X3BhZF9nZXRfcmFuZ2UoKQoJICBhbmQgR3N0UGFkR2V0UmFuZ2UgZnVuY3Rpb25zIGEgbGl0dGxlLgoJICBGaXhlcyAjNjE3NzMzCgoyMDEwLTA1LTA0IDExOjQ1OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGltcHJvdmUgZGVidWdnaW5nCgoyMDEwLTA0LTMwIDExOjI3OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiB1c2UgcmVmZmVkIF9nZXRfY2FwcygpIHZlcnNpb24KCSAgV2UgZG9uJ3QgbmVlZCB0byBoYXZlIGEgd3JpdGFibGUgY29weSBzbyB3ZSBjYW4gdXNlIHRoZSBfcmVmZmVkCgkgIHZlcnNpb24gaW5zdGVhZC4KCjIwMTAtMDQtMjkgMjE6NTc6MTUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnczogQWRkcyBnZW8gbG9jYXRpb24gZGlyZWN0aW9uIHRhZ3MKCSAgQWRkcyAzIG5ldyBnZW8gbG9jYXRpb24gdGFncyBpbnZvbHZpbmcgZGlyZWN0aW9uIGFuZAoJICBtb3ZlbWVudCBvZiBjYXB0dXJlLiBUaG9zZSBhcmU6CgkgIEFQSTogR1NUX1RBR19HRU9fTE9DQVRJT05fQ0FQVFVSRV9ESVJFQ1RJT04KCSAgQVBJOiBHU1RfVEFHX0dFT19MT0NBVElPTl9NT1ZFTUVOVF9ESVJFQ1RJT04KCSAgQVBJOiBHU1RfVEFHX0dFT19MT0NBVElPTl9NT1ZFTUVOVF9TUEVFRAoJICBGaXhlcyAjNjE3MjIzCgoyMDEwLTA0LTE2IDA2OjU3OjA1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ3M6IEFkZHMgR1NUX1RBR19ERVZJQ0VfTUFOVUZBQ1RVUkVSIGFuZCBHU1RfVEFHX0RFVklDRV9NT0RFTAoJICBBZGRzIHRob3NlIG5ldyB0YWdzIHRvIGRlc2NyaWJlIHRoZSBkZXZpY2UgbWFudWZhY3R1cmVyIGFuZAoJICBtb2RlbCB1c2VkIHRvIGNyZWF0ZSBtZWRpYXMuCgkgIEFQSTogR1NUX1RBR19ERVZJQ0VfTUFOVUZBQ1RVUkVSCgkgIEFQSTogR1NUX1RBR19ERVZJQ0VfTU9ERUwKCSAgRml4ZXMgIzYxNTk0MQoKMjAxMC0wNS0wMiAxOTo0Mzo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDoKCSAgcHdnOiByZW1vdmUgY29uZnVzaW5nIG1ldGFkYXRhIGV4YW1wbGUgd2l0aCAwLjggY29kZQoJICBGaXhlcyAjNTM0MzE0LgoKMjAxMC0wNS0wMiAxOTozMDozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1tZXRhZGF0YS54bWw6CgkgIG1hbnVhbDogYWRkIG1pbmltYWwgdGFnIHJlYWRpbmcgZXhhbXBsZQoJICBTaG91bGQgcHJvYmFibHkgcHV0IHRoYXQgaW50byB0ZXN0cy9leGFtcGxlcyBhbmQgZmlndXJlIG91dCBob3cgdG8KCSAgZ2V0IGl0IGluY2x1ZGVkIGF1dG9tYXRpY2FsbHksIGJ1dCBjYW4ndCBiZSBib3RoZXJlZCByaWdodCBub3cuCgoyMDEwLTA0LTMwIDEzOjEwOjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdC5jOgoJICBCdW1wIEdMaWIgcmVxdWlyZW1lbnQgdG8gMi4yMAoJICBTZWUgaHR0cDovL2dzdHJlYW1lci5mcmVlZGVza3RvcC5vcmcvd2lraS9SZWxlYXNlUGxhbm5pbmcvR0xpYlJlcXVpcmVtZW50CgoyMDEwLTA0LTI5IDIzOjI5OjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBvbmx5IHdhcm4gaWYgbWV0YWRhdGEgaXMgbm90IHdyaXRhYmxlIHdoZW4gaXQgc2hvdWxkIGJlLCBkb24ndCByZXR1cm4gYXMgd2VsbAoJICBNYWtlIHN1cmUgd2UgZXhlY3V0ZSB0aGUgc2FtZSBjb2RlIHBhdGggaW4gZ2l0IHZlcnNpb25zIGFuZCBpbiByZWxlYXNlcywKCSAgc28ganVzdCB3YXJuIHdoZW4gbWV0YWRhdGEgaXNuJ3Qgd3JpdGFibGUgd2hlbiB3ZSB3YW50IGl0IHRvIGJlIGluc3RlYWQKCSAgb2YgYmFpbGluZyBvdXQuCgoyMDEwLTA0LTI5IDIzOjI2OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IG1ha2UgJ2FkZGluZyBmbHVzaGluZyBwYWQnIHdhcm5pbmcgbW9yZSB1c2VmdWwKCSAgVGhpcyBpcyBhIHByZXR0eSBjb21tb24gaXNzdWUgd2l0aCBnaG9zdCBwYWRzLCBsZXQncyBtYWtlCgkgIHRoZSB3YXJuaW5nIG1vcmUgaGVscGZ1bCBhbmQgdGVsbCBwZW9wbGUgd2hhdCB0aGV5IG5lZWQKCSAgdG8gZG8gdG8gZml4IGl0LgoKMjAxMC0wNC0yOCAxNzoxNTo0MSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGFkZCAtcCBvcHRpb24gdG8gZGlzYWJsZSBwbGF5IGhhbmRsZXIuCgkgIFNhbWUgbG9naWMgYXMgZm9yIHRoZSBmYXVsdCBoYW5kbGVyLiBUaGlzIGlzIHVzZWZ1bCBmb3Igc29tZSBkZWJ1Zy90cmFjaW5nIHRvb2xzCgkgIHRoYXQgbmVlZCB0byBncmFiIFNJR1VTUjEgYW5kIFNJR1VTUjIgdGhlbSBzZWxmLgoKMjAxMC0wNC0xNSAxMDozNjo1MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaW1wbGVtZW50IHBlcmNlbnRhZ2UgcG9zaXRpb24gYW5kIGR1cmF0aW9uIHF1ZXJpZXMKCSAgSWYgdXBzdHJlYW0gZG9lcyBub3QgaGFuZGxlIHRoZW0sIHRoZW4gaW1wbGVtZW50IHRob3NlIG91cnNlbGYuCgoyMDEwLTA0LTE0IDE3OjQ3OjM2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1c2UgZ3N0X3BhZF9wZWVyX3F1ZXJ5IGluc3RlYWQgb2YgcmVpbnZlbnRpbmcuCgoyMDEwLTA0LTE0IDE3OjQ2OjU1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBxdWVyaWVzOiBhZGQgbW9yZSBsb2dnaW5nCgkgIExvZyBodW1hbiByZWFkYWJsZSBmb3JtYXRzIGFuZCBsb2cgcXVlcnkgcmVzdWx0LgoKMjAxMC0wNC0xOSAyMDozNTozNiArMDIwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBjYXBzOiBEbyBub3QgYWxsb3cgZml4YXRpbmcgZW1wdHkgY2FwcwoJICBQYXNzaW5nIGVtcHR5IGNhcHMgdG8gZ3N0X3BhZF9maXhhdGVfY2FwcygpIGlzIGludmFsaWQsIGFzIGVtcHR5IGNhcHMKCSAgY2Fubm90IGJlIGZpeGF0ZWQuCgoyMDEwLTA0LTI2IDIxOjUyOjA3ICswMjAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiBVc2UgR19HTlVDX1dBUk5fVU5VU0VEX1JFU1VMVCBmb3IgbWFrZV93cml0YWJsZSgpCgkgIFBlb3BsZSBvZnRlbiBjYWxsCgkgIGdzdF9jYXBzX21ha2Vfd3JpdGFibGUgKGNhcHMpOwoJICBpbnN0ZWFkIG9mCgkgIGNhcHMgPSBnc3RfY2Fwc19tYWtlX3dyaXRhYmxlIChjYXBzKTsKCSAgYW5kIGNhdXNlIGEgYnVnLiBXYXJuaW5nIGFib3V0IGFuIHVudXNlZCByZXR1cm4gdmFsdWUgaGVscHMgaGVyZS4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTY1NDEjYzIgZm9yIGFuIGV4YW1wbGUuCgoyMDEwLTA0LTIzIDA2OjI0OjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlcnJvci5jOgoJICBnc3Q6IFVzZSBHRXJyb3IgYm94ZWQgdHlwZSBmcm9tIEdPYmplY3QgMi4yNS4yIGluc3RlYWQgb2Ygb3VyIG93biBpZiBwb3NzaWJsZQoKMjAxMC0wNC0yOSAxNDo1MDozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50LgoKMjAxMC0wNC0xNSAxNzoxMTo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBkb2NzOiBhZGQgc29tZSBtb3JlIGRvY3MgZm9yIHRoZSBldmVudHMKCj09PSByZWxlYXNlIDAuMTAuMjkgPT09CgoyMDEwLTA0LTI3IDIzOjQyOjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4yOQoKMjAxMC0wNC0yNyAyMzo0MDo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTAtMDQtMjcgMDk6NDI6MDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICB0ZXN0czogYWRkIG1vcmUgdGVzdHMgZm9yIGNvbnRyb2xsZXIKCSAgVGhlIHRlc3RzIHZlcmlmeSB0aGF0IGJ1ZyAjNjE2ODQ2IGlzIGluZGVlZCBmaXhlZC4KCjIwMTAtMDQtMjYgMTU6NDM6MTcgKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBjb250cm9sbGVyOiBGaXggZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfZmluZF9jb250cm9sX3BvaW50X2l0ZXIKCSAgVGhlIGxvZ2ljIGluIHRoYXQgZnVuY3Rpb24gaXMgYnJva2VuLiBWYXJpb3VzIE5VTEwtY2hlY2tpbmcgYmFuZGFpZHMgZm9yCgkgIGd1YXJhbnRlZWQgbm9uLU5VTEwgdmFyaWFibGVzIGRpZG4ndCBldmVuIGhlbHAgdGhlcmUuCgkgIFRoaXMgcGF0Y2ggdXBkYXRlcyB0aGUgZnVuY3Rpb24gdG8gY2hlY2sgaWYgYSBwcmV2aW91cyBpdGVtIGV4aXN0cwoJICBiZWZvcmUgZmV0Y2hpbmcgaXQgaW5zdGVhZCBvZiBhZnRlci4gVGhpcyBtYWtlcyBhbGwgb3RoZXIgdGVzdHMKCSAgdW5uZWNlc3NhcnkuCgkgIEluIHBhcnRpY3VsYXIsIGl0IG1ha2VzIHRoZSBjaGVjayBmb3IgYW4gZW1wdHkgbGlzdCB1bm5lY2Vzc2FyeSwgYmVjYXVzZQoJICBmb3IgZW1wdHkgbGlzdHMgdGhlIG9ubHkgaXRlciBpcyB0aGUgYmVnaW4gaXRlciAoYW5kIHRoZSBlbmQgaXRlcikgYW5kCgkgIHNvIHRoZSBuZXcgY2hlY2sgY2F0Y2hlcyB0aGF0IGNhc2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTY4NDYKCjIwMTAtMDQtMjUgMjE6MTU6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yOC4zIHByZS1yZWxlYXNlCgoyMDEwLTA0LTIwIDE3OjE3OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdHJlYW1lci5kb2FwOgoJICBkb2FwOiB1cGRhdGUgcmVwb3NpdG9yeSBpbmZvIGZyb20gY3ZzLT5naXQgYW5kIG1haW50YWluZXJzCgoyMDEwLTA0LTIzIDE0OjM5OjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZmM4NTg2NyB0byA0ZDY3YmQ2CgoyMDEwLTA0LTE2IDIwOjA5OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIGRvY3M6IENvbnNpc3RlbnRseSB1c2UgTXlGaWx0ZXIgaW5zdGVhZCBvZiBzb21ldGltZXMgRXhhbXBsZUZpbHRlciBpbiB0aGUgZXhhbXBsZQoJICBGaXhlcyBidWcgIzYxNTU3OS4KCjIwMTAtMDQtMTYgMTQ6MjI6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBlbnVtcyBmb3IgY3VzdG9tIGZsb3cgcmV0dXJuIHN1Y2Nlc3MgYW5kIGVycm9yIGNvZGVzCgkgIFRoaXMgd2F5IHBlb3BsZSBjYW4ganVzdCAjZGVmaW5lIHRoZWlyIG93biBjdXN0b20gZmxvdyByZXR1cm5zIHRvCgkgIG9uZSBvZiB0aGVzZSB3aXRob3V0IGhhdmluZyB0aGUgY29tcGlsZXIgKGVzcC4gZ2NjLTQuNSkgY29tcGxhaW4KCSAgYWJvdXQgY29tcGFyaW5nIGludGVnZXJzIHRvIGFuIGVudW0gb3IgdGhlIGVudW0gbm90IGJlaW5nIGxpc3RlZAoJICBGaXhlcyAjNjE1ODgwLgoJICBBUEk6IEdTVF9GTE9XX0NVU1RPTV9TVUNDRVNTXzEKCSAgQVBJOiBHU1RfRkxPV19DVVNUT01fU1VDQ0VTU18yCgkgIEFQSTogR1NUX0ZMT1dfQ1VTVE9NX0VSUk9SXzEKCSAgQVBJOiBHU1RfRkxPV19DVVNUT01fRVJST1JfMgoKMjAxMC0wNC0xNSAyMjowNTozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgbGZvY29udHJvbHNvdXJjZTogVXNlIGNvcnJlY3Qgc2V0dGVyIGZvciBkb3VibGUgR1ZhbHVlcwoKMjAxMC0wNC0xNSAxMTowODowMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdzOiBkb2MgZml4ZXMKCSAgQWRkcyBtaXNzaW5nICc6JyB0byB0YWdzIGRvY3MKCjIwMTAtMDQtMTUgMTE6Mzg6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGZpeCBib2d1cyB2YXJpYWJsZSB0eXBlCgkgIFRoZSByZXN1bHQgb2YgZ3N0X2l0ZXJhdG9yX2ZpbmRfY3VzdG9tKCkgaXMgbm90IGEgR3N0SXRlcmF0b3IgKi4KCjIwMTAtMDQtMTQgMTI6MjA6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yOC4yIHByZS1yZWxlYXNlCgoyMDEwLTA0LTE0IDEyOjEyOjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMDQtMTQgMTI6NDM6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGxvZyB3aGF0IHN0cnVjdHVyZSBzdHJpbmcgd2UgZmFpbGVkIHRvIHBhcnNlCgoyMDEwLTA0LTE0IDE3OjU2OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGJpbjogZml4IHJlZmNvdW50IHdoZW4gcmVtb3ZpbmcgZWxlbWVudHMgZHVyaW5nIHN0YXRlIGNoYW5nZQoJICBXaGVuIGFuIGVsZW1lbnQgaXMgcmVtb3ZlZCBmcm9tIGEgYmluIGJlY2F1c2UgaXQgY2F1c2VkIGEgc3RhdGUgY2hhbmdlIGVycm9yLAoJICBkb24ndCB1bnJlZiB0aGUgY2hpbGQgdHdpY2UuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgQWRkIGEgdW5pdCB0ZXN0IGZvciB0aGlzIGVycm9yLgoJICBGaXhlcyAjNjE1NzU2CgoyMDEwLTA0LTE0IDExOjUwOjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBtb3JlIExERkxBR1MgLT4gTERBREQgZml4ZXMKCjIwMTAtMDQtMTQgMTE6NDA6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBidWlsZDogJChMSUJNKSBiZWxvbmdzIGludG8gTElCQUREIG5vdCBMREZMQUdTCgoyMDEwLTA0LTA4IDA5OjE0OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJICBidWlsZDogd2hlbiBidWlsZGluZyBleGVjdXRhYmxlcywgcHV0IGxpYnMgdG8gbGluayB0byBpbnRvIExEQUREIGluc3RlYWQgb2YgTERGTEFHUwoJICBVc2UgZm9vX0xEQUREIGluc3RlYWQgb2YgZm9vX0xERkxBR1MgdG8gc3BlY2lmeSB0aGUgbGlicmFyaWVzIHRvIGxpbmsgdG8uCgkgIFRoaXMgc2hvdWxkIG1ha2Ugc3VyZSBhcmd1bWVudHMgYXJlIHBhc3NlZCB0byB0aGUgbGlua2VyIGluIHRoZSByaWdodAoJICBvcmRlci4gU2VlICM2MTU2OTcuCgoyMDEwLTA0LTE0IDExOjE5OjE0ICswMjAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogUmVtb3ZlIC1XY2FzdC1hbGlnbgoJICBBcHBhcmVudGx5IGdjYyB3YXJucyB0aGF0IEdzdE1pbmlPYmplY3QgaXMgbm90IGNhc3RhYmxlIHRvCgkgIEdzdEV2ZW50L01lc3NhZ2UvQnVmZmVyIGR1ZSB0byB0aGVtIGNvbnRhaW5pbmcgNjRiaXQgdmFyaWFibGVzLCBldmVuCgkgIHRob3VnaCBBUk0gaGFja2VycyBjbGFpbSB0aGF0IHRob3NlIG9ubHkgbmVlZCA0Ynl0ZSBhbGlnbm1lbnQuIEFuZCBhcwoJICBsb25nIGFzIGdjYyBiZWhhdmVzIHRoYXQgd2F5LCB0aGlzIHdhcm5pbmcgaXMgbm90IHZlcnkgdXNlZnVsLgoJICBTbyB3ZSdsbCByZW1vdmUgdGhlIHdhcm5pbmcgdW50aWwgdGhpcyBwcm9ibGVtIGlzIGZpeGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE1Njk4CgoyMDEwLTA0LTEzIDEwOjQ4OjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiByZW1vdmUgc3VwZXJmbHVvdXMgcmV0dXJuIHN0YXRlbWVudHMgYXQgZW5kIG9mIEFDX1RSWV97TElOSyxDT01QSUxFfSBibG9ja3MKCSAgU3BvdHRlZCBieSBKRiBNZXJ0ZW5zLiBTZWUgIzYxNDc2Ny4KCjIwMTAtMDQtMDUgMTM6NDY6MjMgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IENoYW5nZSBjaGVjayBmb3IgdWludDEyOF90CgkgIENoZWNrIGZvciBhYmlsaXR5IHRvIGRpdmlkZSB1aW50MTI4X3QgdmFsdWVzLCBzaW5jZSB0aGF0IHdoYXQKCSAgd2UgYWN0dWFsbHkgdXNlIGl0IGZvciAoaW4gZ3N0dXRpbHMuYykuICBUaGUgZXhpc3RlbmNlIG9mIGEKCSAgdWludDEyOF90IHR5cGUgZG9lc24ndCBtZWFuIHRoZSBjb21waWxlciBjYW4gYWN0dWFsbHkgZ2VuZXJhdGUKCSAgY29kZSBmb3IgaXQuICBBbHNvIG1ha2Ugc3VyZSB0aGF0IHdlIGNhbiBhY3R1YWxseSBsaW5rIHRoZQoJICByZXN1bHQgc3VjY2Vzc2Z1bGx5LgoJICBGaXhlcyBidWcgIzYxNDc2Ny4KCjIwMTAtMDQtMTIgMTU6MTM6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIGRvY3M6IG1pbm9yIG1vdmluZy1wbHVnaW5zIGFkZGl0aW9uCgoyMDEwLTA0LTA5IDE1OjQ4OjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBsYXVuY2g6IG1ha2UgLXEgYmUgbW9yZSBxdWlldAoJICBDb252ZXJ0IHNvbWUgZ19wcmludCBpbnRvIFBSSU5UIHNvIHRoYXQgdGhleSBhcmUgbm90IHByaW50ZWQgd2hlbiB0aGUgLXEgb3B0aW9uCgkgIGlzIHNlbGVjdGVkLgoKMjAxMC0wNC0wOSAxNToxOToxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvCgoyMDEwLTA0LTA5IDEzOjEyOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgIGZkc3JjOiBhbGxvdyBzcGVjaWZ5aW5nIHRoZSBzaXplIGluIGJ5dGVzIG9uIHRoZSB1cmkKCSAgUGFyc2UgYSBzaXplPXZhbHVlIGZyb20gdGhlIHF1ZXJ5IHN0cmluZyB0byBzcGVjaWZ5IGEgc2l6ZS4gVGhpcyBpcyBpbnRlcmVzdGluZwoJICB3aGVuIHJlYWRpbmcgZnJvbSBhIGZpbGUgZGVzY3JpcHRvciB0aGF0IGFjdHVhbGx5IGhhcyBhIHNpemUgKGFuZCBpcyBub3QKCSAgc3RhdC1hYmxlLCBzdWNoIGFzIHRoZSBzb2NrZXQgb2YgYW4gaHR0cCBjb25uZWN0aW9uKQoKMjAxMC0wNC0wOSAxMjozNTo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogd2hlbiBFT1Mgd2Uga25vdyB0aGUgZHVyYXRpb24KCSAgV2hlbiB3ZSBhcmUgRU9TLCB3ZSBkb24ndCBuZWVkIHRvIGRvIGFuIHVwc3RyZWFtIHF1ZXJ5IGZvciB0aGUgZHVyYXRpb24gaW4gYnl0ZXMKCSAgYmVjYXVzZSB3ZSBhbHJlYWR5IGtub3cgaXQgaXMgdGhlIG9mZnNldCBvZiB0aGUgbGFzdCB3cml0dGVuIGJ5dGUuCgoyMDEwLTA0LTA5IDEzOjA4OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogSW5pdGlhbGl6ZSB0eXBlZmluZC9lbGVtZW50IGZhY3RvcnkgcmVnaXN0cnkgY2h1bmtzIHdpdGggemVyb2VzCgkgIFRoaXMgbWFrZXMgdmFsZ3JpbmQgc3RvcCBjb21wbGFpbmluZyBhYm91dCByZWFkaW5nIHVuaXRpYWxpemF0ZWQgbWVtb3J5LAoJICB3aGljaCBpcyBub3QgaW5pdGlhbGl6ZWQgYmVjYXVzZSBpdCdzIGp1c3QgY29tcGlsZXItYWRkZWQgc3RydWN0IHBhZGRpbmcuLi4KCjIwMTAtMDQtMDkgMTE6MTk6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkNjZhOGMzIHRvIGZjODU4NjcKCjIwMTAtMDQtMDggMTA6MTA6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvLmdpdGlnbm9yZToKCSAgLmdpdGlnbm9yZTogYWRkIG5ldyAuc3ZnIGZpbGUgaW4gZG9jcwoKMjAxMC0wNC0wOCAxMDo0NzowMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgZG9jczogdXNlIGluZm9ybWFsZmlndXJlIHRhZyB0byBub3Qgc3ludGF4IGhpZ2hsaWdodCB0aGUgY29udGVudAoKMjAxMC0wMy0yNSAxMDozNToxMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2dzdC11bml2ZXJzZS5kb3Q6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgIGRvY3M6IGFkZCBjb25jZXB0IG1hcAoJICBBZGQgYSBncmFwaHZpeiBkb3QgZmlsZS4gQWRkIHJ1bGVzIHRvIHJlbmRlciBpdCB0byBzdmcgYW5kIGluY2x1ZGUgaW4gZG9jcy4KCSAgTm9kZXMgYXJlIGNsaWNrYWJsZS4gSXQgaXMgYW4gYXR0ZW1wdCB0byBzaG93IGhvdyB0aGluZ3MgZml0IHRvZ2V0aGVyLgoKMjAxMC0wNC0wNyAxOTozMDo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBkb2NzOiBhZGQgYSBmZXcgY29kZSBzbmlwcGV0cyB0aGF0IHNob3cgaG93IHRvIHVzZSBnc3RfbWVzc2FnZV9wYXJzZV8qKCkuCgoyMDEwLTA0LTA3IDE5OjA1OjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYnVpbGQ6IGJ1bXAgYXV0b2NvbmYgcmVxdWlyZW1lbnQgdG8gMi42MCBmb3IgZ29iamVjdC1pbnRyb3NwZWN0aW9uLm00CgkgIFJlcXVpcmUgYXV0b2NvbmYgMi42MCAod2hpY2ggd2FzIHJlbGVhc2VkIGluIEp1bmUgMjAwNikuCgkgIEZpeGVzICM2MDA3MTguCgoyMDEwLTA0LTA3IDEyOjI5OjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBmaXggbW9yZSBjb21waWxlciB3YXJuaW5ncwoJICBGaXggJ2dyYW1tYXIudGFiLmM6ODE1OjY6IHdhcm5pbmc6ICJZWUVOQUJMRV9OTFMiIGlzIG5vdCBkZWZpbmVkJwoJICBjb21waWxlciB3YXJuaW5nIGFuZCB0aGUgc2FtZSBmb3IgWVlMVFlQRV9JU19UUklWSUFMLiBUaGUgdHdvCgkgIHRyYW5zbGF0ZWQgc3RyaW5ncyBhcmVuJ3QgcGFydGljdWxhcmx5IGhlbHBmdWwsIHNvIGp1c3QgZGVmaW5lCgkgIFlZRU5BQkxFX05MUyB0byAwLgoKMjAxMC0wNC0wNyAxMjoyNDoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogZml4IGNvbXBpbGVyIHdhcm5pbmcKCSAgRml4ICdncmFtbWFyLnk6NjY4OiBwYXNzaW5nIGFyZ3VtZW50IDEgb2Yg4oCYZ19mcmVl4oCZIGRpc2NhcmRzIHF1YWxpZmllcnMKCSAgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlJyBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wNC0wNyAxNjowNTozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIG1lc3NhZ2U6IGFkZCBTaW5jZTogbWFya2VycwoKMjAxMC0wNC0wNyAwOTozMTozOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICB0ZXN0czogZ3N0c3lzdGVtY2xvY2s6IGRvbid0IGxlYWsgdGhlIHN5c3RlbSBjbG9jawoKMjAxMC0wNC0wNSAwMDowMTo1NiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBmaXggb3V0IG9mIHNvdXJjZWRpciBidWlsZCBmb3IgY2hlY2sKCSAgTW92ZSB0aGUgaW50ZXJuYWwgaGVhZGVyIHRvIG5vZGlzdCAoYXMgd2UgY29weSBpdCBhcm91bmQgYW55d2F5KS4KCSAgVXNlIGJ1aWxkZGlyIGluIHBhdHRlcm4gc3Vic3RpdHV0aW9uIGZvciBpdC4KCSAgRml4ZXMgIzYxNDgzLgoKMjAxMC0wNC0wNiAxNzo0NjozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBkb2NzOiBmaXggc29tZSB0eXBvcwoKMjAxMC0wMi0yMyAwOToxNjo1NSArMDEwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnQGF4aXMuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCBnc3RfYmFzZV9zcmNfbmV3X3NlYW1sZXNzX3NlZ21lbnQoKQoJICBLZWVwIHRyYWNrIG9mIHBlbmRpbmcgbmV3c2VnbWVudCBpbiBnc3RfYmFzZV9zcmNfbmV3X3NlYW1sZXNzX3NlZ21lbnQoKQoJICB0byBhdm9pZCBwdXNoaW5nIG5ld3NlZ21lbnQgdXBkYXRlIGJlZm9yZSBuZXdzZWdtZW50LgoKMjAxMC0wNC0wNCAxNToyMToxNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAZW5zb25pYy1kZXNrdG9wLmxvY2FsZG9tYWluPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGRvY3M6IGltcHJvdmUgZXZlbnQgZG9jcwoJICBSZXBocmFzZSBmaXJzdCBwYXJhZ3JhcGggb2Ygc2VjdGlvbiBkb2NzLiBBZGQgZGV0YWlsIHRvIGVvcyBldmVudCBkb2NzLgoKMjAxMC0wMy0yOSAwODo0MzowNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRvb2xzL2dzdC1pbmRlbnQ6CgkgIGdzdC1pbmRlbnQ6IEFkZCAtLWxlYXZlLXByZXByb2Nlc3Nvci1zcGFjZSBmb3IgaW5kZW50IDIuMi4xMQoJICBJdCB3YXMgcHJldmlvdXNseSBicm9rZW4sIHdoaWNoIGlzIHdoeSB3ZSBuZXZlciBuZWVkZWQgaXQuIFRoaXMga2VlcHMgYmFja3dhcmQKCSAgY29tcGF0aWJpbGl0eSB3aXRoIGluZGVudCA8PSAyLjIuMTEKCjIwMTAtMDMtMzEgMTA6NDM6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGxpYnM6IHBvaW50IGdvYmplY3QtaW50cm9zcGVjdGlvbiBzY2FubmVyIHRvIC5sYSBmaWxlcwoJICBQb2ludCBnLWlyLXNjYW5uZXIgdG8gdGhlIC5sYSBmaWxlIG9mIG91ciBsaWJyYXJ5LCB3aGljaCBob3BlZnVsbHkKCSAgbWFrZXMgaXQgZmluZCB0aGUgcmlnaHQgZGVwZW5kZW5jaWVzIGluIGFsbCBjYXNlcyAoaWUuIG91ciBsb2NhbGx5CgkgIGJ1aWx0IGxpYmdzdHJlYW1lciBhbmQgbm90IHRoZSBzeXN0ZW0taW5zdGFsbGVkIG9uZSkuIFRoaXMgaXMgYWxzbwoJICBob3cgaXQncyBkb25lIGluIEd0aysgYW5kIGhvdyBpdCdzIGRvY3VtZW50ZWQgaW4gdGhlIHdpa2ksIHNlZQoJICBodHRwOi8vbGl2ZS5nbm9tZS5vcmcvR09iamVjdEludHJvc3BlY3Rpb24vQXV0b3Rvb2xzSW50ZWdyYXRpb24KCSAgQmFzZWQgb24gcGF0Y2hlcyBieSBWaW5jZW50IFVudHogYW5kIEFsYW4gS25vd2xlcy4KCSAgRml4ZXMgIzYwMzcxMC4KCjIwMTAtMDQtMDIgMDE6MTY6MTYgKzAxMDAgIFBoaWxpcCBXaXRobmFsbCA8cGhpbGlwQHRlY25vY29kZS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogVXNlIEdfR05VQ19DT05TVCBpbnN0ZWFkIG9mIEdfR05VQ19QVVJFIGZvciBjb252ZXJzaW9uIGZ1bmN0aW9ucwoJICBGaXhlcyBidWcgIzYxNDYyOS4KCjIwMTAtMDQtMDEgMTM6MTk6MDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgdGVzdHM6IERvbid0IGZvcmdldCB0byB1bnJlZiB0aGUgbmV3c2VnbWVudCBldmVudAoKMjAxMC0wNC0wMSAxMjozNDo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgY29tbW9uOiBVcGRhdGUgdG8gbGF0ZXN0IHJldmlzaW9uIGZvciBuZXcgc3VwcHJlc3Npb25zCgoyMDEwLTAzLTMxIDIyOjA3OjU3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgdGVzdHM6IGFkZCB0ZXN0IGZvciB1cGRhdGluZyBwbGF5YmFjayByYXRlCgkgIFRlc3RzIGlmIGEgc2VlayB3aXRoIGJvdGggcG9zaXRpb25zIGJlaW5nIEdTVF9TRUVLX1RZUEVfTk9ORSBpcyBoYW5kbGVkLgoKMjAxMC0wMy0zMSAxNjo1NTo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJICBkb2NzOiBhZGQgY29weSBhbmQgY29udiBmdW5jdGlvbiB0byBidWZmZXIyIGRyYWZ0CgoyMDEwLTAzLTMxIDEwOjU0OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBidWZmZXIyIGRyYWZ0CgoyMDEwLTAzLTMxIDExOjI2OjI4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbC9jb21tdW5pY2F0aW9uLnBuZzoKCSogZG9jcy9tYW51YWwvZGlhZ3JhbXMtZ2VuZXJhbC5zdmc6CgkqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgIGRvY3M6IGltcHJvdmUgY29tbXVuaWNhdGlvbiBwaWN0dXJlIGFuZCBzZWN0aW9uCgkgIEluZGljYXRlIHRoYXQgb25seSBtZXNzYWdlcyBnbyB2aWEgYnVzLiBBbHNvIGFkZCBxdWVyaWVzIGJldHdlZW4gZWxlbWVudHMuCgoyMDEwLTAzLTMxIDEwOjI0OjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICBldmVudDogVXNlIGNvcnJlY3QgdHlwZSBmb3IgdGhlIG1lc3NhZ2UgcGFyYW1ldGVyIGluIGdzdF9ldmVudF97bmV3LHBhcnNlfV9zaW5rX21lc3NhZ2UKCSAgVGhlIHN0cnVjdCB3b3JrYXJvdW5kIHdhcyBvbmx5IG5lY2Vzc2FyeSBpbiBnc3RldmVudC5oLCBnc3R1dGlscy5oIGtub3dzIGFib3V0IEdzdE1lc3NhZ2UKCjIwMTAtMDMtMzEgMDk6NTY6NTAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbWFudWFsL2NvbW11bmljYXRpb24ucG5nOgoJKiBkb2NzL21hbnVhbC9kaWFncmFtcy1nZW5lcmFsLnN2ZzoKCSogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgZG9jczogYWRkIGNvbW11bmljYXRpb24gb3ZlcnZpZXcgdG8gZG9jcwoJICBBZGQgYSBzZWN0aW9uIHRvIHRoZSBiYXNpY3MgdGhhdCBzaG93IGJ1ZmZlcnMsIGV2ZW50cywgbWVzc2FnZXMgYW5kIHF1ZXJpZXMKCSAgdG9nZXRoZXIgYW5kIGRlc2NyaWJlIHRoZSBiYXNpY3MuCgoyMDEwLTAzLTMwIDE1OjU2OjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIHBrZ2NvbmZpZzogYWRkIGdpcmRpciBhbmQgdHlwZWxpYmRpciB2YXJpYWJsZXMgdG8gLnBjIGZpbGVzCgkgIFNvIHRoYXQgdGhlIC1iYXNlIGxpYnMgY2FuIGZpZ3VyZSBvdXQgdGhlIHJpZ2h0IGluY2x1ZGUgcGF0aHMgZm9yIHRoZQoJICBnb2JqZWN0LWludHJvc3BlY3Rpb24gdG9vbHMgZXZlbiBpZiBjb3JlIGdvdCBpbnN0YWxsZWQgaW50byBhIHByZWZpeAoJICB0aGF0J3Mgbm90IHRoZSBzYW1lIHByZWZpeCBhcyBnb2JqZWN0LWludHJvc3BlY3Rpb24gaXMgaW5zdGFsbGVkIGluCgkgIG9yIGl0J3MgYmVpbmcgYnVpbGQgaW4gYW4gdW5pbnN0YWxsZWQgZ3N0cmVhbWVyIHNldHVwLgoKMjAxMC0wMy0zMCAxNToyMjo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyBzdHJpbmcKCjIwMTAtMDMtMzAgMTU6MjA6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGF1dG9nZW4uc2g6CgkqIGNoZWNrLWNoZWNrcy5tNDoKCSogY29uZmlndXJlLmFjOgoJKiBtNC8uZ2l0aWdub3JlOgoJKiBtNC9NYWtlZmlsZS5hbToKCSogbTQvY2hlY2stY2hlY2tzLm00OgoJICBidWlsZDogbWFrZSBhdXRvdG9vbHMgcHV0IGl0cyBtNCBmaWxlcyBpbnRvIG00LyBpbnN0ZWFkIG9mIGNvbW1vbi9tNC8KCSAgVGhpcyBpcyBob3cgd2UgZG8gaXQgaW4gdGhlIG90aGVyIG1vZHVsZXMsIGFuZCBnZXRzIHJpZCBvZiB0aGUgYW5ub3lpbmcKCSAgZGlydHkgc3RhdHVzIGZvciBjb21tb24gd2hlbiBkb2luZyBnaXQgc3RhdHVzIChhdCBsZWFzdCBvbmNlIHlvdSBjbGVhbgoJICBvdXQgdGhlIG9sZCBmaWxlcyBmcm9tIHRoZXJlKS4KCjIwMTAtMDMtMzAgMTI6MzM6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IGJ1aWxkIGV4YW1wbGVzIHN1YmRpcmVjdG9yaWVzIGluIHBhcmFsbGVsIGlmIHJlcXVlc3RlZAoKMjAxMC0wMy0yOCAyMDo1NTowOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUmVmYWN0b3IgY2FwcyBzdWdnZXN0aW9uIG9uIHBhZF9hbGxvYwoJICBSZWZhY3RvciB0aGUgaGFuZGxpbmcgb2Ygc2luayBzdWdnZXN0aW9uIGNhcHMgdmFyaWFibGUKCSAgc28gdGhhdCBpdCBhbHdheXMgaGFzIGEgcmVmIHRvIHRoZSBjYXBzIGl0IHBvaW50cyB0by4KCSAgTWFrZXMgdGhlIGNvZGUgY2xlYXJlci4KCjIwMTAtMDMtMjkgMTY6MzQ6MDMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGluZm86IGFkZCBhIGNvbW1lbnQgZXhwbGFpbmluZyB0aGUgcmVhc29uIGZvciB1c2luZyBmdWNudGlvbiBwcm90b3MgaGVyZS4KCjIwMTAtMDMtMjkgMTY6MTM6NTQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGluZm86IGFsd2F5cyBkZWZpbmUgZHVtbXkgZGVidWcgY2F0ZWdvcnkgYXMgYSBmdW5jdGlvbiBwcm90b3R5cGUKCSAgSXQgZG9lcyBub3Qgc2VlbSB0byBtYWtlIHNlbnNlIHRvIGRlZmluZSB0aGlzIGFzIGEgZnVuY3Rpb24gb25seSBpZiB3ZSBoYXZlCgkgIHZhcmFyZ3MgbWFjcm9zLgoKMjAxMC0wMy0yOCAxNToxMDoyMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgYnVpbGQ6IGZpeCByZWRlY2xhcmF0aW9uIGVyb3JzIHdoZW4gYnVpbGRpbmcgd2l0aCAtLWdzdC1kaXNhYmxlLWdzdC1kZWJ1ZwoJICBHaXZlIGR1bW15IHN5bWJvbHMgYSB1bmlxZSBuYW1lLgoKMjAxMC0wMy0yOCAxNDo0OTowMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgYnVpbGQ6IG1vdmUgc29tZSBwcm90b3R5cGVzIG91dCBvZiAjaWZuZGVmIEdTVF9ESVNBQkxFX0dTVF9ERUJVRwoJICBNb3ZlIHRoZSBwcm90b3R5cGVzIHVwIHRvZ2V0aGVyLiBXZSBvbmx5IGRlZmluZSB0aGUgbWFjcm9zIGRpZmZlcmVudGx5LgoJICBGaXhlcyBidWcgIzYxNDE2NyBtb3N0bHkuCgoyMDEwLTAzLTI5IDE2OjA1OjQ0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiByZWFkZCB0aGUgdXNlIG9mIEdzdERlYnVnRnVuY1B0ciB0eXBlZGVmIGFuZCB0ZWxsIHdoeQoJICBUaGlzIHJldmVydHMgdGhlIHJlbGF0ZWQgY2hhbmdlcyBmcm9tIDNmNDk1NGU0MmQwNDQwYTdhNTk4YTkwODMyNWM0NWVhOWRiMDc2ZTQKCSAgYW5kIGZmYjBhNGUxOTA1YTg3MzE5MWY4YzgwMjM0NjI2MWU4YzQ0MzUwNjUuCgoyMDEwLTAzLTI5IDEwOjIyOjQzICswMTAwICBBbGFuIEtub3dsZXMgPGFsYW5AYWtia2hvbWUuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkgIG5ldDogZml4IHR5cG8gaW4gbmV0IGNsaWVudCBjbG9jayBzdHJ1Y3R1cmUKCSAgSXQncyBzb2NrYWRkcl9pbiwgbm90IHNvY2thZGRyX2lkLgoKMjAxMC0wMy0yNiAxNzoxMjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSAgYnVpbGQ6IGFkZCBjcnVmdCBhbGVydCBmb3IgY29tbW9uL3NoYXZlKgoKMjAxMC0wMy0yOCAyMTowMjo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBGaXggYnVpbGQgYXQgbGVhc3QgdW50aWwgdGhlIGNvcnJlY3QgZml4IGlzIGZvdW5kCgkgIFNlZSBidWcgIzYxNDE2Ny4KCjIwMTAtMDMtMjggMTk6MTM6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IE1ha2Ugc3RydWN0dXJlIGFiYnJldmlhdGlvbnMgYXJyYXkgb25lLXRpbWUgaW5pdGlhbGl6YXRpb24gdGhyZWFkc2FmZQoKMjAxMC0wMy0yOCAxODowNTozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEFkZCBGSVhNRSAwLjExIGZvciB1c2luZyBHU2xpY2UgZm9yIGFsbG9jYXRpb24KCjIwMTAtMDMtMjggMTg6MDU6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJICBnc3Q6IFVzZSBHU2xpY2UgaW5zdGVhZCBvZiBub3JtYWwgZ19tYWxsb2MgaW4gbW9yZSBwbGFjZXMKCjIwMTAtMDMtMjggMTM6MTQ6MDYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGJ1aWxkOiBtb3JlIHNvbWUgcHJvdG90eXBlcyBvdXQgaWYgI2lmbmRlZiBHU1RfRElTQUJMRV9HU1RfREVCVUcKCSAgVGhlIGJ1aWxkIHdhcyBmYWlsaW5nIGJlY2FzdWUgb2YgYSBuZXcgd2FybmluZy4gVGhlcmUgYXJlIHN0aWxsIGZhaWx1cmVzCgkgICh0cmFja2VkIHZpYSBidWcgIzYxNDE2NykuCgoyMDEwLTAzLTI1IDIwOjA0OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMgZm9yIG5ld2x5LWFkZGVkIHN0cmluZ3MKCjIwMTAtMDMtMjUgMTk6NTY6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWxzLm1hazoKCSAgZG9jczogZml4IGludGVybWl0dGVudCBtYWtlIGRpc3RjaGVjayBmYWlsdXJlcwoJICBVc2UgLk5PVFBBUkFMTEVMIHdoZW4gYnVpbGRpbmcgZG9jcy4gVGhpcyBhdm9pZHMgaW50ZXJtaXR0ZW50CgkgIG1ha2UgZGlzdGNoZWNrIGZhaWx1cmVzIGxpa2UgJ2NwOiBjYW5ub3QgY3JlYXRlIHJlZ3VsYXIgZmlsZQoJICBgYnVpbGQvaW1hZ2UuZW50aXRpZXMnOiBGaWxlIGV4aXN0cycgd2hlbiB1c2luZyAtak4uCgkgIEZpeGVzICM1OTA3MTguCgoyMDEwLTAzLTI1IDE4OjU3OjQwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBlbGVtZW50ZmFjdG9yeTogQWRkIEZJWE1FIDAuMTEgdG8gcmVtb3ZlIEdzdEVsZW1lbnREZXRhaWxzIGZyb20gdGhlIHB1YmxpYyBBUEkKCSAgSXQncyBub3QgbmVjZXNzYXJ5IGFueW1vcmUgdG8gZXhwb3NlIHRoaXMgYXMgcHVibGljIEFQSSBhbmQgdGhpcyBhbGxvd3MKCSAgZWFzaWVyIGV4dGVuc2lvbiBvZiB0aGUgZWxlbWVudCBkZXRhaWxzIGJ5IG5ldyBmaWVsZHMuCgoyMDEwLTAzLTI1IDE4OjQzOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBoYW5kbGUgd3JpdGUgZXJyb3JzCgkgIEhhbmRsZSB3cml0ZSBlcnJvcnMgdG8gdGhlIHRlbXBvcmFyeSBkb3dubG9hZCBmaWxlIGFuZCBwb3N0IGVycm9ycyB3aGVuCgkgIHNvbWV0aGluZyB3ZW50IHdyb25nLgoKMjAxMC0wMy0yNSAxODoxMzowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIGVsZW1lbnQgcXVlcnkgZnVuY3Rpb24KCSAgQWRkIGFuIGVsZW1lbnQgcXVlcnkgZnVuY3Rpb24gdGhhdCBpcyBhIGxpdHRsZSBtb3JlIGVmZmljaWVudCB0aGFuIHRoZSBnZW5lcmljCgkgIGRlZmF1bHQgcXVlcnkgaGFuZGxlci4KCjIwMTAtMDMtMjUgMTg6MTI6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogaW1wcm92ZSBkb2NzIGEgbGl0dGxlCgkgIE1lbnRpb24gdGhhdCBhIERVUkFUSU9OIG1lc3NhZ2UgZG9lcyBub3QgbWVhbiB0aGF0IG9uZSBjYW4gc2FmZWx5IHF1ZXJ5IHRoZQoJICBkdXJhdGlvbiBvbiBhIGJpbiwgdGhhdCBvbmx5IHdvcmtzIHdoZW4gdGhlIGJpbiBpcyBwcmVyb2xsZWQuCgoyMDEwLTAzLTI1IDE4OjA1OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZW1vdmUgZml4ZWQgRklYTUUKCjIwMTAtMDMtMjUgMTc6MzY6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IGFkZCB0aGUgYnVmZmVyaW5nIHBlcmNlbnQgaW4gQlVGRkVSSU5HIHF1ZXJ5CgoyMDEwLTAzLTI1IDE3OjIxOjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBpbXByb3ZlIGJ1ZmZlciBsZXZlbCBtZWFzdXJlbWVudCBpbiBkb3dubG9hZCBtb2RlCgkgIEtlZXAgdHJhY2sgb2YgdGhlIGN1cnJlbnQgYnVmZmVyIGxldmVsIGluIHRoZSBjdXJyZW50IHJhbmdlIGluIGRvd25sb2FkIG1vZGUgc28KCSAgdGhhdCB3ZSBwb3N0IHRoZSBjb3JyZWN0IGJ1ZmZlcmluZyBtZXNzYWdlcy4KCjIwMTAtMDMtMjUgMTU6NTQ6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBsaWJzOiBkb24ndCB1c2UgZmFuY3kgc2hlbGwgZmVhdHVyZXMgd2hlbiBpbnZva2luZyBnb2JqZWN0LWludHJvc3BlY3Rpb24gc2Nhbm5lcgoJICBJdCdzIFBPU0lYLCBidXQgdGNzaCBkb2Vzbid0IHNlZW0gdG8gc3VwcG9ydCBpdC4KCjIwMTAtMDMtMjUgMTM6NDY6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBsaWJzOiBmaXggUEtHX0NPTkZJR19QQVRIIHVzZWQgd2hlbiBjYWxsaW5nIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzY2FubmVyCgkgIE91ciBvd24gcGtnY29uZmlnIGRpcmVjdG9yeSBzaG91bGQgY29tZSBmaXJzdCwgc28gdGhhdCBwa2ctY29uZmlnIHVzZXMKCSAgdGhlIGluLXRyZWUgbGliZ3N0cmVhbWVyIGFuZCBub3Qgc29tZSBleHRlcm5hbCBvbmUgd2hlbiAtLXBrZz1nc3RyZWFtZXItMC4xMAoJICBpcyBwYXNzZWQgdG8gZy1pci1zY2FubmVyLgoJICBTZWUgIzYwMzcxMC4KCjIwMTAtMDMtMjUgMTA6Mjc6MDAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgR3N0QWRhcHRlcjogYWRkIGEgdW5jaGVja2VkIHZhcmlhbnQgb2YgZmx1c2ggZm9yIGludGVybmFsIHVzYWdlCgkgIFRyaW1zIG9mZiAxMC0yMCUgY3B1IHRpbWUgd2hlbiB1c2luZyBnc3RfYWRhcHRlcl90YWtlW19idWZmZXJdCgoyMDEwLTAzLTE5IDE1OjEwOjA3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ3M6IEFkZCBuZXcgX1VTRVJfUkFUSU5HIHRhZwoJICBBZGRzIGEgbmV3IHRhZyBmb3IgdXNlciBmYXZvcml0ZSBtZWRpYSByYXRpbmcuCgkgIFVzZXIgcmF0aW5nIGluZm9ybXMgaG93IG11Y2ggKGZyb20gMCB0byAxMDApIGEgdXNlcgoJICAnbGlrZXMnIGEgbWVkaWEuCgkgIEhhdmluZyBhbiBwZXJjZW50IHVpbnQgcmFuZ2UgZm9yIHRoaXMgaXMgZWFzeSB0byBtYXAgaW50byBvdGhlciBzY2FsZXMsCgkgIGxpa2Ugc29tZSBwbGF5ZXJzIHRoYXQgYWxsb3cgdXNlcnMgdG8gYXR0cmlidXRlICdzdGFycycgdG8gaXRzCgkgIG1lZGlhLgoJICBBUEk6IEdTVF9UQUdfVVNFUl9SQVRJTkcKCSAgRml4ZXMgIzUyMDY5NwoKMjAxMC0wMy0yNCAxOTowMjoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIG1vcmUgaW5mbyBpbiB0aGUgYnVmZmVyaW5nIHF1ZXJ5CgkgIEFkZCB0aGUgZXN0aW1hdGVkIGRvd25sb2FkIHRpbWUgYW5kIGVzdGltYXRlZCB0aW1lIGxlZnQgdG8gdGhlIGJ1ZmZlcmluZyBxdWVyeQoJICByZXN1bHRzIGFsb25nIHdpdGggdGhlIGVzdGltYXRlZCBkb3dubG9hZCBhbmQgcGxheWJhY2sgc3BlZWQuCgoyMDEwLTAzLTI0IDE4OjE4OjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBpbXBsZW1lbnQgZmx1c2hpbmcgaW4gZG93bmxvYWQgYnVmZmVyaW5nCgkgIE1haW50YWluIGEgc2VwYXJhdGUgdmFyaWFibGUgdG8gY29udHJvbCBzcmMgYW5kIHNpbmsgZmxvd3JldHVybiB2YWx1ZXMgc28gdGhhdAoJICB3ZSBjYW4gdW5sb2NrIHRoZSBzcmMgcGFydCB3aXRob3V0IHNodXR0aW5nIGRvd24gdGhlIHNpbmsgcGFydC4KCSAgQWRkIGZsdXNoaW5nIGZvciB1cHN0cmVhbSBwdWxsIGJhc2VkIGVsZW1lbnRzIHRoYXQgdW5ibG9ja3Mgb3VyIGdldHJhbmdlCgkgIGZ1bmN0aW9uLiBUaGlzIGltcGxlbWVudHMgc2Vla2luZyB3aGVuIGJsb2NraW5nIGZvciBtb3JlIGRhdGEuCgkgIEFkZCBzb21lIGFyYml0cmFyeSB0aHJlc2hvbGQgYmVmb3JlIGF0dGVtcHRpbmcgYSBzZWVrLiBBZGQgYSBGSVhNRSBmb3IgdGhpcwoJICBiZWNhdXNlIHdlIG5lZWQgdG8gZmluZCBhIHNlbnNpYmxlIHRocmVzaG9sZCBiYXNlZCBvbiB0aGUgaW5wdXQgcmF0ZS4KCjIwMTAtMDMtMjQgMTg6NTA6MDIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDU1Y2Q1MTQgdG8gYzFkMDdkZAoKMjAxMC0wMy0yNCAxNzozMjo1NCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBSZW1vdmUgdW51c2VkIGNvZGUKCSAgT1BUX0NGTEFHUyB3YXMgbmV2ZXIgQUNfU1VCU1QoKSdlZCBzbyBpdCB3YXNuJ3QgdXNlZC4gQW5kIHRoZSBsYXN0IHRpbWUKCSAgaXQgd2FzIHRvdWNoZWQgd2FzIGluIDIwMDUuCgoyMDEwLTAzLTI0IDE1OjQ3OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IGZpeCBtYWtlIGRpc3RjaGVjawoJICBUaGUgY2hhbmdlIGZyb20gR1NUX0FMTF9DRkxBR1MgdG8gR1NUX09QVElPTl9DRkxBR1MgZHJvcHBlZCB0aGUgaW5jbHVkZXMsCgkgIHB1dHRpbmcgdGhlbSBiYWNrIGZpeGVzIG1ha2UgZGlzdGNoZWNrLgoKMjAxMC0wMy0yNCAxNToxNToyMyArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBGaXggdGVzdHMgYWZ0ZXIgc2V0X2VsZW1lbnRfZGV0YWlscygpIGRlcHJlY2F0aW9uCgoyMDEwLTAzLTI0IDEzOjMzOjU4ICswMTAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIGdpdC11cGRhdGU6IEZpeCBhbmQgcmVzdHJ1Y3R1cmUgbG9naWMKCjIwMTAtMDMtMTkgMjI6MzY6MDcgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIERlcHJlY2F0ZWQgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHMoKQoJICBVc2UgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlKCkgaW5zdGVhZC4gSWYgeW91IHdhbnQgdG8KCSAgY29udmVydCBhdXRvbWF0aWNhbGx5LCBoZXJlJ3MgYSBzY3JpcHQ6CgkgIGZvciBmaWxlIGluIGBnaXQgZ3JlcCAtbCBHc3RFbGVtZW50RGV0YWlsc2A7IGRvCgkgIHNlZCAtaSAtbiAtciAnCgkgIDFoCgkgIDEhSAoJICAkIHsKCSAgZwoJICBzLygoXC9cKlteXG5dKlwqXC8pP1xuKSpbXlxuXSpHc3RFbGVtZW50RGV0YWlscyAuKiA9XHMqR1NUX0VMRU1FTlRfREVUQUlMU1xzKlwoKFwiW15cIl0qXCIsXHMqXCJbXlwiXSpcIixccypcIlteXCJdKlwiLFxzKihcIlteXCJdKlwiXHMqKSopXCk7XG4qKC4qKWdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzIFwoKFteLF0qKSxccypbXildKlwpL1xuXG5cNWdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSAoXDYsIFwzKS8KCSAgcy8oKFwvXCpbXlxuXSpcKlwvKT9cbikqW15cbl0qR3N0RWxlbWVudERldGFpbHMgLiogPVxzKlx7XHMqKFwiW15cIl0qXCIsXHMqXCJbXlwiXSpcIixccypcIlteXCJdKlwiLFxzKihcIlteXCJdKlwiXHMqKSopXH07XG4qKC4qKWdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzIFwoKFteLF0qKSxccypbXildKlwpL1xuXG5cNWdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSAoXDYsIFwzKS8KCSAgcAoJICB9JyAkZmlsZQoJICB+L2dzdC9nc3RyZWFtZXIvdG9vbHMvZ3N0LWluZGVudCAkZmlsZQoJICBkb25lCgoyMDEwLTAzLTI0IDEwOjU3OjA4ICswMTAwICBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5nCgoyMDEwLTAzLTIzIDE5OjI1OjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogcmVtb3ZlIHVudXNlZCBDSEVDS19DRkxBR1MgYW5kIENIRUNLX0xJQlMgZnJvbSBNYWtlZmlsZS5hbQoKMjAxMC0wMy0yMyAxOToyMzoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBhZGQgbWFwcGluZyBmb3IgKHVpbnQpIHRvIGFsbG93IGRlc2VyaWFsaXNhdGlvbiBvZiB1bnNpZ25lZCBpbnRlZ2VycwoJICBVbnNpZ25lZCBpbnRzIGFyZSB1c2VkIGluIHRhZ2xpc3RzLCB3b3VsZCBiZSBuaWNlIHRvIGJlIGFibGUgdG8KCSAgZGVzZXJpYWxpc2UgdGhlbSwgZXNwLiBpbiBjb25uZWN0aW9uIHdpdGggdGhlIHRhZ2luamVjdCBBUEkuCgoyMDEwLTAzLTIzIDE5OjI1OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBpbXBsZW1lbnQgc2Vla2luZyBpbiBkb3dubG9hZCBtb2RlCgkgIFdoZW4gaW4gZG93bmxvYWQgbW9kZSBhbmQgdGhlIHJlcXVlc3RlZCBvZmZzZXQgaXMgdG9vIGZhciBhd2F5LCBhdHRlbXB0IHRvIGRvIGEKCSAgc2VlayByZXF1ZXN0IHRvIGZldGNoIHRoZSBkYXRhLgoJICBLZWVwIHRyYWNrIG9mIGFsbCBkb3dubG9hZGVkIHBhcnRzIGFuZCBtZXJnZSByYW5nZXMgd2hlbiBuZWVkZWQuCgkgIEZpeGVzICM2MDA4NzcKCjIwMTAtMDMtMjIgMTE6MDY6MjEgLTAzMDAgIEFuZHLDqSBEaWViIE1hcnRpbnMgPGFuZHJlLmRpZWJAZ21haWwuY29tPgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBnaXQtdXBkYXRlLnNoOiB1c2UgYXV0b2dlbi5zaCBpbnN0ZWFkIG9mIGF1dG9yZWdlbi5zaCBvbiBmcmVzaCByZXBvc2l0b3JpZXMuCgkgIEZpeGVzICM2MTM1OTMuCgoyMDEwLTAzLTIyIDE3OjEwOjA2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ2V0dGV4dC5oOgoJICBnZXR0ZXh0OiBidWlsZCBmaXhlczogI2lmIC0+ICNpZmRlZgoKMjAxMC0wMy0xOCAxMDoyMjowOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZS1sYXVuY2g6IG1ha2UgZGVsYXllZCBzZXQgcmVjdXJzaXZlCgkgIFJpZ2h0IG5vdyBkZWxleWVkIHNldCB3b3VsZCBvbmx5IHRyeSBmb3IgZmlyc3Qgc2V0IG9mIGNoaWxkcmVuLiBXZSBuZWVkIHRvIGtlZXAKCSAgdHJ5aW5nIHRvIHN1cHBvcnQgYXJiaXRyYXJ5IGRlZXAgaGllcmFyY2hpZXMgKGxpa2UgaW4gcGxheWJpbjIgd2l0aCBhdXRvKnNpbmtzKS4KCSAgQWxzbyBHc3RCaW4gd291bGQgbmVlZCB0byBhY3R1YWx5IGVtaXQgdGhlIGNoaWxkLWFkZGVkL3JlbW92ZWQgc2lnbmFsIGFzIGl0CgkgIGltcGxlbWVudHMgdGhlIGlmYWNlLiBGaXhlcyAjNjEzMjE1LgoKMjAxMC0wMy0yMiAwODo0MDozNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+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+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1tZXRhZGF0YS50eHQ6CgkgIGRlc2lnbjogd3JpdGUgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGFnLWhhbmRsaW5nCgkgIERvY3VtZW50IHRoZSB0YWdoYW5kbGluZyBpbiBnc3RyZWFtZXIuIExpc3QgZ2FwcyBhbmQgcHJvcG9zZSBuZXcgbWVjaGFuaXNtcyB0bwoJICBkZWFsIHdpdGggdGhlbS4KCjIwMTAtMDItMTYgMTA6Mjc6MTggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IHJlbW92ZSBibGFuayBsaW5lcyBpbiB2YXJpYWJsZSBkZWNsYXJhdGlvbnMKCjIwMTAtMDItMTYgMTE6MzA6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSogdG9vbHMvdG9vbHMuaDoKCSAgdG9vbHM6IGNhbGwgZ19zZXRfcHJnbmFtZSgpIGJlZm9yZSBkb2luZyB0aGUgb3B0aW9uIHBhcnNpbmcKCSAgZ19zZXRwcmduYW1lIGlzIGltcGxpY2l0bHkgY2FsbGVkIGJ5IGdfb3B0aW9uX2NvbnRleHRfbmV3KCkgd2l0aCBhIGNoZWNrCgkgIHRvIHNlZSBpZiBpdCdzIGJlZW4gc2V0IGFscmVhZHksIHNvIHNldCBpdCBiZWZvcmUgZ19vcHRpb25fY29udGV4dF9uZXcoKQoJICBNb3ZlIHZlcnNpb24gcHJpbnRpbmcgYmFjayB1bnRpbCBhZnRlciB0aGUgb3B0aW9ucyBoYXZlIGJlZW4gcGFyc2VkLAoJICBvdGhlcndpc2UgaXQgd29uJ3Qgd29yaywgc2luY2UgaXQgZXZhbHVhdGVzIGEgZmxhZyBzZXQgYnkgdGhlCgkgIG9wdGlvbiBwYXJzZXIuCgoyMDEwLTAyLTE2IDExOjI0OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgUmV2ZXJ0ICJ0b29sczogTW92ZSBnc3RfdG9vbHNfcHJpbnRfdmVyc2lvbiBjYWxsIHRvIGF2b2lkIHdhcm5pbmcgZnJvbSBuZXcgR0xpYi4iCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOTNkZDk1ZjAyZWYzZmE1MzBmNTRjZTgxZThmZmJhOTZmM2I2NzljYi4KCSAgVGhpcyBjb21taXQgbWFkZSAtLXZlcnNpb24gbm90IHdvcmsgYW55IGxvbmdlci4gVGhlIGdfc2V0cHJnbmFtZSgpCgkgIHdhcm5pbmcgaXMgZml4ZWQgaW4gcmVjZW50IEdMaWIgdmVyc2lvbnMuCgoyMDEwLTAyLTE2IDA4OjI2OjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBidWlsZDogbWFrZSBzdXJlIGdzdC1wbHVnaW4tc2Nhbm5lciBnZXRzIGluc3RhbGxlZCB3aGVyZSB3ZSBleHBlY3QgaXQKCSAgQWRkIGNoZWNrIHRvIG1ha2Ugc3VyZSBnc3QtcGx1Z2luLXNjYW5uZXIgcmVhbGx5IGdldHMgaW5zdGFsbGVkIHdoZXJlCgkgIHdlIHdpbGwgbG9vayBmb3IgaXQgbGF0ZXIsIGllLiBwYXRocyBhbmQgcHJlZml4ZXMgYXJlIHNldCBhdCBjb25maWd1cmUKCSAgdGltZSBhbmQgbm90IHNwZWNpZmllZCB2aWEgbWFrZS4KCSAgRml4ZXMgIzYwOTk0MS4KCjIwMTAtMDItMTUgMjM6MDI6NTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIGRvY3M6IHByZWZlciBzaG9ydCBkZXNjIGZyb20gR3N0RWxlbWVudERldGFpbHMKCjIwMTAtMDItMTUgMDE6MjQ6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgZG9jczogZml4IGd0ay1kb2MgY2h1bmsgZm9yIGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QoKQoKMjAxMC0wMi0xNSAwMDozMToxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgcG8gZmlsZXMgZm9yIG5ldyBjb21tZW50cwoKMjAxMC0wMi0xNSAwMDoyOTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdzOiB3cmFwIGxvbmcgc3RyaW5nIGNvbnN0YW50cwoJICBBbmQgZml4IGluZGVudGluZyBpc3N1ZQoKMjAxMC0wMi0xNSAwMDoyMTo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdzOiBhZGQgc29tZSBjb21tZW50cyBmb3IgdHJhbnNsYXRvcnMgc28gdGFnIG1uZW1vbmljcyBnZXQgdHJhbnNsYXRlZCBjb3JyZWN0bHkKCSAgV2Ugd2FudCAncHJldmlldyBpbWFnZScgdHJhbnNsYXRlZCBhcyBhIG5vdW4sIG5vdCBhcyAncHJldmlldyBbdGhlXSBpbWFnZScuCgoyMDEwLTAyLTA0IDE3OjQzOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBwcmludCBXQVJOIGRlYnVnIHN0YXRlbWVudHMgZm9yIG5vcm1hbCB0aGluZ3MgbGlrZSBFT1MKCjIwMTAtMDItMTQgMjM6MTU6NDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5NmRjNzkzIHRvIDQ0ZWNjZTcKCjIwMTAtMDItMTMgMTU6MTg6MDUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogUmVzZXQgdGhlIHdvcmtpbmcgbW9kZSB3aGVuIGdvaW5nIHRvIFJFQURZL05VTEwKCSAgVGhpcyBhbGxvd3MgcHJvcGVybHkgcmUtdXNpbmcgdHlwZWZpbmQgKGVsc2UgaXQgd291bGQgdGhpbmsgaXQncwoJICBhbHJlYWR5IGRvbmUgdGhlIHR5cGVmaW5kaW5nIHdoZW4gYmVpbmcgcmUtdXNlZCB3aXRoIGFub3RoZXIKCSAgc3RyZWFtKS4KCjIwMTAtMDEtMjIgMTE6Mzg6NTkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRld3JpdGVyLmM6CgkgIGJ5dGV3cml0ZXI6IEFkZHMgYSB0ZXN0IGZvciBfZmlsbAoKMjAxMC0wMS0yMiAwOToxOTozMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYnl0ZXdyaXRlcjogYWRkIF9maWxsIGZ1bmN0aW9uCgkgIEFkZHMgYSBuZXcgZnVuY3Rpb24gdG8gR3N0Qnl0ZVdyaXRlciB0aGF0IHdyaXRlcwoJICBhIGNvbnN0YW50IHZhbHVlIHRvIGEgbWVtb3J5IGFyZWEgKGFrYSBtZW1zZXQpLgoJICBVc2VmdWwgZm9yIGFkZGluZyBwYWRkaW5nIHRvIGJ1ZmZlcnMuCgkgIEFsc28gdXBkYXRlcyAuZGVmIGZpbGUgYW5kIGRvY3MuCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX2ZpbGwoKQoKMjAxMC0wMS0yOCAxMTo1NzozMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogQXZvaWQgbWVzc2luZyBwYWRzIGFjdGl2YXRpb24KCSAgVHlwZWZpbmQgbWlnaHQgbWVzcyB1cCBwYWRzIG1vZGVzIChwdWxsL3B1c2gpIGlmIGEKCSAgZG93bnN0cmVhbSBlbGVtZW50IGlzIHBsdWdnZWQgYW5kIGl0cyBwYWRzIGFjdGl2YXRlZAoJICBpbiAnc3RlcCAyJyBvZiB0eXBlZmluZCBwYWRzIGFjdGl2YXRpb24uCgkgIFRoaXMgaGFwcGVucyBiZWNhdXNlIHRoZSBmb2xsb3dpbmcgc3RlcHMgZG9uJ3QgY2hlY2sKCSAgaWYgd2UgYWxyZWFkeSBlbWl0dGVkIHR5cGVmb3VuZCBkdWUgdG8gdXBzdHJlYW0gc2V0dGluZwoJICBjYXBzIG9uIGJ1ZmZlcnMgYmVpbmcgcHVsbGVkIGluIHRoZSB0eXBlZmluZCBoZWxwZXJzLgoJICBBdm9pZCB0aGF0IGJ5IGNoZWNraW5nIGlmIHR5cGVmb3VuZCBpcyBhbHJlYWR5IGVtbWl0ZWQuCgkgIEZpeGVzICM2MDgwMzYKCjIwMTAtMDItMTIgMTQ6NDk6NTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBiYXNlc3JjOiBNYWtlIGxvY2tpbmcgb2YgdGhlIHNlZ21lbnQgYSBiaXQgbW9yZSBzdHJpY3QgYW5kIHVwZGF0ZSBkb2N1bWVudGF0aW9uCgkgIFVwZGF0aW5nIHRoZSBzZWdtZW50IHZhbHVlcyBtdXN0IG9ubHkgYmUgZG9uZSB3aGlsZSBob2xkaW5nIHRoZQoJICBTVFJFQU1fTE9DSyBhbmQgT0JKRUNUX0xPQ0suIFRoaXMgbWVhbnMsIHJlYWRpbmcgY2FuIGJlIGRvbmUgYXMKCSAgbG9uZyBhcyBvbmUgb2YgdGhlbSBpcyBoZWxkLCBub3QgYm90aCwgd2hpY2ggcmVtb3ZlcyBzb21lIGxvY2stdW5sb2NrCgkgIGJsb2NrcyBmcm9tIHBlcmZvcm1hbmNlIGNyaXRpY2FsIGNvZGUgcGF0aHMuCgkgIEFsc28gZG9jdW1lbnQsIHRoYXQgZ3N0X2Jhc2Vfc3JjX3NldF9mb3JtYXQoKSAqbXVzdCogYmUgY2FsbGVkIGluCgkgIHN0YXRlcyA8PSBSRUFEWSBhbmQgYWRkIGFuIGFzc2VydGlvbiBmb3IgdGhpcy4gQ2hhbmdpbmcgdGhlIGZvcm1hdAoJICBsYXRlciB3aWxsIGNvbXBsZXRlbHkgbWVzcyB1cCB0aGUgc2VnbWVudCBpbmZvcm1hdGlvbi4KCjIwMTAtMDItMDggMDk6MTI6MDEgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtcmVxdWVzdC54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctY2hhaW5mbi54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wcm9wcy54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJICBwd2c6IHNldmVyYWwgdHlwbyBmaXhlcwoJICBGaXhlcyAjNjA5Mjg2LgoKMjAxMC0wMi0wOSAxNzo1MjoxMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogUHJvdGVjdCBzZWdtZW50IHZhbHVlcyBmcm9tIGNvbmN1cnJlbnQgYWNjZXNzIGZyb20gZGlmZmVyZW50IHRocmVhZHMKCSAgVGhpcyBjb3VsZCBoYXBwZW4gZWFzaWx5IGluIHRoZSBxdWVyeSBmdW5jdGlvbnMgb3Igd2hlbiB0aGUgc2l6ZSBpcyBzZXQKCSAgb24gYXBwc3JjIGZyb20gc29tZSBub24tc3RyZWFtaW5nIHRocmVhZC4KCjIwMTAtMDItMDQgMjE6MTE6MjUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiBQcm90ZWN0IGludGVybmFsIGZpZWxkcyBmcm9tIGNvbmN1cnJlbnQgY2hhbmdlcyBmcm9tIGRpZmZlcmVudCB0aHJlYWRzCgkgIEZpeGVzIGJ1ZyAjNjA4ODc3LgoKMjAxMC0wMi0xMSAyMDoxNDo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGRvbid0IGxlYWsgdGltZW91dCBHU291cmNlCgoyMDEwLTAyLTExIDAwOjE4OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IGZsZXNoIG91dCByZWxlYXNlIGRvYyBzb21lIG1vcmUKCjIwMTAtMDItMTEgMDE6MTA6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTUFJTlRBSU5FUlM6CgkgIFVwZGF0ZSBNQUlOVEFJTkVSUywgYWRkIG15c2VsZgoKMjAxMC0wMi0xMSAxOTo0OTowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYmFjayB0byBkZXZlbG9wbWVudAoJICBTbHVzaHkgZnJlZXplIHJlbWFpbnMgaW4gZWZmZWN0LgoKPT09IHJlbGVhc2UgMC4xMC4yNiA9PT0KCjIwMTAtMDItMTAgMTk6MTc6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4yNgoKMjAxMC0wMi0xMCAxNTozMjowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTAtMDItMDkgMTU6NTI6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGRlZmluZSBHU1RfUExVR0lOX1NDQU5ORVJfSU5TVEFMTEVEIGluIHdpbjMyIGNvbmZpZy5oCgkgIEV2ZW4gaWYgaXQncyBub3QgdXNlZCwgaXQgc3RpbGwgbmVlZHMgdG8gYmUgZGVmaW5lZCBmb3IgdGhpbmdzIHRvCgkgIGNvbXBpbGUuCgoyMDEwLTAyLTA5IDEwOjE5OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICBnc3RfcHJpdmF0ZTogTVNWQyBkb2Vzbid0IHNlZW0gdG8gbGlrZSAjd2FybmluZwoJICBWaXN1YWwgU3R1ZGlvIGNvbXBsYWlucyBhYm91dCAiaW52YWxpZCBwcmVwcm9jZXNzb3IgY29tbWFuZCAnd2FybmluZyciCgkgIGV2ZW4gaWYgdGhlIGlmZGVmIGRvZXNuJ3QgdHJpZ2dlciwgc28ganVzdCByZW1vdmUgdGhpcyBhZ2Fpbi4KCjIwMTAtMDItMTAgMTQ6NDA6MTcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIHRlc3RzOiBGaXggbXVsdGlxdWV1ZSB0ZXN0IGZvciBsYXRlc3QgY29tbWl0cy4KCSAgVGhlIHByb2JsZW0gbGllcyBpbiB0aGUgZmFjdCB0aGF0IG11bHRpcXVldWUgd2lsbCBub3cgb3BlcmF0ZSBzb21ld2hhdAoJICBzaW1pbGFybHkgdG8gdGhlIGZsb3cgYWdncmVnYXRpb24gbG9naWMgb2YgZGVtdXhlcnMgYW5kIHRoZXJlZm9yZQoJICB3aWxsIHN0b3BwIHdoZW5ldmVyIGFsbCBkb3duc3RyZWFtIHBhZHMgcmV0dXJuIE5PVF9MSU5LRUQgYW5kL29yCgkgIFVORVhQRUNURUQgYW5kIHRoZXJlJ3Mgbm8gbW9yZSBidWZmZXJzIHRvIHB1c2guCgkgIFRoZSBsYXRlc3QgY29tbWl0cyBzaG91bGQgbm90IGFmZmVjdCBhbnkgcmVndWxhciB1c2UtY2FzZSwgYnV0IHRoZSBidWcKCSAgcmVwb3J0IHdpbGwgYmUga2VwdCBvcGVuIHNvIHRoZSBwcmV2aW91cyBiZWhhdmlvdXIgY2FuIGJlIHJlLWVzdGFibGlzaGVkCgkgIGlmIG5lZWRlZC4KCSAgRml4ZXMgIzYwOTQ4NgoKMjAxMC0wMi0wOSAxNTo1MToxOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCBzdG9wIHRocmVhZHMgb24gVU5FWFBFQ1RFRCBhbmQgZm9yd2FyZCBmbG93IHJldHVybnMuCgkgIFdoZW4gYSBkb3duc3RyZWFtIGVsZW1lbnQgcmV0dXJucyBHU1RfRkxPV19VTkVYUEVDVEVEIHdlIHdhbnQgdG86CgkgICogbGV0IHRoZSBkYXRhcXVldWUgdGFzayBydW5uaW5nCgkgICogZm9yd2FyZCB0aGUgZmxvdyByZXR1cm4gdXBzdHJlYW0uCgkgIFRoaXMgYWxsb3dzIHVwc3RyZWFtIGVsZW1lbnRzIHRvIHB1c2ggRU9TLCBhbmQgaGF2ZSB0aGF0IEVPUyBldmVudCBjb21lCgkgIGRvd25zdHJlYW0uCgkgIEZpeGVzICM2MDkyNzQKCjIwMTAtMDItMDkgMTM6MzU6MDggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBSZXZlcnQgIm11bHRpcXVldWU6IGhhbmRsZSBVTkVYUEVDVEVEIGZsb3dyZXR1cm4gYmV0dGVyIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGZiZGY0ZGNlZGFkODY5MmYxZTNkODgzODU1MTE4ODk4N2U0NjJlNzQuCgkgIFBhcnRseSBmaXhlcyAjNjA5Mjc0CgoyMDEwLTAxLTI4IDA3OjI3OjQ5ICswMTAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIGdpdC11cGRhdGUuc2g6IEZpeCBpc3N1ZXMKCjIwMTAtMDItMDcgMDk6NTk6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgUmV2ZXJ0ICJkb2NzOiBmaXggQVNDSUkgYXJ0IHNvIHRoYXQgaXRlcmF0b3JzIGFyZSBhbGlnbmVkIHByb3BlcnR5IHRvIHRoZSBkaWFncmFtIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGFlNjBkMDZlOWU0MDFkMWVkNGRlNWVmMjViNWMyODNkYjA2OTZhMzEgKGZpeGVzOiAjNjA5MTY2KQoKMjAxMC0wMi0wNCAxODozMDo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yNS4zIHByZS1yZWxlYXNlCgoyMDEwLTAyLTA0IDE3OjQ1OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2JnLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL3BsLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vemhfQ04ucG86CgkgIHBvOiB0cmFuc2xhdGlvbiB1cGRhdGVzCgoyMDEwLTAyLTAxIDEyOjUwOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGRvY3M6IGZpeCBBU0NJSSBhcnQgc28gdGhhdCBpdGVyYXRvcnMgYXJlIGFsaWduZWQgcHJvcGVydHkgdG8gdGhlIGRpYWdyYW0KCjIwMTAtMDItMDEgMTc6NDA6MDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGdzdGJ5dGV3cml0ZXI6IEZpeCBkaWZmZXJlbnQgZnVuY3Rpb24gbmFtZXMgaW4gLmggYW5kIC5jCgkgIGdzdF9ieXRlX3dyaXRlcl9yZXNldF9hbmRfZ2V0X2J1ZmZlciB3YXNuJ3QgZGVjbGFyZWQKCSAgaW4gLmgsIGluc3RlYWQgdGhlcmUgd2FzIF9yZXNldF9hbmRfZ2V0X2RhdGFfYXNfYnVmZmVyLgoJICBSZXBsYWNlIGl0IHdpdGggdGhlIHJlYWwgZnVuY3Rpb24gbmFtZSwgdGhhdCBpcyBzbWFsbGVyCgkgIGFuZCBtYXRjaGVzIGdzdF9ieXRlX3dyaXRlcl9mcmVlX2FuZF9nZXRfYnVmZmVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDg3MjYKCjIwMTAtMDEtMzEgMTc6MzA6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSAgZG9jczogYWRkIHNvbWUgbW9yZSBTaW5jZTogbWFya2VycyB0byBidWZmZXIgbGlzdCBkb2NzCgoyMDEwLTAxLTMwIDE4OjU3OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBmaXggdHlwbyBpbiB3YXJuaW5nIG1lc3NhZ2UKCSAgU3BvdHRlZCBieSBic3JlZXJlbmpAZ21haWwuY29tLgoJICBGaXhlcyAjNjA4NDQyLgoKMjAxMC0wMS0zMCAxNToxNzo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDE1ZDQ3YTYgdG8gOTZkYzc5MwoKMjAxMC0wMS0zMCAxMzo0NTo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGluaXQ6IGRvbid0IHNwZXcgd2FybmluZyBhYm91dCBsYXRlIGdfdGhyZWFkX2luaXQoKXMgaWYgR0xpYiA+PSAyLjIzLjIKCSAgTGF0ZSBnX3RocmVhZF9pbml0KCkgaXMgZmluZSB3aXRoIG5ld2VyIEdMaWIgdmVyc2lvbnMgYW5kIGRvbmUgYXV0b21hdGljYWxseQoJICBmcm9tIGdfdHlwZV9pbml0KCkgdGhlcmUsIHNvIGRvbid0IHdhcm4gaWYgdGhlIGFwcGxpY2F0aW9uIGhhc24ndCBjYWxsZWQKCSAgZ190aHJlYWRfaW5pdCgpIHlldCB3aGVuIGdzdF9pbml0KCkgaXMgY2FsbGVkIHdpdGggbmV3IEdMaWIgdmVyc2lvbnMuCgkgIEZpeGVzICM2MDgzOTguCgoyMDEwLTAxLTI5IDA5OjQxOjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIHBrZ2NvbmZpZzogZG9uJ3QgcHV0IC1ER19USFJFQURTX01BTkRBVE9SWSBpbnRvIG91ciBwa2ctY29uZmlnIENGTEFHUwoJICBJZiB3ZSBmb3JjZSAtREdfVEhSRUFEU19NQU5EQVRPUlkgb250byBhcHBzLCB0aGVuIGdfdGhyZWFkX3N1cHBvcnRlZCgpCgkgIHdpbGwgYWx3YXlzIGV2YWx1YXRlIHRvIFRSVUUsIHNvIHRoZSB0eXBpY2FsIHRocmVhZCBpbml0aWFsaXNhdGlvbgoJICBib2lsZXJwbGF0ZSBjb2RlIGlmICghZ190aHJlYWRfc3VwcG9ydGVkKCkpIGdfdGhyZWFkX2luaXQoTlVMTCk7IHdpbGwKCSAgbm8gbG9uZ2VyIHdvcmssIGFuZCB0aGUgdGhyZWFkaW5nIHN5c3RlbSBub3QgYmUgaW5pdGlhbGlzZWQgYW5kIHVzCgkgIHByaW50aW5nIGEgd2FybmluZyBpbiBnc3RfaW5pdC4gVGhpcyBtYXkgYmUgZmluZSBpbiBtb3N0IGNhc2VzLCBzaW5jZQoJICBsYXRlIGluaXRpYWxpc2F0aW9uIGlzIGFsbG93ZWQgYW5kIGF1dG9tYXRpY2FsbHkgZG9uZSBpbiBnX3R5cGVfaW5pdCgpCgkgIHNpbmNlIEdMaWIgMi4yMy4yLCBidXQgbGV0J3MgYmUgY2F1dGlvdXMgYW5kIG9ubHkgdXNlIHRoaXMgZGVmaW5lIHdoZW4KCSAgY29tcGlsaW5nIEdTdHJlYW1lciBpdHNlbGYuCgkgIFNlZSAjNjA4Mzk4LgoKMjAxMC0wMS0yOCAxNTo1NToyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogVGFrZSBzdGFydF90aW1lIGFmdGVyIGNoYWluaW5nIHVwIHRvbwoJICBSZWZhY3RvciB0aGUgY29kZSB0byB0YWtlIHRoZSBjdXJyZW50IHN0YXJ0X3RpbWUgd2hlbiBnb2luZyB0byBQQVVTRUQuCgkgIE1ha2Ugc3VyZSB3ZSBhbHNvIGNhbGwgdGhlIHN0YXJ0X3RpbWUgdXBkYXRlIGNvZGUgYWZ0ZXIgd2UgY2hhaW5lZCB1cCB0byB0aGUKCSAgcGFyZW50IGJpbi4KCSAgRml4ZXMgIzYwNzg0MgoKMjAxMC0wMS0yNiAxODo1OTo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIDAuMTAuMjUuMiBwcmUtcmVsZWFzZQoKMjAxMC0wMS0yNyAwMDoyMzowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgY2hlY2tzOiBmaXggc3B1cmlvdXMgZ2hvc3QgcGFkIGNoZWNrIGZhaWx1cmUKCjIwMTAtMDEtMjYgMTk6MzU6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHdpbjMyOiB1cGRhdGUgd2luZG93cyBoZWFkZXJzIHRvIGxhdGVzdCB2ZXJzaW9uCgoyMDEwLTAxLTI2IDE5OjMyOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IG1pbm9yIHVwZGF0ZSB0byByZWxlYXNlIG5vdGVzCgoyMDEwLTAxLTI2IDE4OjQ1OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbiBmaWxlcwoKMjAxMC0wMS0yNiAxODozOTo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3J0cG9vbC10ZXN0LmM6CgkgIHRlc3RzOiBmaXggd2FybmluZyBpbiBydHBvb2wtdGVzdAoJICBUaGUgc3RyZWFtIHN0YXR1cyBtZXNzYWdlIG9iamVjdCBtYXkgYmUgb2YgYSBub24tR09iamVjdCB0eXBlLCBlLmcuCgkgIEdfVFlQRV9QT0lOVEVSIChzZWUgR3N0QXVkaW9TcmMpLCBzbyBwcmludCB0aGF0IHByb3Blcmx5IGluc3RlYWQKCSAgb2YgYXNzdW1pbmcgdGhlIHZhbHVlIGhvbGRzIGFuIG9iamVjdC4KCjIwMTAtMDEtMjYgMTI6NDM6MDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBoYW5kbGUgVU5FWFBFQ1RFRCBmbG93cmV0dXJuIGJldHRlcgoJICBXaGVuIHdlIHJlY2VpdmUgYW4gVU5FWFBFQ1RFRCBmbG93cmV0dXJuIGZyb20gZG93bnN0cmVhbSwgd2UgbXVzdCBub3Qgc2h1dGRvd24KCSAgdGhlIHB1c2hpbmcgdGhyZWFkIGJlY2F1c2UgdXBzdHJlYW0gd2lsbCBhdCBzb21lIHBvaW50IHB1c2ggYW4gRU9TIHRoYXQgd2Ugc3RpbGwKCSAgbmVlZCB0byBwdXNoIGZ1cnRoZXIgZG93bnN0cmVhbS4KCSAgVG8gYWNoaWV2ZSB0aGlzLCBjb252ZXJ0IHRoZSBVTkVYUEVDVEVEIHJldHVybiB2YWx1ZSB0byBPSy4gQWRkIGEgZml4bWUgc28gdGhhdAoJICB3ZSBpbXBsZW1lbnQgdGhlIHJpZ2h0IGxvZ2ljIHRvIHByb3BhZ2F0ZSB0aGUgZmxvd3JldHVybiB1cHN0cmVhbSBhdCBzb21lIHBvaW50LgoJICBBbHNvIGNsZWFuIHVwIHRoZSB1bml0IHRlc3QgYSBsaXR0bGUuCgkgIEZpeGVzICM2MDgxMzYKCjIwMTAtMDEtMjYgMDg6NTI6MTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgIGRvY3M6IEZpeCBiYXNpY3MtYnVzIGRvY3MKCSAgRml4IHdyb25nIGluZm9ybWF0aW9uIGFib3V0IGJ1cyB3YXRjaCBmdW5jdGlvbnMgaW4gdGhlCgkgIGFwcGxpY2F0aW9uIGRldmVsb3BtZW50IG1hbnVhbC4KCSAgRml4ZXMgIzYwODEyNwoKMjAxMC0wMS0yNCAyMzoxMjoyMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJpbjogYWxzbyByZW1vdmUgcHJpdmF0ZSBmdW5jdGlvbiBmcm9tIGRlZiBmaWxlCgoyMDEwLTAxLTI0IDIzOjA0OjI3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogbWFrZSBhIGludGVyZmFjZSB2bWV0aG9kIGltcGxlbWVudGF0aW9uIHN0YXRpYwoJICBUaGlzIHNob3VsZCBub3QgY2F1c2UgYW55IHRyb3VibGVzIC0gdGhlIG1ldGhvZHMgd2Fzbid0IGluIGFueSBoZWFkZXIuCgoyMDEwLTAxLTI0IDIyOjIyOjA3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiByZW1vdmUgOyBhZnRlciB9CgoyMDEwLTAxLTIyIDE4OjAwOjUzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgc29tZSBkb2NzIHRvIG1hcmsgbmV3IHByb3BlcnR5CgoyMDEwLTAxLTIyIDE3OjU1OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBhZGQgb3B0aW9uIHRvIHJlbW92ZSB0aGUgdGVtcC1maWxlCgkgIEFkZCBhbiBvcHRpb24gdG8gYXV0b21hdGljYWxseSByZW1vdmUgdGhlIHRlbXAgZmlsZSAoVFJVRSBieSBkZWZhdWx0KS4gVGhpcwoJICBzaG91bGQgbWFrZSBpdCBwb3NzaWJsZSBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGtlZXAgdGhlIHRlbXAgZmlsZSBieSBvdGhlciBtZWFucwoJICB0aGFuIGhhcmRsaW5raW5nIG9yIGhvbGRpbmcgYW4gZmQgb3Blbi4KCSAgRml4ZXMgIzYwNzczOQoKMjAxMC0wMS0yMiAwMjowMjowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZG9uJ3QgbGVhayB1cmkgc3RyaW5nCgoyMDEwLTAxLTIxIDE2OjE5OjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZGV4Lmg6CgkgIGdzdGluZGV4OiByZXRhYiAuaCBmaWxlCgoyMDEwLTAxLTIwIDE0OjEzOjExICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICB0b29sczogUnVuIGdfdGhyZWFkX2luaXQoKSB1bmNvbmRpdGlvbmFsbHkKCSAgU2luY2Ugd2UgZGVmaW5lIEdfVEhSRUFEU19NQU5EQVRPUlksIGdfdGhyZWFkX3N1cHBvcnRlZCgpIGV2YWx1YXRlcyB0bwoJICBUUlVFIHVuY29uZGl0aW9uYWxseSwgc28gY2FsbGluZyBnX3RocmVhZF9pbml0KCkgbmV2ZXIgaGFwcGVuZWQuCgoyMDEwLTAxLTIwIDEwOjU4OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBmaXggY29tcGlsZXIgd2FybmluZyBvbiB3aW4zMgoJICBNb3ZlIHZhcmlhYmxlIHRoYXQncyBvbmx5IHVzZWQgb24gdW5peCBpbnRvIHRoZSB1bml4IGJsb2NrIHNvIHRoYXQKCSAgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgY29tcGxhaW4gYWJvdXQgdGhlIHVudXNlZCB2YXJpYWJsZSBvbiB3aW4zMgoJICAoc2VlICM1OTc2NjIpLgoKMjAxMC0wMS0yMCAwOTo0NTowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogdHJ5IHNjYW5uZXIgc2V0IHZpYSBlbnYgdmFyIGJlZm9yZSB1c2luZyB0aGUgaW5zdGFsbGVkIG9uZQoJICBJZiB0aGUgR1NUX1BMVUdJTl9TQ0FOTkVSIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNldCwgd2Ugc2hvdWxkIHRyeQoJICB0aGUgc2Nhbm5lciBzcGVjaWZpZWQgdGhlcmUgZmlyc3QsIHRvIG1ha2Ugc3VyZSB0aGUgcmlnaHQgc2Nhbm5lciBiaW5hcnkKCSAgaXMgdXNlZCBmb3IgdW5pbnN0YWxsZWQgc2V0dXBzIGFuZCBidWlsZHMgZnJvbSBzb3VyY2Ugd2hlbiB0aGVyZSdzCgkgIGFscmVhZHkgYW4gaW5zdGFsbGVkIHZlcnNpb24uCgoyMDEwLTAxLTIwIDA2OjU4OjI4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdC5jOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBidWlsZDogRGVmaW5lIEdfVEhSRUFEU19NQU5EQVRPUlkgZXZlcnl3aGVyZQoJICBXZSByZXF1aXJlIHRocmVhZHMgdG8gYmUgc3VwcG9ydGVkIGluIGFueSBjYXNlIGFuZCBkZWZpbmluZyB0aGlzCgkgIHdpbGwgc2ltcGxpZnkgdGhlIG11dGV4LCBjb25kaXRpb24gdmFyaWFibGUsIGV0Yy4gbWFjcm9zIGZyb20gZ3RocmVhZAoJICB0byBub3QgYWx3YXlzIGNoZWNrIGlmIHRocmVhZHMgYXJlIHJlYWxseSBzdXBwb3J0ZWQuCgkgIEZpeGVzIGJ1ZyAjNjA3NDgxLgoKMjAxMC0wMS0wOCAyMDo1NjoxOCArMDEwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDx5bGF0dXlhQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHBsdWdpbmxvYWRlcjogZGlzYWJsZSBleHRlcm5hbCBwbHVnaW4gbG9hZGVyIG9uIFdpbmRvd3MgdW50aWwgaXQgaXMgcG9ydGVkIHByb3Blcmx5CgkgIFNlZSAjNTk3NjYyLgoKMjAxMC0wMS0yMCAwMTowOTo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkqIGdzdC9wYXJzZS9wYXJzZS5sOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXBsdWdpbi1zY2FubmVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIGdzdF9wcml2YXRlLmg6IG1ha2Ugc3VyZSBnc3RfcHJpdmF0ZS5oIGlzIGluY2x1ZGVkIGJlZm9yZSBnbGliLmgKCSAgRm9yIHRoZSByZWFzb24gb3V0bGluZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBnc3RfcHJpdmF0ZS5oIChpbmxpbmUKCSAgZnVuY3Rpb25zIGluIGdsaWIgbWF5IG5lZWQgdGhlIGdfbG9nX2RvbWFpbiB2YXJpYWJsZSkuIEFsc28gaW5jbHVkZQoJICBnc3RfcHJpdmF0ZS5oIGJlZm9yZSB1c2luZyBhbnkgR19PU18qIGRlZmluZXMsIGVzcC4gaW4gcGx1Z2luIGxvYWRlci4KCjIwMTAtMDEtMjAgMDE6MzM6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIGRvY3M6IG1pbm9yIGd0ay1kb2MgbWFya3VwIGZpeGVzCgoyMDEwLTAxLTIwIDAwOjUzOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMTRjZWM4OSB0byAxNWQ0N2E2CgoyMDEwLTAxLTE5IDE2OjM5OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICBkb2NzOiBzbWFsbCBkb2NzIHVwZGF0ZXMKCjIwMTAtMDEtMTkgMTQ6MDc6MjMgKzAxMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogZGlyZWN0bHkgc2V0IHRoZSBjYXBzIHdoZW4gcHVzaGluZyBidWZmZXIgd2l0aCBkaWZmZXJlbnQgY2Fwcy4KCSAgVGhpcyBjaGVjayBpcyBub3QgbmVjZXNhcnJ5IGFzIHdlIGFyZSBub3QgbmVnb3RpYXRpbmcgYW55bW9yZS4gQW5kIGl0IGNhbgoJICBiZSB3cm9uZyBpZiB1cHN0cmVhbSBjYW4ndCBwcm9kdWNlIHRoaXMgY2FwcyBhbnltb3JlLCBidXQgZG93bnN0cmVhbSBjYW4KCSAgcHJvY2VzcyB0aGVtIGZpbmUuCgoyMDEwLTAxLTE4IDEzOjU3OjI5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IFRoZSBHVmFsdWUgY29sbGVjdGlvbiBmdW5jdGlvbiBjYW4gbm90IGFzc3VtZSB0aGF0IHRoZSBkZXN0aW5hdGlvbiBpcyBpbml0aWFsaXplZAoJICAuLi5hbmQgaXQgd2lsbCB1c3VhbGx5IGJlIGVpdGhlciBmaWxsZWQgYnkgemVyb2VzIG9yIHJhbmRvbSB2YWx1ZXMuCgkgIEZpeGVzIGJ1ZyAjNjA3MjgzLgoKMjAxMC0wMS0xNiAyMTo1MjowNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogT25seSB1c2Ugc3VnZ2VzdGVkIGNhcHMgaW4gYnVmZmVyIGFsbG9jYXRpb24gaWYgYSBzaXplIHdhcyBzdWdnZXN0ZWQgdG9vCgoyMDEwLTAxLTE2IDE5OjQxOjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiByZW1vdmUgc3VwZXJmbHVvdXMgZ3VhcmQgYWdhaW5zdCBOVUxMCgkgIEFsbCBjYWxsZXJzIG9mIHRoaXMgc3RhdGljIGZ1bmN0aW9uIGFscmVhZHkgY2hlY2sgZm9yIE5VTEwtbmVzcwoJICB0aGVtc2VsdmVzLCBzbyBubyBuZWVkIHRvIGRvIGl0IGFnYWluIChhbmQgaWYgd2UgZG8gaXQsIHdlIHNob3VsZAoJICBwcm9iYWJseSBkbyBzbyBiZWZvcmUgZGVyZWZlcmVuY2luZyB0aGUgcG9pbnRlciBmb3IgdGhlIGZpcnN0IHRpbWUpLgoKMjAwOS0xMi0xNyAxOTo0NTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IG1pY3JvLW9wdGltaXNlIHNvbWUgZ2V0dGVycwoJICBBdm9pZCBjaGVja2luZyB0aGUgR1R5cGUgb2YgdGhlIHZhbHVlIHR3aWNlIChvbmNlIG9uIG91ciBzaWRlIGFuZAoJICBvbmNlIGluIGdfdmFsdWVfZ2V0XyooKSkgYnkgYnktcGFzc2luZyBnX3ZhbHVlX2dldCgpIGFuZCBhY2Nlc3NpbmcKCSAgdGhlIEdWYWx1ZSBzdHJ1Y3R1cmUgZGlyZWN0bHkuCgoyMDEwLTAxLTE1IDE4OjM2OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgbWVzc2FnZTogdXBkYXRlIGRvY3MgYSBsaXR0bGUKCjIwMTAtMDEtMTUgMDA6NDY6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogbWlub3IgcmVsZWFzZSBkb2NzIHVwZGF0ZQoKMjAxMC0wMS0xNCAyMDoxOTowNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSGFuZGxlIGJ1ZmZlcnMgd2l0aCBOVUxMIGNhcHMgY29ycmVjdGx5CgkgIFRoaXMgbWVhbnMgdGhhdCB0aGUgY2FwcyBkaWRuJ3QgY2hhbmdlIHNvIGRvbid0IHRyeSB0byBoYW5kbGUKCSAgdGhlIE5VTEwgY2FwcyBhcyB0aGUgbmV3IGNhcHMuCgoyMDEwLTAxLTE0IDEwOjQ0OjE2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdHVyaS5oOgoJICBkb2NzOiBNb3ZlIGZpZWxkIHNwZWNpZmljIFNpbmNlIG1hcmtlcnMgYXQgdGhlIHNhbWUgbGluZQoJICBGaXhlcyBnb2JqZWN0LWludHJvc3BlY3Rpb24gd2FybmluZ3MgYWJvdXQgU2luY2UgYmVpbmcgZGVmaW5lZCBtdWx0aXBsZSB0aW1lcy4KCjIwMTAtMDEtMTMgMTA6MTc6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZmFxLnhtbDoKCSAgZmFxOiByZW1vdmUgcmV2aXNpb24gaGlzdG9yeSB0aGF0IG5vIG9uZSB1cGRhdGVzIG9yIGNhcmVzIGFib3V0IGFueXdheQoKMjAxMC0wMS0xMyAwOTozMjo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSogZG9jcy9mYXEvZ2l0LnhtbDoKCSAgZmFxOiBmaXggbGluayB0byBnc3QtdW5pbnN0YWxsZWQgb24gY2dpdAoJICBGaXggbGluayB0byBnc3QtdW5pbnN0YWxsZWQgbm93IHRoYXQgaXQncyBiZWVuIG1vdmVkLCBhbmQgZml4IGEgdHlwbwoJICB3aGlsZSB3ZSdyZSBhdCBpdC4gQWxzbyBhZGQgYSBuZXcgc2VjdGlvbiB0byAnQnVpbGRpbmcgR1N0cmVhbWVyIGZyb20KCSAgZ2l0JyB0aGF0IHBvaW50cyB0byB0aGUgJ0hvdyBkbyBJIGRldmVsb3AgYWdhaW5zdCBhbiB1bmluc3RhbGxlZCBjb3B5CgkgIG9mIEdTdHJlYW1lcicgc2VjdGlvbi4KCjIwMTAtMDEtMTMgMTA6MzI6NDYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIFJFQURNRToKCSAgZG9jczogd2UncmUgaW4gZ2l0IHNpbmNlIGEgd2hpbGUKCjIwMTAtMDEtMTMgMTA6MzE6MjYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIE1ha2VmaWxlLmFtOgoJKiBSRUFETUU6CgkqIGRvY3MvZmFxL01ha2VmaWxlLmFtOgoJKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSogZG9jcy9mYXEvZmFxLnhtbDoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgc2NyaXB0czogbW92ZSBnc3QtdW5pbnN0YWxsZWQgZnJvbSBkb2NzL2ZhcSB0byBzY3JpcHRzCgkgIERvbid0IGluY2x1ZGUgdGhlIGxvbmcgZ3N0LXVuaW5zdGFsbGVkIHNjcmlwdCBpbiB2ZXJiYXRpbSBpbiB0aGUgZmFxIGFueW1vcmUKCSAgKHRoZXJlIGlzIGEgbGluayB0byBjZ2l0KS4gRGlzdCB0aGUgc2NyaXB0IHVuZGVyIGl0cyBuZXcgbG9jYXRpb24uCgoyMDEwLTAxLTEyIDIxOjM0OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeTogYXZvaWQgc29tZSBtb3JlIHVubmVjZXNzYXJ5IG1hbGxvYy9mcmVlcwoKMjAxMC0wMS0xMiAyMDoyMTozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+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+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcGx1Z2luLXNjYW5uZXIuYzoKCSogbGlicy9nc3QvaGVscGVycy9wbHVnaW4tc2Nhbm5lci5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBwbHVnaW4tc2Nhbm5lcjogcmVuYW1lIHBsdWdpbi1zY2FubmVyIGhlbHBlciBiaW5hcnkgdG8gZ3N0LXBsdWdpbi1zY2FubmVyCgkgIGFuZCBpbnN0YWxsIGludG8gYSBkaWZmZXJlbnQgZGlyZWN0b3J5ICQobGliZXhlY2Rpci9nc3RyZWFtZXItMC4xMCkgc28gdGhhdAoJICBldmVyeXRoaW5nIGlzIHZlcnNpb25lZCBwcm9wZXJseS4KCSAgTk9URTogcnVuICdtYWtlIGNsZWFuJyBhZnRlciB1cGRhdGluZzsgaWYgeW91IGFyZSBydW5uaW5nIGFuIHVuaW5zdGFsbGVkIHNldHVwLAoJICB5b3Ugd2lsbCBuZWVkIHRvIHVwZGF0ZSB5b3VyIGdzdC11bmluc3RhbGxlZCBzY3JpcHQgKHVubGVzcyBpdCdzIHN5bWxpbmtlZAoJICB0byBnc3RyZWFtZXIgY29yZSBtYXN0ZXIpIGFuZCBleGl0L2VudGVyIHlvdXIgdW5pbnN0YWxsZWQgZW52aXJvbm1lbnQgdG8gZ2V0CgkgIHRoZSB1cGRhdGVkIGVudmlyb25tZW50LiBJZiB5b3UgYXJlIHJ1bm5pbmcgYW4gaW5zdGFsbGVkIHNldHVwLCB5b3Ugc2hvdWxkCgkgIHJ1biAnbWFrZSB1bmluc3RhbGwnIGJlZm9yZSBtZXJnaW5nIHRoaXMgY2hhbmdlIG9yIHJlbW92ZSB0aGUgb2xkCgkgIHBsdWdpbi1zY2FubmVyIGJpbmFyeSBtYW51YWxseS4KCSAgRml4ZXMgIzYwMTY5OC4KCjIwMDktMTEtMTggMDk6MTA6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBSZXZlcnQgInN0cnVjdHVyZTogZG9uJ3QgY2hlY2sgdHlwZSB0d2ljZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBmODY0MTg3YmY1ZmRmYWY3MWYyZTAzODk0OWU0MDNhNDJlNmRhZjBlLgoJICBSZXZlcnRpbmcgdGhpcyBhcyBpdCBjaGFuZ2VzIGJlaGF2aW91ciBhbmQgdGhlIGRvY3VtZW50YXRpb24gaXMKCSAgYW1iaWd1b3VzIGFib3V0IHdoZXRoZXIgdGhlIGNhbGxlciBtdXN0IGNoZWNrIHRoZSB0eXBlIGZpcnN0IG9yCgkgIG5vdCAoY2FsbCBtdXN0IGNoZWNrIHR5cGUgdnMuIHJldHVybnMgTlVMTCBpZiBub3QgYSBzdHJpbmcpLiBJZgoJICBHTGliIGhhcyBiZWVuIGNvbXBpbGVkIHdpdGggR19ESVNBQkxFX0NIRUNLUyB0aGVuIGdfdmFsdWVfZ2V0X3N0cmluZygpCgkgIG1heSByZXR1cm4gY29tcGxldGUgZ2FyYmFnZSBldmVuIGlmIHRoZSB2YWx1ZSBkb2VzIG5vdCBjb250YWluCgkgIGEgc3RyaW5nLiBCZXR0ZXIgcGxheSBpdCBzYWZlLCBlc3AuIHNpbmNlIHRoZSBleHRyYSBjaGVjayBpcyBqdXN0CgkgIGFuIGludGVnZXIgY29tcGFyaXNvbi4gRm9yIGZ1bmRhbWVudGFsIHR5cGVzIHdlIGNvdWxkIHJldHVybiB2YWx1ZXMKCSAgZnJvbSB0aGUgR1ZhbHVlIHN0cnVjdHVyZSBkaXJlY3RseSBpZiB3ZSByZWFsbHkgd2FudGVkIHRvIGJ5cGFzcwoJICB0aGUgZXh0cmEgY2hlY2suCgoyMDA5LTExLTE3IDE3OjA2OjA4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZG9uJ3QgY2hlY2sgdHlwZSB0d2ljZQoKMjAwOS0xMS0xNyAxODozNTo1NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IEFkZCBzdGVwIGV2ZW50IHF1YXJrCgoyMDA5LTExLTE3IDEwOjAyOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgcGF0aHMgZm9yIGdzdC1xYS1zeXN0ZW0KCjIwMDktMTEtMTcgMDk6MDY6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBkb2NzOiBzZXQgR1NUX1BMVUdJTl9TQ0FOTkVSIHdoZW4gY2FsbGluZyBndGtkb2Mtc2NhbmdvYmoKCSAgT3RoZXJ3aXNlIHRoZSBkb2NzIGJ1aWxkIHdvbid0IHdvcmsgcHJvcGVybHkKCjIwMDktMTEtMTYgMTM6NTg6MTAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiByZW1vdmUgc29tZSBibGFuayBsaW5lcyAocHJldmlvdXMgZ3N0LWluZGVudCBmYWlsdXJlKQoKMjAwOS0xMS0xNiAxMzo1Mzo0NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IHVzZSBsb2NhbCB2YXJpYWJsZSBlYXJsaWVyCgoyMDA5LTExLTE2IDEzOjQ5OjMyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZG9uJ3QgY2hlY2sgZW51bSB0eXBlcyB0d2ljZS4KCSAgR19WQUxVRV9IT0xEU19FTlVNKHZhbHVlKSBpcyBkZWZpbmVkIGFzIEdfVFlQRV9DSEVDS19WQUxVRV9UWVBFICh2YWx1ZSwKCSAgR19UWVBFX0VOVU0pLiBKdXN0IGNoZWNrIGZvciB0aGUgcmlnaHQgZW51bS10eXBlIHJpZ2h0IGF3YXkuCgoyMDA5LTExLTE0IDIyOjM1OjA3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2hlY2s6IEFkZCBhIGRlYnVnIHN0YXR1cyB0byB0aGUgc3lzdGVtY2xvY2sgdGVzdAoJICBOZXh0IHRpbWUgaXQgZmFpbHMgb24gYSBidWlsZGJvdCB3ZSBjYW4gc2VlIHdoaWNoIGNsb2NrIGlkCgkgIHJldHVybiBpdCBpcyBnZXR0aW5nLgoKMjAwOS0xMS0xNiAxODoyNTo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFRPRE86IHJlbW92ZSBzdGVwcGluZyBmcm9tIFRPRE8KCSAgUmVtb3ZlIHRoZSBmcmFtZSBzdGVwcGluZyBBUEkgZnJvbSB0aGUgVE9ETyBsaXN0LgoKMjAwOS0xMS0xNiAxNDowMjowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCBwb3NpdGlvbiByZXBvcnRpbmcKCSAgT25seSB1cGRhdGUgdGhlIGN1cnJlbnQgc3RyZWFtIHRpbWUgYWZ0ZXIgd2UgY2hlY2tlZCBpZiB3ZSBnb3QgYSBuZXcgc3RlcAoJICBldmVudC4gVGhpcyBpbXByb3ZlcyB0aGUgcG9zaXRpb24gcmVwb3J0aW5nIGJ5IHRoZSBzaW5rLgoJICBTZWUgIzU5NTk1OAoKMjAwOS0xMS0xNiAwOTo0OTo0NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IEFQSTogQWRkIG11bHRpcGxpY2F0aW9uIGFuZCBhZGRpdGlvbiBmdW5jdGlvbnMgZm9yIGZyYWN0aW9ucwoJICBnc3RfdXRpbF9mcmFjdGlvbl9hZGQoKQoJICBnc3RfdXRpbF9mcmFjdGlvbl9tdWx0aXBseSgpCgkgIFRoZXNlIHdvcmsgb24gcGxhaW4gaW50ZWdlcnMgaW5zdGVhZCBvZiBHVmFsdWVzIHRvCgkgIGtlZXAgdGhlIG92ZXJoZWFkIGFzIGxvdyBhcyBwb3NzaWJsZS4KCjIwMDktMTEtMTYgMDk6Mjk6MTAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHV0aWxzOiBBUEk6IEFkZCBmcmFjdGlvbiBoZWxwZXIgZnVuY3Rpb25zCgkgIGdzdF91dGlsX2dyZWF0ZXN0X2NvbW1vbl9kaXZpc29yKCkKCSAgZ3N0X3V0aWxfZG91YmxlX3RvX2ZyYWN0aW9uKCkKCSAgZ3N0X3V0aWxfZnJhY3Rpb25fdG9fZG91YmxlKCkKCSAgVXNpbmcgdGhlc2UgaW5zdGVhZCBvZiBnb2luZyBvdmVyIEdWYWx1ZSBoYXMgbXVjaCBsb3dlciBvdmVyaGVhZC4KCSAgQWxzbyBhZGQgZmxvYXQ8LT5mcmFjdGlvbiB0cmFuc2Zvcm0gZnVuY3Rpb25zIGZvciBHVmFsdWUuCgoyMDA5LTExLTEzIDE1OjQ1OjUyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGRlYnVnOiBhZGQgbW9yZSBkZWJ1ZyBsb2dnaW5nIHRvIGhlbHAgdHJhY2tpbmcgcGFyc2luZyBlcnJvcnMKCjIwMDktMTEtMTMgMTE6NDI6MDIgKzAxMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBhdm9pZCByYWNlIHdoZW4gcmVjeWNsaW5nIGJ1ZmZlcnMKCSAgQXZvaWQgYSByYWNlIHdoZXJlIGEgbWluaW9iamVjdCBpcyByZWN5Y2xlZCBhbmQgcXVpY2tseSBmcmVlZCwgd2hpY2ggY2F1c2VzIHRoZQoJICBnX3R5cGVfZnJlZV9pbnN0YW5jZSgpIHRvIGJlIGNhbGxlZCBvbiB0aGUgc2FtZSBvYmplY3QgdHdpY2UuCgkgIFJlZiB0aGUgb2JqZWN0IGJlZm9yZSBjYWxsaW5nIHRoZSBmaW5hbGl6ZSBtZXRob2QgYW5kIGNoZWNrIGlmIHdlIHN0aWxsIG5lZWQgdG8KCSAgZnJlZSBpdCBhZnRlcndhcmQuCgkgIEFsc28gYWRkIGEgdW5pdCB0ZXN0IGZvciB0aGlzIGNhc2UuCgkgIEZpeGVzICM2MDE1ODcKCjIwMDktMTEtMTIgMTc6MDI6NDAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB3aGl0ZXNwYWNlOiByZW1vdmUgYmxhbmtzIGluIGRvYy1jb21tZW50CgoyMDA5LTExLTA2IDE1OjQyOjU3ICswMzAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogSW1wb3J0IF9wcml2X2dzdF9kbGxfaGFuZGxlIGludG8gZ3N0cmVnaXN0cnkuYwoJICBGaXhlcyBidWcgIzYwMTY2OC4KCjIwMDktMTEtMTIgMTQ6MTA6MDYgKzAzMDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICB0ZXN0czogRG8gbm90IGxpc3QgbGliZ3N0Y2hlY2sgYXMgYSByZXF1aXJlbWVudCBmb3IgdGVzdHMvZXhhbXBsZXMvbWFudWFsCgkgIEZpeGVzIGJ1ZyAjNjAxNjY5LgoKMjAwOS0xMS0xMSAxNzoxMjoxOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogRml4IHRyZWF0aW5nIGJhc2VfdGltZSBhcyB1bnNpZ25lZCBpbiBwb3NpdGlvbiBjYWxjdWxhdGlvbgoJICBFbGVtZW50IGJhc2VfdGltZSBpcyBhIHNpZ25lZCBxdWFudGl0eSwgd2hpY2ggbGVhZHMgdG8gYmFzZXNpbmsgcmV0dXJuaW5nCgkgIGEgcG9zaXRpb24gb2YgMCB3aGVuIGRlYWxpbmcgd2l0aCBhIG5lZ2F0aXZlIGJhc2UgdGltZSAtIHdoaWNoIGFyZSBxdWl0ZQoJICBsZWdhbCB3aGVuIGNsb2NrcyAoc3VjaCBhcyB0aGUgYXVkaW8gY2xvY2spIGFyZSBjbG9zZSB0byAwLgoJICBUaGlzIGRvZXNuJ3QgbWFuaWZlc3QgaW4gbm9ybWFsIHBpcGVsaW5lcywgb2YgY291cnNlIC0gYnV0IGNhbiBoYXBwZW4KCSAgKGF0IGxlYXN0KSB3aGVuIG1hbnVhbGx5IHNldHRpbmcgdGhlIGJhc2UgdGltZSBvbiBhIHBpcGVsaW5lLgoKMjAwOS0xMS0xMCAxODowMzo0MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZWdpc3RyeTogQVBJOiBBZGQgZ3N0X3tkZWZhdWx0LH1fcmVnaXN0cnlfZ2V0X2ZlYXR1cmVfbGlzdF9jb29raWUoKQoJICBUaGlzIHJldHVybnMgdGhlIGludGVybmFsIGZlYXR1cmUgbGlzdCBjb29raWUsIHdoaWNoIGNoYW5nZXMgZXZlcnkKCSAgdGltZSBhIGZlYXR1cmUgaXMgYWRkZWQgb3IgcmVtb3ZlZC4gVGhpcyBjYW4gYmUgdXNlZCBieSBlbGVtZW50cwoJICB0byBjaGVjayBpZiB0aGV5IHNob3VsZCB1cGRhdGUgdGhlaXIgY2FjaGVkIGZlYXR1cmUgbGlzdHMuCgoyMDA5LTExLTEwIDExOjU1OjM0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IHByaW50ZiBmb3JtYXQKCSAgQ2FzdCB0aGUgdmFyaWFibGUgdG8gZ2ludCB0byBjb25mb3JtIHRvIHRoZSBwcmludGYgZm9ybWF0IHVzZWQuCgkgIEl0IGlzIGNhc3RlZCByYXRoZXIgdGhhbiBjaGFuZ2luZyB0aGUgZm9ybWF0IGJlY2F1c2UgdGhlCgkgIG1lc3NhZ2UgaXMgY3JlYXRlZCB3aXRoIGEgY2FzdCB0byBnaW50IHRvby4KCjIwMDktMTEtMTAgMTA6MTA6NTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhdm9pZCBjcmFzaGluZyBkdWUgdG8gbmVnYXRpdmUgcGVyY2VudAoJICBxdWV1ZTIgd291bGQgY3Jhc2ggd2hlbiB1c2luZyBzbWFsbCBidWZmZXIgc2l6ZXMgYmVjYXVzZQoJICBpdCB3b3VsZCBvdmVyZmxvdyB3aGVuIGNhbGN1bGF0aW5nIHRoZSBwZXJjZW50YWdlLCByZXN1bHRpbmcKCSAgaW4gdGhlIGJ1ZmZlcmluZyBHc3RNZXNzYWdlIG5vdCBiZWluZyBjcmVhdGVkIGFuZCB0cnlpbmcgdG8gYmUKCSAgdXNlZC4gVGhpcyBwYXRjaCB1c2VzIGEgZ2ludDY0IGluc3RlYWQgb2YgYSBnaW50IHRvIGRvIHRoZQoJICBwZXJjZW50YWdlIG1hdGgsIG1ha2luZyBpdCBoYXJkZXIgdG8gb3ZlcmZsb3cuCgoyMDA5LTExLTEwIDA5OjUyOjMwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4IHNtYWxsIGRvYyB0eXBvCgoyMDA5LTExLTEwIDAwOjU3OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogZml4IGNvbXBpbGF0aW9uIHdpdGggZGVidWdnaW5nIGRpc2FibGVkCgkgIEFkZCB1Z2x5IGlmZGVmIHRvIGZpeCB1bnVzZWQgdmFyaWFibGUgd2FybmluZyB3aGVuIGNvbXBpbGluZyB3aXRoCgkgIGRlYnVnIGxvZ2dpbmcgZGlzYWJsZWQuCgoyMDA5LTExLTA5IDE2OjIwOjUyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2RyYWZ0LWJ1ZmZlcnBvb2xzLnR4dDoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9kcmFmdC1yZWdpc3RyeS1jaGFuZ2UtaG9va3MudHh0OgoJICBwbGFubmluZzogYWRkIHRob3VnaHRzIGFib3V0IGZvcmVpZ24gcmVnaXN0cnkgY2FjaGUgdXBkYXRlcwoKMjAwOS0xMS0wOSAxNDo1NTo1NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgaW5zcGVjdDogYWxsb3cgdG8gZ2V0IHBsdWdpbi1pbnN0YWxsLWluZm8gZm9yIGFsbCBpbnN0YWxsZWQgcGx1Z2lucwoJICBJZiBubyBwbHVnaW4gaXMgZ2l2ZW4sIHByaW50IHRoZSBpbmZvIGZvciBhbGwgcGx1Z2lucy4gVGhpcyBjYW4gYmUgdXNlZCBhcyBhCgkgIHN0YXJ0aW5nIHBvaW50IHRvIGdlbmVyYXRlIGEgcHJvZmlsZSBhYm91dCB3aGF0IHRoZSBnc3RyZWFtZXIgaW5zdGFsbGF0aW9uIGNhbgoJICBwb3RlbnRpYWx5IGhhbmRsZSAoZS5nLiBmb3IgTVRQIG9yIERMTkEpLgoKMjAwOS0xMS0wOSAxMjo0MjozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSAgZG9jczogZG9uJ3QgZm9yZ2V0IHRvIHVucmVmIHRoZSBwYWQKCjIwMDktMTEtMDcgMjA6MjI6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiB3YWtlIHVwIGxlc3Mgb2Z0ZW4gdG8gY2hlY2sgaWYgd2UndmUgYmVlbiBpbnRlcnJ1cHRlZAoJICBDaGVjayBpZiB3ZSd2ZSBiZWVuIGludGVycnVwdGVkIG9ubHkgZm91ciB0aW1lcyBwZXIgc2Vjb25kIGluc3RlYWQKCSAgb2YgdHdlbnR5IHRpbWVzIHBlciBzZWNvbmQsIHRvIHdha2UgdXAgdGhlIGNwdSBsZXNzIG9mdGVuIGFuZAoJICBzYXZlIHBvd2VyIChzZWUgYnVnICM2MDA5MjIpLgoKMjAwOS0xMS0wNSAyMToxODoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGdzdGNvbmZpZy5oOiBhZGQgZGVmaW5lIHRvIGZvcmNlIHByaW50ZiBmb3JtYXQgY2hlY2tpbmcgZm9yIGRlYnVnIG1lc3NhZ2VzCgkgIEZvcmNlIHByaW50ZiBmb3JtYXQgY2hlY2tpbmcgZm9yIGRlYnVnIG1lc3NhZ2VzIGlmIEdTVF9ESVNBQkxFX1BSSU5URl9FWFRFTlNJT04KCSAgaXMgZGVmaW5lZC4gVGhpcyBpcyB1c2VmdWwgdG8gcXVpY2tseSBjaGVjayBjb2RlIGZvciBwcmludGYgZm9ybWF0IG1pc21hdGNoZXMKCSAgaW4gZGVidWdnaW5nIG1lc3NhZ2VzIHRoYXQgd291bGQgdXN1YWxseSBub3QgYmUgY2F1Z2h0ICh3aXRoIGdsaWJjK2djYyBhbmQKCSAgcHJpbnRmIGV4dGVuc2lvbnMgYmVpbmcgdXNlZCkuCgkgIFRvIHVzZTogbWFrZSBjbGVhbjsgbWFrZSBDRkxBR1M9Jy1nIC1PMiAtREdTVF9ESVNBQkxFX1BSSU5URl9FWFRFTlNJT04nCgoyMDA5LTExLTA1IDIxOjA5OjI4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IE1ha2Ugc3VyZSB3ZSB1c2UgdGhlIGxvY2FsIGxpYmdzdGJhc2UgYW5kIG5vdCBhIHN0cmF5IG91dHNpZGUgb25lLgoJICBUaGVvcmV0aWNhbGx5IHdlIHNob3VsZCBhbHNvIGRvIHRoaXMgZm9yIGFsbCBsb2NhbCBsaWJyYXJpZXMgdG8gbWFrZSBzdXJlCgkgIHdlIGRvbid0IHRlc3Qgd2l0aCBhICdzdHJheScgb3V0c2lkZSBsaWJyYXJ5LgoKMjAwOS0xMS0wNSAxODozNjozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZG9jczogZml4IHR5cG8KCjIwMDktMTEtMDUgMTU6NTk6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogYXZvaWQgbG9va2luZyB1cCBHc3RUYWdJbmZvIHR3aWNlIGluIGEgcm93CgkgIFBhc3MgdGhlIGluZm8gc3RydWN0dXJlIHRvIG91ciBpbnRlcm5hbCBmdW5jdGlvbiBpZiBhbHJlYWR5IGF2YWlsYWJsZS4KCSAgQWxzbyBjbGVhbiB1cCB3YXJuaW5ncyBmb3IgdW5rbm93biB0YWdzLgoKMjAwOS0xMS0wNSAxODo1NTozMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICBnc3RyZWdpc3RyeWNodW5rczogV2UncmUgY2VydGFpbiBwbHVnaW5fbmFtZSBpcyBhbiBpbnRlcm4gc3RyaW5nLgoJICBUaGUgb25seSBwbGFjZSB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgZnJvbSBjcmVhdGVzIHRoZSBwbHVnaW5fbmFtZSBhcmd1bWVudAoJICB3aXRoIGdfaW50ZXJuX3N0cmluZygpLgoJICBTaGF2ZXMgb2ZmIDElIGZyb20gcmVnaXN0cnkgbG9hZGluZy4KCjIwMDktMTEtMDQgMTk6MzM6NTggKzAwMDAgIEJhc3RpZW4gTm9jZXJhIDxoYWRlc3NAaGFkZXNzLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIGltcGxlbWVudCBidWZmZXJpbmctbGVmdCBhcmd1bWVudCB0byBidWZmZXIgbWVzc2FnZXMKCSAgVXNpbmcgdGhlIGN1cnJlbnQgZmlsbCBsZXZlbCBvZiB0aGUgcXVldWUsIGFuZCB0aGUgYXZlcmFnZSBpbnB1dAoJICByYXRlLCB3ZSBjYW4gZGV0ZXJtaW5lIGhvdyBsb25nIGl0IHdpbGwgdGFrZSB0byBmaW5pc2ggZG93bmxvYWRpbmcKCSAgdGhlIHdob2xlIHN0cmVhbSB0byB0aGUgdGVtcG9yYXJ5IGZpbGUuCgkgIEZpeGVzICM2MDA3MjYKCjIwMDktMTEtMDUgMTU6MTM6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMTEtMDUgMTQ6MDI6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGZpeCBsb2NraW5nCgoyMDA5LTExLTA1IDE0OjI5OjUwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGRvbid0IHJlbGVhc2UgbXV0ZXggdHdpY2UKCjIwMDktMTEtMDUgMTQ6Mjk6MTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogc2tpcCB0eXBlIGNoZWNrIGluIGludGVybmFsIGFwaQoKMjAwOS0xMS0wNSAxMjozNjoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBpbmRlbnRhdGlvbiBmaXgKCjIwMDktMTEtMDUgMTI6NTQ6MzIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogcmVuYW1lIG5ldyBhcGkgZnJvbSBfcmVmZWQgdG8gX3JlZmZlZC4KCSAgRHVlIHRvIHBvcHVsYXIgZGVtYW5kIHJlbmFtZSB0aGUgbmV3IGFwaSBhcyB3ZSBzdGlsbCBjYW4uCgkgIEFQSTogZ3N0X3BhZF9nZXRfY2Fwc19yZWZmZWQoKSwgZ3N0X3BhZF9wZWVyX2dldF9jYXBzX3JlZmZlZCgpCgoyMDA5LTExLTA0IDIyOjQyOjUyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBhY2Nlc3MgcGFkdGVtcGxhdGUgbGlzdCBkaXJlY3RseSB0byBhdm9pZCBjYWxsIGFuZCB0eXBlIGNoZWNrLgoKMjAwOS0xMS0wNCAxODo1ODoyNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IEFkZCBhIEZJWE1FIDAuMTEgZm9yIGhhdmluZyBmbHVzaCBldmVudHMgdGhhdCBkb24ndCByZXNldCBydW5uaW5nIHRpbWUKCjIwMDktMTEtMDQgMTc6NTI6MjEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogRml4IGEgcHJpbnRmIGNvbXBpbGUgd2FybmluZyBvbiA2NC1iaXQgcGxhdGZvcm1zCgoyMDA5LTExLTA0IDE3OjE1OjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogTWFrZSBzdXJlIHRoYXQgbm9ib2R5IHNldHMgdGhlIHByb3h5cGFkIG9yIGdob3N0cGFkIGl0c2VsZiBhcyB0YXJnZXQKCSAgRG9pbmcgdGhpcyB3aWxsIGxlYWQgdG8gdmVyeSBpbnRlcmVzdGluZyBjcmFzaGVzLCBsaWtlIHN0YWNrIG92ZXJmbG93cy4KCjIwMDktMTEtMDQgMTE6MzU6NDYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHBsdWdpbiBsb2FkZXI6IERvbid0IGZhaWwgYWZ0ZXIgYSBzaG9ydCByZWFkL3dyaXRlCgkgIFRoZSBsb2dpYyB0byBoYW5kbGUgc2hvcnQgcmVhZHMvd3JpdGVzIHdhcyBpbmNvcnJlY3QsIGNhdXNpbmcgdGhlCgkgIHBhY2tldCBoYW5kbGVyIHRvIGF0dGVtcHQgdG8gaGFuZGxlIGluY29tcGxldGUgcGFja2V0cy4KCSAgR3JvdyB0aGUgcGFja2V0IHRyYW5zbWl0IGJ1ZmZlciBpbiBwcm9wb3J0aW9uIHRvIG9ic2VydmVkIHVzYWdlLAoJICBjYXVzaW5nIGZld2VyIHJlYWxsb2NzLgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluIHRoZSByZWdpc3RyeSBjaHVua3MgY29kZS4KCjIwMDktMTEtMDQgMDE6NTE6MzggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2luIGxvYWRlcjogRG9uJ3QgY3Jhc2ggb24gYm9ndXMgcGx1Z2luIGRldGFpbHMKCSAgV2hlbiBpbnZhbGlkIHJlZ2lzdHJ5IGNodW5rcyBhcmUgcmVjZWl2ZWQgZnJvbSB0aGUgY2hpbGQsIGFuZCBwYXJzaW5nCgkgIGZhaWxzLCBkb24ndCBhY2Nlc3MgYW4gaW52YWxpZCBwbHVnaW4gcG9pbnRlci4gSW5zdGVhZCBhdHRlbXB0IHRvCgkgIGZpZ3VyZSBvdXQgd2hpY2ggcGx1Z2luIGNhdXNlZCB0aGUgcHJvYmxlbSBhbmQgYmxhY2tsaXN0IGl0LgoKMjAwOS0xMS0wNCAwMTo1NDozNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdG9vbHMvZ3N0LWluZGVudDoKCSAgZ3N0LWluZGVudDogVXNlIHRoZSBzYW1lIGxvZ2ljIHRvIGZpbmQgZ251aW5kZW50IGFzIHRoZSBnaXQgaG9vawoKMjAwOS0xMS0wMyAxNzozMDoxNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgYnVpbGQ6IGluY2x1ZGUgc3RkaW8uaCBmb3IgRklMRQoKMjAwOS0xMS0wMyAwMToxODo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGRvY3M6IGFkZCBhbm90aGVyIGV4YW1wbGUgdG8gdGhlIGdzdC1sYXVuY2ggbWFuIHBhZ2UKCSAgQWRkIGFuIGV4YW1wbGUgdGhhdCBzaG93cyBob3cgdG8gcmVmZXIgdG8gc3BlY2lmaWMgcGFkcyBieSBuYW1lCgkgIHdoZW4gY29uc3RydWN0aW5nIGEgcGlwZWxpbmUgc3RyaW5nLiBGaXhlcyAjNjAwMzgyLgoKMjAwOS0xMS0wMiAwODo0ODo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgZ3N0dHlwZWZpbmQ6IGF2b2lkIG9uZSBtb3JlIHJ1bi10aW1lIHR5cGUgY2hlY2sKCjIwMDktMTEtMDIgMDk6MjI6MzcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IEFQSTogQWRkIGdzdF9zdHJ1Y3R1cmVfaWRfaGFzX2ZpZWxkeyxfdHlwZWR9CgoyMDA5LTExLTAyIDA4OjI4OjIwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgIGdzdHR5cGVmaW5kOiBVc2UgX0NBU1QgdmFyaWFudHMgd2hlbiB0aGUgdHlwZSBoYXMgYWxyZWR5IGJlZW4gY2hlY2tlZC4KCSAgVGhpcyBhdm9pZHMgY2hlY2tpbmcgdGhlIHR5cGUgbl90eXBlZmluZGVycyAqIDQgdGltZXMgd2hlbiBsb2FkaW5nIHRoZQoJICByZWdpc3RyeS4KCjIwMDktMTEtMDEgMTE6MjQ6NDAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBJbXBsZW1lbnQgaXRlcmF0ZSBpbnRlcm5hbCBsaW5rcwoJICBUaGUgaW50ZXJuYWxseSBsaW5rZWQgcGFkIG9mIHRoZSBnaG9zdCBwYWQgaXMgaXRzCgkgIHByb3h5IHBhZCwgd2hpY2ggaXMgdGhlIHBhZCB0aGF0IGlzIGxpbmtlZCB0byB0aGUgZ2hvc3QKCSAgcGFkcyB0YXJnZXQuCgoyMDA5LTEwLTMxIDE2OjU2OjE3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlcjogTWFrZSBzdXJlIHRoYXQgc2lnbmFsIHVzZXIgZGF0YSBpcyBmcmVlZCBieSBzZXR0aW5nIGEgR0Nsb3N1cmVOb3RpZnkKCSAgLi4uaW5zdGVhZCBvZiB1c2luZyBhIHNlY29uZCBtZWNoYW5pc20gYW5kIHN0b3JpbmcgdGhlIHVzZXIgZGF0YQoJICBpbnNpZGUgdGhlIEdPYmplY3RzIHFkYXRhLgoKMjAwOS0xMC0zMSAxNjo0OTowMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZXI6IFVzZSBHU2xpY2UgZm9yIGFsbG9jYXRpbmcgdGhlIHN0cnVjdHMKCjIwMDktMTAtMzEgMTY6NDM6MjYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2VyOiBBbHdheXMgZ2V0IERlbGF5ZWRMaW5rIGluZm9ybWF0aW9uIGZyb20gdGhlIG9iamVjdHMgcWRhdGEKCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgaXQgaXMgYWx3YXlzIHZhbGlkLgoKMjAwOS0xMC0zMSAwOTo0ODoxOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBvL1BPVEZJTEVTLmluOgoJICBwbzogcXVldWUyIGhhcyBtb3ZlZCB0byBjb3JlCgoyMDA5LTEwLTI5IDExOjQxOjMzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSAgcXVldWUyOiBBZGQgdG8gdGhlIGRvY3MKCjIwMDktMTAtMjkgMTE6Mzg6MjEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBVc2UgIlF1ZXVlIDIiIGFzIGxvbmcgbmFtZQoKMjAwOS0xMC0yOSAxMTozNTowOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFVzZSBHU1RfQk9JTEVSUExBVEVfRlVMTCgpIGFuZCBhZGQgcGFkIHRlbXBsYXRlcy9zZXQgZGV0YWlscyBpbiBiYXNlX2luaXQKCjIwMDktMTAtMjkgMTE6MzA6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBVc2UgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlKCkKCjIwMDktMTAtMjkgMTE6MzA6MTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IEludGVncmF0ZSBpbnRvIGNvcmVwbHVnaW5zCgoyMDA5LTEwLTI5IDExOjIxOjM2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogTW92ZSBzdHJ1Y3QgZGVjbGFyYXRpb25zIHRvIGEgc2VwYXJhdGUgaGVhZGVyCgoyMDA5LTEwLTI5IDExOjE4OjIwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBNb3ZlIHF1ZXVlMiB0byBnc3RyZWFtZXIgY29yZXBsdWdpbnMKCSAgRml4ZXMgYnVnICM1OTk5OTYuCgoyMDA5LTEwLTI4IDAwOjU5OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgUmVtb3ZlIEdTVF9ERUJVR19GVU5DUFRSIHdoZXJlIHRoZXkncmUgcG9pbnRsZXNzCgkgIFRoZXJlJ3Mgbm90IG11Y2ggcG9pbnQgaW4gdXNpbmcgR1NUX0RFQlVHX0ZVTkNQVFIgd2l0aCBHT2JqZWN0CgkgIHZpcnR1YWwgZnVuY3Rpb25zIHN1Y2ggYXMgZ2V0X3Byb3BlcnR5LCBzZXRfcHJvcGVyeSwgZmluYWxpemUgYW5kCgkgIGRpc3Bvc2UsIHNpbmNlIHRoZXknbGwgbmV2ZXIgYmUgdXNlZCBieSBhbnlvbmUgYW55d2F5LiBTYXZlcyBhCgkgIGZldyBieXRlcyBhbmQgcG9zc2libHkgYSBzaXh0ZWVudGggb2YgYSBwb2xhciBiZWFyLgoKMjAwOS0xMC0yNyAxNToyMzowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgY3VzdG9tIGFjY2VwdGNhcHMgZnVuY3Rpb24KCjIwMDktMDgtMDYgMTI6MTg6MzYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHBvc3QgZXJyb3IgbWVzc2FnZSB3aGVuIHBhdXNpbmcgdGFzayBpZiBzbyBhcHByb3ByaWF0ZQoJICBJZiBhIGRvd25zdHJlYW0gZWxlbWVudCByZXR1cm5zIGFuIGVycm9yIHdoaWxlIHVwc3RyZWFtIGhhcyBhbHJlYWR5CgkgIHB1dCBhbGwgZGF0YSBpbnRvIHF1ZXVlMiAoaW5jbHVkaW5nIEVPUyksIHVwc3RyZWFtIHdpbGwgbm8gbG9uZ2VyCgkgIGNoYWluIGludG8gcXVldWUyLCBzbyBpdCBpcyB1cCB0byBxdWV1ZTIgdG8gcGVyZm9ybSBzb21lCgkgIEVPUyBoYW5kbGluZyAvIG1lc3NhZ2UgcG9zdGluZyBpbiBzdWNoIGNhc2VzLiAgU2VlICM1ODk5OTEuCgoyMDA5LTA3LTE0IDE3OjAzOjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBsZWFrIGFuZCBpbXByb3ZlIGJ1ZmZlcmluZwoJICBLZWVwIHRyYWNrIG9mIHRoZSBtYXggcmVxdWVzdGVkIHBvc2l0aW9uIGFuZCBjb21wYXJlIHRoaXMgdG8gdGhlIHdyaXRlIHBvc2l0aW9uCgkgIGluIHRoZSB0ZW1wIGZpbGUgdG8gZ2V0IHRoZSBjdXJyZW50IGFtb3VudCBvZiBidWZmZXJlZCBkYXRhLgoJICBGaXggbWVtbGVhayBvZiBhbGwgaW5jb21taW5nIGJ1ZmZlcnMuCgkgIEZpeGVzICM1ODg1NTEKCjIwMDktMDctMTAgMjE6MDE6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZmx1c2ggZGlmZmVyZW50bHksIGF2b2lkaW5nIGRlYWRsb2NrcwoJICBEb24ndCBmbHVzaCB0aGUgZmlsZSBieSBjbG9zaW5nIGFuZCBvcGVuaW5nIGl0IGJ1dCBpbnN0ZWFkIHVzZSBnX2ZyZW9wZW4uIFRoaXMKCSAgYXZvaWRzIGEgZGVhZGxvY2sgaW4gc2h1dGRvd24gYmVjYXVzZSB3ZSBlbWl0IHRoZSB0ZW1wLWxvY2F0aW9uIHByb3BlcnR5IGNoYW5nZQoJICB3aXRoIHRoZSB3cm9uZyBsb2NrIGhlbGQuCgoyMDA5LTA3LTEwIDE5OjQ5OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCB0ZW1wLXRlbXBsYXRlIHByb3BlcnR5CgkgIEFkZCBhIG5ldyB0ZW1wLXRlbXBsYXRlIHByb3BlcnR5IHNvIHRoYXQgcXVldWUyIGNhbiBzZWN1cmVseSBhbGxvY2F0ZSBhCgkgIHRlbXBvcmFyeSBmaWxlbmFtZS4gRGVwcmVjYXRlIHRoZSB0ZW1wLWxvY2F0aW9uIHByb3BlcnR5IGZvciBzZXR0aW5nIHRoZQoJICBsb2NhdGlvbiBidXQgc3RpbGwgdXNlIGl0IHRvIG5vdGlmeSB0aGUgYWxsb2NhdGVkIHRlbXAgZmlsZS4KCjIwMDktMDMtMjAgMTQ6MTc6MTkgKzAxMDAgIExSTiA8bHJuMTk4NiBhdCBnbWFpbCBkb3QgY29tPgoKCSogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICB3aW4zMjogZml4IHNlZWtpbmcgaW4gbGFyZ2UgZmlsZXMKCSAgRml4IFNlZWtpbmcgaW4gbGFyZ2UgZmlsZXMgYnkgdXNpbmcgdGhlIDY0LWJpdCBzZWVrIGZ1bmN0aW9ucy4KCSAgRml4ZXMgIzU3NjAxOQoKMjAwOC0wOC0wNyAxNTo1ODo1OCArMDAwMCAgRnJlZGVyaWMgQ3JvemF0IDxmY3JvemF0QG1hbmRyaXZhLm9yZz4KCgkgIE1ha2Ugc3VyZSBnZXR0ZXh0IHJldHVybnMgdHJhbnNsYXRpb25zIGluIFVURi04IGVuY29kaW5nIHJhdGhlciB0aGFuIGluIHRoZSBjdXJyZW50IGxvY2FsZSBlbmNvZGluZyAoIzU0NjgyMikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRnJlZGVyaWMgQ3JvemF0IDxmY3JvemF0QG1hbmRyaXZhLm9yZz4KCSAgKiBleHQvYWxzYS9nc3RhbHNhcGx1Z2luLmM6IChwbHVnaW5faW5pdCk6CgkgICogZXh0L2NkcGFyYW5vaWEvZ3N0Y2RwYXJhbm9pYXNyYy5jOiAocGx1Z2luX2luaXQpOgoJICAqIGV4dC9nbm9tZXZmcy9nc3Rnbm9tZXZmcy5jOiAocGx1Z2luX2luaXQpOgoJICAqIGV4dC9vZ2cvZ3N0b2dnZGVtdXguYzogKGdzdF9vZ2dfZGVtdXhfcGx1Z2luX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC9hdWRpby9nc3RiYXNlYXVkaW9zcmMuYzogKF9kb19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvcGJ1dGlscy9wYnV0aWxzLmM6IChnc3RfcGJfdXRpbHNfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L3RhZy90YWdzLmM6IChnc3RfdGFnX3JlZ2lzdGVyX3RhZ3NfaW50ZXJuYWwpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RkZWNvZGViaW4uYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0ZGVjb2RlYmluMi5jOiAoZ3N0X2RlY29kZV9iaW5fcGx1Z2luX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmFjay5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0dXJpZGVjb2RlYmluLmM6IChnc3RfdXJpX2RlY29kZV9iaW5fcGx1Z2luX2luaXQpOgoJICAqIHN5cy92NGwvZ3N0djRsLmM6IChwbHVnaW5faW5pdCk6CgkgIE1ha2Ugc3VyZSBnZXR0ZXh0IHJldHVybnMgdHJhbnNsYXRpb25zIGluIFVURi04IGVuY29kaW5nIHJhdGhlcgoJICB0aGFuIGluIHRoZSBjdXJyZW50IGxvY2FsZSBlbmNvZGluZyAoIzU0NjgyMikuCgoyMDA4LTA3LTEwIDIxOjA2OjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBDbGVhbnVwIFBsdWdpbiBkb2NzLiBMaW5rIHRvIHNpZ25hbHMgYW5kIHByb3BlcnRpZXMuIEZpeCBzdWItc2VjdGlvbiB0aXRsZXMuIERyb3AgbWVudGluaW5nIHRoYXQgYWxsIG91ciBleGFtcGxlIHBpcGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhc2UtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhc2UtcGx1Z2lucy1vdmVycmlkZXMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYXNlLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYXNlLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFzZS1wbHVnaW5zLmhpZXJhcmNoeToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFzZS1wbHVnaW5zLmludGVyZmFjZXM6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhc2UtcGx1Z2lucy5wcmVyZXF1aXNpdGVzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYXNlLXBsdWdpbnMuc2lnbmFsczoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWRkZXIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHNhLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9jb252ZXJ0LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9yYXRlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9yZXNhbXBsZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvdGVzdHNyYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNkcGFyYW5vaWEueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWNvZGViaW4ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mZm1wZWdjb2xvcnNwYWNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ25vbWV2ZnMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1saWJ2aXN1YWwueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vZ2cueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wYW5nby54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBsYXliYWNrLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcXVldWUyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3VicGFyc2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10Y3AueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10aGVvcmEueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10eXBlZmluZGZ1bmN0aW9ucy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVyaWRlY29kZWJpbi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9yYXRlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9zY2FsZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvdGVzdHNyYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZvbHVtZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZvcmJpcy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNpbmsueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14dmltYWdlc2luay54bWw6CgkgICogZXh0L2Fsc2EvZ3N0YWxzYW1peGVyLmM6CgkgICogZXh0L2Fsc2EvZ3N0YWxzYXNpbmsuYzoKCSAgKiBleHQvYWxzYS9nc3RhbHNhc3JjLmM6CgkgICogZXh0L2dpby9nc3RnaW9zaW5rLmM6CgkgICogZXh0L2dpby9nc3RnaW9zcmMuYzoKCSAgKiBleHQvZ2lvL2dzdGdpb3N0cmVhbXNpbmsuYzoKCSAgKiBleHQvZ2lvL2dzdGdpb3N0cmVhbXNyYy5jOgoJICAqIGV4dC9nbm9tZXZmcy9nc3Rnbm9tZXZmc3NpbmsuYzoKCSAgKiBleHQvZ25vbWV2ZnMvZ3N0Z25vbWV2ZnNzcmMuYzoKCSAgKiBleHQvb2dnL2dzdG9nZ2RlbXV4LmM6CgkgICogZXh0L29nZy9nc3RvZ2dtdXguYzoKCSAgKiBleHQvcGFuZ28vZ3N0Y2xvY2tvdmVybGF5LmM6CgkgICogZXh0L3BhbmdvL2dzdHRleHRvdmVybGF5LmM6CgkgICogZXh0L3BhbmdvL2dzdHRleHRyZW5kZXIuYzoKCSAgKiBleHQvcGFuZ28vZ3N0dGltZW92ZXJsYXkuYzoKCSAgKiBleHQvdGhlb3JhL3RoZW9yYWRlYy5jOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhZW5jLmM6CgkgICogZXh0L3RoZW9yYS90aGVvcmFwYXJzZS5jOgoJICAqIGV4dC92b3JiaXMvdm9yYmlzZGVjLmM6CgkgICogZXh0L3ZvcmJpcy92b3JiaXNlbmMuYzoKCSAgKiBleHQvdm9yYmlzL3ZvcmJpc3BhcnNlLmM6CgkgICogZXh0L3ZvcmJpcy92b3JiaXN0YWcuYzoKCSAgKiBnc3QvYWRkZXIvZ3N0YWRkZXIuYzoKCSAgKiBnc3QvYXVkaW9jb252ZXJ0L2dzdGF1ZGlvY29udmVydC5jOgoJICAqIGdzdC9hdWRpb3Jlc2FtcGxlL2dzdGF1ZGlvcmVzYW1wbGUuYzoKCSAgKiBnc3QvYXVkaW90ZXN0c3JjL2dzdGF1ZGlvdGVzdHNyYy5jOgoJICAqIGdzdC9mZm1wZWdjb2xvcnNwYWNlL2dzdGZmbXBlZ2NvbG9yc3BhY2UuYzoKCSAgKiBnc3QvZ2RwL2dzdGdkcGRlcGF5LmM6CgkgICogZ3N0L2dkcC9nc3RnZHBwYXkuYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0ZGVjb2RlYmluMi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmluLmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliaW4yLmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3R1cmlkZWNvZGViaW4uYzoKCSAgKiBnc3QvdGNwL2dzdG11bHRpZmRzaW5rLmM6CgkgICogZ3N0L3RjcC9nc3R0Y3BzZXJ2ZXJzaW5rLmM6CgkgICogZ3N0L3ZpZGVvcmF0ZS9nc3R2aWRlb3JhdGUuYzoKCSAgKiBnc3QvdmlkZW9zY2FsZS9nc3R2aWRlb3NjYWxlLmM6CgkgICogZ3N0L3ZpZGVvdGVzdHNyYy9nc3R2aWRlb3Rlc3RzcmMuYzoKCSAgKiBnc3Qvdm9sdW1lL2dzdHZvbHVtZS5jOgoJICAqIHN5cy94aW1hZ2UveGltYWdlc2luay5jOgoJICAqIHN5cy94dmltYWdlL3h2aW1hZ2VzaW5rLmM6CgkgIENsZWFudXAgUGx1Z2luIGRvY3MuIExpbmsgdG8gc2lnbmFscyBhbmQgcHJvcGVydGllcy4gRml4IHN1Yi1zZWN0aW9uCgkgIHRpdGxlcy4gRHJvcCBtZW50aW5pbmcgdGhhdCBhbGwgb3VyIGV4YW1wbGUgcGlwZWxpbmVzIGFyZSAic2ltcGxlIgoJICBwaXBlbGluZXMuCgoyMDA4LTA2LTI0IDE2OjIyOjQ1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IERvIG5vdCBkb3VibGUgbm90aWZ5LiBSZW1vdmUgdGhlIHVuc3VlZCByZXR1cm4gdmFsdWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgRG8gbm90IGRvdWJsZSBub3RpZnkuIFJlbW92ZSB0aGUgdW5zdWVkIHJldHVybiB2YWx1ZS4KCjIwMDgtMDQtMTEgMDE6MjU6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1rZXlmcmFtZS1mb3JjZS50eHQ6IEZpeCB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rZXlmcmFtZS1mb3JjZS50eHQ6CgkgIEZpeCB0eXBvLgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKHVwZGF0ZV9idWZmZXJpbmcpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpOgoJICBTZXQgYnVmZmVyaW5nIG1vZGUgaW4gdGhlIG1lc3NhZ2VzLgoJICBTZXQgYnVmZmVyaW5nIHBlcmNlbnQgaW4gdGhlIHF1ZXJ5LgoJICAqIHRlc3RzL2V4YW1wbGVzL3NlZWsvc2Vlay5jOiAodXBkYXRlX2ZpbGwpLCAobXNnX3N0YXRlX2NoYW5nZWQpLAoJICAoZG9fc3RyZWFtX2J1ZmZlcmluZyksIChkb19kb3dubG9hZF9idWZmZXJpbmcpLCAobXNnX2J1ZmZlcmluZyk6CgkgIERvIHNvbWUgbW9yZSBmYW5jeSB0aGluZ3MgYmFzZWQgb24gdGhlIGJ1ZmZlcmluZyBtZXRob2QgaW4gdXNlLgoKMjAwOC0wNC0wOSAyMTo0MDoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogSW5jbHVkZSBleHRyYSBidWZmZXJpbmcgc3RhdHMgaW4gdGhlIGJ1ZmZlcmluZyBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6ICh1cGRhdGVfYnVmZmVyaW5nKSwKCSAgKGdzdF9xdWV1ZV9jbG9zZV90ZW1wX2xvY2F0aW9uX2ZpbGUpLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpLAoJICAoZ3N0X3F1ZXVlX3NyY19jaGVja2dldHJhbmdlX2Z1bmN0aW9uKToKCSAgSW5jbHVkZSBleHRyYSBidWZmZXJpbmcgc3RhdHMgaW4gdGhlIGJ1ZmZlcmluZyBtZXNzYWdlLgoJICBJbXBsZW1lbnQgQlVGRkVSSU5HIHF1ZXJ5LgoJICAqIGdzdC9wbGF5YmFjay9nc3R1cmlkZWNvZGViaW4uYzogKGRvX2FzeW5jX3N0YXJ0KSwKCSAgKGRvX2FzeW5jX2RvbmUpLCAodHlwZV9mb3VuZCksIChzZXR1cF9zdHJlYW1pbmcpLCAoc2V0dXBfc291cmNlKSwKCSAgKGdzdF91cmlfZGVjb2RlX2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICBPbmx5IGFkZCBkZWNvZGViaW4yIHdoZW4gdGhlIHR5cGUgaXMgZm91bmQgaW4gc3RyZWFtaW5nIG1vZGUuCgkgIE1ha2UgdXJpZGVjb2RlYmluIGFzeW5jIHRvIFBBVVNFRCBldmVuIHdoZW4gd2UgZG9uJ3QgaGF2ZSBkZWNvZGViaW4yCgkgIGFkZGVkIHlldC4KCjIwMDgtMDQtMDIgMTE6MDg6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IFVwZGF0ZSB0aGUgZXN0aW1hdGVkIGlucHV0IGRhdGEgd2hlbiB3ZSBwdXNoIG91dCBhIGJ1ZmZlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAodXBkYXRlX291dF9yYXRlcyksCgkgIChnc3RfcXVldWVfb3Blbl90ZW1wX2xvY2F0aW9uX2ZpbGUpLAoJICAoZ3N0X3F1ZXVlX2Nsb3NlX3RlbXBfbG9jYXRpb25fZmlsZSksIChnc3RfcXVldWVfaGFuZGxlX3NyY19ldmVudCksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSksIChnc3RfcXVldWVfc2V0X3Byb3BlcnR5KToKCSAgVXBkYXRlIHRoZSBlc3RpbWF0ZWQgaW5wdXQgZGF0YSB3aGVuIHdlIHB1c2ggb3V0IGEgYnVmZmVyLgoJICBBZGQgc29tZSBkZWJ1ZyBpbmZvIGFib3V0IHRoZSB0ZW1wIGZpbGUuCgkgIE9ubHkgZm9yd2FyZCBzcmMgZXZlbnRzIHdoZW4gd2UgYXJlIG5vdCB1c2luZyBhIHRlbXAgZmlsZS4KCSAgRG9uJ3QgYmxvY2sgdGhlIGR1cmF0aW9uIHF1ZXJ5LCB3ZSBuZWVkIHRvIGZpbmQgc29tZXRoaW5nIGJldHRlci4KCSAgRG9uJ3QgbGVhayB0aGUgdGVtcCBmaWxlbmFtZS4KCjIwMDgtMDMtMjQgMTQ6MDg6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IFRoZSBxdWV1ZSBpcyBuZXZlciBmaWxsZWQgd2hlbiB0aGVyZSBhcmUgbm8gYnVmZmVycyBpbiB0aGUgcXVldWUgYXQgYWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfaXNfZmlsbGVkKToKCSAgVGhlIHF1ZXVlIGlzIG5ldmVyIGZpbGxlZCB3aGVuIHRoZXJlIGFyZSBubyBidWZmZXJzIGluIHRoZSBxdWV1ZSBhdCBhbGwuCgkgIEZpeGVzICM1MjM5OTMuCgoyMDA4LTAzLTIyIDE1OjAwOjUzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBVc2UgR19QQVJBTV9TVEFUSUNfU1RSSU5HUyBldmVyeXdoZXJlIGZvciBHUGFyYW1TcGVjcyB0aGF0IHVzZSBzdGF0aWMgc3RyaW5ncyAoaS5lLiBhbGwpLiBUaGlzIGdpdmVzIHVzIGxlc3MgbWVtb3J5IHUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGV4dC9hbHNhL2dzdGFsc2FtaXhlcmVsZW1lbnQuYzoKCSAgKGdzdF9hbHNhX21peGVyX2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICogZXh0L2Fsc2EvZ3N0YWxzYXNpbmsuYzogKGdzdF9hbHNhc2lua19jbGFzc19pbml0KToKCSAgKiBleHQvYWxzYS9nc3RhbHNhc3JjLmM6IChnc3RfYWxzYXNyY19jbGFzc19pbml0KToKCSAgKiBleHQvY2RwYXJhbm9pYS9nc3RjZHBhcmFub2lhc3JjLmM6CgkgIChnc3RfY2RfcGFyYW5vaWFfc3JjX2NsYXNzX2luaXQpOgoJICAqIGV4dC9naW8vZ3N0Z2lvc2luay5jOiAoZ3N0X2dpb19zaW5rX2NsYXNzX2luaXQpOgoJICAqIGV4dC9naW8vZ3N0Z2lvc3JjLmM6IChnc3RfZ2lvX3NyY19jbGFzc19pbml0KToKCSAgKiBleHQvZ2lvL2dzdGdpb3N0cmVhbXNpbmsuYzogKGdzdF9naW9fc3RyZWFtX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZXh0L2dpby9nc3RnaW9zdHJlYW1zcmMuYzogKGdzdF9naW9fc3RyZWFtX3NyY19jbGFzc19pbml0KToKCSAgKiBleHQvZ25vbWV2ZnMvZ3N0Z25vbWV2ZnNzaW5rLmM6IChnc3RfZ25vbWVfdmZzX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZXh0L2dub21ldmZzL2dzdGdub21ldmZzc3JjLmM6IChnc3RfZ25vbWVfdmZzX3NyY19jbGFzc19pbml0KToKCSAgKiBleHQvb2dnL2dzdG9nZ211eC5jOiAoZ3N0X29nZ19tdXhfY2xhc3NfaW5pdCk6CgkgICogZXh0L3BhbmdvL2dzdHRleHRvdmVybGF5LmM6IChnc3RfdGV4dF9vdmVybGF5X2NsYXNzX2luaXQpOgoJICAqIGV4dC9wYW5nby9nc3R0ZXh0cmVuZGVyLmM6IChnc3RfdGV4dF9yZW5kZXJfY2xhc3NfaW5pdCk6CgkgICogZXh0L3RoZW9yYS90aGVvcmFkZWMuYzogKGdzdF90aGVvcmFfZGVjX2NsYXNzX2luaXQpOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhZW5jLmM6IChnc3RfdGhlb3JhX2VuY19jbGFzc19pbml0KToKCSAgKiBleHQvdGhlb3JhL3RoZW9yYXBhcnNlLmM6IChnc3RfdGhlb3JhX3BhcnNlX2NsYXNzX2luaXQpOgoJICAqIGV4dC92b3JiaXMvdm9yYmlzZW5jLmM6IChnc3Rfdm9yYmlzX2VuY19jbGFzc19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvYXVkaW8vZ3N0YXVkaW9maWx0ZXJ0ZW1wbGF0ZS5jOgoJICAoZ3N0X2F1ZGlvX2ZpbHRlcl90ZW1wbGF0ZV9jbGFzc19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvYXVkaW8vZ3N0YmFzZWF1ZGlvc2luay5jOgoJICAoZ3N0X2Jhc2VfYXVkaW9fc2lua19jbGFzc19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvYXVkaW8vZ3N0YmFzZWF1ZGlvc3JjLmM6CgkgIChnc3RfYmFzZV9hdWRpb19zcmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L2NkZGEvZ3N0Y2RkYWJhc2VzcmMuYzoKCSAgKGdzdF9jZGRhX2Jhc2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC9pbnRlcmZhY2VzL21peGVydHJhY2suYzoKCSAgKGdzdF9taXhlcl90cmFja19jbGFzc19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvcnRwL2dzdGJhc2VydHBkZXBheWxvYWQuYzoKCSAgKGdzdF9iYXNlX3J0cF9kZXBheWxvYWRfY2xhc3NfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L3J0cC9nc3RiYXNlcnRwcGF5bG9hZC5jOgoJICAoZ3N0X2Jhc2VydHBwYXlsb2FkX2NsYXNzX2luaXQpOgoJICAqIGdzdC9hdWRpb2NvbnZlcnQvZ3N0YXVkaW9jb252ZXJ0LmM6CgkgIChnc3RfYXVkaW9fY29udmVydF9jbGFzc19pbml0KToKCSAgKiBnc3QvYXVkaW9yYXRlL2dzdGF1ZGlvcmF0ZS5jOiAoZ3N0X2F1ZGlvX3JhdGVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2F1ZGlvcmVzYW1wbGUvZ3N0YXVkaW9yZXNhbXBsZS5jOgoJICAoZ3N0X2F1ZGlvcmVzYW1wbGVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2F1ZGlvdGVzdHNyYy9nc3RhdWRpb3Rlc3RzcmMuYzoKCSAgKGdzdF9hdWRpb190ZXN0X3NyY19jbGFzc19pbml0KToKCSAgKiBnc3QvZ2RwL2dzdGdkcHBheS5jOiAoZ3N0X2dkcF9wYXlfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdGRlY29kZWJpbjIuYzogKGdzdF9kZWNvZGVfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmFzZWJpbi5jOiAoZ3N0X3BsYXlfYmFzZV9iaW5fY2xhc3NfaW5pdCksCgkgIChwcmVyb2xsX3VubGlua2VkKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJpbi5jOiAoZ3N0X3BsYXlfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmluMi5jOiAoZ3N0X3BsYXlfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5c2luay5jOiAoZ3N0X3BsYXlfc2lua19jbGFzc19pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHN0cmVhbWluZm8uYzogKGdzdF9zdHJlYW1faW5mb19jbGFzc19pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0c3RyZWFtc2VsZWN0b3IuYzogKGdzdF9zZWxlY3Rvcl9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3Rfc3RyZWFtX3NlbGVjdG9yX2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3R1cmlkZWNvZGViaW4uYzogKGdzdF91cmlfZGVjb2RlX2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3Qvc3VicGFyc2UvZ3N0c3VicGFyc2UuYzogKGdzdF9zdWJfcGFyc2VfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3RjcC9nc3RtdWx0aWZkc2luay5jOiAoZ3N0X211bHRpX2ZkX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3RjcC9nc3R0Y3BjbGllbnRzaW5rLmM6IChnc3RfdGNwX2NsaWVudF9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGdzdC90Y3AvZ3N0dGNwY2xpZW50c3JjLmM6IChnc3RfdGNwX2NsaWVudF9zcmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3RjcC9nc3R0Y3BzZXJ2ZXJzaW5rLmM6IChnc3RfdGNwX3NlcnZlcl9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGdzdC90Y3AvZ3N0dGNwc2VydmVyc3JjLmM6IChnc3RfdGNwX3NlcnZlcl9zcmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3ZpZGVvcmF0ZS9nc3R2aWRlb3JhdGUuYzogKGdzdF92aWRlb19yYXRlX2NsYXNzX2luaXQpOgoJICAqIGdzdC92aWRlb3NjYWxlL2dzdHZpZGVvc2NhbGUuYzogKGdzdF92aWRlb19zY2FsZV9jbGFzc19pbml0KToKCSAgKiBnc3QvdmlkZW90ZXN0c3JjL2dzdHZpZGVvdGVzdHNyYy5jOgoJICAoZ3N0X3ZpZGVvX3Rlc3Rfc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC92b2x1bWUvZ3N0dm9sdW1lLmM6IChnc3Rfdm9sdW1lX2NsYXNzX2luaXQpOgoJICAqIHN5cy92NGwvZ3N0djRsZWxlbWVudC5jOiAoZ3N0X3Y0bGVsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICogc3lzL3Y0bC9nc3R2NGxtanBlZ3NpbmsuYzogKGdzdF92NGxtanBlZ3NpbmtfY2xhc3NfaW5pdCk6CgkgICogc3lzL3Y0bC9nc3R2NGxtanBlZ3NyYy5jOiAoZ3N0X3Y0bG1qcGVnc3JjX2NsYXNzX2luaXQpOgoJICAqIHN5cy92NGwvZ3N0djRsc3JjLmM6IChnc3RfdjRsc3JjX2NsYXNzX2luaXQpOgoJICAqIHN5cy94aW1hZ2UveGltYWdlc2luay5jOiAoZ3N0X3hpbWFnZXNpbmtfY2xhc3NfaW5pdCk6CgkgICogc3lzL3h2aW1hZ2UveHZpbWFnZXNpbmsuYzogKGdzdF94dmltYWdlc2lua19jbGFzc19pbml0KToKCSAgVXNlIEdfUEFSQU1fU1RBVElDX1NUUklOR1MgZXZlcnl3aGVyZSBmb3IgR1BhcmFtU3BlY3MgdGhhdCB1c2UKCSAgc3RhdGljIHN0cmluZ3MgKGkuZS4gYWxsKS4gVGhpcyBnaXZlcyB1cyBsZXNzIG1lbW9yeSB1c2FnZSwKCSAgZmV3ZXIgYWxsb2NhdGlvbnMgYW5kIHRodXMgbGVzcyBtZW1vcnkgZGVmcmFnbWVudGF0aW9uLiBEZXBlbmQKCSAgb24gY29yZSBDVlMgZm9yIHRoaXMuIEZpeGVzIGJ1ZyAjNTIzODA2LgoKMjAwNy0xMi0xNCAxODo0NjoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogVXNlIHNlcGFyYXRlIHRpbWVycyBmb3IgaW5wdXQgYW5kIG91dHB1dCByYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2luaXQpLCAoZ3N0X3F1ZXVlX2ZpbmFsaXplKSwKCSAgKHJlc2V0X3JhdGVfdGltZXIpLCAodXBkYXRlX2luX3JhdGVzKSwgKHVwZGF0ZV9vdXRfcmF0ZXMpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSksCgkgIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX2xvb3ApOgoJICBVc2Ugc2VwYXJhdGUgdGltZXJzIGZvciBpbnB1dCBhbmQgb3V0cHV0IHJhdGVzLgoJICBQYXVzZSBtZWFzdXJpbmcgdGhlIG91dHB1dCByYXRlIHdoZW4gd2UgYmxvY2sgZm9yIG1vcmUgZGF0YS4KCSAgU2VlICM1MDMyNjIuCgoyMDA3LTEyLTE0IDA5OjI0OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBQYXVzZSB0aGUgdGltZXIgdG8gbWVhc3VyZSB0aGUgaW5wdXQgcmF0ZSB3aGVuIHdlIGJsb2NrIGJlY2F1c2UgdGhlIHF1ZXVlIGlzIGZpbGxlZC4gU2VlICM1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9jaGFpbik6CgkgIFBhdXNlIHRoZSB0aW1lciB0byBtZWFzdXJlIHRoZSBpbnB1dCByYXRlIHdoZW4gd2UgYmxvY2sgYmVjYXVzZSB0aGUKCSAgcXVldWUgaXMgZmlsbGVkLiBTZWUgIzUwMzI2Mi4KCjIwMDctMTEtMzAgMTc6NDc6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svOiBSZWZhY3RvciBzb21lIGNvbW1vbiBjb2RlIHRvIGZpbHRlciBmYWN0b3JpZXMgYW5kIGNoZWNrIGNhcHMgY29tcGF0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svTWFrZWZpbGUuYW06CgkgICogZ3N0L3BsYXliYWNrL2dzdGZhY3RvcnlsaXN0cy5jOiAoY29tcGFyZV9yYW5rcyksIChwcmludF9mZWF0dXJlKSwKCSAgKGdldF9mZWF0dXJlX2FycmF5KSwgKGRlY29kZXJzX2ZpbHRlciksIChzaW5rc19maWx0ZXIpLAoJICAoZ3N0X2ZhY3RvcnlfbGlzdF9nZXRfZGVjb2RlcnMpLCAoZ3N0X2ZhY3RvcnlfbGlzdF9nZXRfc2lua3MpLAoJICAoZ3N0X2ZhY3RvcnlfbGlzdF9maWx0ZXIpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RmYWN0b3J5bGlzdHMuaDoKCSAgUmVmYWN0b3Igc29tZSBjb21tb24gY29kZSB0byBmaWx0ZXIgZmFjdG9yaWVzIGFuZCBjaGVjayBjYXBzIGNvbXBhdC4KCSAgKiBnc3QvcGxheWJhY2svZ3N0ZGVjb2RlYmluLmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdGRlY29kZWJpbjIuYzogKGdzdF9kZWNvZGVfYmluX2NsYXNzX2luaXQpLAoJICAoZ3N0X2RlY29kZV9iaW5faW5pdCksIChnc3RfZGVjb2RlX2Jpbl9kaXNwb3NlKSwKCSAgKGdzdF9kZWNvZGVfYmluX2F1dG9wbHVnX2NvbnRpbnVlKSwKCSAgKGdzdF9kZWNvZGVfYmluX2F1dG9wbHVnX2ZhY3RvcmllcyksCgkgIChnc3RfZGVjb2RlX2Jpbl9hdXRvcGx1Z19zZWxlY3QpLCAoYW5hbHl6ZV9uZXdfcGFkKSwKCSAgKGZpbmRfY29tcGF0aWJsZXMpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmluLmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliaW4yLmM6IChnc3RfcGxheV9iaW5fY2xhc3NfaW5pdCksCgkgIChnc3RfcGxheV9iaW5faW5pdCksIChnc3RfcGxheV9iaW5fZmluYWxpemUpLAoJICAoYXV0b3BsdWdfZmFjdG9yaWVzX2NiKSwgKGFjdGl2YXRlX2dyb3VwKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHVyaWRlY29kZWJpbi5jOiAocHJveHlfdW5rbm93bl90eXBlX3NpZ25hbCksCgkgIChwcm94eV9hdXRvcGx1Z19jb250aW51ZV9zaWduYWwpLAoJICAocHJveHlfYXV0b3BsdWdfZmFjdG9yaWVzX3NpZ25hbCksIChwcm94eV9hdXRvcGx1Z19zZWxlY3Rfc2lnbmFsKSwKCSAgKHByb3h5X2RyYWluZWRfc2lnbmFsKToKCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvIGFuZCB1c2UgZmFjdG9yIGZpbHRlcmluZyBjb2RlLgoKMjAwNy0xMS0xNiAxNTo0NDo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay86IEFkZCBwbGF5YmluMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmFjay5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay90ZXN0Ny5jOiAodXBkYXRlX3NjYWxlKSwgKHdhcm5pbmdfY2IpLCAoZXJyb3JfY2IpLAoJICAoZW9zX2NiKSwgKGFib3V0X3RvX2ZpbmlzaF9jYiksIChtYWluKToKCSAgQWRkIHBsYXliaW4yLgoJICBBZGRlZCBnYXBsZXNzIHBsYXliYWNrIGV4YW1wbGUuCgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliYXNlYmluLmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliYXNlYmluLmg6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliaW4uYzogKGdzdF9wbGF5X2Jpbl9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICAqIGdzdC9wbGF5YmFjay90ZXN0LmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHVyaWRlY29kZWJpbi5jOiAoZ3N0X3VyaV9kZWNvZGVfYmluX2NsYXNzX2luaXQpLAoJICAocGFkX3JlbW92ZWRfY2IpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RzdHJlYW1pbmZvLmg6CgkgIENoYW5nZSBlbWFpbC4KCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJpbjIuYzogKGdzdF9wbGF5X2Jpbl9nZXRfdHlwZSksCgkgIChnc3RfcGxheV9iaW5fY2xhc3NfaW5pdCksIChpbml0X2dyb3VwKSwgKGdzdF9wbGF5X2Jpbl9pbml0KSwKCSAgKGdzdF9wbGF5X2Jpbl9kaXNwb3NlKSwgKGdzdF9wbGF5X2Jpbl9zZXRfdXJpKSwKCSAgKGdzdF9wbGF5X2Jpbl9zZXRfc3VidXJpKSwgKGdzdF9wbGF5X2Jpbl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3BsYXlfYmluX2dldF9wcm9wZXJ0eSksIChnc3RfcGxheV9iaW5faGFuZGxlX21lc3NhZ2UpLAoJICAocGFkX2FkZGVkX2NiKSwgKHBhZF9yZW1vdmVkX2NiKSwgKG5vX21vcmVfcGFkc19jYiksIChwZXJmb3JtX2VvcyksCgkgIChkcmFpbmVkX2NiKSwgKHVubGlua19ncm91cCksIChhY3RpdmF0ZV9ncm91cCksCgkgIChzZXR1cF9uZXh0X3NvdXJjZSksIChnc3RfcGxheV9iaW5fY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9wbGF5X2JpbjJfcGx1Z2luX2luaXQpOgoJICBBZGRlZCByYXcgZmlyc3QgdmVyc2lvbiBvZiBwbGF5YmluMi4gRG9lcyBjaGFpbmVkIG9nZ3MgYW5kIGdhcGxlc3MKCSAgcGxheWJhY2sgZmluZS4gTm8gc3VwcG9ydCBmb3IgcmF3IHNpbmtzIHlldC4gTm8gdmlzdWFsaXNhdGlvbnMgb3IKCSAgc3VidGl0bGVzIHlldC4KCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheXNpbmsuYzogKGdzdF9wbGF5X3NpbmtfZ2V0X3R5cGUpLAoJICAoZ3N0X3BsYXlfc2lua19jbGFzc19pbml0KSwgKGdzdF9wbGF5X3NpbmtfaW5pdCksCgkgIChnc3RfcGxheV9zaW5rX2Rpc3Bvc2UpLCAoZ3N0X3BsYXlfc2lua192aXNfdW5ibG9ja2VkKSwKCSAgKGdzdF9wbGF5X3NpbmtfdmlzX2Jsb2NrZWQpLCAoZ3N0X3BsYXlfc2lua19zZXRfdmlkZW9fc2luayksCgkgIChnc3RfcGxheV9zaW5rX3NldF9hdWRpb19zaW5rKSwgKGdzdF9wbGF5X3Npbmtfc2V0X3Zpc19wbHVnaW4pLAoJICAoZ3N0X3BsYXlfc2lua19zZXRfcHJvcGVydHkpLCAoZ3N0X3BsYXlfc2lua19nZXRfcHJvcGVydHkpLAoJICAocG9zdF9taXNzaW5nX2VsZW1lbnRfbWVzc2FnZSksIChmcmVlX2NoYWluKSwgKGFkZF9jaGFpbiksCgkgIChhY3RpdmF0ZV9jaGFpbiksIChnZW5fdmlkZW9fY2hhaW4pLCAoZ2VuX3RleHRfZWxlbWVudCksCgkgIChnZW5fYXVkaW9fY2hhaW4pLCAoZ2VuX3Zpc19lbGVtZW50KSwgKGdzdF9wbGF5X3NpbmtfZ2V0X21vZGUpLAoJICAoZ3N0X3BsYXlfc2lua19zZXRfbW9kZSksIChnc3RfcGxheV9zaW5rX3JlcXVlc3RfcGFkKSwKCSAgKGdzdF9wbGF5X3NpbmtfcmVsZWFzZV9wYWQpLCAoZ3N0X3BsYXlfc2lua19zZW5kX2V2ZW50X3RvX3NpbmspLAoJICAoZ3N0X3BsYXlfc2lua19zZW5kX2V2ZW50KSwgKGdzdF9wbGF5X3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheXNpbmsuaDoKCSAgQWRkZWQgRWxlbWVudCB0aGF0IGFic3RyYWN0cyB0aGUgc2lua3MgYW5kIHRoZWlyIHBpcGVsaW5lcyBmb3IgcGxheWJpbjIuCgoyMDA3LTEwLTE1IDExOjM4OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBGaXggcXVldWUgbmVnb3RpYXRpb24uIFNlZSAjNDg2NzU4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfaW5pdCksIChnc3RfcXVldWVfcHVzaF9vbmUpOgoJICBGaXggcXVldWUgbmVnb3RpYXRpb24uIFNlZSAjNDg2NzU4LgoKMjAwNy0wOS0yMSAxNDozNzoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogRml4IGNvbXBpbGF0aW9uIHdydCBwcmludGYgYXJndW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfcHVzaF9vbmUpOgoJICBGaXggY29tcGlsYXRpb24gd3J0IHByaW50ZiBhcmd1bWVudHMuCgoyMDA3LTA5LTE3IDE3OjI0OjU1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEZpeCBhIGJ1bmNoIG9mIGNvbXBpbGUgd2FybmluZ3Mgc2hvd24gd2l0aCBGb3J0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3BhbmdvL2dzdHRleHRvdmVybGF5LmM6IChnc3RfdGV4dF9vdmVybGF5X2luaXQpLAoJICAoZ3N0X3RleHRfb3ZlcmxheV9zZXRfcHJvcGVydHkpOgoJICAqIGV4dC92b3JiaXMvdm9yYmlzZGVjLmM6ICh2b3JiaXNfaGFuZGxlX2RhdGFfcGFja2V0KToKCSAgKiBnc3QtbGlicy9nc3QvYXVkaW8vZ3N0YmFzZWF1ZGlvc2luay5jOgoJICAoZ3N0X2Jhc2VfYXVkaW9fc2lua19yZW5kZXIpOgoJICAqIGdzdC1saWJzL2dzdC9ydHAvZ3N0cnRjcGJ1ZmZlci5jOiAoZ3N0X3J0Y3BfbnRwX3RvX3VuaXgpLAoJICAoZ3N0X3J0Y3BfdW5peF90b19udHApOgoJICAqIGdzdC1saWJzL2dzdC9ydHNwL2dzdHJ0c3BtZXNzYWdlLmM6IChnc3RfcnRzcF9tZXNzYWdlX2dldF90eXBlKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgICogdGVzdHMvZXhhbXBsZXMvc2Vlay9zZWVrLmM6IChzZXRfc2NhbGUpOgoJICBGaXggYSBidW5jaCBvZiBjb21waWxlIHdhcm5pbmdzIHNob3duIHdpdGggRm9ydGUuCgkgICogZ3N0L2F1ZGlvcmF0ZS9nc3RhdWRpb3JhdGUuYzoKCSAgQWx3YXlzIHB1bGwgaW4gY29uZmlnLmggYmVmb3JlIGluY2x1ZGluZyBhbnkgc3lzdGVtIGhlYWRlcnMuCgoyMDA3LTA5LTE3IDE2OjIyOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBBbHNvIGZpeCAjNDc2NTE0IGZvciBxdWV1ZTIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKHVwZGF0ZV9idWZmZXJpbmcpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9mbHVzaCksIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfcHVzaF9vbmUpLCAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdWxsKToKCSAgQWxzbyBmaXggIzQ3NjUxNCBmb3IgcXVldWUyLgoKMjAwNy0wOC0xMCAxMDowODowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IFByaW50ZiBmb3JtYXQgZml4ZXMgKCM0NjUwMjgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgICogZ3N0L3ZpZGVvcmF0ZS9nc3R2aWRlb3JhdGUuYzoKCSAgUHJpbnRmIGZvcm1hdCBmaXhlcyAoIzQ2NTAyOCkuCgoyMDA3LTA2LTI4IDExOjA2OjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBVc2Ugb3RoZXIgbWV0cmljcyBhcyB3ZWxsIHdoZW4gZXN0aW1hdGluZyB0aGUgYnVmZmVyIGxldmVsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChhcHBseV9zZWdtZW50KSwgKHVwZGF0ZV9idWZmZXJpbmcpOgoJICBVc2Ugb3RoZXIgbWV0cmljcyBhcyB3ZWxsIHdoZW4gZXN0aW1hdGluZyB0aGUgYnVmZmVyIGxldmVsLgoKMjAwNy0wNi0yOCAxMDoyMToxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RwbGF5YmFzZWJpbi5jOiBTbWFsbCBkZWJ1ZyBpbXByb3ZlbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliYXNlYmluLmM6IChtYWtlX2RlY29kZXIpLCAoc2V0dXBfc291cmNlKToKCSAgU21hbGwgZGVidWcgaW1wcm92ZW1lbnQuCgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoYXBwbHlfc2VnbWVudCksICh1cGRhdGVfYnVmZmVyaW5nKSwKCSAgKHBsdWdpbl9pbml0KToKCSAgVHdlYWsgdGhlIHJhdGUgZXN0aW1hdGlvbiBwZXJpb2QuCgkgIFdoZW4gY2FsY3VsYXRpbmcgdGhlIGJ1ZmZlciBmaWxsZWRuZXNzIGluIHJhdGUgZXN0aW1hdGlvbiBtb2RlLCBkb24ndAoJICBtaXggaXQgd2l0aCBvdGhlciBtZXRyaWNzLgoKMjAwNy0wNi0xNiAwMzo0MjoxNCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEZpeCBjb21waWxlIGVycm9yIGZyb20gaWdub3JlZCByZXR1cm4gdmFsdWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgRml4IGNvbXBpbGUgZXJyb3IgZnJvbSBpZ25vcmVkIHJldHVybiB2YWx1ZS4KCjIwMDctMDYtMTMgMTg6MjA6NTcgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEZpeCBidWlsZCBvbiBNYWNPU1guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9jcmVhdGVfcmVhZCk6CgkgIEZpeCBidWlsZCBvbiBNYWNPU1guCgoyMDA3LTA2LTEyIDA4OjM4OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBGaXggYSBkaXZpc2lvbiBieSB6ZXJvIHdoZW4gdGhlIG1heCBwZXJjZW50IGlzIDw9IDAuIEZpeGVzICM0NDY1NzIuIGFsc28gdXBkYXRlIHRoZSBidWZmZXJpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaGVzIGJ5OiBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc2FudG9zIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAodXBkYXRlX2J1ZmZlcmluZyksCgkgIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpOgoJICBGaXggYSBkaXZpc2lvbiBieSB6ZXJvIHdoZW4gdGhlIG1heCBwZXJjZW50IGlzIDw9IDAuIEZpeGVzICM0NDY1NzIuCgkgIGFsc28gdXBkYXRlIHRoZSBidWZmZXJpbmcgc3RhdHVzIHdoZW4gcmVjZWl2aW5nIGV2ZW50cy4gRml4ZXMgIzQ0NjU1MS4KCjIwMDctMDYtMTEgMTE6MzI6MjYgKzAwMDAgIFRoaWFnbyBTb3VzYSBTYW50b3MgPHRoaWFnb3NzYW50b3NAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBXYWl0IGZvciBwcmVyb2xsIGJlZm9yZSBhdHRlbXB0aW5nIHRvIGZvcndhcmQgYSBkdXJhdGlvbiBxdWVyeSB1cHN0cmVhbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc2FudG9zIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX3BlZXJfcXVlcnkpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpOgoJICBXYWl0IGZvciBwcmVyb2xsIGJlZm9yZSBhdHRlbXB0aW5nIHRvIGZvcndhcmQgYSBkdXJhdGlvbiBxdWVyeSB1cHN0cmVhbS4KCSAgRml4ZXMgIzQ0NTUwNS4KCjIwMDctMDYtMDcgMDk6MTE6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEZpeCBjb21waWxhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2dldF9yYW5nZSk6CgkgIEZpeCBjb21waWxhdGlvbi4KCjIwMDctMDYtMDYgMTM6MzY6MjYgKzAwMDAgIFRoaWFnbyBTb3VzYSBTYW50b3MgPHRoaWFnb3NzYW50b3NAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBBZGQgcHVsbCBiYXNlZCBzY2hlZHVsaW5nIGFuZCBmaXggc29tZSBkZWFkbG9ja3MuIEZpeGVzICM0NDQ1MjMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVGhpYWdvIFNvdXNhIFNhbnRvcyA8dGhpYWdvc3NhbnRvcyBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9pbml0KSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX2dldF9yYW5nZSksIChnc3RfcXVldWVfc3JjX2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pLAoJICAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdWxsKToKCSAgQWRkIHB1bGwgYmFzZWQgc2NoZWR1bGluZyBhbmQgZml4IHNvbWUgZGVhZGxvY2tzLiBGaXhlcyAjNDQ0NTIzLgoJICBEb2VzIG5vdCB5ZXQgY29tcGxldGVseSB3b3JrIGJlY2F1c2UgZHVyYXRpb24gcXVlcmllcyB1cHN0cmVhbSB3b24ndAoJICBibG9jayB5ZXQuCgoyMDA3LTA2LTA2IDA5OjA4OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU29tZSBtb3JlIGZzZWVrbyBjaGVja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfY3JlYXRlX3JlYWQpOgoJICBTb21lIG1vcmUgZnNlZWtvIGNoZWNrcy4KCjIwMDctMDYtMDUgMTc6MDI6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEluY2x1ZGUgc3RkaW8gdG8gZGVmaW5lIGZzZWVrby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2hhdmVfZGF0YSksCgkgIChnc3RfcXVldWVfY3JlYXRlX3JlYWQpLCAoZ3N0X3F1ZXVlX3JlYWRfaXRlbV9mcm9tX2ZpbGUpLAoJICAoZ3N0X3F1ZXVlX29wZW5fdGVtcF9sb2NhdGlvbl9maWxlKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSk6CgkgIEluY2x1ZGUgc3RkaW8gdG8gZGVmaW5lIGZzZWVrby4KCjIwMDctMDYtMDUgMTY6MTQ6MjMgKzAwMDAgIFRoaWFnbyBTb3VzYSBTYW50b3MgPHRoaWFnb3NzYW50b3NAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBBZGQgc3VwcG9ydCBmb3IgZmlsZWJhc2VkIGJ1ZmZlcmluZy4gRml4ZXMgIzQ0MTI2NC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc2FudG9zIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2luaXQpLCAoZ3N0X3F1ZXVlX2ZpbmFsaXplKSwKCSAgKGdzdF9xdWV1ZV93cml0ZV9idWZmZXJfdG9fZmlsZSksIChnc3RfcXVldWVfaGF2ZV9kYXRhKSwKCSAgKGdzdF9xdWV1ZV9jcmVhdGVfcmVhZCksIChnc3RfcXVldWVfcmVhZF9pdGVtX2Zyb21fZmlsZSksCgkgIChnc3RfcXVldWVfb3Blbl90ZW1wX2xvY2F0aW9uX2ZpbGUpLAoJICAoZ3N0X3F1ZXVlX2Nsb3NlX3RlbXBfbG9jYXRpb25fZmlsZSksIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSksIChnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUpLAoJICAoZ3N0X3F1ZXVlX2lzX2VtcHR5KSwgKGdzdF9xdWV1ZV9pc19maWxsZWQpLAoJICAoZ3N0X3F1ZXVlX2NoYW5nZV9zdGF0ZSksIChnc3RfcXVldWVfc2V0X3RlbXBfbG9jYXRpb24pLAoJICAoZ3N0X3F1ZXVlX3NldF9wcm9wZXJ0eSk6CgkgIEFkZCBzdXBwb3J0IGZvciBmaWxlYmFzZWQgYnVmZmVyaW5nLiBGaXhlcyAjNDQxMjY0LgoKMjAwNy0wNS0xNyAxNToyMjo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogVHdlYWsgdGhlIGJ1ZmZlcmluZyB0aHJlc2hvbGRzIGEgbGl0dGxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6ICh1cGRhdGVfcmF0ZXMpOgoJICBUd2VhayB0aGUgYnVmZmVyaW5nIHRocmVzaG9sZHMgYSBsaXR0bGUuCgkgIFVwZGF0ZSB0aGUgYnVmZmVyIHNpemUgd2l0aCB0aGUgcHJldmlvdXNseSBjYWxjdWxhdGUgcmF0ZSBpbnN0ZWFkIG9mCgkgIG9ubHkgd2hlbiB3ZSBjYWxjdWxhdGUgYSBuZXcgcmF0ZSBzbyB0aGF0IHdlIGdldCBzbW9vdGhlciBidWZmZXJpbmcKCSAgdXBkYXRlcy4KCSAgKiBnc3QvcGxheWJhY2svTWFrZWZpbGUuYW06CgkgICogZ3N0L3BsYXliYWNrL2dzdHVyaWRlY29kZWJpbi5jOiAoZ3N0X3VyaV9kZWNvZGVfYmluX2Jhc2VfaW5pdCksCgkgIChnc3RfdXJpX2RlY29kZV9iaW5fY2xhc3NfaW5pdCksIChnc3RfdXJpX2RlY29kZV9iaW5faW5pdCksCgkgIChnc3RfdXJpX2RlY29kZV9iaW5fZmluYWxpemUpLCAoZ3N0X3VyaV9kZWNvZGVfYmluX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfdXJpX2RlY29kZV9iaW5fZ2V0X3Byb3BlcnR5KSwgKHVua25vd25fdHlwZSksCgkgIChhZGRfZWxlbWVudF9zdHJlYW0pLCAobm9fbW9yZV9wYWRzX2Z1bGwpLCAobm9fbW9yZV9wYWRzKSwKCSAgKHNvdXJjZV9ub19tb3JlX3BhZHMpLCAobmV3X2RlY29kZWRfcGFkKSwgKGFycmF5X2hhc192YWx1ZSksCgkgIChnZW5fc291cmNlX2VsZW1lbnQpLCAoaGFzX2FsbF9yYXdfY2FwcyksIChhbmFseXNlX3NvdXJjZSksCgkgIChyZW1vdmVfZGVjb2RlcnMpLCAobWFrZV9kZWNvZGVyKSwgKHJlbW92ZV9zb3VyY2UpLAoJICAoc291cmNlX25ld19wYWQpLCAoc2V0dXBfc291cmNlKSwgKGRlY29kZXJfcXVlcnlfaW5pdCksCgkgIChkZWNvZGVyX3F1ZXJ5X2R1cmF0aW9uX2ZvbGQpLCAoZGVjb2Rlcl9xdWVyeV9kdXJhdGlvbl9kb25lKSwKCSAgKGRlY29kZXJfcXVlcnlfcG9zaXRpb25fZm9sZCksIChkZWNvZGVyX3F1ZXJ5X3Bvc2l0aW9uX2RvbmUpLAoJICAoZGVjb2Rlcl9xdWVyeV9sYXRlbmN5X2ZvbGQpLCAoZGVjb2Rlcl9xdWVyeV9sYXRlbmN5X2RvbmUpLAoJICAoZGVjb2Rlcl9xdWVyeV9zZWVraW5nX2ZvbGQpLCAoZGVjb2Rlcl9xdWVyeV9zZWVraW5nX2RvbmUpLAoJICAoZGVjb2Rlcl9xdWVyeV9nZW5lcmljX2ZvbGQpLCAoZ3N0X3VyaV9kZWNvZGVfYmluX3F1ZXJ5KSwKCSAgKGdzdF91cmlfZGVjb2RlX2Jpbl9jaGFuZ2Vfc3RhdGUpLCAocGx1Z2luX2luaXQpOgoJICBOZXcgZWxlbWVudCB0aGF0IGludGVyZ3JhdGVzIGEgc291cmNlLCBvcHRpb25hbCBidWZmZXJpbmcgZWxlbWVudCBhbmQKCSAgZGVjb2RlYmluLgoKMjAwNy0wNS0xNyAxMzozNjoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogZml4IGJ1aWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfZ2V0X3R5cGUpLAoJICAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpLCAoZ3N0X3F1ZXVlX2ZpbmFsaXplKSwgKHVwZGF0ZV90aW1lX2xldmVsKSwKCSAgKGFwcGx5X3NlZ21lbnQpLCAoYXBwbHlfYnVmZmVyKSwgKHVwZGF0ZV9idWZmZXJpbmcpLAoJICAocmVzZXRfcmF0ZV90aW1lciksICh1cGRhdGVfcmF0ZXMpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9mbHVzaCksCgkgIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfaXNfZmlsbGVkKSwKCSAgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfcHVzaF9vbmUpLCAoZ3N0X3F1ZXVlX2xvb3ApLAoJICAocGx1Z2luX2luaXQpOgoJICBmaXggYnVpbGQuCgoyMDA3LTA1LTE3IDExOjU3OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrLzogT24gb3VyIHdheSB0byBwbGF5YmluMiB0aGlzIGlzIHRoZSBuZXcgbmV0d29yayBxdWV1ZSB0aGF0IGRvZXMgYnVmZmVyaW5nIGFsbCBieSBpdHNlbGYgdXNpbmcgaGlnaCBhbmQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfZ2V0X3R5cGUpLAoJICAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpLCAoZ3N0X3F1ZXVlX2luaXQpLCAoZ3N0X3F1ZXVlX2ZpbmFsaXplKSwKCSAgKGdzdF9xdWV1ZV9nZXRjYXBzKSwgKGdzdF9xdWV1ZV9idWZmZXJhbGxvYyksCgkgIChnc3RfcXVldWVfYWNjZXB0Y2FwcyksICh1cGRhdGVfdGltZV9sZXZlbCksIChhcHBseV9zZWdtZW50KSwKCSAgKGFwcGx5X2J1ZmZlciksICh1cGRhdGVfYnVmZmVyaW5nKSwgKHJlc2V0X3JhdGVfdGltZXIpLAoJICAodXBkYXRlX3JhdGVzKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2lzX2VtcHR5KSwKCSAgKGdzdF9xdWV1ZV9pc19maWxsZWQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9wdXNoX29uZSksCgkgIChnc3RfcXVldWVfbG9vcCksIChnc3RfcXVldWVfaGFuZGxlX3NyY19ldmVudCksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSksIChnc3RfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfcXVldWVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9xdWV1ZV9zZXRfcHJvcGVydHkpLCAoZ3N0X3F1ZXVlX2dldF9wcm9wZXJ0eSksIChwbHVnaW5faW5pdCk6CgkgIE9uIG91ciB3YXkgdG8gcGxheWJpbjIgdGhpcyBpcyB0aGUgbmV3IG5ldHdvcmsgcXVldWUgdGhhdCBkb2VzIGJ1ZmZlcmluZwoJICBhbGwgYnkgaXRzZWxmIHVzaW5nIGhpZ2ggYW5kIGxvdyB3YXRlcm1hcmtzLiBJdCBjYW4gYWxzbyBtZWFzdXJlIHVwIGFuZAoJICBkb3duc3RyZWFtIGJhbmR3aWR0aCB0byBvcHRpbWFsbHkgc2l6ZSB0aGUgcXVldWUuCgoyMDA5LTEwLTI4IDIyOjAzOjQ0IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBGaXggbWVtbGVhayBvZiB1bnVzZWQgZGVsYXllZCBsaW5rcwoJICBBdHRhY2ggdGhlIERlbGF5ZWRMaW5rIHN0cnVjdHVyZSB0byB0aGUgZWxlbWVudCwgc28gdGhhdCB3aGVuCgkgIHRoZSBlbGVtZW50IGlzIGRpc3Bvc2VkLCB0aGUgRGVsYXllZExpbmsgaXMgZnJlZWQuCgoyMDA5LTA5LTA5IDE1OjM3OjExIC0wNTAwICBSb2IgQ2xhcmsgPHJvYkB0aS5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbWFrZSBfZml4YXRlX2NhcHMoKSBhbHNvIHRydW5jYXRlIHdoZW4gbmVlZGVkCgkgIFRoZSBkZWZhdWx0IGdzdF9wYWRfZml4YXRlX2NhcHMoKSBwcmV2aW91c2x5IHdvdWxkIG9ubHkgZml4YXRlIGVhY2ggaW5kaXZpZHVhbAoJICBzdHJ1Y3QuIEluIGNhc2UgdGhlcmUgYXJlIG11bHRpcGxlIHN0cnVjdHMsIHRoZSByZXN1bHRpbmcgY2FwcyB3b3VsZCBzdGlsbCBub3QKCSAgYmUgZml4ZWQuIEluIHRoZSBzcGlyaXQgb2YgaG93IGluZGl2aWR1YWwgc3RydWN0cyBhcmUgZml4YXRlZCwgdGhpcyBwYXRjaAoJICBjaGFuZ2VzIGdzdF9wYWRfZml4YXRlX2NhcHMoKSB0byByZW1vdmUgYWxsIGJ1dCB0aGUgZmlyc3Qgc3RydWN0LgoJICBGaXhlcyAjNTk1ODg2CgoyMDA5LTA5LTIxIDExOjQ0OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogZml4IGRvY3MKCjIwMDktMTAtMjggMDk6MjY6MzIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHhtbC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgb3B0aW1pc2F0aW9uIDogVXNlIGdfb2JqZWN0X25ld3Ygd2hlcmUgcG9zc2libGUuCgkgIFRoaXMgYXZvaWRzOgoJICAqIHRyaXBsZS1jaGVja2luZyBmb3IgdGhlIEdUeXBlIHdoZW4gdHlwZS1jaGVja2luZyBpcyBlbmFibGVkIChzZWUgIzU5NzI2MCkKCSAgKiBBdm9pZHMgZ29pbmcgdGhyb3VnaCBhbiBleHBlbnNpdmUgbm8tYXJndW1lbnQgY2hlY2tpbmcgd2hpY2ggbGFuZGVkIGluCgkgIGdsaWItMi4yMgoJICAqIEF2b2lkcyBnb2luZyB0aHJvdWdoIDIgZXh0cmFjIGZ1bmN0aW9ucyAoZ19vYmplY3RfbmV3IC0+IGdfb2JqZWN0X25ld192YWxpc3QpCgoyMDA5LTEwLTI4IDEwOjE1OjEyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICBkb2NzOiBpbmNsdWRlIGFubm90YXRpb24gZ2xvc3NhcnkgdG8gaGF2ZSB3b3JraW5nIGxpbmtzLgoKMjAwOS0xMC0yOCAxMDoxNDozNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBhbm5vdGF0aW9uczogYWRkIGFubm90YXRpb25zIHRvIGdzdF9pbml0X2NoZWNrIHRvbwoKMjAwOS0xMC0yOCAwOTo1ODo1MiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBkb2NzOiB0ZWxsIG1vcmUgYWJvdXQgd2hhdCBoYXBwZW5zIGluIGdzdF9pbml0LgoJICBBZGQgbGlua3MgdG8gZ3N0X3VwZGF0ZV9yZWdpc3RyeSBhbmQgdGhlIGVudi12YXJzLgoKMjAwOS0xMC0yOCAwOToyMTowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBkb2NzOiByZW1vdmUgcmVmZXJlbmNlIHRvIE9HSSBhbmQgcmVwaHJhc2Ugc2VjdGlvbnMgZG9jcwoJICBUaGUgT0dJIGxpbmtzIGFyZSBkZWFkLCBzbyByZW1vdmUgdGhlbS4gQWxzbyByZW1vdmUgdGhlIHBhcmFncmFwaCB0aGF0IHBvaW50ZWQKCSAgdG8gT0dJIGFuZCBEUy4gT25seSBtZW50aW9uaW5nIERTIHRoZXJlIG1hZGUgaXQgYSBidXQgcG9pbnRsZXNzLiBBZGQgYSBnZW5lcmljCgkgIHBhcmFncmFwaCBpbnN0ZWFkIHRoYXQgdGVsbHMgYSBiaXQgYWJvdXQgdGhlIHVzZWNhc2VzIGdzdHJlYW1lciBjb3ZlcnMuCgoyMDA5LTEwLTI4IDAwOjI5OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0eG1sLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgUmVtb3ZlIEdTVF9ERUJVR19GVU5DUFRSIHdoZXJlIHRoZXkncmUgcG9pbnRsZXNzCgkgIFRoZXJlJ3Mgbm90IG11Y2ggcG9pbnQgaW4gdXNpbmcgR1NUX0RFQlVHX0ZVTkNQVFIgd2l0aCBHT2JqZWN0CgkgIHZpcnR1YWwgZnVuY3Rpb25zIHN1Y2ggYXMgZ2V0X3Byb3BlcnR5LCBzZXRfcHJvcGVyeSwgZmluYWxpemUgYW5kCgkgIGRpc3Bvc2UsIHNpbmNlIHRoZXknbGwgbmV2ZXIgYmUgdXNlZCBieSBhbnlvbmUgYW55d2F5LiBTYXZlcyBhCgkgIGZldyBieXRlcyBhbmQgcG9zc2libHkgYSB0ZW50aCBvZiBhIHBvbGFyIGJlYXIuCgoyMDA5LTEwLTI4IDAwOjA3OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBzcHJpbmtsZSBzb21lIEdTVF9ERUJVR19GVU5DUFRSCgoyMDA5LTEwLTI3IDE1OjQ3OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgZGVzaWduOiBhZGQgc29tZSBpZGVhcyBmb3IgU0tJUCBtb2RlIHRyaWNrbW9kZXMKCjIwMDktMTAtMjMgMTA6MjA6MDIgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogYnVmZmVyaW5nIGlzIGltcGxlbWVudGVkIG5vdwoKMjAwOS0xMC0yMiAyMToyNDoyNCAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogbWFrZSBzdXJlIHBlcmNlbnQgaW5jcmVhc2VzCgkgIEtlZXAgdHJhY2sgb2YgdGhlIGxhc3QgcG9zdGVkIHBlcmNlbnQgbWVzc2FnZSBhbmQgbWFrZSBzdXJlIHRoZSBuZXh0IHBlcmNlbnQKCSAgbWVzc2FnZXMgYXJlIHN0cmljdGx5IGluY3JlYXNpbmcuCgoyMDA5LTEwLTIyIDE2OjM4OjEyIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHJlZmFjdG9yIGJ1ZmZlcmluZyBjb2RlCgkgIE1vdmUgdGhlIGJ1ZmZlcmluZyB1cGRhdGUgY29kZSB0byBhIHNlcGFyYXRlIGZ1bmN0aW9uIHNvIHRoYXQgd2UgY2FuIGNhbGwgaXQKCSAgd2hlbiB0aGUgYnVmZmVyaW5nIHN0YXRlIGNoYW5nZXMgZHVlIHRvIEVPUy4KCSAgQXZvaWQgZGl2aWRpbmcgYnkgMC4KCjIwMDktMTAtMjIgMTQ6MDk6MDEgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IGFkZCBidWZmZXJpbmcgc3VwcG9ydAoJICBBZGQgc3VwcG9ydCBmb3IgYnVmZmVyaW5nIG1vZGUgd2hlcmUgd2UgcG9zdCBCVUZGRVJJTkcgbWVzc2FnZXMgYmFzZWQgb24gdGhlCgkgIGxldmVsIG9mIHRoZSBxdWV1ZXMuIEl0IGN1cnJlbnRseSBvcGVyYXRlcyBvbiB0aGUgZmlyc3QgcXVldWUgdGhhdCBnb2VzIG92ZXIgb3IKCSAgdW5kZXIgdGhlIGhpZ2gvbG93IHRocmVzaG9sZHMuCgoyMDA5LTEwLTIyIDE0OjA3OjMxIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGRvbid0IGNoZWNrIHZpc2libGUgaXRlbXMgaW4gYnVmZmVyaW5nCgkgIEluIGJ1ZmZlcmluZyBtb2RlIHdlIHdhbnQgdG8gaWdub3JlIHRoZSBtYXggdmlzaWJsZSBpdGVtcyB0byBkZWNpZGUgd2hlbiB0aGUKCSAgcXVldWUgaXMgZmlsbGVkLiBJbnN0ZWFkLCB3ZSBvbmx5IGxvb2sgYXQgdGhlIG51bWJlciBvZiBieXRlcyBhbmQvb3IgdGltZSBpbiB0aGUKCSAgcXVldWUuCgoyMDA5LTEwLTIxIDExOjMwOjQwIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBob29rIHVwIGxvdy9oaWdoIHBlcmNlbnQKCSAgSG9vayB1cCB0aGUgbG93L2hpZ2ggcGVyY2VudCBwcm9wZXJ0aWVzIGZvciB0aGUgYnVmZmVyaW5nIG1vZGUuCgoyMDA5LTEwLTIxIDExOjI0OjQ3IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBob29rIHVwIHByb3BlcnR5IGZvciBidWZmZXJpbmcKCjIwMDktMTAtMjIgMTU6MjE6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogc21hbGwgY2xlYW51cHMKCSAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSB0byBhdm9pZCBjb25mdXNpb24KCSAgRml4IHNvbWUgdHlwbwoKMjAwOS0xMC0yMiAwOTo0MTo1MiAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBhZGQgRklYTUUgZm9yIHdyb25nIGNvZGUKCSAgTmVlZHMgZnVydGhlciBpbnZlc3RpZ2F0aW9uCgoyMDA5LTEwLTIxIDE0OjIwOjI5IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGZpeCBkZWJ1ZyBvdXRwdXQKCjIwMDktMTAtMjEgMTQ6MTU6MDUgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogYXZvaWQgc2hhZG93aW5nIGZ1bmN0aW9uIGFyZ3VtZW50CgkgIERvbid0IHNoYWRvdyB0aGUgc3EgYXJndW1lbnQgaW4gdGhlIHVuZGVycnVuX2NiIGZ1bmN0aW9uIGJ1dCB1c2UKCSAgYSBkaWZmZXJlbnQgdmFyaWFibGUgbmFtZSB0byBpdGVyYXRlIHRoZSBvdGhlciBxdWV1ZXMuCgkgIFVzZSB0aGUgc2FtZSB2YXJpYWJsZSBuYW1lIGluIHRoZSBvdmVycnVuX2NiIGZ1bmN0aW9uLgoKMjAwOS0xMC0yMSAxNDoxMjoxMiAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBtYWtlIHF1ZXVlIGFyZyBleHBsaWNpdAoJICBNYWtlIHRoZSBxdWV1ZSBhcmd1bWVudCB0byBJU19GSUxMRUQgZXhwbGljaXQKCjIwMDktMTAtMjEgMTE6MTc6MDggLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogZml4IHByb3BlcnRpZXMKCSAgRml4IHByb3BlcnRpZXMsIG1ha2UgdGhlIGV4dHJhLXNpemUgcHJvcGVydGllcyBhcyBub3QgaW1wbGVtZW50ZWQuCgoyMDA5LTEwLTI1IDIxOjM1OjA5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBhbGxvdyB0byBoaWRlL3Nob3cgcGFkIHN0YXR1cyB3aXRoIGdyYXBoZGV0YWlscyBmbGFnCgoyMDA5LTEwLTI0IDEzOjE0OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmRoZWxwZXI6IFJlbW92ZSBvYnNvbGV0ZSBGSVhNRQoJICBJdCdzIG5vdCBuZWNlc3NhcnkgKGFuZCBub3QgYSBnb29kIGlkZWEpIHRvIGNhY2hlIHRoZSB0eXBlZmluZCBmYWN0b3J5CgkgIGxpc3QgYW55bW9yZS4KCjIwMDktMTAtMjQgMTE6NTg6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICByZWdpc3RyeTogcHJpdmF0ZSBpcyBhIEMrKyBrZXl3b3JkLCBkb24ndCB1c2UgaXQKCSAgLi4ub3RoZXJ3aXNlIEMrKyBjb21waWxlcnMgd2lsbCBjb21wbGFpbiB3aGVuIGluY2x1ZGluZyBnc3RyZWdpc3RyeS5oCgoyMDA5LTEwLTI0IDEwOjIxOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIGRvY3M6IGFkZCBTaW5jZSB0YWcgdG8gZG9jcyBmb3IgbmV3IEFQSQoJICBBbmQgdGVsbCBndGstZG9jIHRoYXQgR3N0UmVnaXN0cnlQcml2YXRlIGlzIHByaXZhdGUuCgoyMDA5LTEwLTIxIDA5OjQ4OjQxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZDogS2VlcCB0eXBlZmluZCBmYWN0b3JpZXMgc29ydGVkIGluIHRoZSByZWdpc3RyeS4gRml4ZXMgIzU5OTE0NwoJICBUaGlzIGF2b2lkcyBoYXZpbmcgdG8gZG8gdGhlIHNvcnRpbmcgZXZlcnl0aW1lIHdlIHVzZSB0eXBlZmluZAoJICBUaGUgYmVoYXZpb3VyIG9mIGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9nZXRfbGlzdCBoYXMgc3VidGxlbHkgY2hhbmdlZAoJICBpbiB0aGUgc2Vuc2UgdGhhdCB0aGUgb3JkZXIgd2FzIHByZXZpb3VzbHkgdW5kZWZpbmVkLCB3aGVyZWFzIG5vdwoJICBpdCByZXR1cm5zIHRoZW0gc29ydGVkIGJ5IHJhbmsgYW5kIHRoZW4gYnkgbmFtZS4KCjIwMDktMTAtMjEgMDk6NDU6NDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IENhY2hlIGVsZW1lbnQgYW5kIHR5cGVmaW5kIGZhY3Rvcmllcy4gRml4ZXMgNTk4ODk2CgkgIFRoaXMgYXZvaWRzIHVubmVlZGVkIGxpc3QvZmlsdGVyaW5nIGlmIHRoZSByZWdpc3RyeSBoYXNuJ3QgY2hhbmdlZAoKMjAwOS0xMC0yMSAwOTo0MDo0OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RwbHVnaW5mZWF0dXJlOiBBUEkgOiBuZXcgZ3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfY29weSgpIG1ldGhvZAoJICBUaGlzIGFsbG93cyBjb3B5aW5nIEFORCBpbmNyZW1lbnRpbmcgdGhlIHJlZmNvdW50IGF0IHRoZSBzYW1lIHRpbWUsCgkgIGF2b2lkaW5nIGEgZG91YmxlIGl0ZXJhdGlvIG9mIHRoZSBHTGlzdAoKMjAwOS0xMC0yNCAxMDowNTo1OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgZ3N0cmVnaXN0cnk6IEFkZCBhIGNvb2tpZSBmb3IgZGV0ZWN0aW5nIGZlYXR1cmUgbGlzdCBjaGFuZ2VzCgkgIFdlIGFsc28gY3JlYXRlIGEgcHJpdmF0ZSBzdHJ1Y3R1cmUsIHNpbmNlIHdlIHdpbGwgbmVlZCB0byBhZGQgbW9yZQoJICBkYXRhIHRoZXJlIGluIGZvbGxvd2luZyBwYXRjaGVzLgoKMjAwOS0xMC0yMyAxMzoxOTowNCAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIG1lc3NhZ2U6IGRvbid0IHVzZSB0eXBlY2hlY2tpbmcgY2FzdCBtYWNyb3MKCSAgU2ltcGx5IHVzZSBjYXN0aW5nIG1hY3JvcyBmb3IgYWNjZXNzaW5nIHRoZSBtZXNzYWdlIGZpZWxkcyBsaWtlIHdlIGRvIGZvcgoJICBidWZmZXJzIGFuZCBldmVudHMuIEF2b2lkcyBzb21lIGNvc3RseSB0eXBlY2hlY2tpbmcgdGhhdCBkb2VzIG5vdCByZWFsbHkgYnV5IHVzCgkgIG11Y2guCgoyMDA5LTEwLTIzIDEzOjEzOjUyIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgUmV2ZXJ0ICJnc3RtZXNzYWdlOiBBdm9pZCBleHBlbnNpdmUgc3JjL3R5cGUvdGltZXN0YW1wIGZldGNoLiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA2MWNmOTNhMzM0Yjc5YTJkODQ5M2U1MzFjYzQ0YmE0NWE0MjA5ODA1LgoKMjAwOS0xMC0yMyAxNzo1MToyNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIGdzdG1lc3NhZ2U6IEF2b2lkIGV4cGVuc2l2ZSBzcmMvdHlwZS90aW1lc3RhbXAgZmV0Y2guCgkgIElmIHdlJ3ZlIGFscmVhZHkgY2hlY2tlZCB0aGF0IHdlIGhhdmUgYSB2YWxpZCBtZXNzYWdlLCB1c2UgdGhlIGVudHJpZXMKCSAgZGlyZWN0bHkuCgoyMDA5LTEwLTIzIDE3OjQ3OjQzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZ3N0Y2FwczogVXNlIGlubGluZWQgdmVyc2lvbiBvZiBfaXNfYW55KCkvX2lzX2VtcHR5KCkKCSAgQ0FQU19JU19BTlkgYW5kIENBUFNfSVNfRU1QVFkgYXJlIHRoZSBlcXVpdmFsZW50IG9mIHRoZWlyIGdzdF9jYXBzXyoKCSAgY291bnRlcnBhcnQgZXhjZXB0IHRoYXQgdGhleSBhdm9pZCB0aGUgdHlwZWNoZWNraW5nIGFuZCBhcmUgaW5saW5lZC4KCSAgQ0FQU19JU19FTVBUWV9TSU1QTEUgb25seSBjaGVja3MgZm9yIGVtcHR5IGNhcHMgKHdpdGhvdXQgY2hlY2tpbmcgaWYKCSAgdGhlIGNhcHMgaXMgQU5ZKS4KCjIwMDktMTAtMjIgMTY6NDI6MTMgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBUT0RPOiBhZGQgaXRlbSB0byBUT0RPIGxpc3QKCSAgV2UgY3VycmVudGx5IGRvIGEgbGl0dGxlIHRvbyBtdWNoIHdvcmsgd2hlbiB3ZSBwdXNoIHRoZSBmaXJzdCBidWZmZXIgYXJvdW5kCgkgIHJlc3VsdGluZyBpbiBleGNlc3NpdmUgY2FwcyBjaGVja2luZy4gV2UgY2FuIHByb2JhYmx5IG1ha2UgdGhpcyBhIGxpdHRsZSBsZXNzCgkgIGV4cGVuc2l2ZS4KCjIwMDktMTAtMjIgMTI6NTI6NDYgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBnc3RwaXBlbGluZTogU2ltcGxpZnkgYmFzZSB0aW1lIGNoZWNraW5nIHNsaWdodGx5CgkgIFNpbXBsaWZ5IGNoZWNraW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIGJhc2UgdGltZSAtIGRvbid0IHJlLWNoZWNrCgkgIHRoZSB2YWx1ZSBvZiBhIGxvY2FsIHZhcmlhYmxlIHRoYXQgd2FzIHNldCAzIGxpbmVzIGVhcmxpZXIuCgoyMDA5LTEwLTIyIDEzOjE1OjE1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICBnc3R1cmk6IE9wdGltaXNhdGlvbjogQXZvaWQgdHlwZS1jaGVja2luZyBpbiBzb3J0aW5nIG1ldGhvZC4KCSAgV2UgYWxyZWFkeSBrbm93IHRoZSBsaXN0IG9ubHkgY29udGFpbnMgcGx1Z2luIGZlYXR1cmVzCgoyMDA5LTEwLTIyIDEzOjEzOjU2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICBnc3R1cmk6IE9wdGltaXNhdGlvbiA6IENhc3Qgd2hlbiB3ZSdyZSBzdXJlIG9mIHRoZSB0eXBlLgoJICBBbHNvIGRpcmVjdGx5IGFjY2VzcyBHc3RFbGVtZW50RmFjdG9yeS0+dXJpX3R5cGUgaW5zdGVhZCBvZiBnb2luZwoJICB0aHJvdWdoIGEgZnVuY3Rpb24gdGhhdCB3aWxsIChvbmNlIGFnYWluKSBjaGVjayB3aGV0aGVyIGl0J3MgYQoJICBHc3RFbGVtZW50RmFjdG9yeQoKMjAwOS0xMC0yMiAxMjozMzozNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkgIHRlc3RzL2Zha2VzaW5rOiBBZGQgc29tZSBkZWJ1Z2dpbmcKCjIwMDktMTAtMjIgMTI6MzM6MDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICB0ZXN0cy9mYWVrc2luazogTG93ZXIgdGhlIG51bWJlciBvZiB0aHJlYWRzIHRvIGF2b2lkIHRpbWVvdXRzCgkgIFdlIGp1c3QgZW5kIHVwIHdpdGggd2F5IHRvbyBtdWNoIGNvbnRlbnRpb24gaW4gZ2xpYiBvdGhlcndpc2UuCgoyMDA5LTEwLTE5IDA5OjA2OjE2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIGdzdHJlZ2lzdHJ5OiBVc2UgaGFzaCB0YWJsZSB3aGVuIGZpbmRpbmcgYSBmZWF0dXJlLiBGaXhlcyAjNTk4ODk1CgoyMDA5LTEwLTIxIDE2OjI2OjAxIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBpbXBsZW1lbnQgY3VzdG9tIGFjY2VwdGNhcHMgZnVuY3Rpb24KCSAgSW1wbGVtZW50IGEgY3VzdG9tIGFjY2VwdGNhcHMgZnVuY3Rpb24gb24gdGhlIHNpbmtwYWQuIFdlIGNhbiBhY2NlcHQgYW55IGNhcHMgYXMKCSAgbG9uZyBhcyBpdCBpcyBhY2NlcHRlZCBieSBhbGwgZG93bnN0cmVhbSBwZWVyIGVsZW1lbnRzLgoKMjAwOS0xMC0yMSAxMzozODo1NyAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogYXZvaWQgbG9jayBmb3IgdGFraW5nIHRoZSBjb3VudGVyCgkgIFRoZSBjb3VudGVyIGZvciBpbmNvbW1pbmcgZGF0YSBpcyBhbHJlYWR5IHByb3RlY3RlZCB3aXRoIHRoZSBTVFJFQU1fTE9DSyBzbyB3ZQoJICBkb24ndCBuZWVkIHRvIGFkZCBhbm90aGVyIGxvY2sgYXJvdW5kIGl0LgoKMjAwOS0xMC0yMCAyMzoyODo1NCAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgcmVnaXN0cnk6IGhhc2ggdGhlIHBsdWdpbiBiYXNlbmFtZQoJICBNYWludGFpbiBhIGhhc2h0YWJsZSBvZiB0aGUgcGx1Z2luIGJhc2VuYW1lLiBXZSBjYW4gdGhlbiB1c2UgdGhpcwoJICBoYXNodGFibGUgdG8gc3BlZWR1cCB0aGUgc2VhcmNoIGZvciBhbiBleGlzdGluZyBwbHVnaW4gYW5kIGF2b2lkCgkgIGEgd2hvbGUgbG90IG9mIHN0cmNtcCBjYWxscy4KCjIwMDktMTAtMjAgMjM6Mjc6NDEgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnk6IHNwZWVkIHVwIF9zdHJsZW4KCSAgTWFrZSB0aGUgX3N0cmxlbiBmdW5jdGlvbiBhIGxpdHRsZSB0aWdodGVyCgoyMDA5LTEwLTIwIDIxOjQzOjU4IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBuYW1lIGlzIG5ldmVyIE5VTEwKCSAgV2hlbiBsb29raW5nIHVwIGEgZmVhdHVyZSBieSBuYW1lLCB3ZSBuZXZlciBjYWxsIHRoaXMgaW50ZXJuYWwKCSAgZnVuY3Rpb24gd2l0aCBOVUxMIHNvIHdlIGRvbid0IGhhdmUgdG8gY2hlY2sgZm9yIGl0LgoKMjAwOS0xMC0yMCAyMTozOToxMSAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogcmVmYWN0b3IgcGx1Z2luIGxvb2t1cAoJICBXZSBrZWVwIGxvb2t1cCBwbHVnaW5zIGJ5IHRoZWlyIGJhc2VuYW1lLiBBdm9pZCBjcmVhdGluZyBhIGJhc2VuYW1lCgkgIGZyb20gYSBmaWxlbmFtZSBpZiB3ZSBjYW4uCgoyMDA5LTEwLTIwIDIxOjAxOjU1IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBkbyBxdWljayBjaGVjayBmb3IgLiBmaWxlcwoJICBEbyBhIHF1aWNrIGNoZWNrIGZvciAuIGZpbGVzIGJlZm9yZSBjYWxsaW5nIHRoZSBzdHJjbXAgZnVuY3Rpb25zCgoyMDA5LTEwLTIwIDEyOjIxOjA5IC0wNzAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R4bWwuYzoKCSAgUmVtb3ZlIGV4ZWN1dGFibGUgYml0cyBvbiB4bWwgdW5pdCB0ZXN0LgoKMjAwOS0xMC0xOSAxNjo0NzoxMCArMDIwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBkb2NzOiBGaXggZG9jcyBmb3IgZ3N0X2NhcHNfc2V0X3NpbXBsZSgpCgoyMDA5LTEwLTE5IDEzOjAyOjMwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBkb2NzOiBNb2RpZnkgZG9jcyBzdHJpbmcgc2xpZ2h0bHkuCgkgIEFwcGFyZW50bHkgc3RhcnRpbmcgdGhlIGxhc3QgbGluZSBvZiBhIGRvY3Mgc3RyaW5nIHdpdGggJ3JldHVybnMnIGJvdGgKCSAgY29uZnVzZXMgYW5kIGVucmFnZXMgZ3RrLWRvYy4gVXNlIGEgc2xpZ2h0bHkgZGlmZmVyZW50IHdvcmRpbmcgaW5zdGVhZC4KCjIwMDktMTAtMTkgMTI6Mjk6MzUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBXaGVuIGEgcGx1Z2luIGlzIGJsYWNrbGlzdGVkLCBvdXRwdXQgYSBHU1RfRVJST1IgbGluZS4KCjIwMDktMTAtMTkgMTM6MzA6MTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29scy9nc3QtaW5zcGVjdDogQ2hlY2sgd2UncmUgbm90IGhhbmRsaW5nIE5VTEwgcG9pbnRlcnMuCgoyMDA5LTEwLTE5IDEzOjI5OjQwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHMvZ3N0LWluc3BlY3Q6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQKCjIwMDktMTAtMTQgMTA6NTQ6MzIgKzAyMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSogZ3N0L2dzdHRyYWNlLmg6CgkgIHRyYWNlOiBEbyBub3QgcG9pc29uIGdzdF90cmFjZV9hZGRfZW50cnkoKQoJICBTaW5jZSBnc3RfdHJhY2VfYWRkX2VudHJ5KCkgaXMgYSBtYWNybywgZ2NjIHdpbGwgYmFyZiB3aGVuIGl0IGlzCgkgIGRlZmluZWQgaW4gY2FzZSBpdCBoYXMgYmVlbiBwb2lzb25lZCBkdWUgdG8gdHJhY2Ugc3VwcG9ydCBiZWluZwoJICBkaXNhYmxlZC4KCjIwMDktMTAtMTggMjM6MTg6NTggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjoganVzdCBjYXN0IGluIGludGVybmFsIEFQSSB3aGVyZSB3ZSBoYXZlIGNoZWNrZWQgcGFyYW1ldGVycyBhbHJlYWR5CgoyMDA5LTEwLTE4IDIzOjE1OjA3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogdXNlIGdfc2xpY2UgZm9yIGNvbnRyb2xsZWQgcHJvcGVydHkgc3RydWN0dXJlcwoJICBVc2UgZ19zbGlkZSBpbnN0ZWFkIG9mIG5vbWFsIGdfbmV3LCBBbHNvIGRvbid0IGluaXQgc3RydWN0IHdpdGggMCBhcyB3ZSBuZWVkIHRvCgkgIGluaXQgaXQgYW55d2F5IHdpdGggdGhlIHJlYWwgdmFsdWVzLgoJICBBbHNvIGpvaW4gdGhlIDMgZmxhZ3MgY2hlY2tzIGludG8gb25lLgoKMjAwOS0xMC0xOCAxNzoxNzoxNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgbGlicy9iYXNlL3R5cGVmaW5kaGVscGVyOiBSZW1vdmUgdXNlbGVzcyB0eXBlY2hlY2tpbmcgaW4gdGlnaHQgbG9vcAoJICBUaGUgbGlzdCBhZ2FpbnN0IHdoaWNoIHdlIHJ1biB0aGUgY29tcGFyZWZ1bmMgd2lsbCBvbmx5IGNvbnRhaW4KCSAgR3N0UGx1Z2luRmVhdHVyZSwgdGhlcmVmb3JlIHJlbW92ZSB0aGUgNiBleHBlbnNpdmUgdHlwZSBjaGVja3Mgd2UgZG8KCSAgZm9yIGV2ZXJ5IHNpbmdsZSBjb21wYXJpc2lvbi4KCjIwMDktMTAtMTYgMTI6Mzk6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBmaXggdHlwbyBpbiBkb2NzCgoyMDA5LTEwLTE2IDA5OjQzOjA4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBBZGQgbmV3IEFQSSBzeW1ib2wKCjIwMDktMTAtMTYgMTA6MTM6NTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gODVkMTUzMCB0byAwNzAyZmUxCgoyMDA5LTEwLTA3IDE1OjMyOjE4ICswMjAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQGdub21lLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIEltcHJvdmUgY2FwcyBzZXR0ZXJzIEFQSQoJICBUaGlzIHBhdGNoIGFkZHMgZ3N0X2NhcHNfc2V0X3ZhbHVlKCkgYW5kIGFsbG93cyBnc3RfY2Fwc19zZXRfc2ltcGxlKCkgdG8KCSAgd29yayBvbiBub24tc2ltcGxlIGNhcHMuIFNlZSB0aGUgQVBJIGRvY3VtZW50YXRpb24gZm9yIHRoZSBmdW5jdGlvbnMKCSAgYWJvdXQgd2hhdCB0aGV5IGRvLgoJICBUaGUgaW50ZW50aW9uIG9mIHRoZXNlIGNoYW5nZXMgaXMgdG8gZWFzZSB3b3JraW5nIHdpdGggY2FwcyBpbiBjYXBzCgkgIHRyYW5zZm9ybSBmdW5jdGlvbnMuIEFuIGV4YW1wbGUgZm9yIHRoaXMgd291bGQgYmUgZmZtcGVnY29sb3JzcGFjZSwKCSAgd2hlcmUgdGhlIGNhcHMgdHJhbnNmb3JtIGZ1bmN0aW9uIGNvdWxkIGJlIGNoYW5nZWQgdG8gbG9vayByb3VnaGx5IGxpa2UKCSAgdGhpcyAocHNldWRvY29kZSBhaGVhZCk6CgkgIHJlc3VsdCA9IGdzdF9jYXBzX2NvcHkgKHRlbXBsYXRlX2NhcHMpOwoJICB2YWx1ZSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3ZhbHVlIChnc3RfY2Fwc19nZXRfc3RydWN0dXJlIChjYXBzLCAwKSwKCSAgIndpZGgiKTsKCSAgZ3N0X2NhcHNfc2V0X3ZhbHVlIChyZXN1bHQsIHZhbHVlKTsKCSAgLyogc2FtZSBmb3IgaGVpZ2h0LCBmcmFtZXJhdGUgYW5kIHBhciAqLwoJICByZXR1cm4gY2FwczsKCSAgd2hpY2ggaXMgbXVjaCBjbGVhbmVyIGFuZCBlYXNpZXIgdG8gdW5kZXJzdGFuZCB0aGFuIHRoZSBjdXJyZW50IGNvZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01OTc2OTAKCjIwMDktMTAtMDIgMTA6MTU6NTUgKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAZ25vbWUub3JnPgoKCSogdGVzdHMvZXhhbXBsZXMveG1sL01ha2VmaWxlLmFtOgoJICBBZGQgWE1MX0xJQlMgd2hlbiBidWlsZGluZyB0ZXN0cyB0aGF0IHVzZSB4bWwtc3BlY2lmaWMgZnVuY3Rpb25zCgoyMDA5LTEwLTE1IDE2OjM1OjU5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwby9NYWtldmFyczoKCSAgcG86IERvbid0IGNyZWF0ZSBiYWNrdXAgLnBvIGZpbGVzCgkgIEFzIHdlbGwgYXMgcHJldmVudGluZyBjcmVhdGlvbiBvZiB1c2VsZXNzIGJhY2t1cCBmaWxlcywgaXQgd29ya3MKCSAgYXJvdW5kIGEgYnVnIGluIGdldHRleHQgMC4xNyBvbiBPUy9YCgoyMDA5LTEwLTE1IDE2OjMwOjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCByYWNlIGluIFBMQVlJTkctPlBBVVNFRC0+UExBWUlORwoJICBXaGVuIHdlIHF1aWNrbHkgc3dpdGNoIGZyb20gUExBWUlORyB0byBQQVVTRUQgYW5kIGJhY2sgdG8gUExBWUlORyBpdCdzIHBvc3NpYmxlCgkgIGluIHNvbWUgY2FzZXMgdGhhdCB0aGUgdGFzayByZWZ1c2VzIHRvIHN0YXJ0LCBUaGlzIGlzIGJlY2F1c2Ugd2hlbiB3ZSBnbyB0bwoJICBQQVVTRUQsIHdlIHVuc2NoZWR1bGUgdGhlIGNsb2NrIHRpbWVvdXQsIHdoaWNoIGNvdWxkIHJldHVybiBVTlNDSEVEVUxFRCB3aGVuCgkgIHdlJ3JlIGJhY2sgdG8gUExBWUlORywgY2F1c2luZyB0aGUgdGFzayB0byBQQVVTRSBhZ2FpbiB3aXRoIGEgd3Jvbmctc3RhdGUuCgkgIFRoaXMgcGF0Y2ggY2hlY2tzIGlmIHdlIGFyZSBydW5uaW5nIHdoZW4gd2UgcmV0dXJuIHdpdGggYW4gVU5TQ0hFRFVMRUQgcmV0dXJuCgkgIHZhbHVlIGFuZCBpZiB3ZSBhcmUsIHRyeSB0byBjcmVhdGUgYSBuZXcgYnVmZmVyLgoJICBGaXhlcyAjNTk3NTUwCgoyMDA5LTEwLTE1IDEyOjE2OjA1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIGRvY3M6IGNsYXJpZnkgcHJlc2V0IGFwaSBkb2NzCgoyMDA5LTEwLTE0IDE3OjU3OjQwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgZG9jczogZml4IGNvbnRyb2xsZXIgc2VjdGlvbnMgZG9jcwoKMjAwOS0xMC0xNCAxMDo0MDo1MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNjM4MGQ0YiB0byA4NWQxNTMwCgoyMDA5LTEwLTE0IDEwOjE2OjMxICswMjAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogRml4IGEgZG9jdW1lbnRhdGlvbiB0eXBvCgoyMDA5LTEwLTE0IDA4OjU3OjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJICBidWlsZDogLi4uYW5kIGFkZCBtaXNzaW5nIGVuZGlmCgoyMDA5LTEwLTE0IDA4OjU3OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJICBidWlsZDogQWxzbyBkb24ndCBydW4gbWFrZSBjaGVjay1leHBvcnRzIGlmIGRlYnVnZ2luZyBpcyBkaXNhYmxlZAoKMjAwOS0xMC0xNCAwODo1MDozMSArMDIwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSAgYnVpbGQ6IE9ubHkgcnVuIG1ha2UgY2hlY2stZXhwb3J0cyBpZiBubyBwdWJsaWMgQVBJIHdhcyBkaXNhYmxlZAoJICBGaXhlcyBidWcgIzU5ODI5Ny4KCjIwMDktMTAtMTQgMDg6MzA6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IFJlcGxhY2UgcmVjdXJzaXZlIGdzdF9vYmplY3RfaGFzX2FuY2VzdG9yKCkgd2l0aCBhbiBpdGVyYXRpdmUgdmVyc2lvbgoJICBUaGlzIGlzIHNsaWdodGx5IG1vcmUgZWZmaWNpZW50IGJlY2F1c2UgdGhlIGNvbXBpbGVyIGNhbid0IGRvIHRhaWwKCSAgcmVjdXJzaW9uIGhlcmUgYW5kIGhhcyB0byBrZWVwIGFsbCBzdGFjayBmcmFtZXMuCgkgIE5vdCB0aGF0IGVmZmljaWVuY3kgaXMgdGhhdCBpbXBvcnRhbnQgaGVyZSBidXQgSSBhbHJlYWR5IGhhZAoJICB0aGUgaXRlcmF0aXZlIHZlcnNpb24gc29tZXdoZXJlIGVsc2UgYW5kIGJvdGggYXJlIGVhc3kgdG8gcmVhZC4KCjIwMDktMTAtMTQgMDg6Mjk6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IEFkZCBzaW1wbGUgdW5pdCB0ZXN0IGZvciBnc3Rfb2JqZWN0X2hhc19hbmNlc3RvcigpCgoyMDA5LTEwLTEzIDE5OjEyOjUwICswMzAwICBUb21taSBNecO2aMOkbmVuIDxleHQtdG9tbWkuMS5teW9oYW5lbkBub2tpYS5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IGZpeCB0aW1lc3RhbXAgY29tcGFyaXNzaW9uLCBGaXhlcyAjNTk3NDA3CgoyMDA5LTEwLTEyIDIxOjUxOjU1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIGNoZWNrOiBEaXNhYmxlIHRoZSB0ZXN0X2ZhaWxfYWJzdHJhY3RfbmV3KCkgdGVzdCBlbnRpcmVseSBvbiBPUy9YCgkgIEZpeGVzIGEgY29tcGlsZXIgd2FybmluZyBmcm9tIHRoZSBmdW5jdGlvbiBiZWluZyBjb21waWxlZCBidXQgbm90CgkgIHVzZWQuCgoyMDA5LTEwLTEyIDE0OjU3OjM1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgZGVidWc6IE1hcmsgdGhlIEdTVF9QT0xMIHN5bWJvbCBhcyBleHRlcm4gdG8gYXZvaWQgbXVsdGlwbHktZGVmaW5lZCBlcnJvcgoKMjAwOS0xMC0xMiAxNDo0NzozMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBVcGRhdGUgY29tbW9uIHRvIDYzODBkNGIzNzBmMDc4ZjBjY2E3MjQwNDI4ZWE5ZjY2Mzk1NzFmZjUKCjIwMDktMTAtMTIgMTQ6MjQ6MDQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3Rwb2xsOiBNYWtlIHRoZSBuZXcgR1NUX1BPTEwgZGVidWcgY29tcGxldGVseSBwcml2YXRlCgkgIE1ha2UgdGhlIEdTVF9QT0xMIGRlYnVnIGNhdGVnb3J5IHN5bWJvbCBwcml2YXRlIHRvIGxpYmdzdHJlYW1lciwgYXMKCSAgdGhlcmUgc2hvdWxkIGJlIG5vIGV4dGVybmFsIHVzZXJzIG9mIGl0LgoKMjAwOS0xMC0xMiAxNDoyMjozNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBjaGVja3M6IERpc2FibGUgYSBmYWlybHkgc2lsbHkgZ3N0b2JqZWN0IHRlc3Qgb24gT1MvWAoJICBUaGlzIHRlc3QgdXNlZCB0byBTSUdCVVMgb24gT1MvWCBidXQgbm93IFNJR1NFR1YncyBpbnN0ZWFkIG9uCgkgIFNub3cgTGVvcGFyZC4gSXQncyBub3Qgd29ydGggdGhlIGVmZm9ydCB0byBmaWd1cmUgb3V0IHdoaWNoIHBsYXRmb3JtCgkgIHNob3VsZCBwcm9kdWNlIHdoaWNoIGVycm9yIGZvciB3aGF0IGlzIGZ1bmRhbWVudGFsbHkgYSBwcmV0dHkgc2lsbHkKCSAgdGVzdCwgc28ganVzdCBkaXNhYmxlIGl0IG9uIE9TL1gKCjIwMDktMTAtMTIgMTM6NTA6NTEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkgIGxpYnMvZ3N0L2NoZWNrOiBNYWtlIHdyaXRpbmcgdGhyZWFkc2FmZS4gQmFja3BvcnRlZCBmcm9tIGxpYmNoZWNrIHRydW5rCgoyMDA5LTEwLTEyIDEzOjQ5OjM1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5jOgoJICBsaWJzL2dzdC9jaGVjazogUnVuIGdzdC1pbmRlbnQgb24gbGliY2hlY2suCgoyMDA5LTEwLTEyIDEyOjAyOjM0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBnc3RwbHVnaW5sb2FkZXI6IERvbid0IHdhaXQgZm9yZXZlciBvbiBnc3RfcG9sbF93YWl0LgoJICBUaGlzIGFsbG93cyB0aGUgbWFjb3N4IHZlcnNpb25zIHRvIHByb3Blcmx5IGVycm9yIG91dCB3aGVuIGZkcyBhcmUgY2xvc2VkLgoJICBUaGlzIGlzIG9ubHkgYSB0ZW1wb3JhcnkgZml4IHVudGlsIHRoZSBwbHVnaW5sb2FkZXIgaXMgc3dpdGNoZWQgdG8gbm90CgkgIHVzZSBHc3RQb2xsIGJ1dCBHSU9DaGFubmVscy4KCjIwMDktMTAtMTIgMTI6MDE6NTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBPbmx5IHRha2UgaW50byBhY2NvdW50IGFjdGl2ZSBmZHMKCSAgVGhpcyBpcyBuZWVkZWQgc28gdGhhdCBzZWxlY3QgcHJvcGVybHkgZXJyb3JzIG91dCBvbiBtYWNvc3ggKHNpZ2gpCgoyMDA5LTEwLTEyIDEwOjA3OjAzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogQWRkIHNvbWUgZGVidWdnaW5nIHN0YXRlbWVudHMKCjIwMDktMTAtMTIgMTA6MDE6MDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBVc2UgdGhlIGVycm9yIGZkc2V0IHdoZW4gdXNpbmcgc2VsZWN0L3BzZWxlY3QuCgkgIFRoaXMgaXMgbmVlZGVkIHRvIHByb3Blcmx5IGRldGVjdCBmZHMgdGhhdCBhcmUgY2xvc2VkIG9yIHRoYXQgZ290CgkgIGFuIGVycm9yCgoyMDA5LTEwLTEyIDA5OjUwOjQ2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogRG9uJ3QgdXNlIHBvbGwgb24gc3lzdGVtcyB3aXRoIGJyb2tlbiBwb2xsCgoyMDA5LTEwLTEyIDA5OjUwOjAwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdDogQWRkIGRlYnVnZ2luZyBjYXRlZ29yeSBHU1RfUE9MTCBmb3IgZ3N0cG9sbAoKMjAwOS0xMC0xMiAwOTo0Nzo1OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBEZXRlY3QgYnJva2VuIHBvbGwoKQoKMjAwOS0xMC0wOSAxNzo0NDoyOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbGV0cyBrZWVwIC0xIGZvciBzZWdtZW5zdCBhcyB0aGV5IGFyZSBndWludDY0IGFuZCBub3QgR3N0Q2xvY2tUaW1lCgoyMDA5LTEwLTA5IDE3OjExOjI3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1c2UgR1NUX0NMT0NLX1RJTUVfTk9ORSBhbmQgR1NUX0NMT0NLX1RJTUVfSVNfVkFMSUQgbW9yZQoKMjAwOS0xMC0wOCAyMzoxMDo0MCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IEZpeCB2YWxncmluZCB3YXJuaW5ncyBieSB6ZXJvaW5nIHBhZGRpbmcgYnl0ZXMuCgoyMDA5LTEwLTA4IDE3OjE5OjM4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSAgY2hlY2s6IEhvcGVmdWxseSBmaXggYW4gJ21heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQnIHdhcm5pbmcgb24gT1MvWAoKMjAwOS0xMC0wOCAxNjoyMTo0NSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBGaXggYSBkZWJ1ZyBmb3JtYXQgc3RyaW5nIGhhcmRlciB0byBzYXRpc2Z5IE9TL1gncyBnY2MuCgoyMDA5LTEwLTA4IDE2OjA1OjA4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IEZpeCBmb3JtYXQgc3RyaW5nIGZvciBkZWJ1ZyBlcnJvciBtZXNzYWdlLgoKMjAwOS0xMC0wOCAxNToyMTo0OCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IE1vdmUgc3RkaW4gYW5kIHN0ZG91dCBvdXQgb2YgaGFybSdzIHdheQoJICBJbiB0aGUgcGx1Z2luIGxvYWRlciBzdWJwcm9jZXNzLCBtb3ZlIHN0ZGluIGFuZCBzdGRvdXQgdG8gbmV3IGZkJ3MKCSAgc28gdGhhdCBwbHVnaW5zIHByaW50aW5nIHRoaW5ncyBkdXJpbmcgcGx1Z2luIGluaXQgb3IgKCpnYXNwKikKCSAgcG9zc2libHkgcmVhZGluZyBmcm9tIHN0ZGluIGRvbid0IGludGVyZmVyZSB3aXRoIHRoZSBkYXRhIHNlbnQgdG8KCSAgYW5kIGZyb20gdGhlIHBhcmVudC4KCjIwMDktMTAtMDggMTE6MTc6MTQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgcGx1Z2luIGRvY3M6IEFkZCBHU1RfUExVR0lOX1NDQU5ORVIgZW52IHZhciB0byB0aGUgaW5zcGVjdCBlbnZpcm9ubWVudAoKMjAwOS0xMC0wOCAxMDo1OToxNSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAzN2Y4OThiIHRvIGEzZTNjZTQKCjIwMDktMTAtMDggMTA6Mzk6MjggKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgZ2l0aWdub3JlczogSWdub3JlIHRoZSBieXRld3JpdGVyIGNoZWNrIGJpbmFyeQoKMjAwOS0xMC0wOCAxMDozNjo1NiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBGaXggZXJyb3IgaGFuZGxpbmcgaW4gdGhlIHJlZ2lzdHJ5IGxvYWRlcgoJICBXaGVuIHRoZSBwbHVnaW4tc2Nhbm5lciBsb2FkIGZhaWxzIChiZWNhdXNlIHRoZSBoZWxwZXIgY2FuJ3QgYmUKCSAgc3Bhd25lZCksIG1ha2Ugc3VyZSB0byBsb2FkIHRoZSBwbHVnaW4gdGhhdCBmYWlsZWQgaW4tcHJvY2Vzcywgc28KCSAgdGhhdCBhbGwgcGx1Z2lucyBkbyBnZXQgbG9hZGVkLgoKMjAwOS0xMC0wOCAxMDoyNjoyNyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBjaGVjazogRml4IHRlc3QgcnVuIGluIHRlc3RzL2V4YW1wbGVzL21hbnVhbAoJICBBZGQgdGhlIEdTVF9QTFVHSU5fU0NBTk5FUiBlbnYgdmFyIHRvIHRoZSBjaGVjayBlbnZpcm9ubWVudCBoZXJlIHRvbwoJICBzbyB0aGF0IGl0IGRvZXNuJ3QgZmFpbCB3aGVuIG5vIGluc3RhbGxlZCBzY2FubmVyIGlzIGF2YWlsYWJsZS4KCjIwMDktMTAtMDggMDk6MzQ6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0aW5mbzogYWRkIGJhY2sgZml4IHRoYXQgc2hvdWxkbid0IGhhdmUgYmVlbiByZXZlcnRlZAoKMjAwOS0xMC0wOCAxMDo0Nzo0NCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogbW9yZSBxdWV1ZSBvcHRpbWl6YXRpb25zCgkgIFNwbGl0IGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSgpIGludG8gdmFyaWFudCBmb3IgYnVmZmVyIGFuZCBldmVudCB0byBnZXQgcmlkIG9mCgkgIHRoZSBpZigpIGFuZCBtYWtlIHRoZSBjb2RlIG1vcmUgcmVhZGFibGUgKGNvbnN0YW50IGJvb2xlYW4gcGFyYW1ldGVycyBhcmUgbmV2ZXIKCSAgbmljZSkuIFJlbW92ZXMgdGhlIGlmIChpdGVtKSBjaGVja3MgYXMgd2UgZGVyZWZlcmVuY2UgdGhlIHBvaW50ZXIgYmVmb3JlIGFueXdheS4KCSAgQWxzbyBhcHBseSB0aGUgc2FtZSBpZGVhIG9mIHJldXNpbmcgdGhlIHByZXZpb3VzIGtub3dsZWRnZSBpbgoJICBnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUgdG8gcmVtb3ZlIG1vcmUgdHlwZSBjaGVja3MuCgoyMDA5LTEwLTA4IDEwOjUxOjQ5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogc3BsaXQgZ3N0X211bHRpX3F1ZXVlX2l0ZW1fbmV3CgkgIFNwbGl0IGdzdF9tdWx0aV9xdWV1ZV9pdGVtX25ldyBpbnRvIGJ1ZmZlciBhbmQgZXZlbnQgdmFyaWFudCB0byBtYWtlIHNhdmUgYW4gaWYKCSAgYW5kIG1ha2UgY29kZSBtb3JlIHJlYWRhYmxlLgoKMjAwOS0xMC0wOCAwODo1NTo1OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBwbHVnaW5zL2dzdGZpbGVzcmM6IE1ha2UgYSBmYXN0LXBhdGggZm9yIGxlbmd0aCA9PSAwIGJ1ZmZlciBjcmVhdGlvbi4KCSAgSWYgdGhlIHJlcXVlc3RlZCBsZW5ndGggaXMgMCwgd2UgZG9uJ3QgbmVlZCB0byByZWFkIGFueXRoaW5nIGZyb20gdGhlIGZpbGUuCgoyMDA5LTEwLTA4IDA4OjU1OjIzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGdzdC9jaGVjay9jb25zaXN0ZW5jeWNoZWNrZXI6IENoZWNrIHR5cGUgb2YgbWluaW9iamVjdCBpbiBwcm9iZQoKMjAwOS0xMC0wOCAwODo1Mzo1NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgZ3N0L2Jhc2UvYmFzZXNpbms6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQuCgkgIFRoZSBjb2RlIHdhcyBwcmV2aW91c2x5OgoJICAqIGNoZWNraW5nIGlmIHJldCB3YXMgIT0gT0sKCSAgKiAuLiBidXQgaWYgaXQgd2FzIEZMT1dfU1RFUCwgc3dpdGggaXQgdG8gT0sKCSAgKiAuLiBhbmQgdGhlbiBub3QgdXNpbmcgcmV0CgkgIEluc3RlYWQgd2UganVzdCBtYWtlIGl0IG1vcmUgY29tcGFjdCBieSBjaGVja2luZyBpZiBpdCdzIE9LIG9yIFNURVAuCgoyMDA5LTEwLTA4IDA4OjUzOjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQuCgkgIG9iamVjdCBpcyBubyBsb25nZXIgdXNlZCBhZnRlciB0aGF0IGxpbmUKCjIwMDktMTAtMDggMDg6NTI6MTggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0aW5kZXguYzoKCSAgZ3N0aW5kZXg6IE1ha2Ugc3VyZSB3cml0ZXIgaXMgbm9uLU5VTEwuCgkgIEZpeGVzIHRoZSBOVUxMIGRlcmVmZXJlbmNlIGEgZmV3IGxpbmVzIGxvd2VyICh3aGVyZSBpdCBnZXRzIHRoZSBvYmplY3QgdHlwZSkuCgoyMDA5LTA5LTI5IDA4OjEzOjQwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSAgYmVuY2htYXJrczogQ2xlYW4gdXAgZ3N0YnVmZmVyc3RyZXNzLgoKMjAwOS0xMC0wOCAwMjo0MjoxNiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmM6CgkqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5jOgoJICBiZW5jaG1hcmtzOiBGaXggdGhlIGNvbXBsZXhpdHkgYW5kIG1hc3MtZWxlbWVudHMgYmVuY2htYXJrcwoKMjAwOS0xMC0wOCAwMjoyMDo1MSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hlY2tzOiBGaXggc3RyaW5nIGxlYWtzIGluIHRoZSBuZXcgY2hpbGRwcm94eSB0ZXN0CgoyMDA5LTEwLTA4IDAyOjAzOjA4ICswMTAwICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBJZ25vcmUgYW4gZW1wdHkgZGVwZW5kZW5jeSBsaXN0LgoJICBJZiBhIHBsdWdpbiByZWdpc3RlcnMgYW4gZW1wdHkgZGVwZW5kZW5jeSBzZXQsIGp1c3QgaWdub3JlIGl0IHJhdGhlcgoJICB0aGFuIHNlcmlhbGlzaW5nIGFuZCBjaGVja2luZyBhbiBlbXB0eSBzZXQuCgoyMDA5LTEwLTA4IDAyOjAxOjU0ICswMTAwICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogRml4IG9mZi1ieS1vbmUgZXJyb3IuIEltcHJvdmUgZGVidWcuCgkgIEZpeCBhbiBvZmYtYnktb25lIGVycm9yIGluIHRoZSBzaXplIGd1YXJkIGZvciB1bnBhY2tfZWxlbWVudCwgYW5kCgkgIGltcHJvdmUgdmFyaW91cyBkZWJ1ZyBzdGF0ZW1lbnRzIGluIHRoZSBmYWlsdXJlIHBhdGhzLgoJICBBbHNvLCBzd2FwIHNvbWUgZ19uZXcwIHRvIGdfbWFsbG9jMCBmb3IgdGhlIGZ1biBvZiBpdC4KCjIwMDktMTAtMDcgMTY6MDI6NTggLTA3MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogVXNlIF93Zm9wZW4gb24gd2luMzIgdG8gb3BlbiBmaWxlcyB3aXRoIG5vbi1hc2NpaSBmaWxlbmFtZXMgY29ycmVjdGx5LgoKMjAwOS0xMC0wNyAyMzozMToyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBkb2NzOiBmaXggU2luY2U6IHRhZ3MgaW4gZG9jcyBmb3IgbmV3bHktYWRkZWQgQVBJCgoyMDA5LTEwLTA4IDAwOjA4OjQ3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiByZXZlcnQgdHdvIG9mIHRoZSBjaGFuZ2VzCgkgIEl0IG9ubHkgbmVlZGVkIGZvciB0aGUgbm9uIGNvbnN0YW50IHN0cmluZy4KCjIwMDktMTAtMDcgMjM6MzY6NDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHVzZSBhICIlcyIgZm9ybWF0IHN0cmluZyB3aGVuIHByaW50aW5nIHRoZSBtZW1vcnkgZHVtcCBsaW5lCgkgIFdlIGtub3cgdGhhdCB0aGUgY29udGVudCBpcyBzYXZlLCBidXQgdGhlIGNvbXBpbGVyIGRvZXMgbm90LgoKMjAwOS0xMC0wNyAyMzoyMzowOCArMDMwMCAgUm9iIENsYXJrIDxyb2JAdGkuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IGRvbid0IGZvcm1hdCB0aGUgc3RyaW5nIHR3aWNlCgkgIFdlIHdlcmUgZm9ybWF0dGluZyB0aGUgc3RyaW5nIG9uY2UgYW5kIHRoZW4gcGFzc2luZyB0aGUgc3RyaW5nIGFzIGEgZm9ybWF0CgkgIHN0cmluZyB0byB0aGUgbG9nIGZ1bmN0aW9ucy4KCjIwMDktMTAtMDcgMTE6NDM6NTQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogYWRkIHZhcmlhbnRzIG9mIGdzdF9wYWRfZ2V0X2NhcHMoKSB0aGF0IGRvbid0IGNvcHkgY2Fwcy4gRml4ZXMgIzU5MDk0MQoJICBJbiBtb3N0IHBsYWNlcyBpbiBjb3JlIGFuZCBiYXNlY2xhc3NlcyB3ZSBqdXN0IG5lZWQgdGhlIGNhcHMgdG8gZG8gY2Fwcy0KCSAgaW50ZXJzZWN0aW9ucy4gSW4gdGhhdCBjYXNlIHJlZidlZCBjYXBzIGFyZSBlbm91Z2ggKG5vIG5lZWQgdG8gY29weSkuCgkgIFRoaXMgcGF0Y2ggYWxzbyBzd2l0Y2hlcyB0aGUgY29kZSB0byB1c2UgdGhlIG5ldyBmdW5jdGlvbnMuCgkgIEFQSTogZ3N0X3BhZF9nZXRfY2Fwc19yZWZlZCgpLCBnc3RfcGFkX3BlZXJfZ2V0X2NhcHNfcmVmZWQoKQoKMjAwOS0wOS0yNiAyMzo0MzozNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHRlc3RzOiBhZGQgZ2hvc3RwYWQgdGVzdCBmb3Igc2V0dGluZyB0YXJnZXQgYWdhaW4gYWZ0ZXIgcGFkIGlzIGxpbmtlZAoKMjAwOS0wOS0yNiAyMzo0MjoyMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHRlc3RzOiByZW1vdmUgZW1wdHkgbGluZXMgZnJvbSB3cm9uZyBpbmRlbnQgcnVuCgoyMDA5LTEwLTA3IDIwOjM4OjQ5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGV3cml0ZXIuYzoKCSAgY2hlY2s6IEZpeCBjb21waWxhdGlvbiBvZiB0aGUgYnl0ZXdyaXRlciB0ZXN0CgoyMDA5LTEwLTA3IDE4OjA3OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgYnl0ZSB3cml0ZXIgYW5kIHJlYWRlciBBUEkgdG8gLmRlZiBmaWxlCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyXyooKQoKMjAwOS0wOC0yMCAxNDoyNDoxOSAtMDcwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IGZpeCBzcGVsbGluZyBpbiBjb21tZW50CgoyMDA5LTEwLTA3IDE4OjQwOjQ2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBmbHVzaCBxdWV1ZSB1cG9uIGZhdGFsIGZsb3dyZXR1cm4gYW5kIHJlbGVhc2UgdXBzdHJlYW0gdGhyZWFkCgoyMDA5LTA5LTIyIDE1OjQ0OjMxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgIGRhdGFxdWV1ZTogZml4IEFQSSBkb2N1bWVudGF0aW9uIHR5cG8KCjIwMDktMTAtMDcgMTg6Mzc6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgYnl0ZXdyaXRlcjogQWRkIHRvIHRoZSBkb2NzCgoyMDA5LTEwLTA1IDExOjI0OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGV3cml0ZXIuYzoKCSAgYnl0ZXdyaXRlcjogQWRkIHVuaXQgdGVzdAoKMjAwOS0xMC0wMyAxMzozMDo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGV3cml0ZXI6IEFkZCBhIGdlbmVyaWMgYnl0ZSB3cml0ZXIKCSAgRml4ZXMgYnVnICM1OTA2NjkuCgoyMDA5LTEwLTAzIDE1OjU3OjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYml0cmVhZGVyL2J5dGVyZWFkZXI6IEFQSTogQWRkIGdzdF8oYml0fGJ5dGUpX3JlYWRlcl9nZXRfc2l6ZSgpCgkgIC4uLiBhbmQgR1NUXyhCWVRFfEJJVClfUkVBREVSKCkgY2FzdHMuCgoyMDA5LTEwLTAzIDEyOjM0OjU0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBieXRlcmVhZGVyLGJpdHJlYWRlcjogUmVtb3ZlIEZJWE1FIDAuMTEgdG8gcmVtb3ZlIG5vbi1pbmxpbmVkIGZ1bmN0aW9ucwoJICBUaGUgbm9ybWFsIGZ1bmN0aW9ucyBhcmUgYWx3YXlzIHVzZWZ1bCB0byBoYXZlIGZvciBiaW5kaW5ncywgZXNwZWNpYWxseQoJICBydW50aW1lLWNyZWF0ZWQgYmluZGluZ3MgbGlrZSBTZWVkIG9yIG5ldyBHT2JqZWN0LUludHJvc3BlY3Rpb24gYmFzZWQKCSAgUHl0aG9uIGJpbmRpbmdzLgoKMjAwOS0xMC0wNyAxNjozNjozMSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGNoZWNrOiBBdHRlbXB0IHRvIGZpeCB0eXBlLXB1bm5pbmcgd2FybmluZyBpbiB0aGUgZ3N0aXRlcmF0b3IgdGVzdAoKMjAwOS0xMC0wNyAxNjowMDoxMiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9nZHAuYzoKCSAgY2hlY2s6IE1ha2Ugc3VyZSB0byBpbml0IHRoZSBkYXRhcHJvdG9jb2wgbGliLgoJICBDYWxsIHRoZSBnc3RfZHBfaW5pdCgpIGZ1bmN0aW9uIHRvIGVuc3VyZSB0aGF0IHRoZSBkZWJ1ZwoJICBjYXRlZ29yeSBpcyBpbml0aWFsaXNlZCwgdG8gYXZvaWQgZ19jcml0aWNhbHMgd2hlbiBydW5uaW5nIHdpdGgKCSAgR1NUX0RFQlVHPTUKCjIwMDktMTAtMDcgMTU6NDc6NDUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkgIGNoZWNrOiBVc2UgR1NUX0RFQlVHIGluc3RlYWQgb2YgZ19tZXNzYWdlIGluIHRoZSBnZHAgdGVzdAoKMjAwOS0xMC0wNyAxNToxNDo0NiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBBZGQgR1NUX1BMVUdJTl9TQ0FOTkVSIGVudiB2YXIgdG8gdGhlIGNoZWNrIGVudmlyb25tZW50CgoyMDA5LTEwLTA3IDE0OjM0OjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogaW1wcm92ZSBwbHVnaW4gbG9hZGVyIGZhaWx1cmUgbWVzc2FnZSBmb3IgdW5pbnN0YWxsZWQgc2V0dXBzCgkgIEV2ZXJ5b25lIHJ1bm5pbmcgYW4gdW5pbnN0YWxsZWQgZ2l0IHNldHVwIGlzIGdvaW5nIHRvIHdvbmRlciBhYm91dAoJICB0aGlzIGZhaWx1cmUgbmV4dCB0aW1lIHRoZXkgdXBkYXRlLCBzbyBsZXQncyBtZW50aW9uIHRoZSBzb2x1dGlvbgoJICBpbiB0aGUgZXJyb3IgbWVzc2FnZS4KCjIwMDktMTAtMDcgMTM6NTk6NDcgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBCZWVmIHVwIHRoZSB0ZXN0IGZvciBfX3VpbnQxMjhfdCBvbiBHQ0MKCSAgR0NDIDMuNC4zIG9uIHRoZSBTUEFSQyBidWlsZGJvdCBjcmFzaGVzIHdoZW4gYWN0dWFsbHkKCSAgdXNpbmcgX191aW50MTI4X3QuIEJlZWYgdXAgdGhlIGNvbmZpZ3VyZSB0ZXN0IHRvIGRldGVjdCB0aGF0IHRoZQoJICB0eXBlIGlzIGFjdHVhbGx5IHVzYWJsZS4KCjIwMDktMTAtMDcgMDk6NTY6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBBUEkgdG8gLmRlZiBmaWxlCgkgIEFuZCBhZGQgQVBJOiBtYXJrZXIgaW4gY29tbWl0IG1lc3NhZ2UgdGhhdCB3YXMgb21pdHRlZCBpbiB0aGUgb3JpZ2luYWwKCSAgY29tbWl0OgoJICBBUEk6IGdzdF9kYXRhX3F1ZXVlX25ld19mdWxsKCkKCjIwMDktMTAtMDcgMDk6NTU6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy8uZ2l0aWdub3JlOgoJICBiZW5jaG1hcmtzOiBhZGQgYnVmZmVyc3RyZXNzIGJpbmFyeSB0byAuZ2l0aWdub3JlCgoyMDA5LTEwLTA3IDA5OjQyOjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBidW1wIEdMaWIgcmVxdWlyZW1lbnQgdG8gMi4xOAoJICBCdW1wIEdMaWIgcmVxdWlyZW1lbnQgYXMgcGVyIHRoZSByZWxlYXNlIHBsYW5uaW5nIGRvY3MuCgoyMDA5LTEwLTA3IDEwOjM3OjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgbWVzc2FnZTogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0xMC0wNyAxMToxMjo1NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogZmxpcCB0aGUgR19VTkxJS0VMWQoJICBJdHMgbGlrZWx5IHRoYXQgd2UgaGF2ZSBjYXBzIGFuZCB1bmxpa2VseSAoZXJyb3IpIG90aGVyd2lzZS4KCjIwMDktMTAtMDcgMTE6MDQ6NTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBuZXcgcXVldWUgYXBpIHRvIHRoZSBkb2NzIHRvIGZpeCB0aGUgYnVpbGQKCjIwMDktMDktMjggMTU6MjU6MjIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgcGx1Z2lucy9tdWx0aXF1ZXVlOiBBdm9pZCBpbnN0YW5jZSBjaGVjawoJICBXZSBrbm93IGVhcmxpZXIgb24gaW4gdGhlIGNvZGUgd2hldGhlciB3ZSdyZSBoYW5kbGluZyBhbiBldmVudCBvciBhIGJ1ZmZlciwKCSAganVzdCBwYXNzIHRoYXQgaW5mb3JtYXRpb24gdGhyb3VnaC4KCSAgVGhpcyBjb21taXQgYW5kIHRoZSBwcmV2aW91cyBjb21taXQgcmVkdWNlIGluc3RydWN0aW9uIGZldGNoOgoJICAqIHdoZW4gcHVzaGluZyBidWZmZXIgKF9jaGFpbikgYnkgMTAlCgkgICogd2hlbiBwb3BwaW5nIGJ1ZmZlciAoX2xvb3ApIGJ5IDMlCgoyMDA5LTA5LTI4IDE1OjI0OjAyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIHBsdWdpbnMvbXVsdGlxdWV1ZTogQ2FjaGUgaW5wdXQvb3V0cHV0IHRpbWUsIGF2b2lkIGV4cGVuc2l2ZSBjYWxscy4KCSAgKiBDYWNoZSB0aGUgaW5wdXQvb3V0cHV0IHRpbWUKCSAgKiBPbmx5IHJlY2FsY3VsYXRlIGl0IHdoZW4gbmVlZGVkLgoJICBBdm9pZHMgNTAlIGNhbGxzIHRvIGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZQoKMjAwOS0xMC0wNyAxMDowMDowNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWluaXQueG1sOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOgoJKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvbXAzcGFyc2VsYXVuY2guYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBidWlsZDogc3ByaW50Ziwgc3NjYW5mIG5lZWQgc3RkaW8uaAoKMjAwOS0xMC0wNSAxMTo0NjozNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiBpbml0aWFsaXplIGd2YWx1ZSBpbiBfdmFsaXN0IGZ1bmN0aW9uLiBGaXhlcyAjNTk1NjAyCgkgIFJlZmxvdyB0aGUgY29kZSB0byBtb3ZlIGVycm9yIGhhbmRsaW5nIHRvIHRoZSBlbmQgb2YgdGhlIGZ1bmN0aW9ucy4gSW5pdGlhbGl6ZQoJICBndmFsdWUgbGlrZSB3ZSBkbyBpbiB0aGUgc2V0dGVyLiBBZGQgYSB1bml0LXRlc3QgbW9kdWxlIHdpdGggdHdvIHNpbXBsZSB0ZXN0cwoJICB0aGUgY2F0Y2hlIHRoaXMgYnVnLgoKMjAwOS0xMC0wMSAxNzozOTo0NSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogZG9uJ3QgaW50ZXJzZWN0IHdpdGggYW55IGluIHByb3h5X3BhZF9nZXRfY2FwcwoJICBXZSBpbml0aWFsaXplIHRoZSBjYXBzIHdpdGggYW55IGFuZCBpZiBhIHBhZCBoYXMgTlVMTCBjYXBzLCBqdXN0IHNraXAgaXQgaW5zdGVhZAoJICBvZiBpbnRlcnNlY3Rpbmcgd2l0aCBhbnkuIEFsc28gYWRkIGJyYW5jaCBwcmVkaWN0aW9uIGhlcmUuCgoyMDA5LTA5LTMwIDE2OjQxOjA3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZG9jczogcmVuYW1lIGFnZ3JlZ2F0b3IgdG8gYWRkZXIgaW4gdGhlIGRvY3MuCgoyMDA5LTA5LTMwIDA5OjQ3OjIzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIG1hbjogZml4IGNvcHkgYW5kIHBhc3QgbWlzdGFrZSBmb3IgLXEgb3B0aW9uCgoyMDA5LTEwLTA3IDA5OjU0OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBFeHRlbmQgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGFsbG93IHVzaW5nIGFuIHVuaW5zdGFsbGVkIGdzdHJlYW1lci1zaGFycAoKMjAwOS0wOS0yOCAxNToxOTo0NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBwbHVnaW5zL211bHRpcXVldWU6IFVzZSBuZXcgR3N0RGF0YVF1ZXVlIGNvbnN0cnVjdG9yCgoyMDA5LTA5LTI4IDE1OjE4OjM3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgZ3N0ZGF0YXF1ZXVlOiBuZXcgY29uc3RydWN0b3Igd2hpY2ggdGFrZXMgY2FsbGJhY2tzLgoJICBUaGlzIGFsbG93cyB1cyB0byBhdm9pZCBnb2luZyB0aHJvdWdoIGdsaWIncyBzaWduYWxsaW5nIHN5c3RlbQoKMjAwOS0wOS0yOCAxMzoxOToxMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBwbHVnaW5zL211bHRpcXVldWU6IFVzZSBjYWNoZWQgdmFsdWUgaW5zdGVhZCBvZiBleHBlbnNpdmUgb2JqZWN0IGdldC4KCSAgVGhlIHRhc2sgd2lsbCBhbHdheXMgZXhpc3QgYXMgbG9uZyBhcyBpdHMgb3duZXIgKGkuZS4gdGhlIHBhZCkgYW5kIHRoYXQKCSAgb3duZXIncyBvd25lciAoaS5lLiBtdWx0aXF1ZXVlKSBleGlzdC4KCSAgUmVkdWNlcyB0aGUgbnVtYmVyIG9mIGluc3RydWN0aW9uIGZldGNoZXMgYnkgMzYlLgoKMjAwOS0wOS0yOCAxNTo0MTo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcGx1Z2lucy9xdWV1ZTogVXNlIHByZXZpb3VzIGtub3dsZWRnZSBvZiBkYXRhIHR5cGUgdG8gYXZvaWQgdHlwZWNoZWNrLgoJICBXZSBrbm93IHdoZXRoZXIgd2UgaGF2ZSBhIGJ1ZmZlciBvciBhbiBldmVudCwgdXNlIHRoYXQgaW5zdGVhZCBvZiBnb2luZwoJICB0cm91Z2ggdGhlIGV4cGVuc2l2ZSBHTGliIHR5cGVjaGVjay4KCSAgVGhlIG92ZXJhbGwgaW5zdHJ1Y3Rpb24gZmV0Y2ggcmVkdWN0aW9uIGludHJvZHVjZWQgYnkgdGhpcyBjb21taXQgYW5kIHRoZQoJICAyIHByZXZpb3VzIGNvbW1pdHM6CgkgICogcmVjZWl2aW5nIGEgYnVmZmVyIChfY2hhaW4pIGJ5IDIwJQoJICAqIHBvcHBpbmcgYSBidWZmZXIgKF9sb29wKSBieSAxNCUKCSAgTnVtYmVycyBhY3F1aXJlZCB0aHJvdWdoIGNhbGxncmluZCBwYXNzaW5nIDEwMDAwMCBidWZmZXJzIHRocm91Z2ggcXVldWUuCgoyMDA5LTA5LTI4IDE1OjIwOjA2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHBsdWdpbnMvcXVldWU6IEF2b2lkIHVzZWxlc3Mgc2VnbWVudF90b19ydW5uaW5nX3RpbWUoKSBjYWxjdWxhdGlvbnMuCgkgICogQ2FjaGUgc3JjIGFuZCBzaW5rIHRpbWUKCSAgKiBVc2UgYSBib29sZWFuIHRvIGtub3cgd2hldGhlciBzcmMvc2luayB0aW1lIG5lZWQgdG8gYmUgcmVjYWxjdWxhdGVkCgkgIEF2b2lkcyA1MCUgY2FsbHMgdG8gZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKCkKCjIwMDktMDktMjggMTM6MjE6MDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHBsdWdpbnMvcXVldWU6IEp1c3QgY2FzdCB0byB0aGUgb2JqZWN0IHBhcmVudCBpbnN0ZWFkIG9mIHR5cGVjaGVja2luZy4KCjIwMDktMDktMjMgMTY6MTk6MzIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJICBiZW5jaG1hcms6IE5ldyBiZW5jaG1hcmsgZm9yIHRlc3RpbmcgY29udGVudGlvbiB3aGVuIGNyZWF0aW5nIGJ1ZmZlcnMKCjIwMDktMDktMjMgMTY6MTc6MDkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IERvbid0IGFjdGl2YXRlIHRyYWNpbmcgaWYgbm90IHJlcXVlc3RlZC4KCjIwMDktMTAtMDcgMDg6Mzc6MDUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSAgdGVzdHM6IGluaXQgbW9yZSB2YXJpYWJsZXMgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZyBvbiBvc3gKCSAgSW5pdCB2YXJpYWJsZSB0byBhdm9pZCBjb21waWxlciB3YXJuaW5nIGFuZCBtYWtlIHRoZSBidWlsZCBib3QgaGFwcHkKCSAgKHRoZSBjb21waWxlciBtb3N0IGxpa2VseSBjb21wbGFpbnMgYWJvdXQgdGhpcyBiZWNhdXNlIGl0IGRvZXNuJ3Qga25vdwoJICBoZXJlIHRoYXQgZmFpbF91bmxlc3Mgd2lsbCBhYm9ydC9leGl0IGluIHRoZSBwYXRoIHdoZXJlIGl0IGZhaWxzKS4KCjIwMDktMDktMjYgMTE6NDM6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEltcHJvdmUgaXRlcmF0ZSBpbnRlcm5hbCBsaW5rcyBmdW5jdGlvbgoJICBQYWRzIGhhdmUgdGhlaXIgR3N0U2luZ2xlUXVldWUgc3RvcmVkIGFzIGVsZW1lbnQgcHJpdmF0ZSBkYXRhCgkgIHNvIHRoZXJlJ3Mgbm8gbmVlZCB0byBpdGVyYXRlIG92ZXIgdGhlIGxpc3Qgb2Ygc2luZ2xlIHF1ZXVlcwoJICBldmVyeSB0aW1lLiBBbHNvIGV2ZXJ5IHBhZCBvbmx5IGhhcyBhIHNpbmdsZSBpbnRlcm5hbCBsaW5rIHNvCgkgIHVzZSBhIHNpbmdsZSBpdGVyYXRvciBpbnN0ZWFkIG9mIGEgY29tcGxleCBjdXN0b20gaXRlcmF0b3IuCgkgIFNldCB0aGUgZWxlbWVudCBwcml2YXRlIGRhdGEgb2YgdGhlIHBhZCB0byBOVUxMIHdoZW4gZnJlZWluZyB0aGUKCSAgc2luZ2xlIHF1ZXVlLgoKMjAwOS0wOS0xNyAxNjozMDo0MyAtMDQwMCAgSm9oYW4gQmlsaWVuIDxqb2JpQGxpdGwuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGludHJvc3BlY3Rpb246IEFkZCBhbm5vdGF0aW9ucyBmb3IgZ3N0X2VsZW1lbnRfcXVlcnlfe2R1cmF0aW9uLHBvc2l0aW9ufQoJICBGaXhlcyBidWcgIzU5NTUxMS4KCjIwMDktMTAtMDUgMDA6MTE6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICBieXRlcmVhZGVyOiBhZGQgaW5saW5lIHZlcnNpb24gb2YgZ3N0X2J5dGVfcmVhZGVyX3NraXAKCjIwMDktMTAtMDcgMDA6NDc6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9uIGZpbGVzIGZvciBuZXcgYW5kIGNoYW5nZWQgc3RyaW5ncwoKMjAwOS0wOS0yOCAyMjo0Mzo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogdGFrZSBsb2NrcyBhcm91bmQgc21hbGxlciBzZWN0aW9uCgkgIFdlIGRvbid0IG5lZWQgdGhlIGhvbGQgdGhlIHByb3h5IG11dGV4IGxvY2tlZCBmb3IgZ2V0dGluZyB0aGUgaW50ZXJuYWwgcGFkIGFuZAoJICBmb3IgbGlua2luZyB0aGUgbmV3IHRhcmdldCBwYWQgd2hlbiB3ZSByZXRhcmdldC4gU28gdGFrZSB0aGUgbG9jayBhIGxpdHRsZSBsYXRlcgoJICBhbmQgcmVsZWFzZSBpdCBlYXJsaWVyLgoJICBGaXhlcyAjNTk2MzY2CgoyMDA5LTEwLTA0IDE5OjUxOjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJICB0ZXN0czogaW5pdCB2YXJpYWJsZSB0byBhdm9pZCBjb21waWxlciB3YXJuaW5nIG9uIG9zeAoJICBJbml0IHZhcmlhYmxlIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmcgYW5kIG1ha2UgdGhlIGJ1aWxkIGJvdCBoYXBweQoJICAodGhlIGNvbXBpbGVyIG1vc3QgbGlrZWx5IGNvbXBsYWlucyBhYm91dCB0aGlzIGJlY2F1c2UgaXQgZG9lc24ndCBrbm93CgkgIGhlcmUgdGhhdCBmYWlsX3VubGVzcyB3aWxsIGFib3J0L2V4aXQgaW4gdGhlIHBhdGggd2hlcmUgaXQgZmFpbHMpLgoKMjAwOS0xMC0wMyAyMTowODo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0eG1sLmM6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIGdzdDogcmVtb3ZlIG1vcmUgdW5uZWNlc3NhcnkgY2FzdCB3aGVuIHVzaW5nIGdfc2lnbmFsXyooKQoKMjAwOS0xMC0wMyAyMDo0OTo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIGRhdGFxdWV1ZSwgZWxlbWVudHM6IGF2b2lkIHVubmVjZXNzYXJ5IHJ1bnRpbWUgdHlwZSBjaGVja3MKCjIwMDktMTAtMDUgMTY6NDE6NTAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IFVwZGF0ZSB0aGUgcmVsZWFzZSBzY3JpcHQKCSAgUmVtb3ZlIG9sZCBjcnVmdCBmcm9tIHRoZSByZWxlYXNlIHNjcmlwdCwgYW5kIGNoYW5nZSBzb21lIENWUwoJICByZWZlcmVuY2VzIHRvIGVxdWl2YWxlbnQgZ2l0IGNvbW1hbmRzCgoyMDA5LTEwLTA0IDE0OjMwOjM0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogQWRkIGEgbWFnaWMgbnVtYmVyIGFuZCBtYXhpbXVtIHNpemUgbGltaXQuCgkgIEd1YXJkIGFnYWluc3QgYSBob3N0aWxlIGNoaWxkIHByb2Nlc3MgdGhhdCBzZW5kcyBib2d1cyBkYXRhCgkgIGR1ZSB0byBtZW1vcnkgY29ycnVwdGlvbiBieSBhZGRpbmcgYSBtYWdpYyBudW1iZXIgdG8gZWFjaCBwYWNrZXQsCgkgIGFuZCBsaW1pdCB0aGUgbWF4aW11bSBzaXplIG9mIGFueSBtZXNzYWdlIHRvIDMyTUIKCjIwMDktMDItMDkgMTM6MzM6MDcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcmVnaXN0cnk6IEFsc28gY2hlY2sgdGhlIGJpbmFyeSByZWdpc3RyeSBjaHVuayB2ZXJzaW9uIG9mIHRoZSBjaGlsZC4KCSAgV2hlbiB0cnlpbmcgdG8gZmluZCBhIGZ1bmN0aW9uIHBsdWdpbi1zY2FubmVyLCBpbmNsdWRlIGEgY2hlY2sgb24gdGhlCgkgIHZlcnNpb24gb2YgdGhlIGJpbmFyeSByZWdpc3RyeSBjaHVua3MgaXQgc2VuZHMsIHRvIG1ha2Ugc3VyZSBpdCdzCgkgIHdoYXQgd2UgdW5kZXJzdGFuZC4KCjIwMDktMDItMDYgMDk6NDk6MzQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIHJlZ2lzdHJ5OiBTdXBwb3J0IGluc3RhbGxlZC91bmluc3RhbGxlZCBwbHVnaW4tc2Nhbm5lciBoZWxwZXIKCSAgQWRkIGEgc2ltcGxlIHZlcnNpb24gY2hlY2sgd2hlbiBzdGFydGluZyB0aGUgcGx1Z2luLXNjYW5uZXIgc28gd2UgY2FuCgkgIHZlcmlmeSB3ZSdyZSB0YWxraW5nIHRvIG9uZSB0aGF0IHRhbGtzIHRoZSBzYW1lIGxhbmd1YWdlLgoJICBGaXJzdCB0cnkgYSBwbHVnaW4tc2Nhbm5lciBpbiB0aGUgaW5zdGFsbGVkIHBhdGgsIHRoZW4gdHJ5IG9uZSB2aWEgdGhlCgkgIEdTVF9QTFVHSU5fU0NBTk5FUiBlbnYgdmFyIGlmIHRoYXQgZG9lc24ndCB3b3JrLgoJICBVcGRhdGUgdGhlIHVuaW5zdGFsbGVkIHNjcmlwdC4KCSAgSW5zdGFsbCB0aGUgcGx1Z2luLXNjYW5uZXIgdG8gdGhlIGxpYmV4ZWMgZGlyCgoyMDA5LTAxLTMwIDE0OjE4OjEzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBSZW1vdmUgY2hlY2tpbmcgZm9yIGFuZCBtZW50aW9ucyBvZiBmb3JrIHdoZXJlIHBvc3NpYmxlLgoJICBXZSBubyBsb25nZXIgdXNlIGZvcmsoKSBkaXJlY3RseSwgaW5zdGVhZCB1c2luZyBnbGliJ3Mgc3Bhd24KCSAgZnVuY3Rpb25hbGl0eSwgc28gZG9uJ3QgY2hlY2sgZm9yIGl0LCBhbmQgZG9uJ3QgdXNlIGl0IGluIHRoZQoJICBkb2N1bWVudGF0aW9uIG5vdGVzLgoKMjAwOS0wMS0zMCAxMzowNjoxMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIFJlLWVuYWJsZSBhbmQgZml4IGRpc2FibGVkIGJpdCBvZiB0aGUgcmVnaXN0cnkgdGVzdAoKMjAwOS0wMS0zMCAxMzowNDo1MiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIE9ubHkgbG9hZCB0aGUgcmVnaXN0cnkgY2FjaGUgb25jZSBwZXIgcHJvY2Vzcy4KCSAgV2hlbiB1cGRhdGluZyB0aGUgcmVnaXN0cnksIHdlIGRvbid0IG5lZWQgdG8gcmUtcmVhZCB0aGUgcmVnaXN0cnkgY2FjaGUKCSAgYW5kIHdhc3RlIHRpbWUgcmVwbGFjaW5nIGFsbCBvdXIgZXhpc3RpbmcsIGhvcGVmdWxseSBpZGVudGljYWwsIHBsdWdpbnMKCSAgYW5kIGZlYXR1cmVzIHRoYXQgd2UncmUgYWJvdXQgdG8gcmUtc2NhbiBhbnl3YXkuCgoyMDA5LTAxLTI5IDEzOjIyOjE0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIHRoZSByZWdpc3RyeS4KCSAgQWRkIHRoZSBmdWxsIHNldCBvZiBkZWJ1ZyBhYm91dCB3aHkgaXQncyBkZWNpZGVkIHRoYXQgYSBnaXZlbiBwbHVnaW4gaXMKCSAgc3RhbGUgb3Igbm90LCBhbmQgaW5jbHVkZSB0aGUgcGx1Z2luIG5hbWUgd2hlbiBmaW5hbGl6aW5nIGl0LgoKMjAwOS0wMS0yMyAyMToxNTo0MyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBBZGQgcmVzdGFydGluZyBvZiB0aGUgcGx1Z2luIGxvYWRlciBhbmQgYmxhY2tsaXN0aW5nIG9mIGJyb2tlbiBmaWxlcwoKMjAwOS0wMS0yMyAxNTo0NzowOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBQbHVnaW4gbG9hZGVyIHBoYXNlIDIKCSAgcGhhc2UgMiAtIG1ha2UgdGhlIHBsdWdpbiBsb2FkZXIgcmVjZWl2ZSB0aGUgbGlzdCBvZiBwbHVnaW5zIHRvIGxvYWQgYW5kCgkgIHNlbmQgYmFjayB0aGUgcmVzdWx0cyBhc3luY2hyb25vdXNseSwgc28gd2UgZG9uJ3QgY29udGV4dCBzd2l0Y2ggYmFjawoJICBhbmQgZm9ydGggc28gbXVjaC4KCjIwMDktMDMtMTQgMjM6MDc6NDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmg6CgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9oZWxwZXJzLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2hlbHBlcnMvcGx1Z2luLXNjYW5uZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZWdpc3RyeTogQWRkIHJlZ2lzdHJ5IGhlbHBlciBwaGFzZSAxCgkgIFBoYXNlIDEgb2YgYWRkaW5nIHRoZSByZWdpc3RyeSBzY2FuIGhlbHBlcgoKMjAwOS0wOS0xNCAyMzozMToxMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IFJlYXJyYW5nZSBzb21lIHRoaW5ncy4KCSAgUHJlcGFyZSB0byBsYW5kIHRoZSBleHRlcm5hbCBwbHVnaW4gaGVscGVyIHByb2Nlc3MKCjIwMDktMTAtMDYgMTk6NDE6MzggKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudCAtPiAwLjEwLjI1LjEKCj09PSByZWxlYXNlIDAuMTAuMjUgPT09CgoyMDA5LTEwLTA1IDEyOjU3OjAzICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkgIFJlbGVhc2UgMC4xMC4yNQoKMjAwOS0xMC0wNSAxMjo0MTo0MiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA5LTEwLTAxIDE2OjI0OjUyICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICAwLjEwLjI0LjQgcHJlLXJlbGVhc2UKCjIwMDktMDktMzAgMTU6NTI6MzMgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBsaWJnc3RjaGVjazogRG9uJ3QgdXNlIGNoYXJhY3RlciBjbGFzc2VzIGluIHNlZCBleHByZXNzaW9ucwoJICBBcHBhcmVudGx5IHRoZSBzZWQgdGhhdCBzaGlwcyBvbiBTb2xhcmlzIDEwIGRvZXNuJ3Qgc3VwcG9ydCBjaGFyYWN0ZXIKCSAgY2xhc3NlcyBsaWtlIFs6YWxudW06XSwgc28gZG9uJ3QgdXNlIHRoZW0uIFdlIGRvbid0IG5lZWQgdGhlbSBmb3IgdGhlCgkgIHN5bWJvbCBuYW1lcyB0aGF0IGFyZSBiZWluZyBleHRyYWN0ZWQgYW55d2F5LgoJICBBbHNvLCB1c2UgJChTRUQpIGluc3RlYWQgb2YgJ3NlZCcKCSAgRml4ZXM6ICM1OTY4NzcKCjIwMDktMDktMTcgMDE6MjA6MDMgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICAwLjEwLjI0LjMgcHJlLXJlbGVhc2UKCjIwMDktMDktMTUgMDk6NDE6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBGaXggR01QIHNjYWxpbmcgdW5pdCB0ZXN0CgkgIEdNUCBvbmx5IHVzZXMgInVuc2lnbmVkIGxvbmcgaW50Iiwgd2hpY2ggaXMgMzIgYml0CgkgIG9uIDMyIGJpdCBhcmNoaXRlY3R1cmVzIGFuZCBjYW4ndCBob2xkIGEgZ3VpbnQ2NC4KCSAgVGhpcyByZXN1bHRlZCBpbiBmYWxzZSB1bml0IHRlc3QgZmFpbHVyZXMgb24gMzIgYml0IGFyY2hpdGVjdHVyZXMuCgkgIEZpeGVzIGJ1ZyAjNTk1MTMzLgoKMjAwOS0wOS0xNCAxMjo0NzoyNiAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBGaXggb3V0LW9mLXRyZWUgYnVpbGQKCjIwMDktMDktMTQgMTQ6MDc6NTUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIGRvY3M6IEdTVF9NRVNTQUdFX1NUUkVBTV9TVEFUVVMgaXMgaW1wbGVtZW50ZWQgbm93YWRheXMuCgkgIERvY3Mgd2VyZSBzdGlsbCBtZW50aW9uIGl0IGFzICJub3QgeWV0IGltcGxlbWVudGVkIi4KCjIwMDktMDktMTIgMTM6NTI6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogQnVpbGQgcGtnY29uZmlnIGJlZm9yZSBhbGwgbGlicmFyaWVzIGFuZCBzZXQgUEtHX0NPTkZJR19QQVRICgkgIFRoaXMgd2F5IGctaXItc2Nhbm5lciBjYW4gZmluZCB0aGUgZ3N0cmVhbWVyLTAuMTAgcGtnLWNvbmZpZyBmaWxlLgoKMjAwOS0wOS0xMiAxMzo1MToyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIGludHJvc3BlY3Rpb246IERvbid0IHR5cGVkZWYgR3N0VGFnTGlzdCB0byBHc3RTdHJ1Y3R1cmUgZm9yIGdvYmplY3QtaW50cm9zcGVjdGlvbgoKMjAwOS0wOS0xMSAyMzoyMTozMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL0xJTkdVQVM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgMC4xMC4yNC4yIHByZS1yZWxlYXNlCgoyMDA5LTA5LTExIDIyOjQyOjUxICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBEb24ndCB1c2UgQysrIHN0eWxlIGNvbW1lbnRzCgoyMDA5LTA5LTExIDIyOjIyOjM0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBEaXNhYmxlIHJlc3RyaWN0aW9uIHRoYXQgc3RydWN0dXJlIGNoYW5nZXMgYXJlIHNpbmsgcGFkcwoJICBUaGUgc3RydWN0dXJlX2NoYW5nZSBtZXNzYWdlIHdhcyBvcmlnaW5hbGx5IGVtaXR0ZWQgb24gc291cmNlIHBhZHMgYW5kCgkgIHRoZW4gcmVjZW50bHkgY2hhbmdlZCB0byBiZSBzaW5rIHBhZHMuIFRoaXMgY2F1c2VzIGEgZmFpbHVyZSBpbiB0aGUKCSAgZ3N0LXB5dGhvbiB0ZXN0c3VpdGUuIERpc2FibGUgdGhlIHJlc3RyaWN0aW9uIHNvIHRoYXQgdGhlIHB1Ymxpc2hlZAoJICBiZWhhdmlvdXIgaXMgc3RpbGwgYWxsb3dlZC4KCjIwMDktMDktMTEgMTg6MjQ6MTggKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgY2hlY2s6IEZpeCB2ZXJzaW9uIGNoZWNrIHRlc3RzCgkgIEFjY29tb2RhdGUgdGhlIHNsaWdodGx5IGNoYW5nZWQgc2VtYW50aWNzIGluIHRoZSBwbHVnaW4gdmVyc2lvbiBjaGVjawoJICB3aGVyZSBhIENWUyB2ZXJzaW9uIGp1c3QgYmVmb3JlIGEgcmVsZWFzZSBpcyBhY2NlcHRhYmxlLgoKMjAwOS0wOS0xMSAyMToyMDo1NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeXJlZ2lzdHJ5OiBkb24ndCBjcmFzaCBpbiBjbGVhbmluZyB1cCBvbiBlcnJvci4KCSAgRG9uJ3QgZGVyZWZlcmVuY2UgTlVMTCBwb2ludGVycy4KCjIwMDktMDctMjAgMTI6NTQ6MDAgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZGVidWc6IHVzZSBkdW1teSBjb2RlIHRvIGF2b2lkIHNwdXJpb3VzIHNlbWljb2xvbnMKCSAgRml4ZXMgYnVnICM1ODkxNzMuCgoyMDA5LTA5LTEwIDExOjUzOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA5LTEwIDExOjQxOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgcGx1Z2luZmVhdHVyZTogaW1wcm92ZSB2ZXJzaW9uIGNoZWNrCgkgIEFsc28gcGFyc2UgdGhlIG5hbm8gb2YgdGhlIHZlcnNpb24gYW5kIGFzc3VtZSB0aGF0IFguWS5aLTEuMSA+PSBYLlkuWgoJICBXaXRoIHRoaXMgY2hhbmdlIHdlIGNhbiBhbHNvIGNoZWNrIGRldmVsb3BtZW50IHZlcnNpb25zIGFnYWluc3QgdGhlIHZlcnNpb24gb2YKCSAgdGhlIHVwY29tbWluZyByZWxlYXNlLgoKMjAwOS0wOS0xMCAxMDowNTozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBBZGQgRklYTUUgZm9yIDAuMTEgdG8gbm90IHR5cGVkZWYgR3N0VGFnTGlzdCB0byBiZSBhIEdzdFN0cnVjdHVyZQoJICBTZWUgYnVnICM1MTg5MzQuCgoyMDA5LTA5LTA5IDE2OjI5OjEwIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIEZpeCB0eXBvIGluIGlubGluZSBkb2N1bWVudGF0aW9uCgoyMDA5LTA5LTA5IDE3OjU3OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgVXBkYXRlIGNvbW1vbgoKMjAwOS0wOS0wOSAxODozODoyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEFkZCBhIGNvbW1lbnQgdG8gdGhlIHNjYWxpbmcgZnVuY3Rpb25zIHRvIGV4cGxhaW4gd2h5IHRoZSByb3VuZGluZyBpcyBjb3JyZWN0CgoyMDA5LTA5LTA5IDE2OjQ1OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBkb24ndCB1bnJlZiBOVUxMIGNhcHMKCSAgQ2FwcyBjYW4gYmUgTlVMTCBzbyBkb24ndCBjYWxsIHVucmVmIG9uIGl0IHVuY29uZGl0aW9uYWxseSwgaW5zdGVhZCB1c2UgYW4KCSAgZXhpc3RpbmcgZXhpdCBwYWQgZm9yIHRoZSBmdW5jdGlvbi4KCjIwMDktMDktMDkgMTQ6NTM6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFVzZSBnY2MncyBfX3VpbnQxMjhfdCBmb3IgNjRiaXQgdW5zaWduZWQgaW50ZWdlciBzY2FsaW5nCgkgIFRoaXMgaXMgYXZhaWxhYmxlIGluIG5ld2VyIGdjYyByZWxlYXNlcyBhbmQgaXQgc2hvdWxkIG9ubHkgZXhpc3QKCSAgb24gcGxhdGZvcm1zIHRoYXQgcHJvdmlkZSBzb21lIG5hdGl2ZSAxMjhiaXQgaW50ZWdlciBhcml0aG1ldGljCgkgIGluc3RydWN0aW9ucy4KCSAgVGhlIHg4Ni02NCBhc3NlbWJseSBmb3IgdGhpcyBpcyBzdGlsbCBrZXB0IGZvciBub24tZ2NjIGNvbXBpbGVycwoJICB0aGF0IGRvbid0IHByb3ZpZGUgX191aW50MTI4X3QgbWFnaWMuCgoyMDA5LTA5LTA5IDA5OjM4OjU0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL2RyYWZ0LWJ1ZmZlcnBvb2xzLnR4dDoKCSAgZGVzaWduOiBhZGQgaWRlYXMgZm9yIGJ1ZmZlciBtYW5hZ2VtZW50CgkgIFJpZ2h0IG5vdyB3ZSdyZSBvcGVyYXRpbmcgc3Vib3B0aW1hbCB3aGVuIHRhbGtpbmcgdG8ga2VybmVsIGludGVyZmFjZXMuIFdyaXRlCgkgIGRvZXNuIHNvbWUgaWRlYXMuCgoyMDA5LTA5LTA3IDE4OjI3OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBmaXggd2hpdGVzcGFjZQoKMjAwOS0wOS0wMyAxOTowNjoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiBmaXggd2hpdGVzcGFjZQoKMjAwOS0wOS0wNyAxNjoxNDo1NyArMDIwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZG9jczogRml4IHR5cG8gaW4gZ3N0X3ZhbHVlX3VuaW9uKCkKCjIwMDktMDktMDYgMTk6NDM6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGJpdHJlYWRlciwgYnl0ZXJlYWRlcjogYWRkIHNvbWUgRklYTUUgMC4xMSBjb21tZW50cyBhbmQgZml4IGluZGVudGluZwoKMjAwOS0wOS0wNCAxNzoxNTozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgIGJ5dGVyZWFkZXI6IGFkZCB1bmNoZWNrZWQgYW5kIGlubGluZSB2ZXJzaW9ucyBvZiB0aGUgZmxvYXQgZ2V0dGVycy9wZWVrZXJzCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2dldF9mbG9hdCpfdW5jaGVja2VkKCkKCjIwMDktMDktMDQgMTY6NTI6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICBieXRlcmVhZGVyOiBhZGQgaW5saW5lIHZlcnNpb25zIG9mIHRoZSBtb3N0IGNvbW1vbiBnZXR0ZXJzIGFuZCBzZXR0ZXJzCgoyMDA5LTA5LTAyIDExOjIwOjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkgIGJ5dGVyZWFkZXI6IGFkZCBpbmxpbmVkIF91bmNoZWNrZWQoKSB2YXJpYW50cyBmb3Igc29tZSBmdW5jdGlvbnMKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfc2tpcF91bmNoZWNrZWQoKQoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9wZWVrXypfdW5jaGVja2VkKCkKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZ2V0XypfdW5jaGVja2VkKCkKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfe3BlZWssZ2V0LGR1cH1fZGF0YV91bmNoZWNrZWQoKQoKMjAwOS0wOS0wNSAxMjozMDowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGludHJvc3BlY3Rpb246IFN0cmlwIEdzdCBwcmVmaXggZnJvbSBhbGwgdHlwZXMvZnVuY3Rpb25zCgoyMDA5LTA5LTA1IDEyOjIyOjM3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogRml4IGZvciBvdXQtb2YtdHJlZSBidWlsZHMKCjIwMDktMDktMDUgMTI6MDQ6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBpbnRyb3NwZWN0aW9uOiBGaXggb3V0LW9mLXRyZWUgYnVpbGQKCjIwMDktMDktMDUgMTE6NTE6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBpbnRyb3NwZWN0aW9uOiBGaXggYnVpbGQgaWYgZ2lyLXJlcG9zaXRvcnkgaXMgbm90IGluc3RhbGxlZAoKMjAwOS0wOS0wNSAwOTozNjoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIG5ldDogQWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzdXBwb3J0CgoyMDA5LTA5LTA1IDA5OjM0OjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSAgZGF0YXByb3RvY29sOiBBZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHN1cHBvcnQKCSAgQmVjYXVzZSBvZiBhIGJ1ZyBpbiBnb2JqZWN0LWludHJvc3BlY3Rpb24gdGhpcyBpcyBkaXNhYmxlZCBmb3Igbm93LgoKMjAwOS0wOS0wNSAwOToyODo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICBjb250cm9sbGVyOiBBZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHN1cHBvcnQKCjIwMDktMDktMDUgMDk6Mjc6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBBZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHN1cHBvcnQKCjIwMDktMDktMDUgMDk6MjM6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogLmdpdGlnbm9yZToKCSogZ3N0Ly5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgIGdzdGJhc2U6IEFkZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gc3VwcG9ydAoKMjAwOS0wOS0wNCAyMDo1Njo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC8uZ2l0aWdub3JlOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBBZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHN1cHBvcnQKCSAgUGFydGlhbGx5IGZpeGVzIGJ1ZyAjNTUwNjE2LgoKMjAwOS0wOS0wNSAxMDoxOToyMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDk0Zjk1ZTMgdG8gMTlmYTRmMwoKMjAwOS0wOS0wNCAxOTozNzoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgZG9jczogZml4IGRvY3MgZm9yIGdzdF9ieXRlX3JlYWRlcl97Z2V0fHBlZWt9X2Zsb2F0KigpCgoyMDA5LTA5LTA0IDExOjM1OjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA5LTA0IDA5OjUxOjI2ICswMjAwICBBdXJlbGllbiBHcmltYXVkIDxnc3RlbHp6QHlhaG9vLmZyPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IE9ubHkgdW5yZWYgRU9TIG1lc3NhZ2UgYWZ0ZXIgaXQgaXMgbm90IHVzZWQgYW55bW9yZQoJICBGaXhlcyBidWcgIzU5NDEwNy4KCjIwMDktMDktMDIgMTg6NTQ6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgc3RhdGVzOiBwb3N0IHN0cnVjdHVyZSBjaGFuZ2Ugb24gc2lua3BhZHMKCSAgUG9zdCB0aGUgc3RydWN0dXJlIGNoYW5nZSBtZXNzYWdlcyBvbiB0aGUgc2lua3BhZHMgb2YgdGhlIGVsZW1lbnRzLiBUaGlzIGFsbG93cwoJICB1cyB0byBjYXRjaCB1bmxpbmtlZCBwYWRzIGVhcmxpZXIgd2l0aG91dCBlbmRpbmcgdXAgd2l0aCBpbmNvbnNpc3RlbnQgZWxlbWVudAoJICBkZWdyZWVzLgoKMjAwOS0wOS0wMiAxODoxMzoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBhdm9pZCBmYWxzZSAnbG9vcCBkZXRlY3RlZCcgd2FybmluZ3MKCSAgV2hlbiB3ZSBkZXRlY3QgYSBwYWQgdW5saW5rIGluIHByb2dyZXNzLCB3ZSB3aWxsIG5vdCBiZSB1cGRhdGluZyB0aGUgZGVncmVlIG9mCgkgIHRoZSBwYXJlbnQgZWxlbWVudC4gVGhpcyBjYW4gY2F1c2UgZmFsc2UgbG9vcCBkZXRlY3RlZCB3YXJuaW5ncyBiZWNhdXNlIHRoZQoJICBkZWdyZWUgY291bnRlciBpcyBpbnZhbGlkLiBIYW5kbGUgdGhpcyBjYXNlIGJ5IG1hcmtpbmcgdGhlIGl0ZXJhdG9yIGFzICdkaXJ0eScKCSAgd2hlbiB3ZSBkZXRlY3QgYSBwYWQgdW5saW5rIGFuZCBhdm9pZCBlbWl0aW5nIHRoZSB3YXJuaW5nIGluIHRoaXMgY2FzZS4gV2UgaGF2ZQoJICB0byBjb250aW51ZSBvdXIgc3RhdGUgY2hhbmdlIGFzIGdvb2QgYXMgd2UgY2FuLCB3ZSB3aWxsIGV2ZW50dWFsbHkgcmVzeW5jIHdoZW4KCSAgdGhlIHBhZCB1bmxpbmsgY29tcGxldGVkLgoKMjAwOS0wOS0wMSAxNjo0OTo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgYmFzZXNyYzogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOS0wMSAxNjo0OToyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA5LTAxIDEyOjA3OjMxICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgZGlzdDogRG9uJ3QgbGlzdCB0aGUgc3RyZWFtcyBzdWJkaXIgdHdpY2UgaW4gZXhhbXBsZXMgTWFrZWZpbGUKCSAgTGlzdGluZyB0aGUgJ3N0cmVhbXMnIHN1YmRpciB0d2ljZSBpbiBESVNUX1NVQkRJUlMgYnJlYWtzIGRpc3RjaGVjay4KCjIwMDktMDktMDEgMTI6MDU6NTEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgZ3N0YmluOiBEb24ndCBwcm9wYWdhdGUgYSBOVUxMIGNhY2hlZCBpbmRleCB0byBhZGRlZCBlbGVtZW50cwoJICBXaGVuIGFuIGVsZW1lbnQgaXMgYWRkZWQgdG8gdGhlIGJpbiwgb25seSBzZXQgdGhlIGluZGV4IGlmIHdlIGhhdmUgYQoJICBjYWNoZWQgaW5kZXgsIHJhdGhlciB0aGFuIHNldHRpbmcgYSBOVUxMIGluZGV4IG9uIGVsZW1lbnRzIHRoYXQgbWlnaHQKCSAgaGF2ZSBhIGRlZmF1bHQgaW5kZXggb2JqZWN0IG9mIHRoZWlyIG93bi4KCjIwMDktMDctMTkgMjE6MjM6MTggKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IEFkZCBhIG5vdGUgYWJvdXQgcmVnZW5lcmF0aW5nIHRoZSBjaGFuZ2Vsb2cgaW4gdGhlIHJlbGVhc2Ugc2NyaXB0CgoyMDA5LTA5LTAxIDEwOjAzOjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGRvbid0IHRha2Ugb2JqZWN0IGxvY2sgZm9yIGdfY3JpdGljYWwoKSBhbmQgZmxlc2ggb3V0IHdhcm5pbmcgbWVzc2FnZSBzb21lIG1vcmUKCjIwMDktMDktMDEgMTA6MjE6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgc2luZ2xlIGl0ZXJhdG9yCgoyMDA5LTA5LTAxIDEwOjIwOjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogT25seSB2aXNpdCB0aGUgZWxlbWVudCBhIHNpbmdsZSB0aW1lIGluIHRoZSBzaW5nbGUgaXRlcmF0b3IKCjIwMDktMDktMDEgMDc6Mjc6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBGaXggc2luZ2xlIGl0ZXJhdG9yIGZvciBOVUxMIG9iamVjdHMgYW5kIG5vbi1HVHlwZUluc3RhbmNlIG9iamVjdHMKCSAgRml4ZXMgYnVnICM1OTM3MTkuCgoyMDA5LTA5LTAxIDAwOjAwOjU3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBkZWJ1ZzogbW9yZSBkZXRhaWwgaW4gd3Jvbmctc3RhdGUtb24tZGlzcG9zZSBlcnJvci4KCSAgQWxzbyB0ZWxsIGluIHdoaWNoIHN0YXRlIHRoZSBlbGVtZW50IGFjdHVhbHkgaXMgYW5kIGlmIGl0IGlzIGV2ZW50dWFseQoJICBzdGF0ZS1sb2NrZWQuCgoyMDA5LTA4LTMxIDIwOjM4OjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBmaXggZG9jcyBmb3IgX25ld19zaW5nbGUoKS4KCjIwMDktMDgtMzEgMTY6NTY6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgZG9jczogaXQncyBpdHMKCSAgVGhlIHBhbmRhIHNheXMgbm8hCgoyMDA5LTA4LTI5IDIwOjQ0OjM2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICByZWdpc3RyeTogZmlsbCBpbiBlbGVtZW50ZmFjdG9yeSB3aGVuIHJlZ2lzdGVyaW5nIGVsZW1lbnQKCSAgZWxlbWVudGZhY3RvcnkgZmllbGQgaXMgZmlsbGVkIGluIGJ5IGdzdF9lbGVtZW50X2Jhc2VfY2xhc3NfaW5pdCwKCSAgYnV0IGl0IG5lZWRzIHNvbWUgaW5mbyBzZXQgb24gdGhlIGVsZW1lbnQncyB0eXBlLCBzbyBoYXZlIGl0CgkgIGF2YWlsYWJsZSBwcmlvciB0byBjbGFzcyBzdHJ1Y3R1cmUgY3JlYXRpb24gc3Bpbm5pbmcgdXAuCgkgIFRoaXMgYWZmZWN0cyBlbGVtZW50cyB0aGF0IGhhdmUgYSB3ZWxsLWtub3duL3B1YmxpYyB0eXBlIChlLmcuIHBpcGVsaW5lKQoJICBhbmQgY2FuIGJlIGNyZWF0ZWQgYnkgb3RoZXIgbWVhbnMgdGhhbiBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UKCSAgKHdoaWNoIHdpbGwgYWxzbyBmaWxsIGluIHRoZSBlbGVtZW50J3MgZmFjdG9yeSkuCgoyMDA5LTA4LTMxIDExOjQ1OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiB1c2UgMTI4Yml0cyBkaXZpc2lvbiBvbiB4ODZfNjQKCjIwMDktMDgtMjkgMDQ6NDQ6NTEgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBmaXggY29tcGlsYXRpb24gb2Ygd2luMzIgY29kZQoJICBGaXhlcyAjNTkzNDYwLgoKMjAwOS0wOC0yOCAxODozNzo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBjYWNoZSBpbmRleAoJICBDYWNoZSB0aGUgbGFzdCBpbmRleCB0aGF0IHdhcyBzZXQgd2l0aCBfc2V0X2luZGV4KCkgYW5kIHJldHVybiB0aGlzIGluIHRoZQoJICBfZ2V0X2luZGV4KCkgY2FsbC4KCSAgU2V0IHRoZSBjYWNoZWQgaW5kZXggb24gbmV3bHkgYWRkZWQgZWxlbWVudHMuCgkgIEZpeGVzICM1NjY4ODEKCjIwMDktMDgtMjggMTg6MzU6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBiZXR0ZXIgdHlwZSBjaGVja3MKCSAgQWRkIEdTVF9DTE9DSyB0eXBlY2hlY2sgZm9yIF9zZXRfY2xvY2soKS4KCSAgQWxsb3cgc2V0dGluZyBOVUxMIGluZGV4ZXMgb24gZWxlbWVudCAoY2xlYXIgdGhlIGN1cnJlbnQgaW5kZXgpCgkgIFNvbWUgd2hpdGVzcGFjZSBmaXhlcy4KCjIwMDktMDgtMjggMTg6MTQ6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OyB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA4LTI4IDE4OjA2OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGFkZCBnc3RfaXRlcmF0b3JfbmV3X3NpbmdsZSB0byBkZWZzCgoyMDA5LTA4LTI4IDE4OjAzOjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDgtMjggMTc6NTk6MTUgKzAyMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgQ2hlY2sgc3VnZ2VzdGVkIGNhcHMgZm9yIHByb3h5IGFsbG9jCgkgIEJlY2F1c2Ugd2UgYXJlIHRyeWluZyB0byByZXNvbHZlIGEgc3VnZ2VzdGlvbiBoZXJlIHdlIGRvbid0IG5lZWQKCSAgdG8gY2hlY2sgb24gY2FwcyBmb3IgcHJveHlfYWxsb2MgYnV0IHdlIG5lZWQgdG8gY2hlY2sgb24gdGhlCgkgIHN1Z2dlc3RlZCBjYXBzIGluc3RlYWQuCgoyMDA5LTA4LTI4IDE3OjQ5OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA4LTI4IDE3OjAyOjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiB1c2UgcHJlZm9ybWFuY2UgY291bnRlcnMgb24gd2luZG93cwoJICBCYXNlZCBvbiBjbG9jayBpbXBsZW1lbnRhdGlvbiBieSBIw6V2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoJICBUcnkgdG8gZ2V0IHRoZSB0aW1lIG9uIHdpbmRvd3MgdXNpbmcgdGhlIHBlcmZvcm1hbmNlIGNvdW50ZXJzLiBUaGVzZSBoYXZlIGEgbXVjaAoJICBoaWdoZXIgcmVzb2x1dGlvbiBhbmQgYWNjdXJhY3kgdGhhbiB0aGUgcmVndWxhciBnZXRjdXJyZW50dGltZSgpLiBCZSBjYXJlZnVsIHRvCgkgIGZhbGwgYmFjayB0byByZWd1bGFyIGdldGN1cnJlbnR0aW1lKCkgb3IgcG9zaXggY2xvY2tzIHdoZW4gcGVyZm9ybWFuY2UgY291bnRlcnMKCSAgYXJlIG5vdCBhdmFpbGFibGUuCgoyMDA5LTA4LTI4IDE2OjA3OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIHN5c3RlbWNsb2NrOiBmaXggaW5kZW50YXRpb24KCjIwMDktMDgtMjggMTU6MzI6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHVzZSBzaGlmdCBpbnN0ZWFkIG9mIGRpdmlzaW9uCgkgIFdlIGNhbiB1c2UgYSBzaGlmdCBmb3Igc2NhbGluZyB0aGUgZGVub21pbmF0b3IgaW5zdGVhZCBvZiBhIGRpdmlkZSBzaW5jZSB0aGUKCSAgZGVub20gaXMgYWx3YXlzIHBvc2l0aXZlLiBUaGlzIGF2b2lkcyBoYXZpbmcgdGhlIGNvbXBpbGVyIGdlbmVyYXRlIGNvZGUgZm9yIHRoZQoJICBkaWZmZXJlbnQgcm91bmRpbmcgcnVsZXMgd2hlbiBzY2FsaW5nIG5lZ2F0aXZlIHZhbHVlcy4KCjIwMDktMDgtMjggMTM6NDU6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IG1ha2UgaW5saW5pbmcgZXhwbGljaXQKCjIwMDktMDgtMjggMTI6NDM6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IG9wdGltaXplIGZvciB4ODZfNjQgd2l0aCBzb21lIGlubGluZSBhc20KCSAgNjRiaXQgeDg2IGhhcyBuYXRpdmUgNjR4NjQtPjEyOCBiaXQgbXVsdGlwbHkgdGhhdCB3ZSBjYW4gdXNlIHdpdGggc29tZSBpbmxpbmUKCSAgYXNzZW1ibGVyIHRvIHNwZWVkIHVwIGxhcmdlIG11bHRpcGxpY2F0aW9ucy4KCSAgVXNlIGJzciB0byBmaW5kIHRoZSBudW1iZXIgb2YgbGVhZGluZyB6ZXJvcyBtb3JlIGVmZmljaWVudGx5LgoKMjAwOS0wOC0yOCAxMjozMzozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZmFjdG9yIG91dCB0aGUgbGVhZGluZyB6ZXJvIGNvdW50IGNvZGUKCjIwMDktMDgtMjggMTI6MzA6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHBhc3MgY29ycmVjdGlvbiBmYWN0b3IgYXJvdW5kCgkgIFBhc3MgdGhlIGNvcnJlY3Rpb24gZmFjdG9yIGFyb3VuZCB0byBnZXQgcmlkIG9mIHRoZSBlbnVtLCBzb21lIGNvZGUKCSAgYW5kIHNvbWUgYnJhbmNoZXMuCgoyMDA5LTA4LTI4IDEyOjIxOjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA4LTI4IDEyOjE5OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBtb3ZlIGNvbW1vbiBjb3JyZWN0aW9uIGNvZGUgaW4gYSBtYWNybwoKMjAwOS0wOC0yNCAxODowMTowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDgtMjYgMTY6NTE6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBBbGxvdyB0byB1c2UgTlVMTCBhcyBvYmplY3QgZm9yIHRoZSBzaW5nbGUgaXRlcmF0b3IKCjIwMDktMDgtMjYgMTY6Mzk6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJICBpdGVyYXRvcjogQVBJOiBBZGQgZ3N0X2l0ZXJhdG9yX25ld19zaW5nbGUoKQoJICBUaGlzIGFsbG93cyAiaXRlcmF0aW9uIiBvdmVyIGEgc2luZ2xlIG9iamVjdCBvZiBzb21lIHR5cGUsCgkgIHdoaWNoIGhhcHBlbnMgb2Z0ZW4gZm9yIHRoZSBHc3RQYWRJdGVySW50TGlua3NGdW5jdGlvbiBmb3IgZXhhbXBsZS4KCjIwMDktMDgtMjQgMTc6NTc6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmV0dXJuIHJlc3VsdCBvZiBfc2V0X2NhcHMoKQoKMjAwOS0wOC0yNCAxNzo1NjozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDgtMjIgMTQ6MjI6MzEgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHhtbC5oOgoJICBJdCdzIF9fR05VQ19fLCBub3QgX0dOVUNfCgkgIFRoaXMgYXBwZWFycyB0byBiZSBhbiA4IHllYXIgb2xkIGJ1Zy4KCjIwMDktMDgtMjEgMDk6NTk6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgZG9jczogYWRkIGxpbmsgdG8gY2dpdCB0YXJiYWxsIGRvd25sb2FkIG9mIGdzdC10ZW1wbGF0ZSBpbiBQV0cKCSAgU28gcGVvcGxlIHdobyBjYW4ndCB1c2UgZ2l0IGZvciBzb21lIHJlYXNvbiBzdGlsbCBjYW4gZ2V0IGhvbGQKCSAgb2YgdGhlIGNvZGUuIFNlZSAjNTkxMDY5LgoKMjAwOS0wOC0yMCAxMTo1NDo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBwbHVnaW5mZWF0dXJlOiBhZGQgZ3VhcmQgdG8gZ3N0X3BsdWdpbl9mZWF0dXJlX3R5cGVfbmFtZV9maWx0ZXIKCSAgU28gd2UgZG9uJ3QganVzdCBjcmFzaCBpZiB0aGVyZSdzIGEgcmVmY291bnRpbmcgYnVnIHNvbWV3aGVyZSBlbHNlLgoKMjAwOS0wOC0xOSAxNjoyNDozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkgIGRvY3M6IERvbid0IHRhbGsgYWJvdXQgdGhlIGRlcHJlY2F0ZWQgbGliZ25vbWUgYW5kIEdOT01FLVZGUwoJICBJbnN0ZWFkIHRhbGsgYWJvdXQgR0lPIGFuZCBjaGFuZ2UgdGhlIG9wdGlvbiBwYXJzaW5nIGV4YW1wbGUgdG8KCSAgbm90IGluaXRpYWxpemUgbGliZ25vbWUgYnV0IG9ubHkgR1RLLgoJICBGaXhlcyBidWcgIzU5MjIzMy4KCjIwMDktMDgtMTkgMTU6MjU6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvTWFrZWZpbGUuYW06CgkgIGV4YW1wbGVzOiBMaW5rIHJ0cG9vbC10ZXN0IHRvIGxpYnB0aHJlYWQgZm9yIHVzaW5nIHRoZSBQT1NJWCB0aHJlYWRzCgkgIEFsc28gdGhlIG90aGVyIHN0cmVhbXMgZXhhbXBsZSBjYW4gcnVuIHdpdGhvdXQgcHRocmVhZHMgdGhlcmVmb3JlCgkgIGVuYWJsZSBpdCBldmVuIGlmIHB0aHJlYWRzIGFyZSBub3QgYXZhaWxhYmxlLgoJICBGaXhlcyBidWcgIzU5MjMxNC4KCjIwMDktMDgtMTggMTQ6NDU6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgdG9vbHM6IFVzZSBpdGVyYXRlX2ludGVybmFsX2xpbmtzIGluc3RlYWQgb2YgZGVwcmVjYXRlZCBnZXRfaW50ZXJuYWxfbGlua3MKCjIwMDktMDgtMTggMTQ6NDU6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBVc2UgaXRlcmF0ZV9pbnRlcm5hbF9saW5rcyBpbnN0ZWFkIG9mIGRlcHJlY2F0ZWQgZ2V0X2ludGVybmFsX2xpbmtzCgoyMDA5LTA4LTE4IDE0OjA1OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBnc3RwYWQ6IEFkZCBzb21lIERJU0FCTEVfREVQUkVDQVRFRCBtYXJrZXJzIGluIHRoZSBoZWFkZXIgdG9vCgkgIFRoZSBpbnRlcm5hbCBsaW5rcyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIHNpbmNlIHNvbWUgdGltZSBhbmQKCSAgdGhlcmUgYWxyZWFkeSB3ZXJlIEdTVF9SRU1PVkVfREVQUkVDQVRFRCBtYXJrZXJzIGluIHRoZSBzb3VyY2UgZmlsZSwKCSAgbm93IGFkZCB0aGVtIHRvIHRoZSBoZWFkZXIgdG9vLgoJICBGaXhlcyBidWcgIzU5MjIwOS4KCjIwMDktMDgtMTggMTE6Mzg6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBkb2NzOiBVcGRhdGUgdGhlIGRlc2lnbiBkb2NzIGZvciBiaW4gc3RhdGUgY2hhbmdlcyBhY2NvcmRpbmcgdG8gbGFzdCBjb21taXQKCjIwMDktMDgtMTggMTE6MzY6MzYgKzAyMDAgIEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogRG9uJ3QgdHJ5IHRvIGNoYW5nZSBjaGlsZHJlbidzIHN0YXRlIGlmIHRoZXkncmUgYWxyZWFkeSBpbiB0aGUgc3RhdGUgd2Ugd2FudAoJICBGaXhlcyBidWcgIzM2ODUzNi4KCjIwMDktMDgtMTggMTE6MzM6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBBbHdheXMgZ2V0IHRoZSBwcm94eXBhZCdzIGdob3N0cGFkIHZpYSB0aGUgZ2hvc3RwYWQgaW4gdGhlIHNyYyBjYXBzIGNoYW5nZSBub3RpZnkgaGFuZGxlcgoJICBCZWZvcmUgdGhlIHNpZ25hbCBoYW5kbGVyIHdvdWxkIGdldCB0aGUgZ2hvc3RwYWQgcGFzc2VkIGFzIHNlY29uZAoJICBhcmd1bWVudCBidXQgaXQgY291bGQndmUgYWxyZWFkeSBiZWVuIHVucmVmZmVkIGFuZCBkZXN0cm95ZWQuCgkgIFRoaXMgd291bGQgdGhlbiBsZWFkIHRvIGNyYXNoZXMgYW5kIGFsbCB0aGF0LgoJICBOb3cgd2UgZ2V0IHRoZSBnaG9zdHBhZCBmcm9tIHRoZSBwcm94eSBwYWQsIHdoaWNoIHdlIGdldCBmcm9tIHRoZQoJICB0YXJnZXQgcGFkIGFzIGl0J3MgcGVlci4KCSAgRml4ZXMgYnVnICM1OTEzMTguCgoyMDA5LTA4LTE4IDA4OjQ1OjA4ICswMjAwICBMYXVyZW50IEdsYXlhbCA8c3BnbGVnbGVAeWFob28uZnI+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSAgZmlsZXNpbms6IEFkZCBwcm9wZXJ0eSB0byBhbGxvdyB0byBhcHBlbmQgdG8gYW4gYWxyZWFkeSBleGlzdGluZyBmaWxlCgkgIEZpeGVzIGJ1ZyAjNTkxNDQxLgoKMjAwOS0wOC0xNCAxMTo1MzoxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogUmVtb3ZlIGR1cGxpY2F0ZWQgY2hlY2sgZm9yIGNsb2NrX2dldHRpbWUKCjIwMDktMDgtMTQgMTE6MTI6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBBZGQgc3BlY2lhbCByYW5kb20gdW5pdCB0ZXN0IGZvciA2NCBzY2FsaW5nIGZ1bmN0aW9ucwoJICBUaGlzIHRlc3RzIDEwMDAwMCByYW5kb20gbXVsdGlwbGljYXRpb25zL2RpdmlzaW9ucyBvZiBhbGwgc2NhbGluZwoJICBmdW5jdGlvbiB2YXJpYW50cyBhbmQgY29tcGFyZXMgdGhlIHJlc3VsdCB3aXRoIHRoZSByZXN1bHQgdGhhdCBpcwoJICBnZW5lcmF0ZWQgYnkgR01QIG9uIHRoZSBzYW1lIGlucHV0LgoJICBGb3IgdGhpcyBjaGVjayBmb3IgR1NMIGFuZCBHTVAgZHVyaW5nIGNvbmZpZ3VyZSBidXQgb25seSB1c2UKCSAgaXQgZm9yIHRoaXMgc2luZ2xlIHVuaXQgdGVzdC4KCSAgVGVzdGluZyBmdW5jdGlvbnMgd2VyZSBwcm92aWRlZCBieSBLaXBwIENhbm5vbiA8a2Nhbm5vbkBsaWdvLmNhbHRlY2guZWR1PgoKMjAwOS0wOC0xMyAxNjozMTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dXRpbHM6IEFkZCBuZXcgc2NhbGluZyBmdW5jdGlvbnMgdG8gdGhlIGRvY3MKCjIwMDktMDgtMTMgMTY6MjA6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBBZGQgKHZlcnkpIG1pbmltYWwgdW5pdCB0ZXN0IGZvciB0aGUgbmV3IHJvdW5kaW5nIHNjYWxpbmcgZnVuY3Rpb25zCgoyMDA5LTA4LTEzIDE2OjEwOjMxICswMjAwICBLaXBwIENhbm5vbiA8a2Nhbm5vbkBsaWdvLmNhbHRlY2guZWR1PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBnc3R1dGlsczogQVBJOiBBZGQgcm91bmRpbmcgdG8gbmVhcmVzdCBhbmQgbmV4dCBpbnRlZ2VyIHZlcnNpb25zIG9mIHRoZSA2NCBiaXQgaW50ZWdlciBzY2FsaW5nIGZ1bmN0aW9ucwoJICBUaGUgbmV3IGZ1bmN0aW9ucyBhcmUKCSAgZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludF9yb3VuZCgpCgkgIGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnRfY2VpbCgpCgkgIGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9yb3VuZCgpCgkgIGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9jZWlsKCkKCSAgRml4ZXMgYnVnICM1OTA5MTkuCgoyMDA5LTA4LTEyIDExOjEwOjA1ICswMjAwICBLaXBwIENhbm5vbiA8a2Nhbm5vbkBsaWdvLmNhbHRlY2guZWR1PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBSZXZlcnQgcGFydHMgb2YgbGFzdCBjaGFuZ2UgdG8gb3B0aW1pemUgdGhlIHNjYWxpbmcgZnVuY3Rpb25zIGFnYWluCgkgIFBhcnRpYWxseSBmaXhlcyBidWcgIzU5MDkxOS4KCjIwMDktMDgtMTEgMDk6MTY6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBGaXggdmlvbGF0aW9ucyBvZiBzdHJpY3QtYWxpYXNpbmcgcnVsZXMgaW4gZ3N0X3V0aWxfdWludDY0X3NjYWxlKCkKCjIwMDktMDgtMTEgMDk6MTA6NDcgKzAyMDAgIEtpcHAgQ2Fubm9uIDxrY2Fubm9uQGxpZ28uY2FsdGVjaC5lZHU+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IFJlZmFjdG9yIGdzdF91dGlsX3VpbnQ2NF9zY2FsZSgpCgkgIFRoaXMgd2lsbCBsYXRlciBtYWtlIGl0IHBvc3NpYmxlIHRvIHByb3ZpZGUgcm91bmRpbmcgdmVyc2lvbnMKCSAgb2YgaXQgd2l0aG91dCBtdWNoIGNvZGUgZHVwbGljYXRpb24uCgkgIFBhcnRpYWxseSBmaXhlcyBidWcgIzU5MDkxOS4KCjIwMDktMDgtMTEgMTU6MjA6MTggKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZyBhdCBheGlzLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IHVwZGF0ZSBkb2Mgc3RyaW5nCgoyMDA5LTA4LTExIDEzOjIxOjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIGdzdHNlZ21lbnQ6IEFjdHVhbGx5IHN0YXJ0PT1zdG9wPT1zZWdtZW50X3N0YXJ0IGlzIGluc2lkZSB0aGUgc2VnbWVudAoJICBTdGlsbCB0aGUgb2xkIGNvZGUgd2FzIHdyb25nIGFzIGl0IGNsYWltZWQgdGhhdCBzdGFydD09c3RvcDxzZWdtZW50X3N0YXJ0CgkgIHdvdWxkIGJlIGluc2lkZSB0aGUgc2VnbWVudCBhbmQgcmV0dXJuZWQgaW5zYW5lIGNsaXBwaW5nIGRpZmZlcmVuY2VzLgoKMjAwOS0wOC0xMSAxMzowMzowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICBnc3RzZWdtZW50OiBGaXggdW5pdCB0ZXN0IGFuZCBhZGQgYW4gYWRkaXRpb25hbCB0ZXN0CgkgIFRoZSBwcmV2aW91cyB0ZXN0IGFzc3VtZWQgdGhhdCBzdGFydD1zdG9wPXNlZ21lbnRfc3RhcnQgd2lsbAoJICBiZSBpbnNpZGUgdGhlIHNlZ21lbnQgYnV0IHRoaXMgaXMgd3JvbmcuCgoyMDA5LTA4LTExIDEyOjU5OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIGdzdHNlZ21lbnQ6IENsaXBwaW5nIHNob3VsZCBkZXRlY3Qgc3RhcnQ9c3RvcDxzZWdtZW50X3N0YXJ0IGFzIG91dHNpZGUgdGhlIHNlZ21lbnQKCSAgQmVmb3JlIGl0IHJldHVybmVkIHRoYXQgW3N0YXJ0LHN0b3BdIGlzIGluc2lkZSB0aGUgc2VnbWVudCBhbmQgdGhhdCB0aGUKCSAgZGlmZmVyZW5jZSBiZXR3ZWVuIHNlZ21lbnRfc3RhcnQgYW5kIHN0YXJ0IG5lZWRzIHRvIGJlIGNsaXBwZWQuIElmIHRoZQoJICBjbGlwcGluZyBpcyBkb25lIG9uIGEgYnVmZmVyIChsaWtlIGluIGJhc2VhdWRpb3NpbmspIHRoaXMgd2lsbCByZXN1bHQKCSAgaW4gdGhlIGRhdGEgcG9pbnRlciBiZWluZyBhdCBhIGludmFsaWQgbWVtb3J5IHBvc2l0aW9uLgoJICBGaXhlcyBidWcgIzU4OTg0OS4KCjIwMDktMDgtMTEgMDU6NDc6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICBnc3RidXM6IFVucmVmIHBpcGVsaW5lIGFmdGVyIHVzYWdlIGluIHRlc3RfY3VzdG9tX21haW5fY29udGV4dCB1bml0IHRlc3QKCSAgVGhpcyBtYWtlcyB0aGUgY29yZSB1bml0IHRlc3RzIHZhbGdyaW5kIGNsZWFuIGFnYWluLgoKMjAwOS0wOC0xMSAwMjo1NDo1NSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBkb2NzOiBhZGQgRWR3YXJkJ3MgZ2l0IHBsdWdpbiBtb3ZpbmcgaG93dG8gdG8gbW92aW5nLXBsdWdpbnMgZG9jdW1lbnQKCjIwMDktMDgtMTAgMTQ6MzA6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBjaGVja3M6IGRvbid0IGZvcmdldCB0byBpbmNsdWRlIGNvbmZpZy5oIGluIHRoZSBHc3RPYmplY3QgdW5pdCB0ZXN0CgoyMDA5LTA4LTEwIDEzOjA1OjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBjaGVja3M6IHRyeSB0byBmaXggR3N0T2JqZWN0IHVuaXQgdGVzdCBvbiBPU1gKCSAgU2VlbXMgbGlrZSB3ZSBnZXQgU0lHQlVTIGluc3RlYWQgb2YgU0lHU0VHViBoZXJlIHdoZW4gR0xpYiBjcmFzaGVzCgkgIHdoZXJlIGl0IHNob3VsZG4ndCBjcmFzaCAoYW5kIHdlIGV2ZW4gaGF2ZSBhIHVuaXQgdGVzdCBmb3IgdGhhdCEpLgoKMjAwOS0wOC0xMCAxMjowMTo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIGNoZWNrczogc2V0IHBpcGVsaW5lcyB0byBOVUxMIHN0YXRlIGluIHBhcnNlLWxhdW5jaCB1bml0IHRlc3QKCSAgRml4ZXMgdGltZW91dHMgaW4gZ3N0X3Rhc2tfY2xlYW51cF9hbGwoKS4KCjIwMDktMDgtMTAgMTE6NDI6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICBjaGVja3M6IHNldCBwaXBlbGluZSBiYWNrIHRvIE5VTEwgc3RhdGUgaW4gR3N0QnVzIHVuaXQgdGVzdAoJICBGaXhlcyB0aW1lb3V0IGluIGdzdF90YXNrX2NsZWFudXBfYWxsKCkuCgoyMDA5LTA4LTEwIDExOjQzOjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBhZGQgc29tZSBsb2dnaW5nIGJlZm9yZSBjYWxsaW5nIGdzdF90YXNrX2NsZWFudXBfYWxsKCkKCjIwMDktMDgtMDggMjI6Mjc6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IENhbGwgZ3N0X3Rhc2tfY2xlYW51cF9hbGwoKSBpbiBHU1RfRU5EX1RFU1QKCSAgVGhpcyBmaXhlcyBtYW55IHVuaXQgdGVzdHMgdW5kZXIgdmFsZ3JpbmQgdGhhdCBzaG93cwoJICBsZWFraW5nIEdzdFRhc2tzIHRoYXQgYXJlIG5vdCByZWFsbHkgbGVha2VkIGJ1dCBqdXN0CgkgIG5vdCB1bnJlZmZlZCBieSB0aGUgdGFzayB0aHJlYWQgYmVmb3JlIHRoZSB1bml0IHRlc3QKCSAgc3RvcHBlZC4KCSAgRml4ZXMgYnVnICM1OTEwNDUuCgoyMDA5LTA4LTA4IDE0OjQ3OjU3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogUmVtb3ZlIGRlYWQgYXNzaWdubWVudHMKCjIwMDktMDgtMDggMTQ6NDc6NDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkgIGdzdDogUmVtb3ZlIGRlYWQgYXNzaWdubWVudHMKCjIwMDktMDgtMDcgMDI6MzY6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzLy5naXRpZ25vcmU6CgkgIGdpdGlnbm9yZTogaWdub3JlIG5ldyBxdWV1ZS1lcnJvciB0ZXN0CgoyMDA5LTA4LTA2IDIwOjQwOjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogYWRkIGludGVybmFsLWNoZWNrLmggdG8gQlVJTFRfU09VUkNFUyBpbiBhdHRlbXB0IHRvIGZpeCB0aGUgYnVpbGQKCSAgRm9yIHNvbWUgcGVvcGxlIHRoZSBidWlsZCBvZiBsaWJnc3RjaGVjayB3YXMgYnJva2VuIGJlY2F1c2UgdGhlIG1ha2UKCSAgdGFyZ2V0IHRoYXQgY3JlYXRlcyB0aGUgaW50ZXJuYWwtY2hlY2suaCBmaWxlIHdhc24ndCBleGVjdXRlZCBmb3IKCSAgc29tZSByZWFzb24uIFRoaXMgc2hvdWxkIGhvcGVmdWxseSBmaXggdGhpcy4KCjIwMDktMDgtMDYgMTg6Mzg6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2dlbi5zaDogb2xkZXIgYWNsb2NhbHMgZG9uJ3QgbGlrZSAtSS4gc28gdXNlIC1JIC4gaW5zdGVhZAoKMjAwOS0wOC0wNiAxODo0NzozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBhZGQgYWRkaXRpb25hbCBjaGVja2luZyBmb3Igd3JpdGFiaWxpdHkKCSAgQ2hlY2sgZm9yIG1ldGFkYXRhIHdyaXRhYmlsaXR5IHdoZW4gc2V0dGluZyBjYXBzIG9uIGJ1ZmZlciBvciB3aGVuIGNvcHlpbmcKCSAgbWV0YWRhdGEgZmxhZ3MuIE9ubHkgZW5hYmxlIHRoZXNlIGV4dHJhIGFzc2VydGlvbnMgaW4gZ2l0IHZlcnNpb25zLgoJICBUaGlzIHNob3VsZCBoZWxwIHVzIGZpbmQgYmFkIGVsZW1lbnRzLgoKMjAwOS0wOC0wNCAxMDoyMjoyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNoZWNrOiBkaXNhYmxlIHVuaXQgdGVzdCBzdXBwb3J0IG9uIHdpbjMyIGZvciBub3cKCSAgVW50aWwgd2UgbWFrZSB0aGUgaW50ZXJuYWwgbGliY2hlY2sgd29yayBvbiB3aW5kb3dzLgoKMjAwOS0wNy0xOSAxNzowNDo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiAuZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IGZpeCBzeW1ib2wgZXhwb3J0aW5nCgoyMDA5LTA3LTE3IDAwOjQ2OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjaGVjay1jaGVja3MubTQ6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSAgY2hlY2s6IGZpeCBpc3N1ZXMgd2l0aCAnbWFrZSBkaXN0Y2hlY2snCgkgIFNlZW1zIHRvIHdvcmsgbm93LCBhdCBsZWFzdCBvbiAqbml4LiBPbmUgb2YgdGhlIGNvbmZpZ3VyZSBjaGVja3MKCSAgY2F1c2VkIHRoZXNlIHdlaXJkIGlzc3VlcyAtIGJ1dCB3aGljaCBvbmU/CgoyMDA5LTA4LTA2IDE3OjI3OjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJKiBhdXRvZ2VuLnNoOgoJKiBjaGVjay1jaGVja3MubTQ6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJICBjaGVjazogdXNlIHByaXZhdGUgY29weSBvZiBjaGVjayBmb3IgbGliZ3N0Y2hlY2sKCSAgU2VlICM1NzcyNzUuIFNlZW1zIHRvIHdvcmsgZmluZSwgYnV0IGRvZXNuJ3QgZGlzdGNoZWNrIHlldC4KCjIwMDktMDctMTYgMTg6Mzk6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW46CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2ltcGwuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuaDoKCSAgY2hlY2s6IGFkZCBpbnRlcm5hbCBjb3B5IG9mIGNoZWNrLTAuOS42CgkgIE5vdCBob29rZWQgdXAgeWV0LiBTZWUgIzU3NzI3NS4KCjIwMDktMDgtMDYgMTQ6MTE6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZG9jczogZml4IFNpbmNlOiB0YWcgZm9yIG5ldyBnc3RfY2Fwc19jYW5faW50ZXJzZWN0KCkgZnVuY3Rpb24KCjIwMDktMDctMjIgMTE6MjQ6NTkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogdXNlIG5ldyBfY2Fwc19jYW5faW50ZXJzZWN0KCkKCjIwMDktMDctMjIgMTE6MjQ6MDggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB1c2UgbmV3IF9jYXBzX2Nhbl9pbnRlcnNlY3QoKQoKMjAwOS0wNy0yMiAwOTo1NDo1NSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHVzZSBuZXcgX2NhcHNfY2FuX2ludGVyc2VjdCgpCgoyMDA5LTA3LTIyIDA5OjM4OjEwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2FwczogYWRkIGdzdF9jYXBzX2Nhbl9pbnRlcnNlY3QoKQoJICBPZnRlbiB3ZSBkb24ndCBuZWVkIHRoZSByZXN1bHQgb2YgdGhlIGludGVyc2VjdGlvbi4gQWRkIGEgdmFyaWFudCB0aGF0IG9ubHkKCSAgdHJpZXMgdG8gaW50ZXJzZWN0LiBJdCBjYW4gYnJlYWsgb3V0IGVhcmxpZXIgYW5kIGRvZXMgbGVzcyBHVmFsdWUgY29weWluZy4KCSAgQVBJOiBnc3RfY2Fwc19jYW5faW50ZXJzZWN0KCkKCjIwMDktMDctMjIgMDk6MjQ6NTUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBvbmx5IGNoZWNrIGNhcHNfaXNfZml4ZWQoKSBpZiB0aGV5IGNoYW5nZWQKCSAgVGhlIHByZXZpb3VzIGNvZGUgY291bGQgY2FsbCBnc3RfY2Fwc19pc19maXhlZCgpIGZvciB0aGUgc2FtZSBjYXBzIG1hbnkgdGltZXMuCgoyMDA5LTA3LTIxIDEzOjMxOjEzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBzcGxpdCBjYWxsYmFjayBmb3Igc3RydWN0dXJlIGludGVyc2VjdCBpbnRvIHR3byBmdW5jdGlvbnMKCSAgV2UgY2FsbCB0aGlzIHNlcGFyYXRlbHkuIHRoZXJlIGlzIG5vIG11Y2ggYmVuZWZpdCBpbiByZXVzaW5nIHRoZSBjYWxsYmFjay4KCSAgU3BsaXR0aW5nIGlzIGxldCB1cyByZW1vdmUgYSBicmFuY2ggYWxzby4KCjIwMDktMDctMjEgMTM6Mjc6MDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGxvZ2dpbmc6IGxvZyBpZiB3ZSBjb3B5IGNhcHMgdG8gYmUgYWJsZSB0byB0cmFjayBpdAoKMjAwOS0wNy0yMSAxMTozMjowMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogYWRkIGNvbW1lbnRzIGFib3V0IGdfcHRyX2FycmF5IHNpemUgYmVoYXZpb3VyCgkgIEp1c3QgZXhwbGFpbiB0aGUgYmVoYXZpb3VyIHRvIGF2b2lkIHRoYXQgc29tZW9uZSBlbHNlIGlzIHdhc3RpbmcgdGltZSB0cnlpbmcgdG8KCSAgaW1wcm92ZSB0aGlzIHRvby4KCjIwMDktMDctMjEgMTE6MTQ6MjAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJICBleGFtcGxlOiB1bnJlZiB0aGUgY2xvY2sgaWQKCjIwMDktMDctMjEgMTA6NTY6NTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB1c2UgY29ycmVjdCB2YXJpYWJsZSBpbiB0ZXN0CgoyMDA5LTA3LTI4IDE2OjEzOjM3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IGFkZCBmaWxlbmFtZSB0byBkZWJ1ZyBtZXNzYWdlLCBsaWtlIGVsc2V3aGVyZQoKMjAwOS0wNy0yMSAxMDozODoxNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGZpeCBjb21waWxlciB3YXJuaW5nIGFib3V0IHVudXNlZCB2YXIgd2hlbiBkaXNhYmxpbmcgZGVidWcgbG9nZ2luZwoKMjAwOS0wOC0wNiAxMzoyOToyOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBwb3N0IGVycm9yIG1lc3NhZ2Ugd2hlbiBwYXVzaW5nIHRhc2sKCSAgSWYgZG93bnN0cmVhbSByZXR1cm5zIGVycm9yIGFuZCB1cHN0cmVhbSBoYXMgYWxyZWFkeSBkZWxpdmVyZWQKCSAgZXZlcnl0aGluZyAoaW5jbHVkaW5nIEVPUykgYW5kIHdpbGwgbm8gbG9uZ2VyIGJlIGFyb3VuZCB0byBmaW5kCgkgIG91dCB0aGF0IHdlIHBhdXNlZCAoYW5kIHdoeSksIHBvc3QgZXJyb3IgbWVzc2FnZS4gIEZpeGVzICM1ODk5OTEuCgoyMDA5LTA3LTI4IDEyOjAzOjM2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSAgcXVldWU6IGFkZCB1bml0IHRlc3QKCSAgTWFrZSBhIGRvd25zdHJlYW0gZWxlbWVudCByZXR1cm4gYW4gZXJyb3IgYWZ0ZXIgdXBzdHJlYW0gaGFzIGFscmVhZHkKCSAgcHV0IGFsbCBkYXRhIGludG8gcXVldWUgKGluY2x1ZGluZyBFT1MpLiAgQXMgc3VjaCwgdXBzdHJlYW0KCSAgd2lsbCBub3QgYmUgYXJvdW5kIHRvIHBpY2sgdXAgdGhlIGVycm9yLCBzbyBpdCBpcyB1cCB0byBxdWV1ZSB0bwoJICBhY3QgYXBwcm9wcmlhdGVseS4gIFNlZSAjNTg5OTkxLgoJICBOb3RlIHRoZXJlIG1heSBiZSBkb3duc3RyZWFtIGZhdGFsIGVycm9ycyAoZS5nLiBuZWdvdGlhdGlvbikgdGhhdCBkbwoJICBub3Qgd2FycmFudCBhbiBlcnJvciBtZXNzYWdlIGFscmVhZHkgaGF2aW5nIGJlZW4gcG9zdGVkLgoKMjAwOS0wOC0wNSAxODowMjozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBjbGFyaWZ5IF9jYXBzX2lzX2VxdWFsKCkKCjIwMDktMDgtMDUgMTc6NTg6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVmYWN0b3IgbWV0YWRhdGEgbW9kaWZpY2F0aW9ucwoJICBDaGVjayB3aGVuIHdlIG5lZWQgdG8gdG91Y2ggdGhlIG1ldGFkYXRhIG9mIHRoZSBvdXRwdXQgYnVmZmVyIGFmdGVyIHNlbGVjdGluZwoJICB0aGUgb3V0cHV0IGJ1ZmZlciBzbyB0aGF0IHdlIGhhdmUgZXZlcnl0aGluZyBpbiBvbmUgcGxhY2UuCgkgIEFsc28gdGFrZSBmbGFncyBhbmQgdGltZXN0YW1wIG1vZGlmaWNhdGlvbnMgaW50byBhY2NvdW50LgoKMjAwOS0wOC0wNSAxNzo1NToxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBvbmx5IHNldCBjYXBzIHdoZW4gZGlmZmVyZW50CgkgIFdoZW4gd2UgaGF2ZSBhbiBpbnB1dCBidWZmZXIgd2l0aCBjYXBzIGFuZCB3aGVuIHRob3NlIGNhcHMgYXJlIGRpZmZlcmVudCBmcm9tCgkgIHRoZSBjYXBzIHdlIHdhbnQsIG9ubHkgdGhlbiBtYWtlIGEgd3JpdGFibGUgY29weSBvZiB0aGUgaW5wdXQgYnVmZmVyIGFzIHRoZQoJICBvdXRwdXQgYnVmZmVyIGFuZCBzZXQgdGhlIGNhcHMgb24gdGhhdCBvdXRwdXQgYnVmZmVyLiBUaGlzIGF2b2lkcyBzb21lIGNhc2VzCgkgIHdoZXJlIHdlIHRvb2sgYSBzdWJidWZmZXIgZm9yIHNldHRpbmcgY2FwcyB0aGF0IHdlcmUgdGhlIHNhbWUuCgoyMDA5LTA4LTA1IDE1OjI4OjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGVuYWJsZSBvcHRpbWlzYXRpb24KCSAgV2hlbiB3ZSBoYXZlIHRoZSBzYW1lIGlucHV0IGFzIG91dHB1dCBjYXBzLCByZXVzZSB0aGUgaW5wdXQgY2FwcyBvYmplY3QuIEFmdGVyCgkgIHRoZSBjYXBzIHJlZmNvdW50aW5nIGhhcyBiZWVuIHNvcnRlZCBvdXQgbm93LCB3ZSBjYW4gZmluYWxseSBlbmFibGUgdGhpcwoJICBvcHRpbWlzYXRpb24uCgoyMDA5LTA4LTA1IDEzOjQ4OjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogZG9uJ3Qgc2V0IGNhcHMgb24gdW53cml0YWJsZSBidWZmZXJzCgkgIFRha2UgdGhlIHJlZiBhZnRlciBzZXR0aW5nIHRoZSBjYXBzIG9uIGEgYnVmZmVyIGJlY2F1c2UgZWxzZSB0aGUgYnVmZmVyIGlzCgkgIHRlY2hpbmljYWxseSBub3Qgd3JpdGFibGUuCgoyMDA5LTA4LTA1IDEzOjQ3OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogZ2V0IGNhcHMgYWZ0ZXIgbWFraW5nIHdyaXRhYmxlCgkgIEdldCB0aGUgY2FwcyBvZiB0aGUgYnVmZmVyIGFmdGVyIHdlIG1hZGUgdGhlIGJ1ZmZlciB3cml0YWJsZS4gVGhpcyBkaWQgbm90CgkgIGNhdXNlIGFueSBwcm9ibGVtcyBidXQgaXQncyBuaWNlciB0aGlzIHdheS4KCjIwMDktMDgtMDUgMTM6NDY6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogZml4IHJlZmNvdW50aW5nIHByb2JsZW0KCSAgTWFrZSBzdXJlIHRoZSBtZXRhZGF0YSBpcyB3cml0YWJsZSBiZWZvcmUgc2V0dGluZyB0aGUgY2FwcyBvbiBhIGJ1ZmZlci4KCjIwMDktMDgtMDUgMTM6NDQ6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IHJlZmNvdW50aW5nIHByb2JsZW0KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBNYWtlIHN1cmUgdGhhdCB0aGUgb3V0cHV0IGJ1ZmZlciBoYXMgd3JpdGFibGUgbWV0YWRhdGEgYmVmb3JlIHdlIGF0dGVtcHQgdG8gc2V0CgkgIGNhcHMgb24gaXQuCgkgIGZpeGVzICM1ODM5OTkKCjIwMDktMDgtMDUgMTM6NDQ6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBhZGQgc29tZSBtb3JlIGRlYnVnZ2luZyBpbiBfcmVwbGFjZQoKMjAwOS0wOC0wNSAxMzo0MzoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBBZGQgc29tZSBtb3JlIGRlYnVnZ2luZwoKMjAwOS0wOC0wNSAxMzo0MTozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogc21hbGwgaW1wcm92ZW1lbnRzCgkgIFVucmVmIHRoZSB0YXJnZXQgcGFkIGFmdGVyIHdlIHVzZWQgaXQgZm9yIGRlYnVnZ2luZy4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1Zy4KCSAgT25seSByZXBsYWNlIGNhcHMgd2hlbiB0aGV5IGNoYW5nZWQuCgoyMDA5LTA3LTI5IDEzOjQ2OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogY2xlYW51cHMgaW4gcG9zaXRpb24gcXVlcmllcwoJICBVc2UgZXhpc3RpbmcgYm9vbGVhbiBmbGFnIHRvIHBhc3MgcG9zaXRpb24gcXVlcmllcyB1cHN0cmVhbS4gQWxzbyBhZGQgdXBzdHJlYW0KCSAgcXVlcmllcyBmb3IgdGhlIGxhc3QgcG9zaXRpb24gcXVlcmllcy4KCjIwMDktMDgtMDUgMTM6MjU6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IGZpeCBsaWJ4bWwyIGNoZWNrLCB3aGljaCBpcyBvbmx5IG5lZWRlZCBmb3IgeG1sIGxvYWQvc2F2ZSBub3cKCSAgU2luY2UgdGhlIHJlZ2lzdHJ5IGRvZXNuJ3QgdXNlIGxpYnhtbDIgYW55IGxvbmdlciwgaXQncyBubyBsb25nZXIgbmVjZXNzYXJ5CgkgIHRvIGRpc2FibGUgYm90aCB4bWwgbG9hZC9zYXZlICphbmQqIHRoZSByZWdpc3RyeSB0byBnZXQgcmlkIG9mIHRoZSBsaWJ4bWwyCgkgIGRlcGVuZGVuY3ksIGRpc2FibGluZyBqdXN0IHhtbCBsb2FkaW5nL3NhdmluZyBpcyBlbm91Z2guIEZpeGVzICM1OTA4NDEuCgoyMDA5LTA4LTAyIDE0OjMzOjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiByZW5hbWUgdW5pbnN0YWxsZWQgcmVnaXN0cnkgZmlsZSB0byByZWdpc3RyeS5kYXQKCSAgV2UncmUgbm90IHVzaW5nIHRoZSB4bWwgcmVnaXN0cnkgYW55IGxvbmdlciBhZnRlciBhbGwuCgoyMDA5LTA4LTAyIDE0OjI4OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiByZWZpbmUgc2VhcmNoIHBhdGhzIGZvciB1bmluc3RhbGxlZCBwbHVnaW4gbW9kdWxlcwoJICBVc2UgbW9yZSByZWZpbmVkIHNlYXJjaCBwYXRocyBmb3Igb3VyIHBsdWdpbiBtb2R1bGVzLiBOb3Qgb25seSBkb2VzCgkgIHRoaXMgbWFrZSB0aGluZ3MgbXVjaCBmYXN0ZXIgaW4gYW4gdW5pbnN0YWxsZWQgc2V0dXAsIGl0IGFsc28gbWFrZXMKCSAgc3VyZSB3ZSdyZSBub3QgYWNjaWRlbnRhbGx5IHVzaW5nIG91dC1vZi1kYXRlIHBsdWdpbnMgYnVpbHQgYWdlcwoJICBhZ28gYXMgcGFydCBvZiBhIChmYWlsZWQpICdtYWtlIGRpc3RjaGVjaycgd2hlbiB3ZSBmb3JnZXQgdG8gY2xlYW4KCSAgdXAgdGhlIGRpc3RjaGVjayBidWlsZCBkaXJlY3RvcnkuCgoyMDA5LTA3LTI5IDIzOjQyOjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBkb2NzOiBkaXN0IEdTdHJlYW1lci0xLjAgYnVmZmVyIGRlc2lnbiBkcmFmdAoKMjAwOS0wOC0wNiAwNjo1MDo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICB0YWdsaXN0OiBBZGQgbmV3IEFMQlVNX0FSVElTVCB0YWcgdG8gdGhlIGRvY3MKCjIwMDktMDgtMDQgMTQ6MTM6MzQgKzAyMDAgIEpvaG4gTWlsbGlraW4gPGptaWxsaWtpbkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBBZGQgc3VwcG9ydCBmb3IgQUxCVU1fQVJUSVNUIHRhZwoJICBUaGUgImFsYnVtIGFydGlzdCIgdGFnIGlzIHVzZWQgd2hlbiB0aGUgYXJ0aXN0IG9mIGFuIGVudGlyZQoJICBhbGJ1bSBkaWZmZXJzIGZyb20gdGhlIGFydGlzdCBvZiBhbiBpbmRpdmlkdWFsIHRyYWNrOyBmb3IgZXhhbXBsZSwKCSAgd2hlbiBhICJndWVzdCBhcnRpc3QiIGFwcGVhcnMgb24gYW4gYWxidW0sIG9yIG9uIGNvbXBpbGF0aW9ucy4KCSAgRml4ZXMgYnVnICM1OTA0MzAuCgoyMDA5LTA3LTI5IDEzOjMzOjExICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFuLnNlbG5lc0BnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBRdWVyeSB1cHN0cmVhbSBmb3IgdGhlIHBvc2l0aW9uIGlmIGNvbnZlcnNpb24gaW4gUEFVU0VEIGZhaWxlZAoJICBGaXhlcyBidWcgIzU5MDA0NS4KCjIwMDktMDctMjggMjA6NDI6MjAgKzAyMDAgIEtpcHAgQ2Fubm9uIDxrY2Fubm9uQGxpZ28uY2FsdGVjaC5lZHU+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSW1wcm92ZSBkZWJ1ZyBvdXRwdXQgaW4gZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjY2VwdGNhcHMoKQoJICBGaXhlcyBidWcgIzU4OTUyNC4KCjIwMDktMDctMjIgMDk6MDE6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IERvbid0IHVuc2V0IEdBUCBmbGFnIGlmIHdvcmtpbmcgaW4gcGFzc3Rocm91Z2ggbW9kZQoJICBGaXhlcyBidWcgIzU4OTMxNC4KCjIwMDktMDgtMDYgMDE6NDM6NTcgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBkZXZlbG9wbWVudCAtPiAwLjEwLjI0LjEKCj09PSByZWxlYXNlIDAuMTAuMjQgPT09CgoyMDA5LTA4LTA1IDAwOjUxOjE2ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSAgUmVsZWFzZSAwLjEwLjI0CgoyMDA5LTA4LTA0IDIzOjA1OjI3ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOS0wOC0wMyAxNTozMToyMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgYnl0ZXJlYWRlcjogYXZvaWQgd3JhcC1hcm91bmQgaW4gYnVmZmVyIHNpemUgY2hlY2tzLiAgRml4ZXMgIzU5MDYyMi4KCjIwMDktMDctMzAgMTQ6NDE6MzAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgMC4xMC4yNC41IHByZS1yZWxlYXNlCgoyMDA5LTA3LTI4IDIxOjE1OjUyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogR2V0IHRoZSBmbHVzaGluZyBzdGF0ZSB3aXRoIHRoZSBvYmplY3QgbG9jayB0YWtlbi4KCSAgRml4ZXMgIzU5MDA1NgoKMjAwOS0wNy0yOCAyMToxNDoxMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IE1ha2Ugc3VyZSB0aGUgQ29sbGVjdERhdGEgbGlzdCBpcyB1cC10by1kYXRlIHdoZW4gcmVhZGluZy9zZXR0aW5nIGl0CgkgIFdpdGhvdXQgdGhpcywgd2Ugcmlza2VkOgoJICAqIENoZWNraW5nIHRoZSBmbHVzaGluZyBzdGF0ZSBvbiBhbiB1bmV4aXN0aW5nIGxpc3QKCSAgKiBOb3Qgc2V0dGluZyB0aGUgZmx1c2hpbmcgc3RhdGUgb24gcGFkcyB0aGF0IGhhZCBqdXN0IGJlZW4gYWRkZWQKCSAgUGFydGlhbGx5IGZpeGVzICM1OTAwNTYKCjIwMDktMDctMjggMjE6MTI6MjUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBTcGxpdCBvdXQgX2NoZWNrX3BhZHMgaW50byBhIHZlcnNpb24gd2l0aG91dCBsb2NrIHRha2luZy4KCSAgVGhpcyBpcyBzbyB3ZSBjYW4gdXNlIF9jaGVja19wYWRzIGluIHBsYWNlcyB3aGVyZSB3ZSd2ZSBhbHJlYWR5IHRha2VuCgkgIHRoZSBsb2NrIGluIHF1ZXN0aW9uLgoJICBQYXJ0aWFsbHkgZml4ZXMgIzU5MDA1NgoKMjAwOS0wNy0yOCAxNToyMzoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmg6CgkgIGNoZWNrOiBtYWtlIG5ldyBHc3RTdHJlYW1Db25zaXN0ZW5jeSBzdHJ1Y3R1cmUgcHJpdmF0ZQoJICBUaGVyZSdzIG5vIG5lZWQgdG8gaGF2ZSBHc3RTdHJlYW1Db25zaXN0ZW5jeSBpbiBhIHB1YmxpYyBoZWFkZXIgZm9yCgkgIHRoZSB0aW1lIGJlaW5nLCBzbyBtYWtlIGl0IHByaXZhdGUuIFdoaWxlIHdlJ3JlIGF0IGl0LCBhZGQgYSBndGstZG9jCgkgIGJsdXJiIGZvciBpdCB0aG91Z2guIFJlLWZpeGVzICM1ODg3NDQuCgoyMDA5LTA3LTI0IDEzOjUwOjE5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIDAuMTAuMjMuNCBwcmUtcmVsZWFzZQoKMjAwOS0wNy0yNCAwOTo1MDoxOSArMDEwMCAgUm9iaW4gU3RvY2tlciA8cm9iaW5Abmlib3Iub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRvbid0IGhhbmRsZSBTRUVLSU5HIHF1ZXJpZXMgZm9yIGZvcm1hdHMgdGhhdCBkb24ndCBtYXRjaCB0aGUgb25lIHRoZSBzb3VyY2Ugb3BlcmF0ZXMgaW4KCSAgUmV0dXJuIEZBTFNFIGluIGJhc2VzcmMncyBkZWZhdWx0IHF1ZXJ5IGhhbmRsZXIgd2hlbiB3ZSBnZXQgYSBTRUVLSU5HIHF1ZXJ5IGZvcgoJICBhIGZvcm1hdCB0aGF0J3Mgbm90IHRoZSBvbmUgdGhlIHNvdXJjZSBvcGVyYXRlcyBpbi4gUHJldmlvdXNseSAoaWUuIGJlZm9yZSwgaW4KCSAgdGhlIGdpdCB2ZXJzaW9uKSB3ZSB3b3VsZCByZXR1cm4gVFJVRSBpbiB0aGF0IGNhc2UgYW5kIHNlZWthYmxlPUZBTFNFLCB3aGljaAoJICBpcyBtb3JlIGNvcnJlY3QsIGJ1dCBjYXVzZXMgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcHJvYmxlbXMuIChCZWZvcmUgdGhhdAoJICB3ZSB3b3VsZCBjaGFuZ2UgdGhlIGZvcm1hdCBvZiB0aGUgcXVlcnkgd2hlbiBhbnN3ZXJpbmcsIHdoaWNoIHdhcyBjb21wbGV0ZWx5CgkgIGJyb2tlbiBzaW5jZSBjYWxsZXJzIGRvbid0IGV4cGVjdCB0aGF0IG9yIGNoZWNrIGZvciBpdCkuIFNpbmNlIHRoZSBTRUVLSU5HCgkgIHF1ZXJ5IGlzIGEgZmFpcmx5IHJlY2VudCBhZGRpdGlvbiwgbm90IGFsbCBkZW11eGVycywgcGFyc2VycyBhbmQgZGVjb2RlcnMKCSAgaW1wbGVtZW50IGl0IHlldCwgaW4gd2hpY2ggY2FzZSBhbnkgU0VFS0lORyBxdWVyeSBieSBhbiBhcHBsaWNhdGlvbiB3aWxsCgkgIGp1c3QgYmUgcGFzc2VkIHVwc3RyZWFtIHdoZXJlIGl0IHdpbGwgdGhlbiBiZSBoYW5kbGVkIGJ5IGJhc2VzcmMuIE5vdywgaWYKCSAgZS5nLiB0b3RlbSBkb2VzIGEgU0VFS0lORyBxdWVyeSBmb3IgVElNRSBmb3JtYXQgYW5kIHdlIGhhdmUgYSBkZW11eGVyIHRoYXQKCSAgZG9lc24ndCBpbXBsZW1lbnQgdGhlIHF1ZXJ5LCBiYXNlc3JjIHdvdWxkIGFuc3dlciBpdCB3aXRoIHNlZWthYmxlPUZBTFNFIGluCgkgIG1vc3QgY2FzZXMsIGFuZCB0b3RlbSBjYW4gb25seSB0YWtlIHRoYXQgYXMgYXV0aG9yaXRhdGl2ZSBhbnN3ZXIsIG5vdCBrbm93aW5nCgkgIHRoYXQgdGhlIGRlbXV4ZXIgZG9lc24ndCBpbXBsZW1lbnQgdGhlIFNFRUtJTkcgcXVlcnkuIFRvIGF2b2lkIHRoaXMsIHdlIG1ha2UKCSAgYmFzZXNyYyByZXR1cm4gRkFMU0UgdG8gU0VFS0lORyBxdWVyaWVzIGluIHVuaGFuZGxlZCBmb3JtYXRzLiBUaGF0IHdheQoJICBhcHBsaWNhdGlvbnMgbGlrZSB0b3RlbSBjYW4gZmFsbCBiYWNrIG9uIGFzc3VtaW5nIHNlZWthYmlsaXR5IGRlcGVuZGluZyBvbgoJICB3aGV0aGVyIGEgZHVyYXRpb24gaXMgYXZhaWxhYmxlLCBvciBzb21lc3VjaC4gRG93bnN0cmVhbSBlbGVtZW50cyBkb2luZwoJICBzdWNoIHF1ZXJpZXMgYXJlIGxpa2VseSB0byBlcXVhdGUgYW4gdW5oYW5kbGVkIHF1ZXJ5IHdpdGggYSBub24tc2Vla2FibGUKCSAgcmVzcG9uc2UgYXMgd2VsbCwgc28gdGhpcyBzaG91bGQgYmUgYW4gYWNjZXB0YWJsZSBmaXggZm9yIHRoZSB0aW1lIGJlaW5nLgoJICBTZWUgIzU4NDgzOCwgIzU4ODk0NCwgIzU4OTQyMyBhbmQgIzU4OTQyNC4KCjIwMDktMDctMjQgMDA6NDE6NTUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZmVkYWFlZSB0byA5NGY5NWUzCgoyMDA5LTA3LTIwIDE2OjExOjAyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgZ3N0cmVnaXN0cnliaW5hcnk6IGFkZCArMSBhZnRlciBlcnJvciBjaGVja2luZwoJICBUaGUgY3VycmVudCBjb2RlIG1hZGUgdGhlIGVycm9yIGNoZWNraW5nIHBvaW50bGVzcyBieSBjaGFuZ2luZyAtMSB0byAwIGluIGVycm9yCgkgIGNhc2VzLiBBbHNvIGRvbid0IGxlYWsgYSBwYWQgdGVtcGxhdGUgb24gZXJyb3IuCgoyMDA5LTA3LTIwIDE1OjUxOjIwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjIzLjMgcHJlLXJlbGVhc2UKCjIwMDktMDctMjAgMTg6MDM6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOgoJICB0ZXN0czogbWFrZSBzdXJlIHRoZSB0YXNrcyBhcmUgam9pbmVkCgkgIENhbGwgX2NsZWFuX2FsbCgpIG9uIHRoZSB0YXNrIHRvIG1ha2Ugc3VyZSBldmVyeXRoaW5nIGlzIGpvaW5lZCBhbmQgc3RvcHBlZC4KCSAgU2VlICM1ODkxMjcKCjIwMDktMDctMjAgMTU6NDQ6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBmaXggdGFza3Bvb2wgbGVhawoJICBHc3RUYWtzIGRvZXMgbm90IGFsd2F5cyB1bnJlZiB0aGUgdGFza3Bvb2wgaXQgd2FzIGNyZWF0ZWQgZnJvbSBiZWNhdXNlIGl0CgkgIGRlcGVuZHMgb24gd2hlbiB0aGUgcG9vbCBwcm92aWRlZCBhbiBJRCBmb3Igam9pbmluZyB0aGUgdGFzay4KCSAgUmV3b3JrIHNvbWUgY29kZSBzbyB0aGF0IHdlIGFsd2F5cyB1bnJlZiB0aGUgcG9vbCBhbmQgb3B0aW9uYWxseSBqb2luIHdoZW4gdGhlCgkgIHBvb2wgcHJvdmlkZWQgYW4gaWQuCgkgIEZpeGVzICM1ODkxMjcKCjIwMDktMDctMjAgMTM6MjY6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogbWFrZSB0YWcgcXVldWluZyB0aHJlYWRzYWZlCgkgIFNlZSAjNTg4NzQ1CgoyMDA5LTA3LTEzIDA5OjIyOjA2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuaDoKCSAgZ3N0Y2hlY2s6IEFkZCBhIHN0cmVhbSBjb25zaXN0ZW5jeSBjaGVja2luZyBoZWxwZXIgcm91dGluZS4gRml4ZXMgIzU4ODc0NAoKMjAwOS0wNy0yMCAxMTowNDowNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeXJlZ2lzdHJ5OiBkb24ndCB1bnJlZiBOVUxMIGlmIHdlIGhhdmUgYW4gZWFybHkgcmVhZCBlcnJvcgoKMjAwOS0wNy0xMiAxMDowNDowMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBTZXJpYWxpemUgdGFncyBpbnRvIHRoZSBkYXRhZmxvdy4gRml4ZXMgIzU4ODc0NQoKMjAwOS0wNy0xNiAxNDoxNzowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGRvY3M6IGZpeCBBUEkgZG9jcyBmb3IgZ3N0X3thZGFwdGVyfGJ5dGVfcmVhZGVyfV9tYXNrZWRfc2Nhbl91aW50MzIKCSAgQ2xhcmlmeSBieXRlIHJlYWRlciBkb2NzIGEgYml0OiBvZmZzZXQgaXMgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQKCSAgcG9zaXRpb24gb2YgdGhlIHJlYWRlciwgbm90IHRvIHRoZSBzdGFydCBvZiB0aGUgZGF0YS4gQWxzbywgdGhlCgkgIGV4YW1wbGVzIGluIGJvdGggdGhlIGFkYXB0ZXIgZG9jcyBhbmQgdGhlIGJ5dGUgcmVhZGVyIGRvY3MgaGF2ZQoJICB0aGUgbWFzayBhbmQgcGF0dGVybiBhcmd1bWVudHMgc3dhcHBlZCAoc2VlICM1ODc1NjEpLiBTcG90dGVkCgkgIGJ5IENhcmwtQW50b24gSW5nbWFyc3Nvbi4KCjIwMDktMDctMTYgMTM6NTk6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIHRhZ3M6IG9ubHkgZW1pdCBhIGdfd2FybmluZygpIGZvciBlbXB0eSB0YWcgc3RyaW5ncyBmb3IgZ2l0IHZlcnNpb25zCgkgIEZvciBub3csIGRvbid0IHNob3cgYSBnX3dhcm5pbmcoKSBmb3IgZW1wdHkgdGFnIHN0cmluZ3MgYW5kIE5VTEwKCSAgdGFncyB3aXRoIG5vbi1naXQgdmVyc2lvbnM7IHdlIHNob3VsZCB3YWl0IGZvciB0aGUgZml4ZXMgaW4gb3VyCgkgIHBsdWdpbiBtb2R1bGVzIHRvIG1ha2UgaXQgaW50byBhIHJlbGVhc2UgYmVmb3JlIHdlIGVuYWJsZSB0aGlzCgkgIHVuY29uZGl0aW9uYWxseS4KCjIwMDktMDctMTQgMTg6NTk6MTMgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgMC4xMC4yMy4yIHByZS1yZWxlYXNlCgoyMDA5LTA3LTE0IDEyOjE1OjA1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGFkZCBleHBsYW5hdGlvbiBmb3Igc2hvcnRjdXQKCjIwMDktMDctMTAgMjA6MDQ6NDggKzAxMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiB0YWtlIHNpemUgb25jZQoKMjAwOS0wNy0xMCAxOToxNzowNCArMDEwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBmaXggY2FuX2ludGVyc2VjdCB0byBiZWhhdmUgbGlrZSBpbnRlcnNlY3QKCSAgQWRkIGEgcXVpY2sgcmV0dXJuIGlmIHR3byB0eXBlcyBhcmUgdGhlIHNhbWUuIENoYW5nZSB0aGUgY2hlY2sgZm9yIHRoZQoJICBpbnRlcnNlY3Rpb24gZnVuY3Rpb24gdG8gYmUgdGhlIHNhbWUgYXMgdGhlIG9uZSB1c2VkIGluIGludGVyc2VjdCgpLiBUaGUKCSAgbGF0ZXIgdHJpZXMgYm90aCBkaXJlY3Rpb25zLgoKMjAwOS0wNy0xNCAwMDowNDoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3RpbmZvOiBtYWludGFpbiBBQkkgY29tcGF0aWJpbGl0eSBldmVuIGlmIGRlYnVnZ2luZyBpcyBkaXNhYmxlZAoKMjAwOS0wNy0wMiAxMjo0MDowNSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgc3RydWN0dXJlOiBDaGFuZ2UgTlVMTCBhbmQgZW1wdHkgc3RyaW5nIGhhbmRsaW5nCgkgIERvbid0IGZvcmJpZCB0aGUgZW1wdHkgc3RyaW5nICIiIGluIGdlbmVyaWMgc3RydWN0dXJlcywgb25seSBpbiB0YWdsaXN0cy4KCSAgUHJvcGVybHkgYWxsb3cgdGhlIE5VTEwgc3RyaW5nIGJ5IGFkZGluZyBzcGVjaWFsIGNhc2VzIGZvciBzZXJpYWxpc2luZwoJICBhbmQgZGVzZXJpYWxpc2luZyBpdC4gcHJvcDE9KHN0cmluZylOVUxMIGlzIHRoZSBOVUxMIHN0cmluZywKCSAgcHJvcDE9KHN0cmluZykiTlVMTCIgaXMgdGhlIGFjdHVhbCBzdHJpbmcgd2l0aCB0aGUgdmFsdWUgIk5VTEwiCgoyMDA5LTA3LTEzIDEyOjIzOjAyIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDU4NDViNjMgdG8gZmVkYWFlZQoKMjAwOS0wNy0xMyAxMjowMDo0NyArMDIwMCAgQW5kb25pIE1vcmFsZXMgPHlsYXR1eWEgYXQgZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogRml4IHNlZ2ZhdWx0IHdpdGggTVNWQwoJICBEb24ndCB1c2UgZGVwcmVjYXRlZCBmaWxlbm8gb24gTVNWQyBidXQgcmVwbGFjZSB3aXRoIF9maWxlbm8KCSAgRml4ZXMgIzU4NzA1MgoKMjAwOS0wNy0xMyAwOTozMjo1NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBkb2NzL2Rlc2lnbjogVXBkYXRlIE1ha2VmaWxlLmFtIGZvciBjaGFuZ2VkIGZyYW1lc3RlcCBkb2N1bWVudCBuYW1lLgoKMjAwOS0wNy0xMCAxOToyNzoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogdGhlIHBsdWdpbiBmZWF0dXJlcyBsaXN0ZWQgYnkgZ3N0LWluc3BlY3QgYXJlIHR5cGVmaW5kZXJzLCBub3QgdHlwZXMKCjIwMDktMDctMTAgMTg6NDY6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSAgZG9jczogYWRkIGRyYWZ0IGZvciBhcmJpdHJhcnkgYnVmZmVyIG1ldGFkYXRhIGlkZWEKCjIwMDktMDctMTAgMTg6MzU6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1mcmFtZXN0ZXAudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWZyYW1lc3RlcC50eHQ6CgkgIGRvY3M6IG1vcmUgZnJhbWVzdGVwIGRvY3Mgb3V0IG9mIGRyYWZ0CgoyMDA5LTA3LTEwIDE4OjMzOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDoKCSAgZG9jczogdXBkYXRlIGZyYW1lc3RlcCBkb2N1bWVudAoJICBSZW1vdmUgZXhwZXJpbWVudGFsIHN0YXR1cyBmcm9tIHRoZSBmcmFtZXN0ZXAgZHJhZnQuCgoyMDA5LTA3LTA4IDE1OjE1OjA0ICswMjAwICBQaGlsaXAgSsOkZ2Vuc3RlZHQgPHBoaWxpcGpAb3BlcmEuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogRml4IGNvbXBpbGF0aW9uIGlmIG9wdGlvbiBwYXJzaW5nIGlzIGRpc2FibGVkCgkgIEZpeGVzIGJ1ZyAjNTg3OTc2LgoKMjAwOS0wNy0wOCAxNToxMDoyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IFVzZSBnX2J1aWxkX2ZpbGVuYW1lKCkgaW5zdGVhZCBvZiBnX3N0cmpvaW4oKSB3aXRoIC8KCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgdGhlIGdlbmVyYXRlZCBmaWxlbmFtZXMgdXNlIHRoZSBwbGF0Zm9ybQoJICBzcGVjaWZpYyBkaXJlY3Rvcnkgc2VwYXJhdG9yIGluc3RlYWQgb2YgLy4KCSAgRml4ZXMgYnVnICM1ODc5NzMuCgoyMDA5LTA3LTA3IDIwOjEzOjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGRvY3M6IGFkZCAnU2luY2UnIHRhZyBmb3IgbmV3IEdTVF9ERUJVR19DQVRFR09SWV9HRVQgbWFjcm8KCjIwMDktMDctMDcgMDA6MjM6NDEgKzAxMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IG1ha2UgaXQgdGhlIGJlc3Qgb2Ygd2ltcyBhbmQgZWR3YXJkcyBwYXRjaC4KCSAgQ2hlY2sgdGhlIHJpZ2h0IGZsdXNoaW5nIGZsYWcsIGJ1dCBzdGlsbCBhZGQgaXQgdG8gdGhlIHBhZC1saXN0LgoKMjAwOS0wNi0zMCAxMToyNjozNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGluZm86IGFsbG93IGdldHRpbmcgb3RoZXIgbG9nIGNhdGVnb3JpZXMuIEZpeGVzICM1ODc0MTcKCSAgQWRkIGEgbmV3IG1hY3JvIEdTVF9ERUJVR19DQVRFR09SWV9HRVQgdG8gZ2V0IGEgbG9nIGNhdGVnb3J5IGJ5IG5hbWUuIFRoaXMKCSAgYWxsb3dzIHBsdWdpbnMgdG8gdXNlIGUuZy4gY29yZSBjYXRlZ29yaWVzIGxpa2UgUEVSRk9STUFOQ0Ugb3IgQ0xPQ0suCgkgIEFQSTogR1NUX0RFQlVHX0NBVEVHT1JZX0dFVAoKMjAwOS0wNy0wNiAxOTo1MTo1NyArMDEwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IG1ha2UgY29tbWVudCBhIEZJWE1FIGNvbW1lbnQKCjIwMDktMDctMDYgMTk6NTA6NTIgKzAxMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIGxvZ2dpbmc6IGxvZyBvYmplY3QgdHlwZSBpbiBtZXNzYWdlCgoyMDA5LTA3LTA2IDE5OjQ4OjU4ICswMTAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGxvZ2dpbmc6IHVzZSBwZXJmIGNhdGVnb3J5IGZvciBkcm9wcGVkIGJ1ZmZlcnMKCjIwMDktMDYtMjkgMTE6MjY6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBEb24ndCBmb3J3YXJkIEZMVVNIX1NUT1AgaWYgc29tZSBpbnB1dCBzdHJlYW1zIGFyZSBzdGlsbCBmbHVzaGluZy4KCSAgVGhpcyBndWFyYW50ZWVzIHRoYXQgb25seSBvbmUgRkxVU0hfU1RPUCBldmVudCAodGhlIGxhc3Qgb25lKSB3aWxsIGJlIHNlbnQKCSAgZG93bnN0cmVhbSB3aGVuIGEgZmx1c2hpbmcgc2VlayBpcyBiZWluZyBkb25lIHRocm91Z2ggY29sbGVjdHBhZHMuCgoyMDA5LTA2LTI0IDExOjExOjM1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogVXBkYXRlIHRoZSBjb29raWUgd2hlbiBzZXR0aW5nIG91cnNlbHZlcyBhcyBmbHVzaGluZy4KCSAgVGhpcyBmb3JjZXMgdGhlIHBhZCBzdGF0dXMgdG8gYmUgcmUtZXZhbHVhdGVkIG9uIHRoZSBuZXh0IF9jaGVja19wYWRzKCkuCgoyMDA5LTA2LTA5IDE0OjU0OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgZG9jczogZml4IGd0ay1kb2MgLyo8IHByaXZhdGUgPiovIG1hcmtlcgoKMjAwOS0wNi0wOSAxNDo0ODo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IGxvZyBwcm9iYWJpbGl0eSBpbiBkZWJ1ZyBtZXNzYWdlCgoyMDA5LTA2LTMwIDE4OjIyOjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogZml4IHBhcnNpbmcgb2YgdGhlIHN0ZXAgZG9uZSBtZXNzYWdlCgkgIFBhcnNlIHRoZSBkdXJhdGlvbiBmaWVsZCB0b28uCgoyMDA5LTA2LTI5IDExOjI0OjI1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeXJlZ2lzdHJ5OiBVc2UgbG9jYWwgdmFsdWVzIGluIHdoaWxlL2ZvciBsb29wcywgdXNlIGJyYW5jaCBwcmVkaWN0aW9uIG1hY3JvcwoKMjAwOS0wNi0yOSAxMToyMzozMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIFNwcmVhZCBicmFuY2ggcHJlZGljdGlvbiBtYWNyb3MuCgkgIFRoZXNlIGFyZSBiYXNlZCBvbiBwcm9maWxpbmcgc2V2ZXJhbCBwbGF5YmFjayBzY2VuYXJpb3MgdXNpbmcgcGxheWJpbjIuCgoyMDA5LTA2LTI5IDExOjIwOjEyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIFVzZSBsb2NhbCB2YXJpYWJsZXMgaW4gZm9yL3doaWxlIGxvb3BzLgoJICBUaGlzIG1ha2VzIHRoZSBnZW5lcmF0ZWQgY29kZSBmYXN0ZXIgc2luY2U6CgkgICogSXQgd29uJ3QgaGF2ZSB0byByZWFkIGFuIHVuZGlyZWN0IHZhbHVlICh3aGljaCB3aWxsIG1vc3QgbGlrZWx5IGJlCgkgIG91dHNpZGUgb2YgdGhlIEwxL0wyIGNhY2hlKQoJICAqIFdlIGtub3cgdGhhdCB2YWx1ZSBuZXZlciBjaGFuZ2VzICh0aGUgY29tcGlsZXIgaGFzIG5vIGNsdWUgdGhhdCBpdCBkb2Vzbid0KS4KCjIwMDktMDYtMDkgMTk6MDg6MjYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGxpYnMvY29udHJvbGxlcjogU2V0IGRlZmF1bHQgZ3N0IGRlYnVnZ2luZyBjYXRlZ29yeS4KCjIwMDktMDYtMjkgMTE6NTc6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuc2NtOgoJICB0ZXN0czogZml4IGV4YW1wbGUKCjIwMDktMDYtMjkgMTE6NTY6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYnVmZmVybGlzdDogdXNlIGZhc3RlciBnc3RfYnVmZmVyX2xpc3RfZ2V0KCkKCSAgVXNlIHRoZSBmYXN0ZXIgZ3N0X2J1ZmZlcl9saXN0X2dldCgpIHRvIGdldCB0aGUgZmlyc3QgYnVmZmVyIG9mIGEgbGlzdC4KCjIwMDktMDYtMjkgMTE6NTU6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBmaXggZXhhbXBsZQoJICBUaGUgX2RvIGZ1bmN0aW9uIG5vdyB0YWtlcyB1c2VyX2RhdGEgaW4gYWxsIGNhc2VzLgoKMjAwOS0wNi0yOSAxMTo0NjowMCArMDIwMCAgT2dueWFuIFRvbmNoZXYgPG9nbnlhbkBheGlzLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHRha2UgdGltZXN0YW1wIGxhdGVyCgkgIE1ha2Ugc3VyZSB3ZSBkb24ndCBhY2NpZGVudGFsbHkgY2FzdCBhIGJ1ZmZlcmxpc3Qgb2YgYSBidWZmZXIgYW5kIHRyeSB0byB0YWtlCgkgIHRoZSB0aW1lc3RhbXAgb2YgaXQuCgkgIFJlZml4ZXMgIzU4NTk2MAoKMjAwOS0wNi0yOSAxMTowNzowMCArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnIGF0IGF4aXMuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgZG9jczogZml4IHNvbWUgdHlwb3MKCjIwMDktMDYtMjkgMTE6MjQ6MDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGxvZ2dpbmc6IGFkZCBhIHBlcmZvcm1hY2UgbG9nIGNhdGVnb3J5CgkgIFRoaXMgY2F0ZWdvcnkgY2FuIGJlIHVzZWQgdG8gbG9nIHNsb3cgY29kZSBwYXRoIGFuZCBoZWxwIGF1ZGl0aW5nIHRoZQoJICBwZXJmb3JtYW5jZS4gQWRkIEZJWE1FLTAuMTEgdG8gc29tZSBxdWVzdGlvbmFibGUgY2F0ZWdvcmllcy4KCjIwMDktMDYtMjcgMTY6MzQ6MzYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBmaXggaW50LT5naW50IHRvIGJlIGluIHN5bmMgd2l0aCB0aGUgKi5oICBhbmQgdXNhZ2UKCjIwMDktMDYtMjYgMTM6MzM6NTAgKzAxMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2dlbi5zaDogVXNlIHByaW50ZiBpbnN0ZWFkIG9mICdlY2hvIC1uJy4gQ2hlY2sgZm9yIGF1dG9tYWtlLTEuMVswMV0KCSAgQ2hlY2sgZm9yIG1vcmUgYXV0b21ha2UgY29tbWFuZCB2YXJpYW50cy4gVXNlIHByaW50ZiBpbnN0ZWFkIG9mICdlY2hvIC1uJwoJICBmb3IgcG9ydGFiaWxpdHkKCjIwMDktMDYtMjYgMTM6NDE6MTEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjgxMDAzMCB0byA1ODQ1YjYzCgoyMDA5LTA2LTI2IDEyOjUwOjUzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICByZXF1ZXN0LXBhZDogdGVsbCBhYm91dCByZWYgY291bnRzIGluIHJlbGVhc2VfcmVxdWVzdF9wYWQgZG9jcy4KCSAgSXQgaXMgbm90IHRvbyBvYnZpb3VzIHRoYXQgZ2V0dGluZyBhbmQgcmVsZWFzaW5nIHJlcXVlc3QgcGFkcyBpcyBub3QgZW50aWVybHkKCSAgc3ltZXRyaWNhbCByZWdhcmRpbmcgdG8gdGhlIHBhZCByZWZjb3VudC4gQWRkIGEgbm90ZSBhYm91dCB0aGF0IHRvIHRoZSBkb2NzLgoJICBUaGlzIG1pZ2h0IGRlc2VydmUgYSBGSVhNRS0wLjExIHRvby4KCjIwMDktMDYtMjUgMTE6MjU6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZG9uJ3QgZG8gdGhpbmdzIHdpdGggc2lkZSBlZmZlY3RzIHdpdGhpbiBhIGdfYXNzZXJ0KCkKCSAgTWFrZSB0aGUgYnVmZmVybGlzdCBzdHVmZiB3b3JrIHByb3Blcmx5IHdoZW4gdGhpbmdzIGFyZSBjb21waWxlZAoJICB3aXRoIC1ER19ESVNBQkxFX0FTU0VSVC4KCjIwMDktMDYtMjQgMTg6MzE6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBhdm9pZCBkb2luZyBsb2dpYyBpbiBnX2Fzc2VydAoJICBNYWtlIHN1cmUgd2Ugc3RpbGwgZG8gdGhlIHJpZ2h0IHRoaW5nIHdoZW4gZ2xpYiBpcyBjb21waWxlZCB3aXRob3V0CgkgIGFzc2VydGlvbnMuCgoyMDA5LTA2LTIyIDA1OjAwOjU0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRmlyZSB0aGUgb3ZlcnJ1biBzaWduYWwgb24gRU9TCgkgIEZpeGVzIHN0YXJ0dXAgb2Ygc29tZSBzaG9ydCBNUEVHIGZpbGVzIHdpdGggZGVjb2RlYmluMi9wbGF5YmluMgoJICB3aGVyZSBhbGwgdGhlIGRhdGEgZml0cyBpbiB0aGUgbXVsdGlxdWV1ZSBhbmQgRU9TIGFycml2ZXMgYmVmb3JlCgkgIHRoZSBncm91cCBpcyBleHBvc2VkLgoKMjAwOS0wNi0yNCAxNToxMzozNyArMDEwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGYzYmI1MWIgdG8gZjgxMDAzMAoKMjAwOS0wMy0yOCAxMzo1OTowOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgR3N0U3RydWN0dXJlOiBVc2UgZGlyZWN0IHZhbHVlcyBmb3IgcmVwZXRpdGl2ZSBjb25kaXRpb25hbHMgKGZvci93aGlsZSkuCgoyMDA5LTA2LTI0IDEwOjQ1OjUyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIG1pbmlvYmplY3RzOiBEb24ndCBjaGFpbiB1cCB0byBlbXB0eSBmaW5hbGl6ZSBtZXRob2QuCgkgIElmIGV2ZXIgd2UgZG8gYW55dGhpbmcgaW4gbWluaV9vYmplY3RfZmluYWxpemUsIHdlIHNob3VsZCBtYWtlIHN1cmUgdGhlIDQKCSAgY29yZSBtaW5pb2JqZWN0IGZpbmFsaXplIG1ldGhvZHMgY2hhaW4gYmFjayB1cCBhZ2Fpbi4KCjIwMDktMDMtMjcgMjA6MTc6MTUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBnc3RjYXBzOiBVc2UgZGlyZWN0IHZhbHVlcyBmb3IgcmVwZXRpdGl2ZSBjb25kaXRpb25hbHMgKGZvci93aGlsZSkuCgoyMDA5LTA2LTI0IDA5OjI4OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkgIG1ha2UgY2hlY2s6IGFkZCBjaGVjayBmb3IgZW51bSB0eXBlIGNsYXNzIHVucmVmcyBpbiBnc3RfZGVpbml0KCkgdG9vCgkgIEp1c3QgYmVjYXVzZSB3ZSBjYW4gcmVhbGx5LgoKMjAwOS0wNi0yMyAxMzo0NDo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRyYWNlOiB1c2UgcHJvcGVyIGxvY2tpbmcgaW4gR3N0VHJhY2UKCSAgUHJvdGVjdCB0aGUgYWxsb2NhdGVkIGxpc3Qgb2Ygb2JqZWN0cyB3aXRoIGEgbG9jayBzbyB0aGF0IHRyYWNlIGFjdHVhbGx5IHdvcmtzCgkgIHJlbGlhYmx5LgoJICBTaG9ydGN1dCB0aGUgYWxsb2MgdHJhY2Ugc29vbmVyIHdoZW4gZGlzYWJsZWQuCgoyMDA5LTA2LTIzIDEzOjM0OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBvYmplY3Q6IGFsc28gYWRkIHBvaW50ZXJzIHRvIGRlYnVnCgkgIEFkZCB0aGUgb2JqZWN0IHBvaW50ZXJzIGluIHRoZSBkZWJ1ZyBpbmZvIGZvciBfcmVwbGFjZS4KCjIwMDktMDYtMjMgMTI6NTY6NTkgKzAyMDAgIENoYWQgSGFubmEgPGNoYW5uYUBsaWdvLmNhbHRlY2guZWR1PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IEFkZCBHQVAgZmxhZyBzdXBwb3J0CgkgIGNhcHNmaWx0ZXIgZG9lc24ndCBhY3R1YWxseSB0b3VjaCB0aGUgZGF0YSBzbyB3ZSBkb24ndCB3YW50IHRoZSBHQVAgZmxhZyB0bwoJICBiZSB1bnNldCBieSBiYXNldHJhbnNmb3JtLgoJICBGaXhlcyBidWcgIzU4NjU2Ni4KCjIwMDktMDYtMjMgMTA6MDU6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRlZnM6IGFkZCBuZXcgYnl0ZSByZWFkZXIgbWV0aG9kcwoKMjAwOS0wNS0yMiAxNDo0NzozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJICBieXRlcmVhZGVyOiBhZGQgYSBidW5jaCBvZiB1dGlsaXR5IGZ1bmN0aW9ucyBmb3Igc3RyaW5ncyBhbmQgYSBkYXRhIGR1cCBmdW5jdGlvbgoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9kdXBfZGF0YQoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9kdXBfc3RyaW5nCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2R1cF9zdHJpbmdfdXRmOAoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9kdXBfc3RyaW5nX3V0ZjE2CgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2R1cF9zdHJpbmdfdXRmMzIKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfc2tpcF9zdHJpbmcKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfc2tpcF9zdHJpbmdfdXRmOAoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9za2lwX3N0cmluZ191dGYxNgoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9za2lwX3N0cmluZ191dGYzMgoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9wZWVrX3N0cmluZwoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9wZWVrX3N0cmluZ191dGY4CgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2dldF9zdHJpbmcKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZ2V0X3N0cmluZ191dGY4CgkgIEFuZCBzb21lIGJhc2ljIHVuaXQgdGVzdHMuIEZpeGVzICM1ODY1NjguCgoyMDA5LTA2LTIyIDE4OjE3OjI4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBmaXggdHlwbyBpbiB0YWcgZGVzY3JpcHRpb24KCjIwMDktMDYtMjEgMDA6MjY6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgdGVzdHM6IGZpeCBjcmFzaCBhbmQgbGVhayBpbiBidWZmZXJsaXN0cyB1bml0IHRlc3QKCSAgRG9uJ3QgYWNjZXNzIGFscmVhZHktZnJlZWQgaXRlcmF0b3IsIG1ha2VzIGNoZWNrLXZhbGdyaW5kIHdvcmsgYW5kIGZpeGVzCgkgIGNyYXNoIG9uIFBQQzsgdW5yZWYgYnVmZmVyIHdlJ3JlIGdvaW5nIHRvIHN0ZWFsIHRvIG1ha2UgdmFsZ3JpbmQgaGFwcHkuCgoyMDA5LTA2LTIxIDAwOjA5OjUzICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkgIGluaXQ6IEZpeCBpbmRlbnQsIGFuZCByZWYgdGhlIGdzdF9idWZmZXJfbGlzdF9pdGVtX2dldF90eXBlKCkgY2xhc3MKCSAgRml4IHRoZSBjaGVjayB0ZXN0cyBieSByZWZmaW5nIHRoZSBHc3RCdWZmZXJMaXN0IGNsYXNzLiBSdW4gZ3N0LWluZGVudAoJICB0byBtYWtlIGdpdCBoYXBweSBhYm91dCBzb21lIGV4aXN0aW5nIHN0dWZmCgoyMDA5LTA2LTE5IDIxOjAzOjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBmaXggYnJva2VuIGZsYWdzIHRvIGZsYWcgc3RyaW5nIHNlcmlhbGlzYXRpb24KCSAgZS5nLiBjZHBhcm5vaWFzcmMgd291bGQgc2hvdyBmcmFnbWVudHxmdWxsIGZvciBhIGZsYWdzIHZhbHVlIG9mIDIuCgoyMDA5LTA2LTE5IDE5OjM1OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBhZGQgYnVmZmVyLWxpc3Qgc3VwcG9ydAoKMjAwOS0wNi0xOSAxOToyNDo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkgIGJ1ZmZlcmxpc3Q6IHJlbW92ZSBvbGQgZW51bSBmcm9tIGRvY3MKCjIwMDktMDYtMTkgMTQ6NDU6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0aW5mbzogZGVmaW5lIF9fZ3N0X2RlYnVnX21pbiB0byBMT0dfTEVWRUxfTk9ORSBpZiBkZWJ1Z2dpbmcgaXMgZGlzYWJsZWQKCSAgSnVzdCBpbiBjYXNlIHNvbWVvbmUgd2hvIGNsZWFybHkgY2FuJ3QgYmUgZGV0ZXJyZWQgYnkgYW55IG51bWJlciBvZiBsZWFkaW5nCgkgIHVuZGVyc2NvcmVzIHVzZXMgdGhpcyB2ZXJ5IHByaXZhdGUgYnV0IHN0aWxsIHNvbWV3aGF0IGRvY3VtZW50ZWQgc3ltYm9sCgkgIGRpcmVjdGx5IGluIHRoZWlyIGNvZGUgKCpjb3VnaCogcXRkZW11eCAqY291Z2gqKS4KCjIwMDktMDYtMTkgMTU6Mjk6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVybGlzdDogVmFyaW91cyBjbGVhbnVwcwoJICBBZGQgbmV3IG1ldGhvZCB0byBpdGVyYXRlIGEgYnVmZmVybGlzdCB3aXRob3V0IGhhdmluZyB0byBhbGxvY2F0ZSBhbiBpdGVyYXRvci4KCSAgQWRkIGNvbnZlbmllbmNlIG1ldGhvZCBmb3IgZ2V0dGluZyBhbiBpdGVtIGZyb20gdGhlIGxpc3QgYmFzZWQgb24gdGhlIGdyb3VwIGFuZAoJICBpbmRleC4KCSAgUmVtb3ZlIHJlZHVuZGFudCBfZG9fZGF0YSBjYWxsYmFjayBhbmQgbWV0aG9kLgoJICBVcGRhdGUgdW5pdC10ZXN0cyBhbmQgYWRkIHNvbWUgbW9yZSBmb3IgdGhlIG5ldyBtZXRob2RzLgoKMjAwOS0wNi0xOSAxNDoxMDozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGRvY3M6IG1ha2UgZ3RrLWRvYyBoYXBweQoKMjAwOS0wNi0xOSAxMzo1MTo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSAucG8gZmlsZXMgYWZ0ZXIgc3RyaW5nIGNoYW5nZXMKCjIwMDktMDYtMTkgMTM6NDg6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rOiBjbGVhbiB1cCBzb21lIG1vcmUgZXJyb3IgYW5kIGRlYnVnIG1lc3NhZ2VzCgoyMDA5LTA2LTE5IDEzOjQyOjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJICB0YXNrcG9vbDogZml4IHVudXNlZCB2YXJpYWJsZSB3YXJuaW5nIGluIGNhc2UgZGVidWdnaW5nIGlzIGRpc2FibGVkCgoyMDA5LTA2LTE5IDEzOjQwOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGdzdGluZm86IGZpeCBleHBvcnQgb2YgR1NUX0NBVF9CVUZGRVJfTElTVCB3aGVuIC0tZ3N0LWRpc2FibGUtZGVidWcgaXMgdXNlZAoJICBNb3ZlIGFsbCB0aGUgY2F0ZWdvcmllcyB0byBleHBvcnQgdG8gb25lIHNpbmdsZSBwbGFjZSwgc28gd2UgZG9uJ3QKCSAgYWNjaWRlbnRhbGx5IHVwZGF0ZSBvciBhZGQgdmFycyBpbiBvbmUgcGxhY2UgYnV0IG5vdCB0aGUgb3RoZXIuCgoyMDA5LTA2LTE4IDE2OjUwOjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogdXNlIHRoZSByaWdodCBmbHVzaGluZyBmbGFnLgoJICBXZSBuZWVkIHRvIHVzZSB0aGUgcGFkIHByaXZhdGUgZmxhZyBiZWNhdXNlIHRoZSBvdGhlciBwYWQgZmxhZyBpcyBwcm90ZWN0ZWQgd2l0aAoJICB0aGUgcGFkIGxvY2sgaW5zdGVhZC4KCjIwMDktMDYtMTggMTY6NDE6NDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBQcm9wZXJseSBoYW5kbGUgZmx1c2hpbmcgcGFkcy4KCSAgSWYgYSBwYWQgaXMgZmx1c2hpbmcsIGl0IHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBhcyBlaXRoZXIgZW9zIG9yCgkgIGNvbnRhaW5pbmcgZGF0YS4KCjIwMDktMDYtMTggMTE6Mjc6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rOiBmaXggZXJyb3IgbWVzc2FnZQoJICBVc2VycyBzaG91bGQgbmV2ZXIgc2VlIHRoZSB0ZXJtICdmaWxlIGRlc2NyaXB0b3InLCBtdWNoIGxlc3MgYSBmaWxlCgkgIGRlc2NyaXB0b3IgbnVtYmVyLCBpbiBhbiBlcnJvciBtZXNzYWdlLiBQdXQgdGhhdCBpbnRvIHRoZSBkZWJ1ZwoJICBzdHJpbmcgaW5zdGVhZCBhbmQgdXNlIHRoZSBkZWZhdWx0IGVycm9yIG1lc3NhZ2UuCgoyMDA5LTA2LTE4IDExOjQ5OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSAgZmRzaW5rOiBhZGQgdGhlIG5ldyBmaWVsZCBpbiB0aGUgaGVhZGVyCgoyMDA5LTA2LTE4IDEwOjU1OjM5ICswMjAwICBCZW5qYW1pbiBHYWlnbmFyZCA8YmVuamFtaW4gYXQgZ2FpZ25hcmQubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rOiBtYWtlIGZkc2luayBzZWVrYWJsZQoJICBJbXBsZW1lbnQgdGhlIHNhbWUgbG9naWMgYXMgZmlsZXNpbmsgdG8gaW1wbGVtZW50IHNlZWtpbmcuCgkgIEZpeGVzICM1Nzg5MDgKCjIwMDktMDYtMTcgMTY6NDU6MTcgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGdzdGVsZW1lbnQ6IG1vdmVkIHRoZSBjbG9jayB1bnJlZiB0byB0aGUgcmlnaHQgcGxhY2UKCjIwMDktMDYtMTcgMTY6MTc6MjcgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGdzdGVsZW1lbnQ6IHVucmVmIHRoZSBjbG9jayB3aGVuIHRoZSBlbGVtZW50IGNoYW5nZXMgdG8gbnVsbCBzdGF0ZQoKMjAwOS0wNi0xNyAwMDoyOTo0MCArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIFJlcGxhY2VkIGRlcHJlY2F0ZWQgd2luMzItY29tcGF0aWJpbGl0eSBmdW5jdGlvbiB3aXRoIHVuZGVwcmVjYXRlZCBvbmUuCgkgIEZpeGVzICM1NjA0NDIuCgoyMDA5LTA2LTE2IDE4OjMyOjEyICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogc3dhcCB0aGUgbGluZXMgb2YgbXkgcHJldmlvdXMgY29tbWl0CgkgIEZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gbXkgcHJldmlvdXMgY29tbWl0IHRoYXQgcmVsZWFzZWQgdGhlCgkgIGNsb2NrIHByb3ZpZGVyIGFuZCBhZnRlciB1c2VkIGl0IHRvIGNyZWF0ZSB0aGUgY2xvY2sgbG9zdCBtZXNzYWdlLgoKMjAwOS0wNi0xNiAxNzo1MToxMiArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IHJlbW92ZSBjbG9jayByZWZlcmVuY2VzIHdoZW4gY2xvY2sgbG9zdCBoYXBwZW5zCgkgIFJlbW92ZSByZWZlcmVuY2UgdG8gY2xvY2sgYW5kIGNsb2NrIHByb3ZpZGVyIHN0b3JlZCBpbiB0aGUgYmluCgkgIHdoZW4gdGhlIGNsb2NrcHJvdmlkZXIgZWxlbWVudCBpcyByZW1vdmVkIGZyb20gdGhlIGJpbi4KCjIwMDktMDYtMTYgMTM6MzQ6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiBhZGQgU2luY2UgdGFnIGZvciBuZXcgbWV0aG9kCgoyMDA5LTA2LTE2IDEzOjMyOjM3ICswMjAwICBCcmFua28gU3ViYXNpYyA8YnJhbmtvLnN1YmFzaWMgYXQgYXhpcy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IGFkZCBzdXBwb3J0IGZvciBidWZmZXIgbGlzdAoJICBGaXhlcyAjNTg1OTYwCgoyMDA5LTA2LTE2IDExOjM0OjU0ICswMjAwICBCcmFua28gU3ViYXNpYyA8YnJhbmtvLnN1YmFzaWMgYXQgYXhpcy5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IEFkZCBzdXBwb3J0IGZvciBHc3RCdWZmZXJMaXN0cwoJICBGaXhlcyAjNTg1ODM0CgoyMDA5LTA2LTE2IDExOjIxOjQyICswMjAwICBDaHJpc3RvcGhlciBIYWxzZSBSb2dlcnMgPGNoYWxzZXJvZ2VycyBhdCBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEV4cGxpY2l0bHkgbWVudGlvbiByZWZjb3VudGluZyBpbiBkb2NzCgkgIEZpeGVzICM1ODU5MzgKCjIwMDktMDYtMTYgMDg6NDM6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHhtbDogZml4IChkZSlzZXJpYWxpc2F0aW9uIG9mIHByb3BlcnRpZXMgb2YgdHlwZSBHc3RTdHJ1Y3R1cmUKCSAgc291cGh0dHBzcmMgaGFzIGEgcHJvcGVydHkgb2YgdHlwZSBHc3RTdHJ1Y3R1cmUsIHdoaWNoIGNhdXNlcyBhbgoJICBhc3NlcnRpb24gd2hlbiBzZXJpYWxpc2luZyBpdCB0byB4bWwuIEZpeGVzICM1ODUxMzcuCgoyMDA5LTA2LTE1IDIwOjExOjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IGZpeCBjb21waWxlciB3YXJuaW5nCgkgIFRoZSBjb21waWxlciBzdWdnZXN0cyB0byBhZGQgc29tZSAoKSB0byBpbmRpY2F0ZSBpZiB0aGUgJiYgb3IgdGhlIHx8IHRha2VzCgkgIHByaW9yaXR5LCBzbyByZWZsb3cgY29kZSBhIGJpdCBzbyB3ZSBkb24ndCBoYXZlIHRvIGFkZCB5ZXQgYW5vdGhlciBsYXllcgoJICBvZiAoKS4gSG9wZWZ1bGx5IHRoaXMgd2FzIHRoZSBpbnRlbmRlZCBtZWFuaW5nIG9mIHRoZSBjb2RlLgoKMjAwOS0wNi0xMSAxNTowMDo1MiArMDIwMCAgQXJub3V0IFZhbmRlY2FwcGVsbGUgPGFybm91dEBtaW5kLmJlPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBkb24ndCBsb2NrIHdoZW4gbWluLXRocmVzaG9sZCBhbmQgbWF4LXNpemUgY29uZmxpY3QuCgkgIFdoZW4gbWluLXRocmVzaG9sZCBpcyBzZXQgb24gYSBxdWV1ZSwgaXQgaXMgcG9zc2libGUgdGhhdCBvbmUgb2YKCSAgdGhlIG1pbmltYSByZW1haW5zIHVuc2F0aXNmaWVkIHdoaWxlIG9uZSBvZiB0aGUgbWF4aW1hIGlzIGFscmVhZHkKCSAgcmVhY2hlZC4gVGhlcmVmb3JlLCBhbHdheXMgY29uc2lkZXIgdGhlIHF1ZXVlIG5vbi1lbXB0eSBpZiBpdCBpcyBmdWxsLgoJICBGaXhlcyAjNTg1NDMzLgoKMjAwOS0wNi0xNSAxODo0NDo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBtYWtlIHN1cmUgd2Ugc2V0IHRoZSBuZXh0IHN0YXRlIGNvcnJlY3RseQoJICBXaGVuIHRoZSBjb250aW51ZSBmdW5jdGlvbiBpcyBzY2hlZHVsZWQsIG1ha2Ugc3VyZSB3ZSBzZXQgdGhlIG5leHQgc3RhdGUgaW5zdGVhZAoJICBvZiB0aGUgcGVuZGluZyBzdGF0ZS4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBmaXhlcyAjNTg1NTY5CgoyMDA5LTA2LTE1IDE4OjQ0OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBjb2xsZWN0cGFkczogZml4IC5oIGluZGVudGF0aW9uCgoyMDA5LTA2LTE1IDE4OjQzOjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGFkZCBzb21lIG1vcmUgZGVidWcKCjIwMDktMDYtMTUgMTg6NDI6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGRlYnVnOiBhZGQgc29tZSBtb3JlIGRlYnVnIHRvIGVsZW1lbnQgYW5kIHBhZHMKCjIwMDktMDYtMTQgMTY6NTY6MzIgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogZml4IGluY2x1ZGUgb3JkZXIgdG8gZ2V0IGNvbmZpZy5oIGJlZm9yZSBfbWluZ3cuaAoJICBjb25maWcuaCBtdXN0IGFsd2F5cyBiZSBpbmNsdWRlZCBiZWZvcmUgYW55IG90aGVyIGluY2x1ZGVzLCBlaXRoZXIKCSAgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB2aWEgZ3N0X3ByaXZhdGUuaC4gRml4ZXMgIzU4NTczMy4KCjIwMDktMDYtMTQgMTY6MTc6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFnbGlzdDogYWRkIGZ1bmN0aW9ucyB0byBjcmVhdGUgYSBuZXcgdGFnbGlzdCB3aXRoIHRhZ3MgaW4gb25lIGdvCgkgIEFkZCBmdW5jdGlvbnMgdG8gY3JlYXRlIGEgbmV3IHRhZyBsaXN0IGFuZCBzZXQgdGFncyBpbiBvbmUgZ28sIHdoaWNoCgkgIGlzIG5pY2UgZm9yIHVzZSBpbiBjb21iaW5hdGlvbiB3aXRoIGZ1bmN0aW9ucyB0aGF0IHRha2Ugb3duZXJzaGlwIG9mCgkgIHRoZSB0YWdsaXN0LCBzdWNoIGFzIGdzdF9ldmVudF9uZXdfdGFnKCkgb3IgZ3N0X2VsZW1lbnRfZm91bmRfdGFncygpLgoJICBBUEk6IGFkZCBnc3RfdGFnX2xpc3RfbmV3X2Z1bGwoKQoJICBBUEk6IGFkZCBnc3RfdGFnX2xpc3RfbmV3X2Z1bGxfdmFsaXN0KCkKCjIwMDktMDYtMTMgMTQ6NTU6NDMgKzAyMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiBzY3JpcHRzL2dpdC12ZXJzaW9uLnNoOgoJICBnaXQtdmVyc2lvbi5zaDogbWFrZSBleGVjdXRhYmxlCgoyMDA5LTA2LTEzIDE0OjUzOjI0ICswMjAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXMgKGF0KSBhcGVzdGFhcnQgKGRvdCkgb3JnPgoKCSogc2NyaXB0cy9jdnMtdXBkYXRlLnNoOgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkqIHNjcmlwdHMvZ2l0LXZlcnNpb24uc2g6CgkgIFVwZGF0ZSBzY3JpcHRzL2N2cy11cGRhdGUuc2ggdG8gZ2l0LXVwZGF0ZS5zaDsgYWRkIGdpdC12ZXJzaW9uLnNoCgkgIGFkZCBzY3JpcHQgdG8gZ2V0IGdpdCB2ZXJzaW9ucwoJICBmaXJzdCB1cGRhdGUgYWxsLCB0aGVuIGJ1aWxkCgkgIGFkZCBnbm9ubGluIHRvbwoJICBzcGVjaWZ5IHdoZXJlIHRvIHB1bGwgZnJvbQoJICBhbHNvIHVwZGF0ZSBzdWJtb2R1bGUKCSAgcmVuYW1lIGFuZCBjaGFuZ2UgY3ZzLXVwZGF0ZSBzY3JpcHQgdG8gZ2l0LXVwZGF0ZQoKMjAwOS0wNi0xMiAxODozNjoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+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+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBSZWxlYXNlIHNjcmlwdCBtb2RpZmljYXRpb25zCgoyMDA5LTA1LTE0IDIyOjExOjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2Vwcml2YXRlLmg6CgkgIGNvbnRyb2xsZXI6IFVzZSBvcmRlcmVkIEdTZXF1ZW5jZSBpbnN0ZWFkIG9mIEdMaXN0CgkgIFRoaXMgbWFrZXMgbG9va3VwcyBhbmQgaW5zZXJ0aW9ucyBPKGxvZyBuKSBpbnN0ZWFkIG9mCgkgIGFsd2F5cyBPKG4pIGZvciBpbnNlcnRpb25zIGFuZCBPKG4pIGluIHdvcnN0IGNhc2UgZm9yCgkgIGxvb2t1cHMuCgkgIEZpeGVzIGJ1ZyAjNTgyNTY0LgoKMjAwOS0wNS0xNCAxMjozMDoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWdob3N0cGFkcy50eHQ6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1zdHJlYW0tc3RhdHVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1sYXRlbmN5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1taXNzaW5nLXBsdWdpbnMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbS1zdGF0dXMudHh0OgoJICBkb2NzOiByZW5hbWUgYW5kIGRlbGV0ZSBzb21lIGRlc2lnbiBkb2NzCgoyMDA5LTA1LTE0IDEyOjMwOjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogUHJpbnQgdGhlIHBhdGggc3RyaW5nIGZvciBtZXNzYWdlIHNvdXJjZXMKCSAgVGhpcyByZWR1Y2VzIGNvbmZ1c2lvbiBpZiB0aGUgbWVzc2FnZSBzb3VyY2UgaXMgYSBwYWQKCSAgYW5kIG9ubHkgInNyYyIgaXMgcHJpbnRlZCBhcyBzb3VyY2UuCgoyMDA5LTA1LTE0IDEyOjI1OjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBlbGVtZW50OiBTZXQgdGhlIG9yaWdpbmF0aW5nIHBhZCBhcyBtZXNzYWdlIHNvdXJjZSBpbiBnc3RfZWxlbWVudF9mb3VuZF90YWdzX2Zvcl9wYWQgKCkKCSAgRml4ZXMgYnVnICM1ODI1ODguCgoyMDA5LTA1LTE0IDExOjM2OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQ6IGFkZCBnc3RfZWxlbWVudF9sb3N0X3N0YXRlX2Z1bGwoKQoJICBBZGQgYSBnc3RfZWxlbWVudF9sb3N0X3N0YXRlX2Z1bGwoKSB3aXRoIGFuIGV4dHJhIGFyZ3VtZW50IHRvIGNvbnRyb2wKCSAgZGlzdHJpYnV0aW9uIG9mIGEgbmV3IGJhc2VfdGltZS4gV2Ugd2lsbCBuZWVkIHRoaXMgZm9yIGZsdXNoaW5nIHN0ZXAKCSAgb3BlcmF0aW9ucy4KCSAgQVBJOiBHc3RFbGVtZW50Ojpnc3RfZWxlbWVudF9sb3N0X3N0YXRlX2Z1bGwoKQoKMjAwOS0wNS0xMyAyMzo1MjowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBkb24ndCB1c2UgcmVhbGxvYywgaXQgZG9lcyBhIG1lbWNweQoJICBEb24ndCB1c2UgcmVhbGxvYyB0byBncm93IHRoZSBzY3JhdGNoIGFyZWEgYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRoZSBtZW1jcHkgdGhlCgkgIG9sZCB1c2VsZXNzIGRhdGEgaW50byB0aGUgbmV3IGFyZWEgYmVmb3JlIHdlIHdyaXRlIG91ciBuZXcgc3R1ZmYgaW4gaXQuCgoyMDA5LTA1LTEzIDIzOjM4OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgZG9jczogdXBkYXRlIHRyaWNrbW9kZSBkb2N1bWVudAoKMjAwOS0wNS0xMyAyMjo1MToxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiB1c2UgZ19yZWFsbG9jIGZvciByZXNpemluZyB0aGUgYnVmZmVyCgkgIFVzZSBnX3JlYWxsb2MgZm9yIHJlc2l6aW5nIHRoZSBpbnRlcm5hbCBidWZmZXIgaW5zdGVhZCBvZiBhCgkgIGxlc3MgZmFuY3kgX2ZyZWUvX21hbGxvYyBwYWlyLgoKMjAwOS0wNS0xMyAyMTozNToyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogbW92ZSBuZXcgbWVtYmVyIHRvIHByaXZhdGUgc3RydWN0CgkgIE1vdmUgdGhlIG5ldyBtZW1iZXJzIHRvIGEgcHJpdmF0ZSBzdHJ1Y3QgYmVjYXVzZSB3ZSBkb24ndCBoYXZlIGVub3VnaCBwYWRkaW5nCgkgIGFueW1vcmUgb24gMzItYml0cyBwbGF0Zm9ybXMuCgoyMDA5LTA1LTEzIDE4OjUwOjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHVwZGF0ZSBzb21lIGRvY3MKCjIwMDktMDUtMTMgMTc6MDk6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgdGVzdHM6IGFkZCBhbm90aGVyIHRlc3QgZm9yIGFkYXB0ZXIgdGltZXN0YW1wcwoKMjAwOS0wNS0xMyAxNjo0ODozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogYWRkIG5ldyB0aW1lc3RhbXAgdW5pdCB0ZXN0CgoyMDA5LTA1LTEzIDE2OjI2OjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkZWZzOiBhZGQgbmV3IHN5bWJvbAoKMjAwOS0wNS0xMyAxNjowOToyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogYWRkIG1ldGhvZCB0byBrZWVwIHRyYWNrIG9mIHRpbWVzdGFtcHMKCSAgS2VlcCB0cmFjayBvZiB0aGUgdGltZXN0YW1wIGFuZCBvZmZzZXQgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IGhlYWQgb2YgdGhlCgkgIGFkYXB0ZXIuCgkgIEFQSTogR3N0QWRhcHRlcjo6Z3N0X2FkYXB0ZXJfcHJldl90aW1lc3RhbXAoKQoKMjAwOS0wNS0xMyAxNjoyMDoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogc21hbGwgY2xlYW51cHMKCjIwMDktMDUtMTMgMTE6MDM6MjcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IHNob3cgbW9yZSBwYWQtZGV0YWlscwoJICBTaG93IHBhZCBhY3RpdmF0aW9uIG1vZGUgYW5kIHBhZC1mbGFncyBpbnNpZGUgdGhlIHBhZC4gV3JpdGUgZG93biBzb21lIGlkZWFzCgkgIGFib3V0IGhvdyB3ZSBjb3VsZCBpbXByb3ZlIHRoZSBjYXBzIGxheW91dC4KCjIwMDktMDUtMTMgMDA6Mjk6NTcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGxheW91dCBpbXByb3ZlbWVudAoJICBkb3QgZG9lcyBub3QgdGFrZSB0aGUgaGVhZC90YWlsIGxhYmVscyBpbnRvIGFjY291bnQuIEZvciB1bmZpeGVkIGNhcHMgdGhleSBnZXQKCSAgcXVpdGUgbGFyZ2UuIERvdWJsZSB0aGUgcGFkZGluZyB0byBtYWtlIGl0IHNvcnQgb2YgcmVhZGFibGUgaW4gbW9yZSBjYXNlcy4gQWxzbwoJICBtYWtlIG5vcm1hbCBmb250IGJpZ2dlciBhbmQgY2Fwcy1sYWJlbCBmb250IHNtYWxsZXIgdG8gaW5jcmVhc2Ugb3VyIGx1Y2suCgoyMDA5LTA1LTEyIDIxOjAwOjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJICBjaGVja3M6IGNoZWNrIGZvciBlbnVtIHR5cGVzIG5vdCBjbGFzc19yZWYnZWQgaW4gZ3N0X2luaXQoKSBpbiAnbWFrZSBjaGVjaycKCjIwMDktMDUtMTIgMjA6NTg6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBJbml0aWFsaXNlIHNvbWUgbW9yZSB0eXBlcyBpbiBnc3RfaW5pdCgpLCBlc3AuIHRoZSBuZXcgZW51bSB0eXBlcwoJICBQb3NzaWJseSBmaXhlcyBHT2JqZWN0IGNsYXNzIGNyZWF0aW9uL3VucmVmIHJhY2UgY29uZGl0aW9ucyB3aGVuCgkgIGNyZWF0aW5nIHRoZSBsYXN0LW1lc3NhZ2Ugc3RyaW5nIGluIGZha2VzaW5rIGZvciBldmVudHMgd2l0aAoJICBzdHJ1Y3R1cmVzIHRoYXQgaGF2ZSBmaWVsZHMgd2l0aCB0aGVzZSBlbnVtIHR5cGVzLgoKMjAwOS0wNS0xMiAyMDo1NjowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IHJlbW92ZSBkdXBsaWNhdGUgX2dldF90eXBlKCkgZnVuY3Rpb24gZm9yIEdzdENsb2NrVHlwZQoJICBSZW1vdmUgdGhlIHN0YXRpYyBnc3RfY2xvY2tfdHlwZV9nZXRfdHlwZSgpIGZ1bmN0aW9uIGluIHRoZQoJICBzeXN0ZW1jbG9jayBjb2RlIGluIGZhdm91ciBvZiB0aGUgcHVibGljIG9uZSBpbiBnc3RlbnVtdHlwZXMuYy4KCjIwMDktMDQtMjIgMTA6NTM6MzcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogcmVtb3ZlIGRlcHJlY2F0ZWQgQVBJCgkgIF9pbnRlcm5hbF9saW5rX2Z1bmN0aW9uKCkgaXMgZGVwcmVjYXRlZCBhbmQgX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3NfZnVuY3Rpb24oKQoJICBpcyBhbHJlYWR5IHByb3ZpZGVkLgoKMjAwOS0wNC0yMSAxMTozMzo0MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2UtbGF1bmNoOiBhbGxvdyBzcGVjaWZ5aW5nIEdzdEVsZW1lbnQgcHJvcGVydGllcyB2aWEgZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uCgkgIElmIGRlc2VyaWFsaXppbmcgYSBwcm9wZXJ0eSBmYWlscywgY2hlY2sgaWYgdGhlIHZhbHVlIHR5cGUgaXMgYSBzdHJpbmcgYW5kIGlmIHNvCgkgIGF0dGVtcHQgdG8gY3JlYXRlIGEgYmluIGZyb20gdGhlIHN0cmluZyB2YWx1ZS4gVGhpcyBhbGxvd3MgdG8gZS5nLiBzcGVjaWZ5CgkgIGF1ZGlvLXNpbmsvdmlkZW8tc2luayBmb3IgcGxheWJpbiBvbiBnc3QtbGF1bmNoIGNvbW1hbmRsaW5lLgoKMjAwOS0wNS0xMiAxNzoyOToxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVybGlzdC50eHQ6CgkgIGRvY3M6IGFkZCBzb21lIGRvY3MgYWJvdXQgYnVmZmVyIGxpc3RzCgoyMDA5LTA1LTEyIDE2OjE4OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSAgYnVmZmVybGlzdDogbWFrZSBvYmplY3RzIG9wYXF1ZQoKMjAwOS0wNS0xMiAxNTozMzoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IGZpeCBhIGNvbW1lbnQKCjIwMDktMDUtMTIgMTM6MTA6NTUgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZyBhdCBheGlzLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJsaXN0OiBob29rIHVwIHRoZSBwYWQgZnVuY3Rpb25zCgkgIFJldXNlIGJ1ZmZlciBjb2RlIGZvciBidWZmZXJsaXN0cy4gTm90IHN1cmUgaWYgdGhpcyBtZWFzdXJhYmx5IGltcGFjdHMgcGVyZm9ybWFuY2UKCSAgZm9yIHRoZSBzaW1wbGUgYnVmZmVyIGNhc2UsIGlmIGl0IGRvZXMgYWZ0ZXIgZG9pbmcgc29tZSBiZW5jaG1hcmtzLCB3ZSBjYW4KCSAgZGVjb3VwbGUgaXQgbGF0ZXIuCgkgIEZpeGVzICM1NzIyODUKCjIwMDktMDUtMTIgMTI6MDg6NTYgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZyBhdCBheGlzLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJsaXN0OiBhZGQgZG9jcy9idWlsZC9kZWJ1Zy91bml0dGVzdAoJICBTZWUgIzU3MjI4NQoKMjAwOS0wNS0xMiAxMTo1MTozNyArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnIGF0IGF4aXMuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSAgYnVmZmVybGlzdDogYWRkIGJ1ZmZlcmxpc3QgY29kZQoJICBCdWZmZXIgbGlzdHMgYXJlIGEgbWVhbnMgdG8gbWFuYWdlIGRpc2pvaW50IGJ1ZmZlcnMgYXMgb25lIGJ1ZmZlci4gSXQncyBhbHNvCgkgIHBvc3NpYmxlIHRvIHB1dCBtYW55IG9mIHRob3NlIGJ1ZmZlcnMgaW50byBhIGxpc3QuCgkgIFRoZSBpZGVhIGlzIHRoYXQgd2hlbiBzdXBwb3J0IGlzIGFkZGVkIHRvIHZhcmlvdXMgZWxlbWVudHMsIHdlIHdpbGwgYmUgYWJsZSB0bwoJICBtb3JlIGVmZmljaWVudGx5IHNsaWNlIGFuZCBkaWNlIGJ1ZmZlcnMsIHJlZHVjZSB0aGUgYW1vdW50IG9mIG1lbWNweSBhbmQgYWxzbwoJICByZWR1Y2UgZGF0YSBwYXNzaW5nIG92ZXJoZWFkLgoJICBUaGUgaW1wbGVtZW50YXRpb24gaXMga2VwdCBzaW1wbGUgb24gcHVycG9zZSwgcmV1c2luZyBhbGwgb2YgdGhlIG1lbW9yeQoJICBtYW5hZ2VtZW50IGZlYXR1cmVzIHdlIGhhdmUgZm9yIG1pbmlvYmplY3RzIGFuZCBidWZmZXJzLgoJICBBY2Nlc3MgdG8gdGhlIGJ1ZmZlcmxpc3Qgb2JqZWN0IGlzIGRvbmUgd2l0aCBhbiBpdGVyYXRvciwgd2hpY2ggYWxsb3dzIGZvcgoJICBlZmZpY2llbnQgaXRlcmF0aW9uIGFuZCBtb2RpZmljYXRpb24gb2YgdGhlIGxpc3QuCgkgIFNlZSAjNTcyMjg1CgoyMDA5LTA1LTExIDA3OjQ5OjM0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IGNvcHkgbmV3IGJ1ZmZlciBmbGFncyB3aGVuIGNvcHlpbmcgbWV0YWRhdGEuCgoyMDA5LTA0LTI3IDEwOjEzOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICBhZGFwdGVyOiBvcHRpbWl6ZSB0YWtpbmcgdGhlIGhlYWRidWZmZXIKCSAgV2hlbiBhIGFyZSByZXF1ZXN0ZWQgdG8gdGFrZSBhIGJ1ZmZlciBmcm9tIHRoZSBhZGFwdGVyIHRoYXQgaXMgZXhhY3RseSB0aGUKCSAgaGVhZGJ1ZmZlciwgZG9uJ3QgbWFrZSBhIHN1YmJ1ZmZlciBvZiBpdCBidXQgcmV0dXJuIHRoYXQgaGVhZCBidWZmZXIuCgkgIEFkZCBhIHVuaXQtdGVzdCBmb3IgdGhpcyBuZXcgb3B0aW1pc2F0aW9uLgoKMjAwOS0wNS0wNSAxNzo0MToyNCArMDIwMCAgQXJub3V0IFZhbmRlY2FwcGVsbGUgPGFybm91dEBtaW5kLmJlPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGRvbid0IGxlYWsgdGhlIGZvcmNlLWNhcHMgcHJvcGVydHkKCSAgRml4ZXMgIzU4MTMyMQoKMjAwOS0wNC0yOCAxOToyMDozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGZpeCBwb3N0aW5nIG9mIGFzeW5jLXN0YXJ0IG1lc3NhZ2VzCgkgIFdoZW4gYW4gZWxlbWVudCBsb3N0IGl0cyBzdGF0ZSBidXQgd2FzIGJ1c3kgZG9pbmcgYSBzdGF0ZSBjaGFuZ2UsIHN0aWxsIHBvc3QgdGhlCgkgIGFzeW5jLXN0YXJ0IG1lc3NhZ2Ugd2l0aCB0aGUgYmFzZV90aW1lIHJlc2V0IGZsYWcgb3IgZWxzZSB3ZSBtaWdodCBlbmQgdXAgd2l0aAoJICBhbiBvbGQgYmFzZV90aW1lLgoJICB0aGlzIGNhbiBoYXBwZW4gd2hlbiBhIHNpbmsgaXMgZ29pbiBhc3luYyB0byBwYXVzZWQgYW5kIHRoZW4gYSBmbHVzaGluZyBzZWVrIGlzCgkgIHBlcmZvcm1lZC4gVGhpcyB3b3VsZCBjYXVzZSB0aGUgYmFzZV90aW1lIHRvIHJlbWFpbiB1bm1vZGlmaWVkIGJlY2F1c2UgdGhlCgkgIGFzeW5jLXN0YXJ0IG1lc3NhZ2Ugd2FzIG5vdCBzZW50LgoKMjAwOS0wNS0xMCAxNzoyODozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBmdW5jdGlvbnMgdG8gdGhlIHdpbjMyIGV4cG9ydHMKCjIwMDktMDUtMTAgMTE6MTc6MjcgKzAyMDAgIE1hcmMtQW5kcmUgTHVyZWF1IDxtYXJjYW5kcmUubHVyZWF1QGdtYWlsLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkgIFJ1biBsaWJ0b29saXplIGJlZm9yZSBhY2xvY2FsCgkgIFRoaXMgdW5icmVha3MgdGhlIGJ1aWxkIGluIHNvbWUgY2FzZXMuIEZpeGVzIGJ1ZyAjNTgyMDIxCgoyMDA5LTA1LTA3IDE2OjM3OjM3ICswMjAwICBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdUBzdm4uZ25vbWUub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIEFQSTogQWRkIGdzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljX2Z1bGwoKQoJICBUaGlzIGlzIG1haW5seSB1c2VmdWwgZm9yIGJpbmRpbmdzIHRoYXQgbmVlZCB0byBwcm92aWRlCgkgIHNvbWUgYWRkaXRpb25hbCB1c2VyIGRhdGEgdG8gdGhlIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbi4KCSAgRml4ZXMgYnVnICM1NDU3ODcuCgoyMDA5LTA1LTA3IDE2OjAxOjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBJbXByb3ZlIGRlYnVnZ2luZyBhIGJpdCBvbiBpbnZhbGlkIFVSSXMKCjIwMDktMDUtMDcgMTA6MzY6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogQWRkIG5ldyBmdW5jdGlvbnMgdG8gdGhlIGRvY3MKCjIwMDktMDUtMDcgMDk6MzE6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkgIHRhZ3M6IEFQSTogQWRkIGZ1bmN0aW9ucyB0byBhZGQgc2luZ2xlIHRhZ3MgdG8gR3N0VGFnTGlzdCBvciBHc3RUYWdTZXR0ZXIKCSAgVGhlIG5ldyBmdW5jdGlvbnMgYXJlIGdzdF90YWdfc2V0dGVyX2FkZF90YWdfdmFsdWUoKQoJICBhbmQgZ3N0X3RhZ19saXN0X2FkZF92YWx1ZSgpKS4gVGhpcyBmaXhlcyBidWcgIzU4MTE5OC4KCjIwMDktMDUtMDcgMDk6Mjg6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5jOgoJICBHc3RVUklIYW5kbGVyOiBVc2UgZ2V0X3R5cGVfZnVsbCgpIHZtZXRob2QgaWYgc3BlY2lmaWVkIGluc3RlYWQgb2YgZ2V0X3R5cGUoKQoJICBUaGlzIGZpeGVzIGJ1ZyAjNTgxMjgxIGFuZCBtYWtlcyBpdCBlYXNpZXIgZm9yIGJpbmRpbmdzIHRvCgkgIGltcGxlbWVudCBHc3RVUklIYW5kbGVycy4gZ2V0X3Byb3RvY29sc19mdWxsKCkgd2FzIGFscmVhZHkgdXNlZAoJICBsaWtlIHRoaXMuCgoyMDA5LTA1LTEyIDAxOjQ4OjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIC5wbyBmaWxlcyBmb3IgbmV3IHN0cmluZ3MgZnJvbSBjb250YWluZXItZm9ybWF0IHRhZwoKMjAwOS0wNS0xMiAwMTozMDoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBzbWFsbCB1cGRhdGUgdG8gcmVsZWFzZSBkb2NzCgoyMDA5LTA1LTEyIDAxOjEzOjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHJlbmFtZSBDVlMgLT4gZ2l0IGluIGEgY291cGxlIG9mIHBsYWNlcwoKMjAwOS0wNS0xMiAwMDo0Nzo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYnVtcCB0aGUgR0xpYiByZXF1aXJlbWVudCB0byBHTGliID49IDIuMTYKCSAgYXMgcGVyIHRoZSBOZXcgUmVnaW1lIChzZWUgd2lraSkuCgoyMDA5LTA1LTEyIDAwOjA5OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgeG1scmVnaXN0cnk6IHJlbW92ZSB0aGUgb2xkIHhtbCByZWdpc3RyeQoJICBObyBwb2ludCBpbiBrZWVwaW5nIGl0IGFyb3VuZCByZWFsbHkuIEZpeGVzICM1Nzc5MjYuCgoyMDA5LTA1LTA3IDE2OjA4OjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ3M6IGFkZCBhIHRhZyBmb3IgdGhlIGNvbnRhaW5lciBmb3JtYXQKCSAgQVBJOiBhZGQgR1NUX1RBR19DT05UQUlORVJfRk9STUFUCgoyMDA5LTA1LTA4IDE2OjI4OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBmaXggZGVidWcgbWVzc2FnZQoJICBNYWtlIHRoZSBkZWJ1ZyBtZXNzYWdlIHNob3cgd2hhdCdzIGFjdHVhbGx5IGhhcHBlbmluZyAodGhlIG1lc3NhZ2UKCSAgcmVwbGFjZWQgaGVyZSBpcyBub3QgbmVjZXNzYXJpbHkgb2YgdGhlIHNhbWUgdHlwZSBhcyB0aGUgb25lIHRoYXQKCSAgcmVwbGFjZXMgaXQpLgoKMjAwOS0wNS0xMiAwMDozNDo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIEdzdFRhc2s6IGZpeCBjb21waWxhdGlvbgoKMjAwOS0wNC0yNCAxOTozMjozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvcnRwb29sLXRlc3QuYzoKCSAgdGVzdHM6IHNldCB0aGUgbGF0ZW5jeS10aW1lIHRvIHNvbWV0aGluZyBsb3cKCjIwMDktMDQtMjQgMTM6NTU6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3J0cG9vbC10ZXN0LmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvdGVzdHJ0cG9vbC5jOgoJICB0ZXN0czogaW1wcm92ZSB0aGUgZXhhbXBsZQoKMjAwOS0wNC0yNCAxMjozNTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuaDoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3Rlc3RydHBvb2wuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFRhc2tQb29sOiByZW1vdmUgX3NldF9mdW5jKCkKCSAgUmVtb3ZlIHRoZSBzdGF0aWMgZnVuY3Rpb24gc2V0IG9uIHRoZSBUYXNrUG9vbCBiZWZvcmUgX3ByZXBhcmUoKSBpcyBjYWxsZWQgYW5kCgkgIGFsbG93IGZvciBhc3NpZ25pbmcgYSBmdW5jdGlvbiB0byBhIFRhc2sgd2hlbiB3ZSBfcHVzaCgpLgoJICBVcGRhdGUgdGhlIGV4YW1wbGVzCgoyMDA5LTA0LTIzIDE5OjQyOjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9ydHBvb2wtdGVzdC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3Rlc3RydHBvb2wuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy90ZXN0cnRwb29sLmg6CgkgIHRlc3RzOiBhZGQgZXhhbXBsZSBvZiBjdXN0b20gdGFza3Bvb2xzCgkgIEFkZCBhbiBleGFtcGxlIHRvIGRlbW9uc3RyYXRlIHRoZSB1c2Ugb2YgYSBjdXN0b20gdGFza3Bvb2wgYW5kIGhvdyB0byBjb25maWd1cmUKCSAgaXQgb24gdGhlIHRhc2suIEN1cnJlbnRseSB0aGUgdGFza3Bvb2wgZG9lcyBub3QgZG8gbXVjaCB5ZXQgYnV0IGl0J2xsIGNyZWF0ZQoJICBzb21lIGN1c3RvbSB0aHJlYWRzIGxhdGVyIG9uLgoKMjAwOS0wNC0yMyAxOTo0MTozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJICB0YXNrcG9vbDogZml4IGEgY29tbWVudAoKMjAwOS0wNC0yMyAxOTo0MTowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvc3RyZWFtLXN0YXR1cy5jOgoJICB0ZXN0czogY2xlYW51cCBzb21lIGNvZGUKCjIwMDktMDQtMjMgMTc6NDg6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgUGFkOiBwb3N0IFNUUkVBTV9TVEFUVVNfVFlQRV9DUkVBVEUKCSAgUG9zdCBhIHN0cmVhbS1zdGF0dXMgbWVzc2FnZSBpbmRpY2F0aW5nIHRoYXQgYSBuZXcgdGFzayB3YXMgY3JlYXRlZCBzbyB0aGF0IHRoZQoJICBhcHBsaWNhdGlvbiBoYXMgYSBjaGFuY2UgdG8gY2hhbmdlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSB0YXNrLgoJICBGaXggdW5pdCB0ZXN0IHRvIHRha2UgaW50byBhY2NvdW50IHRoZSBuZXcgcmVmIG9mIHRoZSBtZXNzYWdlLgoKMjAwOS0wNC0yMyAxNzoyNDo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBhZGQgbmV3IHRhc2sgbWV0aG9kcwoKMjAwOS0wNC0yMyAxNzoxOToxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkgIEdzdFRhc2s6IGFkZCBtZXRob2RzIGZvciBjb25maWd1cmluZyB0aGUgcG9vbAoJICBBZGQgZ2V0dGVyIGFuZCBzZXR0ZXIgZm9yIGNvbmZpZ3VyaW5nIHRoZSBHc3RUYXNrUG9vbCB0byB1c2UgZm9yIGEgR3N0VGFzay4KCjIwMDktMDQtMjMgMTc6MDU6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBUYXNrOiByZW1lbWJlciBwb29sCgkgIFJlbWVtYmVyIHRoZSBwb29sIHdlIGN1cnJlbnRseSBoYXZlIG91ciB0YXNrIHJ1bm5pbmcgc28gdGhhdCB3ZSBjYW4gdXNlIGl0IHRvCgkgIGpvaW4gdGhlIHRhc2sgbGF0ZXIgb24uCgkgIEZpeCBhIGxlYWsgb2YgdGhlIHRhc2twb29sLgoKMjAwOS0wNC0yMyAxNjo1MzozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgLmRlZnMgZmlsZSB3aXRoIHRhc2twb29sIG1ldGhvZHMKCjIwMDktMDQtMjMgMTY6NTM6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBmaXggZGVhZGxvY2sgZHVlIHRvIHR5cG8KCjIwMDktMDUtMTIgMDA6MjU6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJICBHc3RUYXNrOiB1c2UgR3N0VGFza1Bvb2wgZm9yIG1hbmFnaW5nIHRocmVhZHMKCSAgVXNlIHRoZSBuZXcgR3N0VGFza1Bvb2wgdG8gaGFuZGxlIHN0cmVhbWluZyB0aHJlYWRzLgoKMjAwOS0wNC0yMyAxNjowMDo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuaDoKCSAgdGFza3Bvb2w6IGZpeCBkb2NzLCBtYWtlIHB1c2gvam9pbiBnZW5lcmljCgkgIEZpeCBzb21lIG1vcmUgZG9jcy4KCSAgTWFrZSBfcHVzaCgpIHJldHVybiBhIGdlbmVyaWMgaWQgKHRoaXMgY2FuIGJlIHNvbWV0aGluZyBlbHNlIHRoYW4gYSBHVGhyZWFkIGluCgkgIHNvbWUgY2FzZXMpIGFuZCBtYWtlIF9qb2luKCkgdXNlIHRoYXQgZ2VuZXJpYyBpZC4KCjIwMDktMDQtMjMgMTU6NDQ6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJICB0YXNrcG9vbDogYWRkIG5ldyBvYmplY3QgdG8gbWFuYWdlIHRocmVhZHMKCSAgQWRkIGEgbmV3IG9iamVjdCBHc3RUYXNrUG9vbCB0byBtYW5hZ2UgdGhlIHN0cmVhbWluZyB0aHJlYWRzLgoJICBUaGlzIHdpbGwgYWxsb3cgdXMgdG8gY3JlYXRlIGFuZCB1c2UgY3VzdG9tIGNvbmZpZ3VyZWQgdGhyZWFkcy4KCjIwMDktMDQtMjIgMTI6MDQ6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3N0cmVhbS1zdGF0dXMuYzoKCSAgZXhhbXBsZXM6IHNldCBidXMgaGFuZGxlciBiZWZvcmUgc3RhdGUgY2hhbmdlCgkgIFdlIG5lZWQgdG8gc2V0IHRoZSBidXMgaGFuZGxlciBiZWZvcmUgc3RhcnRpbmcgdGhlIHBpcGVsaW5lIG9yIHdlIG1pZ2h0IGp1c3QKCSAgbWlzcyB0aGUgbWVzc2FnZSB3ZSBhcmUgbG9va2luZyBmb3IuCgoyMDA5LTA0LTIyIDEwOjE2OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3N0cmVhbS1zdGF0dXMuYzoKCSAgdGVzdHM6IGFkZCBleGFtcGxlIGFwcCBmb3Igc3RyZWFtLXN0YXR1cwoJICBBZGQgYW4gZXhhbXBsZSBhcHBsaWNhdGlvbiB0aGF0IGFkanVzdHMgdGhlIHRocmVhZCBwcmlvcml0eSBvZiBhIHRhc2sgdXNpbmcgdGhlCgkgIHN0cmVhbS1zdGF0dXMgbWVzc2FnZXMuCgoyMDA5LTA0LTIxIDE5OjE1OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFRhc2s6IGFkZCBtZXRob2QgdG8gc2V0IHRoZSBwcmlvcml0eQoJICBBZGQgYSBtZXRob2QgdG8gY29uZmlndXJlIGEgcHJpb3JpdHkgZm9yIHRoZSB0aHJlYWRzIHVzZWQgYnkgR3N0VGFzay4KCjIwMDktMDQtMjEgMTY6MzA6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJICB0ZXN0czogYWRkIGEgdW5pdC10ZXN0IGZvciB0aGUgc3RyZWFtLXN0YXR1cwoJICBBZGQgYSB1bml0IHRlc3QgZm9yIHRoZSBTVFJFQU1fU1RBVFVTIG1lc3NhZ2VzLgoKMjAwOS0wNS0xMiAwMDowNToxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSAgR3N0VGFzazogaW1wcm92ZSBkb2N1bWVudGF0aW9uCgkgIEltcHJvdmUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBjYWxsYmFja3MuCgoyMDA5LTA0LTIxIDE1OjI1OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICB0ZXN0czogZml4IHVuaXQtdGVzdHMgZm9yIG5ldyBzdHJlYW0tc3RhdHVzCgkgIEZpeCB0aGUgdW5pdC10ZXN0cyBzbyB0aGF0IHRoZXkgZG9uJ3QgZmFpbCBvbiB0aGUgbmV3IHN0cmVhbS1zdGF0dXMgbWVzc2FnZXMKCSAgdGhhdCBhcmUgZW1pdGVkIG5vdy4KCjIwMDktMDQtMjEgMTQ6NDY6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIEdzdFBhZDogaW5zdGFsbCB0aHJlYWQgY2FsbGJhY2tzIG9mIHRoZSB0YXNrCgkgIEluc3RhbGwgdGhyZWFkIHN0YXR1cyBjYWxsYmFja3Mgb24gdGhlIHRhc2sgb2JqZWN0IG9mIGEgcGFkIGFuZCBwb3N0CgkgIFNUUkVBTV9TVEFUVVMgbWVzc2FnZXMuCgoyMDA5LTA0LTIyIDEwOjE0OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogY2xhcmlmeSBzb21lIGRvY3MKCjIwMDktMDQtMjEgMTQ6NDI6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBUYXNrOiBjYWxsIGxlYXZlX3RocmVhZCBiZWZvcmUgc2lnbmFsaW5nCgkgIENhbGwgdGhlIGxlYXZlX3RocmVhZCBjYWxsYmFjayBiZWZvcmUgd2Ugc2lnbmFsIHRoZSB0aHJlYWQgcGVyZm9ybWluZyB0aGUgX2pvaW4KCSAgc28gdGhhdCB3ZSBjYW4gYmUgc3VyZSB0aGF0IHRoZSBsaXN0ZW5lciBzdGlsbCBoYXMgdmFsaWQgaW5mbyBpbiB0aGUgY2FsbGJhY2suCgoyMDA5LTA0LTIxIDEzOjQyOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEdzdE1lc3NhZ2U6IEFkZCBTVFJFQU1fU1RBVFVTIG1lc3NhZ2UgbWV0aG9kcwoJICBBZGQgbWV0aG9kcyB0byBoYW5kbGUgdGhlIHN0cmVhbV9zdGF0dXMgbWVzc2FnZSB0eXBlcy4KCjIwMDktMDQtMjEgMTM6MDU6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIHF1YXJrOiBhZGQgIm9iamVjdCIgcXVhcmsKCSAgQWRkIHRoZSBvYmplY3QgcXVhcmsgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIHRoZSBTVFJFQU1fU1RBVFVTIG1lc3NhZ2VzLgoKMjAwOS0wNS0xMSAyMzo0NDo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmg6CgkgIFRhc2s6IHJlbW92ZSBjcmVhdGUvam9pbiBtZXRob2RzCgkgIFByZXBhcmUgZm9yIHVzaW5nIHRoZSBHc3RUYXNrUG9vbCBvYmplY3QuIFdlIGRvbid0IG5lZWQgdGhlIGNyZWF0ZSBhbmQgam9pbgoJICBjYWxsYmFja3MgYW55bW9yZSwgdGhleSB3aWxsIGJlIGhhbmRsZWQgYnkgdGhlIHBvb2wuCgoyMDA5LTA0LTIwIDE3OjA3OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgR3N0VGFzazogYWRkIHByaXZhdGUgZGF0YSwgZml4IHBhcmVudF9jbGFzcwoJICBVc2UgdGhlIHBhcmVudCBjbGFzcyB0aGF0IHRoZSBnbGliIG1hY3JvIGdhdmUgdXMKCSAgQWN0dWFsbHkgYWRkIHRoZSBwcml2YXRlIGRhdGEgdG8gdGhlIHRhc2suCgoyMDA5LTA0LTIwIDE3OjE5OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgR3N0VGFzazogaG9vayB1cCBlbnRlci9sZWF2ZS9ub3RpZnkgY2FsbGJhY2tzCgkgIEhvb3AgdXAgdGhlIG5vdGlmeS9lbnRlci9sZWF2ZSBjYWxsYmFja3MuCgoyMDA5LTA1LTExIDIzOjIzOjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGFkZCBuZXcgc3ltYm9sIHRvIGRlZnMgZmlsZQoKMjAwOS0wNS0xMSAyMzoxOTo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkgIEdzdFRhc2s6IGFsbG93IHNldHRpbmcgY2FsbGJhY2tzCgkgIEFsbG93IHNldHRpbmcgdGhyZWFkIGNhbGxiYWNrcyB0aGF0IHdpbGwgYWxsb3cgdXMgdG8gY29udHJvbCB0aGUgdGhyZWFkcyB1c2VkIGJ5CgkgIHRoZSB0YXNrLgoKMjAwOS0wNC0yMyAxOTo0MDoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkb24ndCBpZ25vcmUgcGFkX3N0YXJ0IHJldHVybiB2YWx1ZQoKMjAwOS0wNC0yMSAxMzozNDoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXN0cmVhbS1zdGF0dXMudHh0OgoJICBkZXNpZ246IG1vcmUgU1RSRUFNX1NUQVRVUyB1cGRhdGVzCgkgIFBhc3MgdGhlIHRocmVhZCBvYmplY3QgaW4gYSBHVmFsdWUsIHdoaWNoIHdvdWxkIGFsbG93IHRoZSBhcHBsaWNhdGlvbiB0byBmaWd1cmUKCSAgb3V0IHRoZSB0eXBlIG9mIHRoZSBvYmplY3QgaW5zdGVhZCBvZiB1cyBoYXZpbmcgdG8gZXhwbGljaXRseSBjb2RlIGl0IGluIGEKCSAgbWVzc2FnZSBmaWVsZC4KCjIwMDktMDQtMjEgMDk6NDU6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1zdHJlYW0tc3RhdHVzLnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgc3RyZWFtLXN0YXR1cyBkb2N1bWVudCBzb21lIG1vcmUKCjIwMDktMDQtMjAgMTU6NTU6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1zdHJlYW0tc3RhdHVzLnR4dDoKCSAgZGVzaWduOiBhZGQgZmlyc3QgdmVyc2lvbiBvZiBzdHJlYW0tc3RhdHVzCgkgIEFkZCB0aGUgZmlyc3QgdmVyc2lvbiBvZiB0aGUgU1RSRUFNX1NUQVRVUyBtZXNzYWdlIGRlc2lnbiBkb2NzLgoJICBUaGlzIG1lc3NhZ2Ugd2lsbCBiZSB1c2VkIHRvIGdpdmUgYXBwbGljYXRpb25zIG1vcmUgY29udHJvbCBvdmVyIHRoZQoJICBzdHJlYW1pbmcgdGhyZWFkcy4KCjIwMDktMDQtMjEgMTc6NTM6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBHc3RUYXNrOiBhZGQgc29tZSBtb3JlIGRvY3MKCjIwMDktMDQtMjEgMTc6MTQ6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIEdzdFBhZDogdXNlIG5ldyB0YXNrIGZ1bmN0aW9uCgkgIFVzZSB0aGUgbmV3IHRhc2tfc2V0X3N0YXRlIGZ1bmN0aW9uIGFuZCBhY3R1YWxseSByZXR1cm4gaXRzIHJlc3VsdCB0bwoJICB0aGUgY2FsbGVyLgoKMjAwOS0wNS0xMSAyMjo1OTozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBHc3RUYXNrOiB1bmlmeSB0YXNrIHN0YXRlIGZ1bmN0aW9ucwoJICBBZGQgbmV3IGdzdF90YXNrX3NldF9zdGF0ZSgpIHRvIGNoYW5nZSB0aGUgc3RhdGUgb2YgdGhlIHRhc2sgaW5zdGVhZCBvZgoJICBkdXBsaWNhdGluZyB0aGUgY29kZSBpbiBlYWNoIGZ1bmN0aW9uLgoJICBBUEk6IEdzdFRhc2s6OmdzdF90YXNrX3NldF9zdGF0ZSgpCgoyMDA5LTA0LTIxIDEzOjM3OjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgTWVzc2FnZTogc21hbGwgaW5kZW50YXRpb24gY2hhbmdlLgoKMjAwOS0wNS0wMiAxNDo0MzoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgQXZvaWQgdW5uZWVkZWQgdHlwZSBjaGVja3MKCjIwMDktMDUtMDIgMTQ6Mzk6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGF2b2lkIGNhbGxpbmcgX2dldF9uYW1lKCkgdG9vIG11Y2gKCSAgQXZvaWQgY2FsbGluZyBnc3RfcGx1Z2luX2dldF9uYW1lKCkgdG9vIG1hbnkgdGltZXMgYnV0IGluc3RlYWQgY2FjaGUKCSAgdGhlIHZhbHVlLgoKMjAwOS0wNS0wMiAxNDozNjo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIFVzZSBuZXcgX3JlZl9zaW5rIHdoZW4gd2UgY2FuCgoyMDA5LTA1LTAyIDE0OjMzOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RvYmplY3Q6IGFkZCBnc3Rfb2JqZWN0X3JlZl9zaW5rCgkgIEFkZCB0aGUgZ3N0X29iamVjdF9yZWZfc2luaygpIG1ldGhvZCB0byBtYXRjaCB0aGUgZ2xpYiBvbmUuCgkgIEFQSTogR3N0T2JqZWN0Ojpnc3Rfb2JqZWN0X3JlZl9zaW5rKCkKCjIwMDktMDUtMDIgMTM6MDY6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogYXZvaWQgdHlwZSBjaGVja3MKCjIwMDktMDUtMDIgMTM6MDI6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogYXZvaWQgdHlwZWNoZWNrcyBpbiBmaW5hbGl6ZQoJICBBdm9pZCB1c2VsZXNzIHR5cGVjaGVja2luZyBpbiB0aGUgZmluYWxpemUgb2YgYnVmZmVycyBhbmQgc3ViYnVmZmVycy4KCjIwMDktMDUtMDIgMTI6NTk6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBhdm9pZCB0eXBlY2hlY2sKCjIwMDktMDQtMjAgMTQ6MDE6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIC1sYXVuY2g6IGNvbm5lY3QgdG8gZGVlcC1ub3RpZnkgd2l0aCByaWdodCBuYW1lCgkgIENvbm5lY3QgdG8gdGhlIHJpZ2h0IHNpZ25hbCBuYW1lIHdpdGggLSBpbnN0ZWFkIG9mIF8uCgoyMDA5LTA0LTI0IDIyOjA2OjE5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IFN1cHBvcnQgbmV3IHByaW50ZiBleHRlbnNpb25zIGluIGdsaWJjIDIuMTAKCSAgVGhlIHByaW50ZiBleHRlbnNpb24gbWVjaGFuaXNtIGNoYW5nZWQgaW4gZ2xpYmMgMi4xMCwgYW5kIHRoZSBvbGRlcgoJICByZWdpc3Rlcl9wcmludGZfZnVuY3Rpb24gaXMgZGVwcmVjYXRlZC4gRGV0ZWN0IGFuZCB1c2UgdGhlIG5ldwoJICBtZWNoYW5pc20gd2hlcmUgYXZhaWxhYmxlLgoKMjAwOS0wNC0yMCAxMjoyNTo1NyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogRml4IGEgdHlwbyBpbiB0aGUgcmVsZWFzZSBzY3JpcHQKCjIwMDktMDUtMTEgMjE6MTE6NDkgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudCAtPiAwLjEwLjIzLjEKCj09PSByZWxlYXNlIDAuMTAuMjMgPT09CgoyMDA5LTA1LTEwIDIyOjQxOjA0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjIzCgoyMDA5LTA1LTEwIDIyOjM4OjQ1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOS0wNS0wNiAxNjoxMDoxMSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjIyLjQgcHJlLXJlbGVhc2UKCjIwMDktMDQtMjQgMTk6MzY6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIEdzdEJpbjogc2V0IFBFTkRJTkdfU1RBVEUgY29ycmVjdGx5CgkgIFNldCB0aGUgcGVuZGluZyBzdGF0ZSBjb3JyZWN0bHkgd2hlbiB3ZSBhcmUgZ29pbmcgdG8gcGVyZm9ybSBhbiBhc3luYwoJICBzdGF0ZV9jb250aW51ZSBvbiB0aGUgYmluLgoJICBGaXhlcyAjNTgwMTIxCgoyMDA5LTA0LTIxIDIwOjUwOjU1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjIuMyBwcmUtcmVsZWFzZQoKMjAwOS0wNC0yMSAyMjoxMjowNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiMzk0MWVhIHRvIDZhYjExZDEKCjIwMDktMDQtMTcgMTU6NDY6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICB3aW4zMjogZGVmaW5lIF9fTVNWQ1JUX1ZFUlNJT05fXyB3aGVuIGNvbXBpbGluZyB3aXRoIE1pbmdXLCBmb3IgX19zdGF0NjQKCSAgTmVlZCB0byBkZWZpbmUgdGhpcyB3aGVuIHVzaW5nIE1pbmdXLCBzbyB0aGF0IHRoZSBpbmNsdWRlcyBwcm92aWRlCgkgIF9fc3RhdDY0IGFuZCBmcmllbmRzLiBXZSBuZWVkIGF0IGxlYXN0IFdpbmRvd3MgWFAgU1AyIGZvciB0aGlzLgoJICBGaXhlcyAjNTY4NjMyLgoKMjAwOS0wNC0xNiAyMjoyNjowMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0ZGVidWc6IGNvbXBldGUgc3R1YnMuIEZpeGVzICM1NzkxNzcuCgkgIEF2b2lkIGRlZmluZXMgd2hlbiBpbmNsdWRpbmcgZ3N0aW5mby5oIG91cnNlbGYgYW5kIGNvbXBsZXRlIHN0dWJzLiBTeW5jIHN0dWIKCSAgcmV0dXJucyB3aXRoIHRoZSBkZWZpbmVzLgoKMjAwOS0wNC0xNyAxMTo0NDoxMSArMDEwMCAgWWFha292IFNlbGtvd2l0eiA8eXNlbGtvd2l0ekB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogZm9yaygpIGR1cmluZyByZWdpc3RyeSBzY2FubmluZyBpcyB1bnNhZmUgb24gQ3lnd2luCgkgIEZpeGVzICM1NTU5NzguCgoyMDA5LTA0LTE3IDExOjM5OjU5ICswMTAwICBZYWFrb3YgU2Vsa293aXR6IDx5c2Vsa293aXR6QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0X2luaXQ6IHJlbG9jYXRhYmlsaXR5IGlzIHVubmVjZXNzYXJ5IG9uIEN5Z3dpbgoJICBTZWUgIzU1NTk3OC4KCjIwMDktMDQtMTcgMTA6MTE6MjEgKzAxMDAgIEJyaWFuIENhbWVyb24gPGJyaWFuLmNhbWVyb25Ac3VuLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGluZm86IGRvbid0IGFzc3VtZSBHX0hBVkVfSVNPX1ZBUkFSR1MgaW1wbGllcyBJU08gQzk5CgkgIE1ha2VzIGhlYWRlcnMgQysrIGNsZWFuLCBlc3AuIHdpdGggdGhlIFN1biBjb21waWxlcnMuCgkgIEZpeGVzICM1Njc2OTIuCgoyMDA5LTA0LTE3IDA5OjE3OjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgR3N0UGx1Z2luOiBmaXggY29tcGlsYXRpb24gaWYgYm90aCBIQVZFX1dJTjMyIGFuZCBIQVZFX1NJR0FDVElPTiBhcmUgZGVmaW5lZAoJICBNb3ZlIF9nc3RfcGx1Z2luX2ZhdWx0X2hhbmRsZXJfaXNfc2V0dXAgaW50byB0aGUgaWZkZWYgYmxvY2sgd2hlcmUgaXQncwoJICB1c2VkLiBGaXhlcyAjNTc4MjAxLgoKMjAwOS0wNC0xNiAxMjowMTo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgLWxhdW5jaDogZGlzYWJsZSBDTE9DS19MT1NUIG1lc3NhZ2UgaGFuZGxpbmcKCSAgRGlzYWJsZSB0aGUgaGFuZGxpbmcgb2YgdGhlIENMT0NLX0xPU1QgbWVzc2FnZXMgdW50aWwgd2UgZml4ZWQgYW5kIHJlbGVhc2VkIHRoZQoJICBlbGVtZW50cyAocnRzcHNyYykgdGhhdCBicmVhayB3aGVuIHdlIHF1aWNrbHkgUEFVU0UvUExBWSB0aGUgcGlwZWxpbmUuCgkgIEZpeGVzICM1NzkxMjcKCjIwMDktMDQtMTUgMjI6MjQ6NDUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgcmVsZWFzZTogQnVtcCB2ZXJzaW9uIHRvIDAuMTAuMjIuMiBmb3IgcHJlLXJlbGVhc2UKCjIwMDktMDQtMTYgMDA6MDg6MjAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB3aW4zMjogVXBkYXRlIHdpbjMyIGJ1aWxkIGZpbGVzCgoyMDA5LTA0LTE1IDIzOjI3OjMxICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMgZnJvbSBUUAoKMjAwOS0wNC0xNSAyMjoxNzoxMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2c6IHJlZ2VuZXJhdGUgY2hhbmdlbG9nIHdpdGggdGhlIGdlbi1jaGFuZ2Vsb2cgc2NyaXB0CgoyMDA5LTA0LTE1IDIzOjI2OjEzICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZG9jczogcmVtb3ZlIGVycmFudCBndGstZG9jIGNvbW1lbnQgbWFya2VyIHRyaWdnZXJpbmcgYSB3YXJuaW5nCgoyMDA5LTA0LTE2IDAwOjAyOjA3ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgcGFyYW1zcGVjczogcmV2ZXJ0IGdzdF9wYXJhbV9zcGVjX2lzX211dGFibGUoKSBmb3IgcmVsZWFzZQoJICBSZXZlcnQgdGhlIGdzdF9wYXJhbV9zcGVjX2lzX211dGFibGUgQVBJIGZvciB0aGlzIHJlbGVhc2Ugc28gd2UgY2FuCgkgIGRpc2N1c3MgaXQgYSBiaXQgZnVydGhlciBmaXJzdC4KCjIwMDktMDQtMTUgMjM6MzM6MjAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBsb2dnaW5nOiBmaXggdW51c2VkIHZhcmlhYmxlIHdhcm5pbmcgd2hlbiBkaXNhYmxpbmcgZGVidWcgbG9ncy4KCSAgVGhlIHZhciB3YXMgTlVMTCBhbnl3YXksIGJhY2F1c2Ugb2YgdGhlIGlmZGVmcyB0aGVyZSwgdGhlIG1lc3NhZ2UgbWFrZXMgbm8KCSAgc2Vuc2UgaW5jbHVkaW5nIGl0LgoKMjAwOS0wNC0xNSAyMzoxMjoxMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RkZWJ1Zzogc2hvdyBlbmFibGVkL2Rpc2FibGVkIGluIGNvbmZpZ3VyZSBhbmQgZml4IGJ1aWxkIGZvciBkaXNhYmxlZAoJICBXaGVuIGl0cyBkaXNhYmxlZCwgd2UgcG9pc29uIHNvbWUgc3ltYm9scyB0byBmb3JjZSBhIGJ1aWxkIGVycm9yIGlmIHRoZXkgYXJlCgkgIHVzZWQuIER1bm5vIGhvdyB1c2VmdWwgdGhpcyBhY3VhbGx5IGlzLCBidXQgd2UgbmVlZCB0byBkaXNhYmxlIHRoZSBwb2lzb25pbmcKCSAgd2hlbiB3ZSBpbmNsdWRlIHRoaXMgb3Vyc2VsZi4gQWxzbyBkb24ndCBkZWZpbmUgc29tZSBvZiB0aGUgZHVtbWllcywgYXMgdGhleQoJICBhcmUgZ2V0dGluZyByZXBsYWNlZCB3aXRoIGRlZmluZXMgYW5kIHRoYXQgY3JlYXRlcyBjb2RlIHRoYXQgZG9lcyBub3QgY29tcGlsZS4KCjIwMDktMDQtMTUgMTk6NTg6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBVc2UgZ19vbmNlX2luaXRfKigpIGluc3RlYWQgb2YgR09uY2UgZm9yIHRoZSBlbnVtIHR5cGVzCgoyMDA5LTA0LTE1IDEzOjA1OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBzdGF0aWNwYWR0ZW1wbGF0ZTogVXBkYXRlIGRvY3Mgb2YgZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X2NhcHMgKCkKCSAgZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X2NhcHMgKCkgYWN0dWFsbHkgcmV0dXJucyBhIHJlZmVyZW5jZSB0byB0aGUKCSAgY2FwcyBhbmQgaXQncyBjbGVhbmVyIHRvIHVucmVmIHRoZW0gYWZ0ZXIgdXNhZ2UuIFRoZSBjb3JlIHdpbGwsIGhvd2V2ZXIsCgkgIGFsd2F5cyBob2xkIGEgcmVmZXJlbmNlIHRvIHRoZSBjYXBzIHNvIHRoaXMgZGlkbid0IHJlc3VsdCBpbiBhIG1lbW9yeQoJICBsZWFrLgoKMjAwOS0wNC0xNCAyMjozMjoyMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkgIGRvY3M6IHVzZSByZWFsIDxub3RlPiB0YWdzIGFzIHRoZXkgbG9vayBuaWNlIGluIG5ldyBndGstZG9jCgoyMDA5LTA0LTE0IDEyOjIwOjM3IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkgIEZpeCBsb2NraW5nIGluIGdzdF9wYXJhbV9zcGVjX2lzX211dGFibGUKCjIwMDktMDQtMTQgMjI6MDc6MzggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogZmFjdG9yIG91dCBkdXBsaWNhdGVkIGNvZGUgYW5kIGFkZCBhIGRlc2NyaXB0aW9uIGZvciBpdC4KCSAgQWxzbyBmaXggdHlwbyBpbiB0aGUgdGVzdHMgd2hpbGUgcmV2aWV3aW5nIHRoZW0uCgoyMDA5LTA0LTE0IDE5OjEyOjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIGRvY3M6IGFkZCBzaW1wbGUgZG9jIGJsdXJiCgoyMDA5LTA0LTE0IDE5OjExOjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSAgcGFyYW1zcGVjczogYWRkIG5vdGUgYWJvdXQgcmFjeW5lc3MKCSAgQWRkIGEgbm90ZSBhYm91dCBwb3RlbnRpYWwgcmFjeW5lc3MgaW4gX2lzX211dGFibGUoKS4KCjIwMDktMDQtMTQgMTA6MzI6MDcgKzAyMDAgIExSTiA8bHJuMTk4NiBhdCBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiB1c2UgbXV0ZXggdG8gZG8gY29uc29sZSBjb2xvcnMgb24gd2luZG93cwoJICBVc2UgYSBzdGF0aWMgbXV0ZXggdG8ga2VlcCB0aGUgY29uc29sZSBjb2xvcnMgYW5kIGNvbnRleHQgdG9nZXRoZXIgd2hlbgoJICBkZWJ1Z2dpbmcgd2l0aCBjb2xvcnMgb24gV2luZG93cy4KCSAgRml4ZXMgIzUxNzIzMS4KCjIwMDktMDQtMTMgMTQ6Mjc6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSAgZG9jczogYWRkIFNpbmNlOiB0YWdzIHRvIGd0ay1kb2MgY2h1bmtzIGZvciBuZXcgcGFyYW0gc3BlYyBBUEkKCSAgQW5kLCBmb3Igb3VyIHJlbGVhc2UgbWFuYWdlciwgdGhlIGluLWNvbW1pdC1tZXNzYWdlIGtleXdvcmRzCgkgIGZvciB0aGUgcHJldmlvdXMgY29tbWl0OgoJICBBUEk6IEdTVF9QQVJBTV9NVVRBQkxFX1JFQURZCgkgIEFQSTogR1NUX1BBUkFNX01VVEFCTEVfUEFVU0VECgkgIEFQSTogR1NUX1BBUkFNX01VVEFCTEVfUExBWUlORwoJICBBUEk6IGdzdF9wYXJhbV9zcGVjX2lzX211dGFibGUKCjIwMDktMDItMjAgMTE6MDk6MTkgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIEFkZCBwYXJhbSBzcGVjIGZsYWdzIGZvciB3aGVuIGEgcHJvcGVydHkgY2FuIGJlIGNoYW5nZWQKCSAgQWRkcyBHU1RfUEFSQU1fTVVUQUJMRSogZmxhZ3MgdG8gaW5kaWNhdGUgaW4gd2hpY2ggc3RhdGVzIGEKCSAgcHJvcGVydHkgY2FuIGJlIGNoYW5nZWQgYW5kIHRha2UgZWZmZWN0LiAgRml4ZXMgIzU3MTU1OQoKMjAwOS0wNC0xMCAxNDoxNTozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgLWxhdW5jaDogaGFuZGxlIGNsb2NrLWxvc3QgbWVzc2FnZXMKCSAgV2hlbiB3ZSByZWNlaXZlIGEgY2xvY2stbG9zdCBtZXNzYWdlLCB3ZSBuZWVkIHRvIHNlbGVjdCBhIG5ldyBjbG9jayBpbiB0aGUKCSAgcGlwZWxpbmUgYnkgc2V0dGluZyB0aGUgcGlwZWxpbmUgdG8gUEFVU0VEIGFuZCBiYWNrIHRvIFBMQVlJTkcuCgoyMDA5LTA0LTA5IDE4OjI3OjIxICswMjAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyLmNhPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBhZGQgcHJvcGVydHkgdG8gY29udHJvbCB0aGUgYWxsb2MgcGFkCgkgIEFkZCBhIHByb3BlcnR5IHRvIGNvbnRyb2wgdGhlIHBhZCB1c2VkIGZvciBwcm94eWluZyB0aGUgYnVmZmVyX2FsbG9jIGZ1bmN0aW9uIG9uCgkgIHRoZSBzaW5rcGFkLgoJICBGaXhlcyAjNTc3ODkxLgoKMjAwOS0wNC0wOSAxMTo1MTo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBhbHdheXMgbWFyayBwZW5kaW5nX2FzeW5jX2RvbmUKCSAgV2hlbiB3ZSBnZXQgYW4gQVNZTkNfRE9ORSBtZXNzYWdlIHdoZW4gYSBzdGF0ZSBjaGFuZ2Ugd2FzIGJ1c3ksIHNldCB0aGUKCSAgcGVuZGluZ19hc3luY19kb25lIGZsYWcgc28gdGhhdCBhZnRlciB0aGUgc3RhdGUgY2hhbmdlIGNvbXBsZXRlcywgdGhlIGJpbiBjYW4KCSAgY2hlY2sgaWYgYWxsIGFzeW5jIGVsZW1lbnRzIGFyZSBmaW5pc2hlZC4gRG9uJ3Qgb25seSBkbyB0aGlzIGZvciB0aGUgYmluIGl0c2VsZgoJICBidXQgZm9yIGFsbCBlbGVtZW50cy4KCSAgVGhpcyBmaXhlcyBzb21lIGJpbnMgaW4gYmlucyB0aGF0IHNpbXVsYXRlIGFzeW5jIHN0YXRlIGNoYW5nZXMgYnkgcG9zdGluZyBBU1lOQwoJICBtZXNzYWdlcyAoc3VjaCBhcyBzZHBwYXJzZSBpbiB1cmlkZWNvZGViaW4vcGxheWJpbjIpLgoKMjAwOS0wNC0wOSAxMTo0Mjo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGZpeCBjb21waWxhdGlvbiwgJTA4eCBuZWVkcyBhbiB1bnNpZ25lZCBpbnQKCSAgJTA4eCBuZWVkcyBhbiB1bnNpZ25lZCBpbnQsIHNvIGdpdmUgaXQgdGhhdC4KCjIwMDktMDQtMDYgMDE6Mjc6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFQSTogYWRkIEZJWE1FIGFuZCBEVU1QTUVNIGxvZyBsZXZlbHMgYW5kIGNvbnZlbmllbmNlIG1hY3JvcwoJICBUd28gbmV3IGxvZyBsZXZlbHMgdG8gZHVtcCBGSVhNRXMgaW50byB0aGUgbG9nIGFuZCB0byBsb2cgZGF0YQoJICBpbiBmb3JtIG9mIGEgaGV4IGR1bXAgKCM1NzgxMTQpLgoJICBBUEk6IEdTVF9DQVRfRklYTUVfT0JKRUNUCgkgIEFQSTogR1NUX0NBVF9NRU1EVU1QX09CSkVDVAoJICBBUEk6IEdTVF9DQVRfRklYTUUKCSAgQVBJOiBHU1RfQ0FUX01FTURVTVAKCSAgQVBJOiBHU1RfRklYTUVfT0JKRUNUCgkgIEFQSTogR1NUX01FTURVTVBfT0JKRUNUCgkgIEFQSTogR1NUX0ZJWE1FCgkgIEFQSTogR1NUX01FTURVTVAKCjIwMDktMDQtMDggMTg6MTM6NDIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGRvY3M6IHhyZWYgbW9yZQoKMjAwOS0wNC0wOCAxNzo0OToxOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiByZW1vdmUgdGhlIGhhY2tzIHRvIHdvcmthcm91bmQgdGhlIHBhZC1sZWFrCgoyMDA5LTA0LTA4IDE1OjI0OjU4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkdGVtcGxhdGU6IGVuYWJsZSBjb2RlIHRvIGZpeCB0aGUgbGVhaywgbm93IHRoYXQgdGhlIGRlcHMgaGF2ZSBiZWVuIHJlbGVhc2VkCgkgIEdvb2QgYW5kIGZmbXBlZyBhcmUgYWN0dWFsbHkgbXVsdGlwbGUgcmVsZWFzZXMgYmV5b25kLCBzbyB0aGF0IHRoaXMgaXMgbm93IHNhZmUKCSAgdG8gZG8uCgoyMDA5LTA0LTA0IDIxOjE4OjIzICswMzAwICBGZWxpcGUgQ29udHJlcmFzIDxmZWxpcGUuY29udHJlcmFzQGdtYWlsLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZDBlYTg5ZSB0byBiMzk0MWVhCgoyMDA5LTA0LTA0IDE0OjUzOjIxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmOGIzZDkxIHRvIGQwZWE4OWUKCjIwMDktMDQtMDQgMTQ6NDI6MDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogcmVtb3ZlIGRlYWQgYXNzaWdubWVudAoJICBmaXJzdF9mbGFnIHdpbGwgYmUgZWl0aGVyOgoJICAqIHJld3JpdHRlbiB3aXRob3V0IGJlaW5nIHJlYWQgaWYgd2UgbG9vcCBhZ2FpbiAobGluZSAyODQpCgkgICogbm90IHJlYWQgYWdhaW4gaWYgd2UgZG9uJ3QgbG9vcAoKMjAwOS0wNC0wNCAxNDozOTo1MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGJhc2VzaW5rOiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50cy4KCSAgc3N0YXJ0L3NzdG9wL3JzdGFydC9yc3RvcCBhcmUgYWxsIGVpdGhlcjoKCSAgKiBhc3NpZ25lZCB2YWx1ZXMgbGF0ZXIgb24gYmVmb3JlIGJlaW5nIHVzZWQgaW4gJ2RvX3RpbWVzOicgKEVPUyBhbmQgYnVmZmVycykKCSAgKiBub3QgdXNlZCAobm9uLUVPUyBldmVudHMpCgoyMDA5LTA0LTA0IDE0OjM4OjUyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHJlbW92ZSBkZWFkIGFzc2lnbm1lbnQuCgkgIFRoZSB2YXJpYWJsZSB3aWxsIG5vdCBiZSByZWFkIGJlZm9yZSBpdCdzIGFzc2lnbmVkIGEgdmFsdWUgbGluZSA5NDIvOTQ1CgoyMDA5LTA0LTA0IDE0OjM3OjEzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgZ3N0dGFnbGlzdDogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KCSAgV2UgZG9uJ3QgbmVlZCB0byBhbGxvY2F0ZSBhIHZhcmlhYmxlIGlmIGl0J3MgdGhlIHJldHVybiBvZiBhIGZ1bmN0aW9uIGNhbGwKCSAgYW5kIHdlIG9ubHkgY2hlY2sgaXQgb25jZS4KCjIwMDktMDQtMDQgMTQ6MzU6MzQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGdzdHN0cnVjdHVyZTogT25seSB1c2UgbWV0aG9kcyB1c2VkIGluIGdfKiBjaGVja3MgaWYgZ2xpYiBjaGVja3MgYXJlIGRpc2FibGVkCgoyMDA5LTA0LTA0IDEwOjU5OjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgZ3N0OiBVc2UgZ19vbmNlX2luaXQqIG9yIEdfREVGSU5FX1RZUEUKCjIwMDktMDQtMDQgMTA6MjA6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdGludGVyZmFjZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHhtbC5jOgoJICBnc3Q6IFVzZSBHX0RFRklORV9UWVBFIGFuZCBmcmllbmRzIG9yIGF0IGxlYXN0IGdfb25jZV9pbml0XyogaW4gdGhlIF9nZXRfdHlwZSgpIGZ1bmN0aW9ucwoKMjAwOS0wNC0wNCAxMDoxODo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJICBnc3Q6IFVzZSBHX0RFRklORV9UWVBFIGFuZCBkb24ndCBjYWxsIGdfdGhyZWFkX2luaXQoKSBmcm9tIGNsYXNzX2luaXQKCSAgY2xhc3NfaW5pdCBpcyB0b28gbGF0ZSBmb3IgY2FsbGluZyBnX3RocmVhZF9pbml0KCkgYXMgZ190aHJlYWRfaW5pdCgpCgkgIG5lZWRzIHRvIGJlIGNhbGxlZCBiZWZvcmUgYW55IEdPYmplY3QgZnVuY3Rpb24uCgoyMDA5LTA0LTAzIDEzOjQ2OjE4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIFVzZSBnX3NsaWNlX2NvcHkgaW5zdGVhZCBvZiBnX3NsaWNlX2R1cC4KCSAgQSAoYnVnZ3kpIGdsaWIgZ19zbGljZV9kdXAgbWFjcm8gbWF5IGNhdXNlIGNvbXBpbGVyIHdhcm5pbmdzIG9uIGUuZy4geDg2XzY0LgoKMjAwOS0wNC0wMyAxMjoyMTo1NSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiByZW1vdmUgZGVhZCBhc3NpZ25tZW50LgoJICBUaGUgdmFsdWUgb2YgcHJvcCBpcyBiZWluZyBvdmVyd3JpdHRlbiBqdXN0IGFmdGVyIHdpdGhvdXQgYmVpbmcgcmVhZC4KCjIwMDktMDQtMDMgMTI6MjA6MzYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGdzdHN0cnVjdHVyZTogUmVtb3ZlIGRlYWQgYXNzaWdubWVudC4KCSAgJ3R5cGUnIGlzIG5ldmVyIHVzZWQgdW50aWwgbGluZSAxODQ3IHdoZXJlIGl0J3Mgb3ZlcndyaXR0ZW4uCgoyMDA5LTA0LTAzIDEyOjE5OjQwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHJlbW92ZSBkZWFkIGFzc2lnbm1lbnQuCgkgIFRoZSB2YWx1ZSBzZXQgdG8gdG9fY29weSBhdCB0aGF0IGxpbmUgaXMgbmV2ZXIgdXNlZCwgYW5kIGlzIG92ZXJ3cml0dGVuCgkgIGZ1cnRoZXIgZG93biBiZWZvcmUgYmVpbmcgcmVhZC4KCjIwMDktMDQtMDMgMTI6MTc6MzMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KCSAgVGhlIHJldHVybiB2YWx1ZSBvZiBnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUgaXNuJ3QgdXNlZCBhZnRlciB0aGF0IGNhbGwuCgoyMDA5LTA0LTAzIDEyOjE1OjM4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiByZW1vdmUgcmVkdW5kYW50IGFzc2lnbm1lbnQuCgkgIElmIHRoYXQgYmxvY2sgaXMgZW50ZXJlZCwgdGhlbiBzdGFydF90aW1lIGJlY29tZXMgR1NUX0NMT0NLX1RJTUVfTk9ORS4KCSAgU2luY2Ugc3RhcnRfdGltZSBpcyBpbnZhbGlkLCB0aGUgY29kZSB3aWxsIGVudGVyIHRoZSBibG9jayBhdCBsaW5lIDQzNCBhbmQKCSAgbmV3X2Jhc2VfdGltZSB3aWxsIGJlIHNldCB0aGVyZS4KCjIwMDktMDQtMDMgMTI6MTM6MzggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgZ3N0cmVnaXN0cnliaW5hcnk6IHJlbW92ZSB2YXJpYWJsZSBvbmx5IHVzZWQgZm9yIGEgY2hlY2suCgkgIHRoYXQgdmFyaWFibGUgaXNuJ3QgdXNlZCBhbnl3aGVyZSBlbHNlIHdpdGhpbiB0aGF0IGJsb2NrLgoKMjAwOS0wNC0wMyAxMjoxMzowMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbmsgOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgoJICBzeW5jIGlzIG5ldmVyIHVzZWQgYW55d2hlcmUgaW4gdGhhdCBjb2RlLgoKMjAwOS0wNC0wMyAxMjoxMjowOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBtb3ZlIHVudXNlZCB2YXJpYWJsZSBpbiB0aGUgI2lmIDAgYmxvY2suCgkgIFRoYXQgdmFyaWFibGUgaXMgb25seSB1c2VkIGJ5IHRoZSBjb2RlIHdoaWNoIGhhcyBiZWVuIGlmIDAnZAoKMjAwOS0wNC0wMyAxMTo1Njo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIFJlbW92ZSB1bnVzZWQgaW5jcmVtZW50cyBhcyBkZXRlY3QgYnkgTExWTSdzIENMYW5nIHN0YXRpYyBhbmFseXplci4KCjIwMDktMDQtMDMgMTE6NTI6NDkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbnRlcmZhY2UuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcyBkZXRlY3RlZCBieSBMTFZNJ3MgQ2xhbmcgc3RhdGljIGFuYWx5emVyLgoKMjAwOS0wNC0wMyAxMToxOTo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBkb2NzOiBpbXByb3ZlIEFQSSByZWZlcmVuY2UgZm9yIGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUoKQoKMjAwOS0wNC0wMiAxMzozMjo1OCArMDIwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzIChhdCkgYXBlc3RhYXJ0IChkb3QpIG9yZz4KCgkqIGdzdC9nc3RiaW4uaDoKCSAgZG9jczogZXhwbGFpbiByZWYgb3duZXJzaGlwIGZvciBoYW5kbGVfbWVzc2FnZSBpbXBsZW1lbnRhdGlvbnMKCjIwMDktMDQtMDIgMTA6NDM6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgZ3N0Y2hlY2s6IENhbGwgZ3N0X2NoZWNrX2luaXQoKSBiZWZvcmUgY3JlYXRpbmcgdGhlIHN1aXRlCgkgIFRoaXMgYWxsb3dzIHVzaW5nIHRoZSBHU3RyZWFtZXIgb3IgR09iamVjdCBBUEkgaW4gdGhlIHN1aXRlCgkgIGNyZWF0aW9uIGZ1bmN0aW9uLgoKMjAwOS0wMy0zMSAxODoxNDowOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAZW1iZWRkZWQudWZjZy5lZHUuYnI+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IEZpeGVzIGVycm9yIHdoZW4gRElTQUJMRV9GQVVMVF9IQU5ETEVSIGlzIGRlZmluZWQKCSAgV2hlbiBkZWZpbmVkLCB0aGlzIG1hY3JvIHByZXZlbnRlZCB0aGUgZGVjbGFyYXRpb24gb2YgJ3dhaXRpbmdfZW9zJywgY2F1c2luZyBhbiBlcnJvci4KCjIwMDktMDMtMjYgMTc6MjU6MDggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlci4gQWx3YXlzIGNhbGxzIF9zdWdnZXN0LCBldmVuIHdpdGggTlVMTCBjYXBzLiBGaXhlcyAjNTc0ODA1CgoyMDA5LTAzLTMwIDE1OjQ1OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHRlc3RzOiBEb24ndCBkZWZpbmUgZ2xvYmFsIGJ1ZmZlcnMgdmFyaWFibGUsIGl0J3MgYWxyZWFkeSBkZWZpbmVkIGJ5IGxpYmdzdGNoZWNrCgoyMDA5LTAzLTMwIDEwOjMzOjUxICswMjAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkqIGRvY3MvZ3N0L2J1aWxkaW5nLnhtbDoKCSAgZG9jczogU29tZSBncmFtbWFyIGFuZCB0eXBvIGNvcnJlY3Rpb25zLgoKMjAwOS0wMy0yOSAxMzo0MToyMiArMDIwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFuYS5hbWFudGVzPgoKCSogZG9jcy9nc3QvYnVpbGRpbmcueG1sOgoJICBGaXggdHlwby4KCjIwMDktMDMtMjcgMTc6MzA6MjMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnlyZWdpc3RyeTogaW5pdCB2YXJpYWJsZSwgdGhhdCBpcyByZWZlcmVuY2VkIGluIGVycm9yIGNhc2UgYmVsb3cgdGhlIGZhaWw6IGxhYmVsCgoyMDA5LTAzLTI3IDE2OjE1OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiB3YWtldXAgdGhlIGFzeW5jIHRocmVhZCBhIGJpdCBtb3JlCgkgIEFsc28gd2FrZSB1cCB0aGUgYXN5bmMgdGhyZWFkIHdoZW4gaXQgaXMgZG9pbmcgYW4gYXN5bmMgd2FpdCBmb3IgYW4gZW50cnkuCgoyMDA5LTAzLTI3IDE2OjE1OjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogRml4IGEgbGl0dGxlIGRlYnVnIG1lc3NhZ2UKCjIwMDktMDMtMjYgMTM6MDc6NTYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnlyZWdpc3RyeTogY2hlY2sgZm9yIG5vdCByZWFkaW5nIGJleW9uZCB0aGUgZGF0YSBhcmVhLiBGaXhlcyAjNTc2ODQyCgkgIENoZWNrIGFsbCByZWFkcyBhZ2FpbnN0IHRoZSBlbmQgb2YgdGhlIGRhdGEgcmVnaW9uLiBSb2xsIGJhY2sgcmVnaXN0cmF0aW9uIG9mCgkgIHBhcnRpYWwgcmVhZHMuCgoyMDA5LTAzLTI1IDExOjAzOjIyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvYnVpbGRpbmcueG1sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICBkb2NzOiBhZGQgYSBwYWdlIGFib3V0IGJ1aWxkaW5nIGdzdHJlYW1lciBhbmQgYXBwcwoKMjAwOS0wMy0yNiAxMzowODowMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAZW1iZWRkZWQudWZjZy5lZHUuYnI+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIEFkZHMgZmxhZyBmb3IgZW9zIG9uIHNodXRkb3duIGluIGdzdC1sYXVuY2guIEZpeGVzICM1NzU4MTQuCgoyMDA5LTAzLTI2IDIyOjA1OjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogbWFrZSBVTlNDSEVEVUxFRCBjaGVja3MgdGhyZWFkc2FmZQoJICBNb3ZlIHRoZSBjaGVja3MgZm9yIHVzaW5nIGFuIHVuc2NoZWR1bGVkIGVudHJ5IGZyb20gdGhlIHVuc2FmZSBHc3RDbG9jayB0byB0aGUKCSAgU3lzdGVtQ2xvY2sgb2JqZWN0IHNvIHRoYXQgd2UgY2FuIHBlcmZvcm0gdGhlIGNvcnJlY3QgbG9ja2luZy4KCSAgZml4IGEgbGVhayBhbmQgcG90ZW50aWFsIGRlYWRsb2NrIHRoZW4gdGhlIGFzeW5jIHRocmVhZCBmYWlscyB0byBzdGFydC4KCSAgU3ByaW5rbGUgc29tZSBHX0xJS0VMWSBhcm91bmQgYmVjYXVzZSB3ZSBjYW4uCgoyMDA5LTAzLTI2IDIxOjQwOjIwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiByZW1vdmUgcGVuZGluZyBhc3luYyB3YWtldXAgc29vbmVyCgkgIFJlbW92ZSBhIHBlbmRpbmcgYXN5bmMgd2FrZXVwIGJlZm9yZSB3ZSBjaGVjayBpZiB0aGUgbmV4dCBlbnRyeSBpcyBVTlNDSEVEVUxFRAoJICBiZWNhdXNlIHdlIG1pZ2h0IGxlYXZlIHRoZSBjb250cm9sIHNvY2tldCBidXN5LgoKMjAwOS0wMy0yNiAxOTozMzo0MSArMDEwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBDb3JyZWN0ZWQgYSBkb2N1bWVudGF0aW9uIHR5cG8uCgoyMDA5LTAzLTI2IDE5OjEzOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiBhZGQgc29tZSBtb3JlIGNvbW1lbnRzLgoKMjAwOS0wMy0yNiAxODo0NjozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogcmV3b3JrIHRoZSB3YWtldXAgb2YgZW50cmllcy4KCSAgS2VlcCBhIGNvdW50ZXIgZm9yIHRoZSBhbW91bnQgb2Ygb3V0c3RhbmRpbmcgd2FrZXVwcyB0aGF0IHdlIHByb2R1Y2UgYW5kIG9ubHkKCSAgcGVyZm9ybSBhIHdyaXRlL3JlYWQgdG8gdGhlIGNvbnRyb2wgc29ja2V0IHdoZW4gMSBvciAwIHJlc3BlY3RpdmVseS4KCSAgZG9uJ3QgcG9sbCB3aGVuIHdhaXRpbmcgZm9yIHRoZSBlbnRyaWVzIHRvIGJlIHVuYmxvY2tlZCBhbmQgY2xlYXIgdGhlaXIgd2FrZXVwCgkgIGNvdW50cywganVzdCBhY3Qgb24gdGhlIHNpZ25hbCB3aGVuIHRoZSB3YWtldXAgY291bnQgaXMgMC4KCSAgdW5zY2hlZHVsZWQgZW50cmllcyB3aWxsIGNsZWFyIHRoZWlyIHdha2V1cCBjb3VudCB0aGVtc2VsdmVzLgoJICBLZWVwIHRyYWNrIG9mIHdoZW4gd2Ugd2FrZXVwIHRoZSBhc3luYyB0aHJlYWQgYmVjYXVzZSB0aGUgbGlzdCBvZiBlbnRyaWVzIGhhcwoJICBjaGFuZ2VkLgoJICBkb24ndCB0cnkgdG8gc2VlIGlmIHRoZSBsaXN0IGNoYW5nZWQgYmVjYXVzZSB3ZSBjYW4ndCByZWFsbHkga25vdyB3aGVuIG9uZSBlbnRyeQoJICBpcyBhZGRlZCBtdWx0aXBsZSB0aW1lcy4KCSAgT25seSB3YWtlIHVwIHRoZSBhc3luYyB0aHJlYWQgd2hlbiB3ZSBhZGQgYW4gYXN5bmMgZW50cnkgdG8gdGhlIGhlYWQgb2YgdGhlIGxpc3QKCSAgYW5kIHRoZSBvbGQgZW50cnkgd2FzIEJVU1kuCgoyMDA5LTAzLTI1IDE3OjMxOjE2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBGaXggdXAgZG9jdW1lbnRhdGlvbiBzdHJpbmdzLgoJICBOb3RlIHRoZSBjaGFuZ2VkIGJlaGF2aW91ciBvZiBnc3RfcG9sbF93YWl0IGZvciB0aW1lciBHc3RQb2xsJ3MsIGFuZAoJICBmaXggYSBjb3VwbGUgb2Ygc3BlbGxpbmcgZXJyb3JzLgoKMjAwOS0wMy0yNiAxNTo1NTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IGZpeCAyIHdha2V1cCByYWNlcy4KCSAgd2hlbiBhbiBlbnRyeSBiZWluZyB3YWl0ZWQgb24gaW4gdGhlIGFzeW5jIHRocmVhZCBpcyB1bnNjaGVkdWxlZCwgY2xlYXIgdGhlCgkgIHdha2V1cCBxdWV1ZSBzbyB3ZSBjYW4gY29udGludWUgd2FpdGluZyBvbiBvdGhlciBlbnRyaWVzLgoJICBXaGVuIGFuIGVudHJ5IGJlaW5nIHdhaXRlZCBvbiBpbiB0aGUgYXN5bmMgdGhyZWFkIGlzIHVubG9ja2VkIGJlY2F1c2UgYW4gZWFybGllcgoJICBlbnRyeSB3YXMgYWRkZWQgdG8gdGhlIGxpc3QsIHNldCB0aGUgZW50cnkgdG8gT0sgYWdhaW4uIFRoaXMgbWFrZXMgc3VyZSB0aGF0CgkgIG9ubHkgdGhlIGVudHJpZXMgYmVpbmcgd2FpdGVkIG9uIGhhdmUgdGhlIEJVU1kgZmxhZyBzZXQgYW5kIHdha2UgdXAgdGhlIHRpbWVyCgkgIHBvbGwgd2hlbiB0aGV5IGFyZSB1bnNjaGVkdWxlZC4KCjIwMDktMDMtMjYgMTQ6NDQ6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBpZ25vcmUgLmdpdCBkaXJlY3Rvcnkgd2hlbiByZWN1cnNpdmVseSBzY2FubmluZyBwbHVnaW4gcGF0aHMgZm9yIHBsdWdpbnMKCSAgU2F2ZXMgc29tZSBjeWNsZXMvcGFuZGFzIGZvciB0aG9zZSBvZiB1cyB3aG8gcnVuIHVuaW5zdGFsbGVkIHNldHVwcy4KCjIwMDktMDMtMjYgMTQ6MTY6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICByZWdpc3RyeTogZG8gZnN5bmMoKSBiZWZvcmUgY2xvc2UoKSBhbmQgcmVuYW1lKCkKCSAgVGhpcyBoZWxwcyBwcmV2ZW50IGZpbGVzeXN0ZW0vZGF0YSBpbmNvbnNpc3RlbmNpZXMgaW4gY2VydGFpbgoJICBjaXJjdW1zdGFuY2VzIG9uIGNlcnRhaW4gZmlsZXN5c3RlbXMgKGxpa2UgZXh0NCwgeGZzLCB1YmlmcykuCgkgIEFsc28gc2VlIGJ1ZyAjNTYyOTc2LgoKMjAwOS0wMy0yNiAwMTowOTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBUEk6IGFkZCBnc3RfdGFnX2xpc3RfZ2V0X2J1ZmZlcntfaW5kZXh9CgkgIENvbnZlbmllbmNlIEFQSSwgbW9zdGx5IGZvciBpbWFnZSB0YWdzLCBzbyBwZW9wbGUgZG9uJ3QgaGF2ZSB0bwoJICBmaWd1cmUgb3V0IHRoZSB3aG9sZSBHVmFsdWUvR3N0VmFsdWUgdGhpbmcganVzdCBmb3IgdGhpcy4KCjIwMDktMDMtMjUgMjM6MDM6MzggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogQ2xlYW4gdXAgdGhlIHRlc3RzIGEgYml0LgoJICBBZGQgc29tZSBjbGVhbnVwcyB0byB0aGUgc3lzdGVtIGNsb2NrIHRlc3RzLCB0byBmcmVlIGFsbCB0aGUgbWVtb3J5IGFuZAoJICB1bnNjaGVkdWxlL3VucmVmIGFsbCBjbG9jayBJRHMgd2UgYWxsb2NhdGUuCgkgIFVzZSBhIG11dGV4IGluIG9uZSB0ZXN0IHRvIGF2b2lkIHBvdGVudGlhbCB0aHJlYWRpbmcgcHJvYmxlbXMgb24gbXVsdGljb3JlCgkgIG1hY2hpbmVzLgoKMjAwOS0wMy0yNSAyMTozNzozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBBZGQgYSB0ZXN0IGZvciBzeW5jL2FzeW5jIGNsb2NraWQgaW50ZXJhY3Rpb25zCgkgIFRoaXMgdGVzdCByYW5kb21seSBoYW5ncyBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2l0aCB0aGUgcmVsaWFiaWxpdHkgb2YKCSAgdW5zY2hlZHVsaW5nIHN5bmMgYW5kIGFzeW5jIGNsb2NrSUQncyBvbiB0aGUgc3lzdGVtIGNsb2NrLgoKMjAwOS0wMy0yNiAxMToxNzowMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBVc2UgZ19zbGljZV9kdXAoKSBub3cKCjIwMDktMDMtMjYgMTE6MDg6MjcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dsaWItY29tcGF0Lmg6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBSZW1vdmUgc29tZSBjb21wYXRpYmlsaXR5IHN0dWZmIGZvciBHTGliIDwgMi4xNAoKMjAwOS0wMy0yNSAwMDo1MDowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBUEk6IGFkZCBHU1RfVEFHX1NVQlRJVExFX0NPREVDCgkgIFllcywgJ2NvZGVjJyBpc24ndCBleGFjdGx5IHRoZSBiZXN0IHdvcmQsIGJ1dCBsZXQncyBiZSBjb25zaXN0ZW50IHdpdGggQVVESU9fQ09ERUMKCSAgYW5kIFZJREVPX0NPREVDICh3aGljaCBtYXkgYmUgJ3JhdycgZm9ybWF0cyBhcyB3ZWxsIGFmdGVyIGFsbCkuIFByZXJlcXVpc2l0ZSBmb3IKCSAgYnVnICAjNTc2NTUyLgoKMjAwOS0wMy0yNCAyMTozOToyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGRvY3M6IGdzdC1sYXVuY2ggbWFuIHBhZ2UgZml4CgkgIFRoZSBjb21tYW5kIGxpbmUgb3B0aW9uIGlzIC0tZ3N0LWRlYnVnLWRpc2FibGUsIG5vdCAtLWdzdC1kaXNhYmxlLWRlYnVnLgoJICBGaXhlcyAjNTc2NTU2LiBTcG90dGVkIGJ5IEJvZ2RhbiBIYXJqb2MuCgoyMDA5LTAzLTI0IDE5OjMzOjU2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBpbXByb3ZlIHByb3BlcnR5IHNldCBhbmQgY29udmVydCBjb2RlCgkgIFVzZSBzdHJpbmcgZGVzZXJpYWxpc2F0aW9uIGluc3RlYWQgb2YgY3VzdG9tIHBhcnNpbmcgY29kZSB0byBhbGxvdyBmb3IgYWxsCgkgIHN1cHBvcnRlZCB3YXlzIG9mIHNwZWNpZnlpbmcgcHJvcGVydHkgdmFsdWVzLgoJICBmaXhlcyAjNTc2NTgyLgoKMjAwOS0wMy0yMyAxNToxODoyMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSAgYnVpbGQ6IGRlZmluZSBzdHVicyB3aGVuIGRpc2FibGluZyBnc3QtZGVidWcgc3Vic3lzdGVtLiBGaXhlcyAjNTc1OTIyCgkgIFJ1bm5pbmcgY29uZmlndXJlIHdpdGggZS5nLiAtLWRpc2FibGUtZHN0LWRlYnVnIHdhcyBjb21waWxpbmcgb3V0IHRoZSBkZWJ1ZwoJICBzeXN0ZW0gKEFCSSBicmVhaykuIE5vdyBzdHVicyBhcmUgYWRkZWQgYW5kIG9ubHkgaWYgb25lIGRvZXMgZS5nLgoJICBtYWtlIENGTEFHUz0iLURHU1RfUkVNT1ZFX0RJU0FCTEVEIiB0aGUgc3ltYm9scyBhcmUgb21taXR0ZWQuCgoyMDA5LTAzLTIzIDEyOjM0OjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCBvbmNlLXBlci1zZWNvbmQgJ2VtZXJnZW5jeSByZW5kZXJpbmcnIGZvciBjYXNlIHdoZXJlIGFsbCBidWZmZXJzIGJ1dCB0aGUgdmVyeSBmaXJzdCBhcmUgbGF0ZQoJICBEdWUgdG8gYSB0eXBvIGJhc2VzaW5rIGRpZG4ndCBkbyBhbnkgZW1lcmdlbmN5IHJlbmRlcmluZyBvZiBsYXRlIGJ1ZmZlcnMKCSAgaWYgdGhlIG9ubHkgYnVmZmVyIGV2ZXIgcmVuZGVyZWQgd2FzIHRoZSBmaXJzdCBvbmUgd2l0aCB0aW1lc3RhbXAgMC4gVGhpcwoJICBtZWFucyB0aGF0IGluIGNhc2VzIHdoZXJlIHRoZSBkZWNvZGVyIGlzIHZlcnkgdmVyeSBzbG93LCB3ZSdkIG5ldmVyIHNlZQoJICBhbnkgYnVmZmVycyBidXQgdGhlIHZlcnkgZmlyc3Qgb25lIHJlbmRlcmVkLiBGaXhlcyAjNTc2MzgxLgoKMjAwOS0wMy0yMSAwMjozNDowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogdHdlYWsgdGhlIHJlbGVhc2UgcHJvY2VkdXJlIHNjcmlwdAoKMjAwOS0wMy0yMCAxNDoxMjo1NSArMDEwMCAgTFJOIDxscm4xOTg2IGF0IGdtYWlsIGRvdCBjb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgd2luMzI6IGZpeCBzZWVraW5nIGluIGZpbGVzID40R0IKCSAgVXNlIDY0LWJpdCBmdW5jdGlvbnMgb24gd2luZG93cyB0byBpbXBsZW1lbnQgc2Vla2luZyBpbiBmaWxlcyBiaWdnZXIKCSAgdGhhbiA0R0IuCgkgIEZpeGVzICM1NzU5ODgKCjIwMDktMDMtMjAgMTE6MjY6MzAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBjb250cm9sbGVyOiBGaXggZ2VuZXJhdGlvbiBvZiBjb250cm9sLWNoYW5nZSBhcnJheXMuCgkgIFdoZW4gZ2VuZXJhdGluZyBhcnJheXMgb2YgY29udHJvbCBjaGFuZ2VzIHRpbWVzdGFtcCB2YXJpYWJsZSB3YXMgdXNlZCBpbnN0ZWFkCgkgIHRoZSBsb2NhbCB0cyB2YXJpYWJsZSB0aGF0IHdlIGluY3JlbWVudCB3aGVuIHN0ZXBwaW5nIHRocm91Z2ggdGhlIGFycmF5LgoJICBQb2ludGVkIG91dCBieSBNYXJ0aW4gUG9rb3JueS4KCjIwMDktMDMtMjAgMDA6NDI6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZGVidWdnaW5nOiBtYWtlIEdTVF9QVFJfRk9STUFUIHdvcmsgZm9yIHF1ZXJpZXMgYXMgd2VsbAoKMjAwOS0wMy0yMCAwMDozOTo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQVBJOiBhZGQgR1NUX1FVRVJZX0NBU1QKCSAgYmVjYXVzZSB3ZSBjYW4sIGFuZCBmb3IgY29uc2lzdGVuY3kuCgoyMDA5LTAzLTE5IDIxOjI3OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGdzdGNoZWNrOiBmaXggZm9yIGNoZWNrIHZlcnNpb25zID4gMC45LjYKCSAgQSBuZXcgYXJndW1lbnQgYWxsb3dlZF9leGl0X3ZhbHVlIHdhcyBhZGRlZCBpbiBTVk4gcmVjZW50bHkgKCM1NzQyMTMpLgoKMjAwOS0wMy0xOSAxNzoxOTo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBmaXggZ3N0X3BhZF9jYW5fbGluawoJICBXZSB3ZXJlIGNvbnZlcnRpbmcgdGhlIEdzdFBhZExpbmtSZXR1cm4gdG8gYSBnYm9vbGVhbiwgd2hpY2ggaXMgbm90IHdoYXQgd2Ugd2FudAoJICB0byBkby4KCjIwMDktMDMtMTkgMTA6NDQ6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBnc3QtcnRzcC1zZXJ2ZXIgYml0cyBhbmQgYnJlYWsgdXAgb3Zlcmx5IGxvbmcgbGluZXMKCSAgQWRkIHNvbWUgb2YgdGhlIGJpdHMgbmVlZGVkIGZvciBhbiB1bmluc3RhbGxlZCBnc3QtcnRzcC1zZXJ2ZXIgKHNvIGdkYiB3b3JrcwoJICBvbiB0aGUgZXhhbXBsZXMgZXRjLikuIFB5dGhvbiBiaXRzIGFyZSBzdGlsbCBtaXNzaW5nLCBhbmQgd2UgbWlnaHQgbmVlZCBhbgoJICAtdW5pbnN0YWxsZWQucGMgZmlsZSBhcyB3ZWxsIGluIHRoZSBmdXR1cmUuIEJyZWFrIHVwIHZlcnkgbG9uZyBsaW5lcyB0byBtYWtlCgkgIHRoZW0gZWFzaWVyIHRvIHJlYWQgYW5kIG1haW50YWluLiBBbHNvIHJlbW92ZSBnc3QtcGx1Z2lucyBwYXRocyBmcm9tIHRoZQoJICBvbGQgZGF5cy4KCjIwMDktMDMtMTkgMTE6NDY6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3J3bG9ja3M6CgkgIGRvY3M6IGludGVyZXN0aW5nIGlkZWEgZm9yIGZhc3QgcncgbG9ja3MKCSAgLS0KCjIwMDktMDMtMTkgMTE6MTE6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogYWRkIG5ldyBzeW1ib2wgdG8gd2luZG93cyAuZGVmIGZpbGUKCSAgQWRkIHRoZSBuZXcgd2luZG93cyBjbWQuZXhlIGNvbG9yaW5nIG1ldGhvZCB0byB0aGUgLmRlZiBmaWxlLgoKMjAwOS0wMy0xOCAxNjozODo1MSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZG9jczogbW9yZSBpbmZvIGFib3V0IHdoZW4gc3RhdGUgY2hhbmdlcyBjYW4gYmUgYXN5bmMgYW5kIHdoZW4gbm90LgoKMjAwOS0wMy0xOCAxOTowNzowMCArMDEwMCAgRGFtaWVuIExlc3BpYXUgPGRhbWllbi5sZXNwaWF1IGF0IGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IG1vcmUgaW5kZW50YXRpb24gZml4ZXMKCSAgRml4ZXMgIzUxNzIzMS4KCjIwMDktMDMtMTggMTk6MDY6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBpbmRlbnRhdGlvbiBmaXgKCjIwMDktMDMtMTggMTg6NTc6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBzaW1wbHkgc29tZSBtb3JlCgoyMDA5LTAzLTE4IDE4OjQ1OjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogcmVmYWN0b3IgZGVidWcgY29sb3JzIGZvciB3aW4zMiBhbmQgb3RoZXIKCSAgUmVmYWN0b3IgdGhlIGRlYnVnIGxpbmUgY29kZSB0byB1c2UgYXMgbXVjaCBjb2RlIGFzIHBvc3NpYmxlIGZvciB0aGUgd2luMzIgYW5kCgkgIG90aGVyIGNvbG9yIGNvZGluZ3MuCgkgIFVwZGF0ZSBkb2NzIHdpdGggbmV3IHN5bWJvbC4KCjIwMDktMDMtMTggMTc6MzA6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIHdpbmRvd3M6IGluaXRpYWwgY29tbWl0IGZvciB0ZXJtaW5hbCBjb2xvcnMKCjIwMDktMDMtMTggMTc6MDE6MTYgKzAxMDAgIFplZXNoYW4gQWxpIChLaGF0dGFrKSA8emVlc2hhbmFrIGF0IGdub21lIGRvdCBvcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBnc3RwYWQ6IGZpeCBnc3RfcGFkX2Nhbl9saW5rKCkKCSAgTW92ZSB0aGUgZ3N0X3BhZF9jYW5fbGluaygpIGltcGxlbWVudGF0aW9uIGZyb20gZ3N0dXRpbHMgdG8gZ3N0cGFkIGFuZCB1c2UKCSAgZ3N0X3BhZF9saW5rX3ByZXBhcmUoKSB0byBtYWtlIGl0IHdvcmsgY29ycmVjdGx5IGFuZCBhbHNvIGNoZWNrIHRoZSBjYXBzLgoJICBNYWtlIHRoZSBicm9rZW4gaW1wbGVtZW50YXRpb24gaW4gZ3N0dXRpbHMgc3RhdGljLgoJICBTbWFsbCBjbGVhbnVwcyBpbiB0aGUgX2dldF9maXhlZF9jYXBzKCkgZnVuY3Rpb24uCgkgIEZpeGVzICM1NzU2ODIuCgoyMDA5LTAzLTE3IDIwOjQxOjQ0ICswMDAwICBEYXZpZCBBZGFtIDx6YW5jaGV5QHVjYy5ndS51d2EuZWR1LmF1PgoKCSogZ3N0L2dzdC5jOgoJICBjb25maWcuaCBuZWVkcyB0byBiZSBpbmNsdWRlZCBmaXJzdCwgZWl0aGVyIGRpcmVjdGx5IG9yIHZpYSBnc3RfcHJpdmF0ZS5oCgkgIEZpeGVzIGJ1aWxkIHdpdGggLVdlcnJvciBjYXVzZWQgYnkgJ19GSUxFX09GRlNFVF9CSVRTIHJlZGVmaW5lZCcgd2FybmluZyBvbgoJICBPcGVuU29sYXJpcyB3aGVyZSBfRklMRV9PRkZTRVRfQklUUyBtYXkgYmUgZGVmaW5lZCBib3RoIGluIG91ciBjb25maWcuaAoJICBhbmQgdmlhIHN0ZGlvLmggKCM1NzU2OTUpLgoKMjAwOS0wMy0xNyAxOTowMjoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSAgZmFxOiByZW1vdmUgb3V0ZGF0ZWQgYml0cyBmcm9tIGluZGVudGluZyBzZWN0aW9uCgoyMDA5LTAzLTE3IDEyOjA1OjMzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogZm9yd2FyZCBzZWdtZW50LXN0YXJ0IGxpa2Ugc2VnbWVudC1kb25lIGlmIHBhcmVudCBpcyBhbHNvIGEgYmluLCBmaXhlcyAjNTc1NTk4LgoJICBCaW4gY29sbGVjdHMgc2VnbWVudC1zdGFydCBtZXNzYWdlcyBhbmQgc2VnZW50LWRvbmUgbWVzc2FnZXMuIGl0IHBvc3RzIGEKCSAgc2VnbWVudC1kb25lIG1lc3NhZ2UgdG8gaXRzIHBhcmVudCwgb25jZSBpdCBoYXMgcmVjZWl2ZWQgYSBzZWdtZW50LWRvbmUgZm9yCgkgIGVhY2ggc2VnbWVudC1zdGFydC4gSW1obyBpdCBzaG91bGQgYWxzbyBzZW5kIGEgc2VnbWVudC1zdGFydCBpZiBpdCByZWNlaXZlcyB0aGUKCSAgZmlyc3Qgc2VnbWVudCBzdGFydCBhbmQgaWYgcGFyZW50IGlzICE9TlVMTC4gVGhpcyBpcyBuZWVkZWQgZm9yIGJpbnMgaW4gYmlucywKCSAgc28gdGhhdCBhbHNvIGhpZ2hlciBvcmRlciBiaW5zIGNhbiBncm91cCBzZWdtZW50LXN0YXJ0cyBhbmQgc2VnbWVudC1kb25lcy4KCSAgUmlnaHQgbm93IGhpZ2hlciBvcmRlciBiaW5zIHdpbGwgcG9zdCBhIHNlZ21lbnQtZG9uZSBmb3IgZWFjaCBzZWdtZW50LWRvbmUKCSAgcmVjZWl2ZWQuCgoyMDA5LTAzLTE2IDIwOjEyOjQ1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9mYXEvZ2l0LnhtbDoKCSAgZmFxOiBmaXggdHlwbyBpbiBnaXQgY29tbWFuZAoKMjAwOS0wMy0xNSAyMzo0MDozNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiB0aGVzZSB3YXJuaW5ncyBhcmUgc2VyaW91cywgZ2l2ZSBtb3JlIGRldGFpbCBpbiB0aGUgbWVzc2FnZQoKMjAwOS0wMy0xNSAyMzozNzoyOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogYWRkIGRlYnVnIGxvZ2dpbmcgdG8gbWFrZSBpdCBlYXNpZXIgdG8gdHJhY2UgaXQKCjIwMDktMDMtMTMgMTA6NTY6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgRml4IGluZGVudGF0aW9uIG9mIC5oIGZpbGVzCgkgIC0tCgoyMDA5LTAzLTEyIDEyOjIwOjI1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0czogYXBwbHkgZml4IGZvciByZXBsYWNlIGFsbCBhbHNvIHRvIGdzdF90YWdfbGlzdF9hZGRfdmFsaXN0X3ZhbHVlcy4gRml4ZXMgIzU3NDI0MQoKMjAwOS0wMy0xMiAxMDo0ODoyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIGRvY3M6IEltcHJvdmUgc29tZSBkb2NzCgkgIFJlbmFtZSBzb21lIGZ1bmN0aW9uIHZhcmlhYmxlcyBhbmQgYWRkIHNvbWUgUmV0dXJuOiB0byBtYWtlIHRoZSBkb2NzIG1vcmUgaGFwcHkuCgoyMDA5LTAzLTEyIDAwOjQxOjI0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgZG9jczogZml4IGxpbmtpbmcgdG8gY29uc3RhbnQgYW5kIGZ1bmN0aW9ucwoKMjAwOS0wMy0xMSAxNToyMDozNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZHVtcDJkb3Q6IGVsbGlwc2l6ZSBjYXBzIGZpZWxkcywgYmV0dGVyIHBsYWNlbWVudCBvZiB1bm5lZ290aWF0ZWQgY2FwcwoJICBMb25nIGNhcHMgZmllbGRzIGxpa2UgZW51bXMgYXJlIGVsbGlwc2lzZWQuIElmIGNhcHMgYXJlIG5vdCBuZWdvdGlhdGVkLCB1c2UKCSAgaGVhZC0gYW5kIHRhaWxsYWJlbCB0byBwbGFjZSB0aGVtIGNsb3NlciB0byB0aGUgcGFkcy4gVXNlIHNtYXJ0ZXIgd2F5IHRvIGluZGVudC4KCjIwMDktMDMtMTEgMTA6Mjc6MTYgKzAyMDAgIExhc3psbyBQYW5keSA8bGFzemxvazJAZ21haWwuY29tPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZHVtcDJkb3Q6IG1ha2UgY2FwcyBpbiBET1QgZGVidWcgZ3JhcGhzIG1vcmUgcmVhZGFibGUuIEZpeGVzIDU3NDQ4NAoJICBVc2UgYSBtb25vc3BhY2UgZm9udCBmb3IgZWRnZSBsYWJlbHMgYW5kIGluZGVudC4KCjIwMDktMDMtMTEgMTQ6MTE6MzAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZHRlbXBsYXRlOiBBbGxvdyAldSBhcyBjb252ZXJzaW9uIG1vZGlmaWVyIGFkZGl0aW9uYWwgdG8gJWQgYW5kICVzCgoyMDA5LTAzLTExIDExOjIzOjA1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGdzdGJhc2VzcmM6IHVuc2lnbmVkIGxvbmcgaXMgIiVsdSIsIG5vdCAiJXVsIi4gRml4ZXMgYnVpbGQgb24gbWFjb3N4CgoyMDA5LTAzLTEwIDIxOjA4OjM0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBsb2dnaW5nOiBzb21lIGFkZGl0aW9uYWwgbG9nZ2luZyBmb3IgdHJhY2luZyBjYXBzIG5lZ290aWF0aW9uLgoJICBEZW1vdGUgb25lIGxvZyB0aGF0IGNhbiBjb21lIHF1aXRlIG9mdGVuLiBSZW1vdmUgb25lIGZpeG1lIHRoYXQgaXMgZG9uZS4gQXBwbHkKCSAgZ3N0LWluZGVudCBjaGFuZ2VzLgoKMjAwOS0wMy0xMCAyMTowMzo0NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBjb21tZW50OiBhZGQgYSBmaXhtZS0wLjExCgoyMDA5LTAzLTEwIDIxOjAxOjIxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSAgZm9ybWF0dGluZzogdGFicyB0byBzcGFjZXMKCjIwMDktMDMtMDkgMjM6MTE6MjQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNzAzMjE2MyB0byBmOGIzZDkxCgoyMDA5LTAzLTA5IDIwOjA3OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBnc3RyZWFtZXIuc3BlYzogZml4IHN0cmF5IEBHTElCMl9SRVFAIHRoYXQgZGlkbid0IGdldCBleHBhbmRlZCBwcm9wZXJseQoKMjAwOS0wMy0wOSAxNjowOTozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICBkb2NzOiByZXdvcmQgc3R1ZmYgYWJvdXQgY3VzdG9tIG1haW5sb29wcwoJICBGaXhlcyAjNTc0MjI5LgoKMjAwOS0wMy0wOSAxNjowMToyMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZHVtcDJkb3Q6IGRvbid0IHVzZSBHU1RfVElNRV9GT1JNQVQgd2hlbiBidWlsZGluZyBmaWxlbmFtZXMuIGZpeGVzICM1NzQ2MjMKCjIwMDktMDMtMDkgMTE6Mzk6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNhbGwgbmV3IGNhbGxiYWNrcyBzZXQgaW4gdGhlIGJsb2NrIGNhbGxiYWNrCgkgIEtlZXAgdHJhY2sgb2Ygd2hlbiBhIG5ldyBjYWxsYmFjayBpcyBpbnN0YWxsZWQgaW4gdGhlIGNhbGxiYWNrIGFuZCBjYWxsIHRoZSBuZXcKCSAgY2FsbGJhY2sgaW4gdGhhdCBjYXNlLgoJICBBZGQgdW5pdCB0ZXN0IGZvciBjaGVja2luZyBwYWQgYmxvY2tpbmcuCgkgIEZpeGVzICM1NzM4MjMuCgoyMDA5LTAzLTA4IDE3OjIyOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHdpbjMyOiB1cGRhdGUgZW51bXR5cGVzIGFuZCBjb25maWcuaAoKMjAwOS0wMy0wOCAxNzoxNTozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBkb2NzOiBpbXByb3ZlIGRvY3MgZm9yIGdzdF90YWdfbGlzdF9nZXRfZGF0ZSooKQoJICBNZW50aW9uIHRoYXQgdGhlIGRhdGUgdmFsdWUgbmVlZHMgdG8gYmUgZnJlZWQgYW5kIGhvdyB0byBmcmVlIGl0LgoKMjAwOS0wMy0wOCAxMjowMjoxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGZmYTczOGQgdG8gNzAzMjE2MwoKMjAwOS0wMy0wOCAxMToxNzo1MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDNmMTNlNGUgdG8gZmZhNzM4ZAoKMjAwOS0wMy0wOCAwMDoyNzoyNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZHVtcDJkb3Q6IGltcHJvdmUgY2FwcyBsb2dnaW5nCgkgIEZhY3RvciBvdXQgY29kZSB0byBkZXNjcmliZSBjYXBzLiBJbXByb3ZlIGZvcm1hdGluZyAobm8gXG4gaW4gY2FwcyBmaWVsZHMpLgoJICBDaGVjayBwZWVyIGNhcHMgdG9vIGFuZCBzaG93IGJvdGggaWYgdGhleSBkaWZmZXIuCgoyMDA5LTAzLTA3IDExOjQzOjMxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gM2M3NDU2YiB0byAzZjEzZTRlCgoyMDA5LTAzLTA3IDEwOjQzOjMyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNTdjODNmMiB0byAzYzc0NTZiCgoyMDA5LTAzLTA2IDIyOjEwOjEwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiByZXZlcnQgYWNjaWRlbnRpYWwgY29tbWl0IGZyb20gdGhlIHF1ZXVlIChtZSBzaG91bGQgc3RhcnQgdXNpbmcgYnJhbmNoZXMpCgoyMDA5LTAzLTA2IDIxOjU5OjIwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGFwaWRvY3M6IG1hcmt1cCBleGFtcGxlIGFzIGhpZ2hsaWdodGFibGUgZXhhbXBsZSBhbmQgY29weSBzYW1lIGZvciBzdHJ1Y3R1cmUKCSAgc3RydWN0dXJlcyBjYW4gYmUgcHJpbnRlZCBsaWtlIHdlIGNhbiBkbyBmb3IgY2Fwcy4gTWFyayB0aGUgZXhhbXBsZSBzbyB0aGF0CgkgIGd0ay1kb2MgY2FuIHByZXR0eSBwcmludCBhbmQgeHJlZiBpdC4KCjIwMDktMDMtMDQgMjE6MjE6NTYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IHJlbGlhYmx5IGdvIHRvIGVvcy4gRml4ZXMgIzU3NDE2MAoJICBVcGRhdGUgY29sbGVjdHBhZHMgc3RhdHVzIHdoZW4gcmVtb3ZpbmcgcGFkcy4KCjIwMDktMDMtMDYgMTI6MDg6NDIgKzAxMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBvZiBnc3RfcGFkX2V2ZW50X2RlZmF1bHQgd2hlbiBzZW5kaW5nIG91dCB0aGUgbmV3c2VnbWVudCBldmVudCBpbiBzaW5nbGUtc2VnbWVudCBtb2RlLgoJICBUaGlzIG1ha2VzIGlkZW50aXR5IHNpbmdsZS1zZWdtZW50PXRydWUgISBvZ2dtdXggd29yayBhZ2FpbiBhZnRlciBhIGNoYW5nZSBpbgoJICBvZ2dtdXggKGNvbW1pdCBiMGUzZDQ0OSBpbiAtYmFzZSkuCgoyMDA5LTAzLTA1IDE3OjQyOjIyICswMTAwICBBbmR5IFdpbmdvIDx3aW5nb0BvYmxvbmcubmV0PgoKCSAgYmFzZXNpbms6IHByb3BhZ2F0ZSBVUFNUUkVBTSBldmVudHMgaW4gcHVsbCBtb2RlIHRvbwoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19zZW5kX2V2ZW50KTogUHJvcGFnYXRlCgkgIHVwc3RyZWFtIGV2ZW50cyBpbiBwdWxsIG1vZGUgdG9vLgoKMjAwOS0wMy0wNSAxMToyOTo0OCArMDEwMCAgQW50b2luZSBUcmVtYmxheSA8aGV4YTAwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgR3N0UGFkOiByZWxheCBmYWlsdXJlIHRvIGRlYWN0aXZhdGUgdW5saW5rZWQgcGFkcwoJICBXaGVuIGRlL2FjdGl2YXRpbmcgYSBwYWQgaW4gcHVsbCBtb2RlIHRoZSBwYWQgbmVlZHMgdG8gZGUvYWN0aXZhdGUgdGhlCgkgIHBlZXIgcGFkIGl0IGlzIGNvbm5lY3RlZCB0bywgZmFpbHVyZSB0byBiZSBhYmxlIHRvIGRvIHRoaXMgaW4gYWN0aXZhdGlvbiBtb2RlCgkgIGlzIGFuIGVycm9yLgoJICBIb3dldmVyIGlmIHRoZXJlIGlzIG5vIHBlZXJwYWQsIHdlIGNhbiBzdGlsbCBkZWFjdGl2YXRlIHRoZSBwYWQgY29ycmVjdGx5IGFuZAoJICBhc3N1bWUgdGhlIGFwcGxpY2F0aW9uIHdpbGwgZGVhY3RpdmF0ZSB0aGUgdW5saW5rZWQgcGVlciBwYWQgZXZlbnR1YWxseS4KCSAgRml4ZXMgIzU3NDE2My4KCjIwMDktMDMtMDUgMTE6MDI6NTkgKzAxMDAgIExSTiA8bHJuMTk4NiBhdCBnbWFpbCBkb3QgY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgR3N0UG9sbDogc2V0IHRoZSByZXR1cm4gdmFsdWUgb24gd2luZG93cwoJICBNYWtlIHN1cmUgdGhhdCB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBmdW5jdGlvbnMgX3JlYWQvX3dyaXRlX2NvbnRyb2woKQoJICByZXR1cm4gdGhlIGFjdHVhbCByZXN1bHQgaW5zdGVhZCBvZiBhbHdheXMgRkFMU0Ugb24gd2luZG93cy4KCSAgRml4ZXMgIzU3NDIxMS4KCjIwMDktMDMtMDQgMTA6NDY6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBwd2c6IHVwZGF0ZSBmb3IgQ1ZTLXRvLWdpdCBtaWdyYXRpb24KCSAgRml4ZXMgIzU3Mzk0Ni4KCjIwMDktMDMtMDQgMDk6MjA6NDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgR3N0QWRhcHRlcjogRGlzY2FyZCBlbXB0eSBidWZmZXJzIGluIF9wdXNoKCkuIEZpeGVzICM1NzQwMjQKCjIwMDktMDMtMDMgMjA6MDE6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogLmdpdGlnbm9yZToKCSAgVXBkYXRlIC5naXRpZ25vcmUKCjIwMDktMDMtMDMgMTk6NTg6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBiaXRzIGZvciB1bmluc3RhbGxlZCBjaGVja291dHMgb2YgZ3N0LW9wZW5tYXggYW5kIHRvdGVtCgoyMDA5LTAzLTAyIDE2OjE3OjQ1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFQSTogQWRkIGdzdF91dGlsX2FycmF5X2JpbmFyeV9zZWFyY2goKSBmb3IgYmluYXJ5IHNlYXJjaHMgb24gYSBzb3J0ZWQgYXJyYXkKCSAgVGhpcyB3aWxsIGJlIG1vc3RseSB1c2VmdWwgaW4gYWxsIGVsZW1lbnRzIHRoYXQgaGF2ZSBzb21lIGtpbmQgb2YgaW50ZXJuYWwKCSAgc2Vlay9pbmRleCB0YWJsZS4gQ3VycmVudGx5IGFsbW9zdCBhbGwgb2YgdGhlbSAob3IgZXZlbiBhbGwgb2YgdGhlbSkKCSAgYXJlIHVzaW5nIGEgbGluZWFyIHNlYXJjaCBhbHRob3VnaCB0aGUgdXNlZCBhcnJheSBpcyBhbHJlYWR5IHNvcnRlZCwKCSAgd2FzdGluZyBzb21lIENQVSB0aW1lIHdpdGhvdXQgZ29vZCByZWFzb24uCgkgIEZpeGVzIGJ1ZyAjNTczNjIzLgoKMjAwOS0wMi0yOCAxMToxNToyOSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBCdW1wIGdsaWIgcmVxdWlyZW1lbnQgdG8gMi4xNAoJICBBbHNvIHJlbW92ZSBjb2RlIGNvbmRpdGlvbmFsIG9uIDwgMi4xNC4KCjIwMDktMDItMjggMTM6MzQ6MDggLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL01BTklGRVNUOgoJICBSZW1vdmUgd2luMzIvY29tbW9uL2NvbmZpZy5oLmluIGZyb20gTUFOSUZFU1QsIGl0IG5vIGxvbmdlciBleGlzdHMKCjIwMDktMDItMjcgMTM6MzU6MzUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogUHJvcGVybHkgcmVzZXQgdGhlIGNhcHNmaWx0ZXIgd2hlbiBzZXR0aW5nIGNhcHMgQU5ZLgoKMjAwOS0wMi0yNyAxMjozNDoyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWZyYW1lc3RlcC50eHQ6CgkgIGRlc2lnbjogdXBkYXRlIHRoZSBmcmFtZXN0ZXAgZHJhZnQKCSAgVXBkYXRlIHRoZSBkb2NzIGEgbGl0dGxlLgoJICBBZGQgcHJvcGVydHkgdG8gYWxsb3cgaW5jcmVtZW50YWwgc3RlcHBpbmcgc28gdGhhdCB3ZSBjYW4gcmVkdWNlIGV4Y2Vzc2l2ZQoJICBxdWV1ZWluZy4KCjIwMDktMDItMjYgMTU6NDA6MjYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1vdmUgbGVmdCBvdmVyIGhhbmRsaW5nIG9mIHRoZSBlcnJvciBjYXNlIHRvIHRoZSBhY3RpdmF0ZV9mYWlsZWQgbGFiZWwuCgkgIElmIHdhcyBsZWZ0IGFzIGRlYWQgY29kZS4KCjIwMDktMDItMjUgMTk6NTk6NTcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBidWlsZDogVXBkYXRlIHNoYXZlIGluaXQgc3RhdGVtZW50IGZvciBjaGFuZ2VzIGluIGNvbW1vbi4gQnVtcCBjb21tb24uCgoyMDA5LTAyLTI1IDEwOjUxOjU3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgYmluYXJ5IHJlZ2lzdHJ5OiBEb24ndCBhdHRlbXB0IHRvIHBhcnNlIGVtcHR5IGNhcHMKCjIwMDktMDItMjUgMTQ6MTk6MDggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBTZXQgdHlwZWZpbmQgZmFjdG9yeSBjYXBzIHRvIE5VTEwgaW5zdGVhZCBvZiBlbXB0eSBjYXBzIGlmIHRoZXkgb3JpZ2luYWxseSB3ZXJlIE5VTEwKCjIwMDktMDItMjUgMTE6MzE6MzggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gOWNmOGM5YiB0byBhNmNlNWM2CgoyMDA5LTAyLTI0IDE1OjEwOjE1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeWJpbmFyeTogQ2hlY2sgaWYgdHlwZWZpbmQgZmFjdG9yeSBjYXBzIGFyZSBOVUxMIGJlZm9yZSBjb3B5aW5nIHRoZW0KCjIwMDktMDItMjQgMTE6NDA6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBSZW1vdmUgdW5kZWNsYXJlZCBzeW1ib2xzIGZyb20gZG9jcwoJICBSZW1vdmUgc29tZSB1bmRlY2xhcmVkIHN5bWJvbHMgZnJvbSB0aGUgZG9jcy4KCjIwMDktMDItMjMgMTM6MDE6MTEgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBDaGFuZ2UgaG93IHdpbjMyL2NvbW1vbi9jb25maWcuaCBpcyB1cGRhdGVkCgkgIEdlbmVyYXRlIHdpbjMyL2NvbW1vbi9jb25maWcuaC1uZXcgZGlyZWN0bHkgZnJvbSBjb25maWcuaC5pbiwKCSAgdXNpbmcgc2hlbGwgdmFyaWFibGVzIGluIGNvbmZpZ3VyZSBhbmQgc29tZSBoYXJkLWNvZGVkIGluZm9ybWF0aW9uLgoJICBDaGFuZ2UgdG9wLWxldmVsIG1ha2VmaWxlIHNvIHRoYXQgJ21ha2Ugd2luMzItdXBkYXRlJyBjb3BpZXMgdGhlCgkgIGdlbmVyYXRlZCBmaWxlIHRvIHdpbjMyL2NvbW1vbi9jb25maWcuaCwgd2hpY2ggd2Uga2VlcCBpbiBzb3VyY2UKCSAgY29udHJvbC4gIEl0J3Mga2VwdCBpbiBzb3VyY2UgY29udHJvbCBzbyB0aGF0IHRoZSBnaXQgdHJlZSBpcwoJICBidWlsZGFibGUgZnJvbSBWUy4KCjIwMDktMDItMjMgMTA6NTI6MTQgLTA4MDAgIERhdmlkIEZseW5uIDxkYXZpZGZAcmQuYmJjLmNvLnVrPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSAgQWRkIHNyY2RpciB0byBpbmNsdWRlcyBmb3Igb3V0LW9mLXNvdXJjZSBidWlsZHMKCSAgV2hlbiB5b3UgdXNlIGdzdHJlYW1lciB1bmluc3RhbGxlZCBhbmQgYnVpbGQgb3V0c2lkZQoJICB0aGUgc291cmNlIHRyZWUsIHRoZSBpbmNsdWRlcyBuZWVkIHRvIGJlIHNwZWNpZmllZCBmb3IKCSAgYm90aCB0aGUgc291cmNlIHRyZWUgYW5kIHRoZSBidWlsZCB0cmVlLgoJICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCjIwMDktMDItMjMgMTc6MzY6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgRXJyb3Igb3V0IG1vcmUgc3BlY2lmaWNhbGx5IG9uIGVtcHR5IGNhcHMKCSAgV2hlbiB3ZSBnZXQgZW1wdHkgY2FwcyBmcm9tIHRoZSBnZXRjYXBzIGZ1bmN0aW9uIGluIHRoZSBkZWZhdWx0IG5lZ290aWF0ZQoJICBmdW5jdGlvbiwgcG9zdCBhIG1vcmUgZGVzY3JpcHRpdmUgZXJyb3IuCgoyMDA5LTAyLTIzIDE1OjI0OjAwICswMTAwICBBbmR5IFdpbmdvIDx3aW5nb0BvYmxvbmcubmV0PgoKCSAgZml4IHVyaSBoYW5kbGVyIGl0ZXJhdGlvbiBpbiBnc3QtaW5zcGVjdAoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmMgKHByaW50X2FsbF91cmlfaGFuZGxlcnMpOiBXaG9vcHMsIGZpeCBpdGVyYXRpb24uCgkgIEknbSBzdHVwaWQuCgoyMDA5LTAyLTIzIDEyOjMzOjEzICswMTAwICBMUk4gPGxybjE5ODYgYXQgZ21haWwgZG90IGNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgRml4IHNpZ25lZCB3aGVuIGNvbXBpbGluZyB3aXRoIE1TeXMvTWluR1cKCSAgZml4IHNpZ25lZCBpc3N1ZXMgd2hlbiBjb21waWxpbmcgd2l0aCBNU3lzL01pbkdXLgoJICBGaXhlcyAjNTcyNTkxLgoKMjAwOS0wMi0yMyAxMDo1MzoxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgRG9uJ3QgZm9yd2FyZCBMQVRFTkNZIGV2ZW50IHdoZW4gbm90IHJlYWR5CgkgIFdoZW4gd2UgYXJlIG5vdCByZWFkeSB0byBoYW5kbGUgYSBsYXRlbmN5IHF1ZXJ5ICh3ZSBhcmUgbm90IHlldCBwcmVyb2xsZWQpIHdlCgkgIGFsc28gZG9uJ3QgdHJ5IHRvIGZvcndhcmQgdGhlIGxhdGVuY3kgZXZlbnQgYmVjYXVzZSB0aGF0IG1pZ2h0IGNhdXNlIHVuZXhwZWN0ZWQKCSAgZXJyb3JzIHdoZW4gdXBzdHJlYW0gaXMgbm90IHlldCBsaW5rZWQuCgoyMDA5LTAyLTIyIDIyOjA5OjM5ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svY29yZToKCSAgUmVtb3ZlIGNvcmUgZmlsZSBmcm9tIHByZXZpb3VzIGNvbW1pdAoKMjAwOS0wMi0yMiAyMDowMTowNSArMDEwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svY29yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgR3N0UGFkOiBBZGQgZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luY19mdWxsCgkgIFRoaXMgYWxsb3dzIGNvbm5lY3RpbmcgYSBHRGVzdHJveU5vdGlmeSBmb3Igd2hlbiB0aGUgY2FsbGJhY2sgaXMgcmVtb3ZlZC9yZXBsYWNlZC4KCSAgUGFydGlhbGx5IGZpeGVzICM1MTQ3MTcKCjIwMDktMDItMjIgMTk6MDU6MjAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIEluY2x1ZGUgZmxvYXRpbmcgcG9pbnQgd3JpdGUvcmVhZCBmdW5jdGlvbnMgaW4gdGhlIGRvY3MgYnkgd29ya2luZyBhcm91bmQgYSBndGstZG9jIGJ1ZwoKMjAwOS0wMi0yMiAxODo1MzoxMCArMDEwMCAgQWxpIFNhYmlsIDxhbGkuc2FiaWxAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBVc2UgdGhlIGNvcnJlY3QgdW5yZWYgZnVuY3Rpb24KCjIwMDktMDItMjIgMTg6NTE6MDggKzAxMDAgIEFsaSBTYWJpbCA8YWxpLnNhYmlsQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBDb252ZXJ0IHVucmVmL2NvcHkgZnVuY3Rpb25zIG9mIEdzdE1pbmlPYmplY3Qgc3ViY2xhc3NlcyB0byBzdGF0aWMgaW5saW5lIGZ1bmN0aW9ucwoJICB1bnJlZiBhbmQgY29weSBmdW5jdGlvbnMgYXJlIHNvbWV0aW1lcyB1c2VkIGFzIGZ1bmN0aW9uCgkgIHBvaW50ZXJzIGZvciBleGFtcGxlIGluIHRoZSBjYXNlIG9mIGdfaGFzaF90YWJsZV9uZXdfZnVsbAoJICBhcyBhIEdEZXN0cm95Tm90aWZ5IGZ1bmN0aW9uLgoJICBDdXJyZW50bHkgR3N0QnVmZmVyLCBHc3RFdmVudCwgR3N0TWVzc2FnZSBhbmQgR3N0UXVlcnkKCSAgZGVmaW5lIHRoZWlyIHJlc3BlY3RpdmUgdW5yZWYgYW5kIGNvcHkgZnVuY3Rpb25zIGFzCgkgIG1hY3JvcywgbWFraW5nIHVzZSBvZiBnc3RfbWluaV9vYmplY3RfdW5yZWYvY29weS4KCSAgVGhpcyBhcHByb2FjaCB3b3JrcyB2ZXJ5IHdlbGwgZm9yIG1vc3QgY2FzZXMsIGV4Y2VwdAoJICBmb3Igc29tZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBiaW5kaW5ncyAoY3VycmVudGx5IFZhbGEpLAoJICB3aGVyZSB0aGUgbWVtb3J5IG1hbmFnZW1lbnQgc2VtYW50aWNzIGFyZSBkZWZpbmVkCgkgIGRlY2xhcmF0aXZlbHkuCgkgIFRoZSBwb3NzaWJsZSBzb2x1dGlvbnMgd291bGQgYmUgdG8gZWl0aGVyIGNvbnZlcnQgYWxsCgkgIHRoZSBtYWNyb3MgaW50byBzdGF0aWMgaW5saW5lIGZ1bmN0aW9uLCBvciBjaGFuZ2UgdGhlCgkgIHNpZ25hdHVyZSBvZiBnc3RfbWluaV9vYmplY3RfdW5yZWYgdG8gdGFrZSBhIHZvaWQqCgkgIGluc3RlYWQgb2YgYSBHc3RNaW5pT2JqZWN0Ki4KCSAgRml4ZXMgYnVnICM1NzI0ODAuCgoyMDA5LTAyLTIyIDE1OjIyOjE2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgVXNlIHNoYXZlIChodHRwOi8vZ2l0Lmxlc3BpYXUubmFtZS9jZ2l0L3NoYXZlLykgdG8gc2ltcGxpZnkgYnVpbGQgb3V0cHV0CgoyMDA5LTAyLTIyIDE1OjQ0OjM1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDVkN2M5Y2MgdG8gOWNmOGM5YgoKMjAwOS0wMi0yMSAxMToxMzozMCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDgwYzYyN2QgdG8gNWQ3YzljYwoKMjAwOS0wMi0xOSAxODowNTowNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgR3N0QnVmZmVyRmxhZ3M6IEFkZCAiU2luY2U6IDAuMTAuMjMiIGZvciB0aGUgbmV3bHkgYWRkZWQgZmxhZ3MKCjIwMDktMDItMTkgMTY6MDQ6NDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEdzdEJ1ZmZlckZsYWdzOiBBZGQgMyBuZXcgbWVkaWEtc3BlY2lmaWMgYnVmZmVyIGZsYWdzLgoJICBQYXJ0aWFsbHkgZml4ZXMgIzE2MzU3NwoKMjAwOS0wMi0xOSAxMjo1NzoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBwcmludCBub3JtYWwgb3V0cHV0IHRvIHN0ZG91dCwgYW5kIG9ubHkgZXJyb3JzIGFuZCB3YXJuaW5ncyB0byBzdGRlcnIgaW4gZ3N0LWxhdW5jaAoJICBMZXQncyBub3QgcHJpbnQgZXZlcnl0aGluZyB0byBzdGRlcnIuIFN1cHByZXNzIHNvbWUgbW9yZSAnbm9ybWFsJyBtZXNzYWdlcyB3aGVuIC0tcXVpZXQgd2FzIHBhc3NlZC4KCjIwMDktMDItMTkgMTI6NDU6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogdXNlIGdfcHJpbnQqKCkgaW5zdGVhZCBvZiAqcHJpbnRmKCkgaW4gZ3N0LWxhdW5jaAoJICBXZSBzaG91bGQgdXNlIEdMaWIncyBnX3ByaW50KigpIGZ1bmN0aW9ucyBmb3IgcHJpbnRpbmcgc3R1ZmYgaW4gZ3N0LWxhdW5jaCwgbm90IHByaW50ZiBhbmQgZnJpZW5kcywgc2luY2Ugd2UncmUgcHJpbnRpbmcKCSAgdHJhbnNsYXRlZCBzdHJpbmdzLCB3aGljaCB3ZSBnZXQgaW4gVVRGLTggZW5jb2RpbmcsIGFuZCBHTGliJ3MgcHJpbnQgZnVuY3Rpb25zIGV4cGVjdCBVVEYtOCBlbmNvZGVkIHN0cmluZ3Mgd2hlcmVhcyBwcmludGYKCSAgZXQgYWwuIGV4cGVjdCBzdHJpbmdzIGluIHRoZSBsb2NhbGUgZW5jb2RpbmcsIHdoaWNoIG1heSBvciBtYXkgbm90IGJlIFVURi04LgoJICBBbHNvIGFkZCBhIFBSSU5UIGNvbnZlbmllbmNlIG1hY3JvIHNvIHdlIGRvbid0IGhhdmUgdG8gbGl0dGVyIHRoZSBjb2RlIHdpdGggaWYgKCFxdWlldCkgc3RhdGVtZW50cy4KCjIwMDktMDItMTkgMTE6MTg6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJKiBkb2NzL3JhbmRvbS9taW1ldHlwZXM6CgkgIGRvY3M6IGZpeCBjb25zdGFudHMgZm9yIEdfTElUVExFX0VORElBTiBhbmQgR19CSUdfRU5ESUFOCgkgIFdlIGdvdCB0aGUgY29uc3RhbnRzIGZvciBHX0xJVFRMRV9FTkRJQU4gYW5kIEdfQklHX0VORElBTiB0aGUgd3Jvbmcgd2F5IGFyb3VuZCBpbiBzb21lIGRvY3MgKGZpeGVzOiAjNTcyMzkyKS4gQWxzbyBtZW50aW9uCgkgIEdfQllURV9PUkRFUiBpbiB0aGUgYXVkaW8gdHlwZXMgc2VjdGlvbi4KCjIwMDktMDItMTkgMTA6MjU6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBzeW1ib2xzIHRvIGRlZiBmaWxlcwoJICBBZGQgdGhlIG5ldyByZXF1ZXN0X21lc3NhZ2Ugc3ltYm9scyB0byB0aGUgd2luZG93cyBkZWYgZmlsZS4KCjIwMDktMDItMTggMTU6MzE6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBBZGQgbWVzc2FnZSB0byByZXF1ZXN0IGEgc3RhdGUgY2hhbmdlCgkgIEFkZCBhIEdTVF9NRVNTQUdFX1JFUVVFU1RfU1RBVEUgdGhhdCBjYW4gYmUgcG9zdGVkIGJ5IGVsZW1lbnQgd2hlbiB0aGV5IHdvdWxkCgkgIGxpa2UgdG8gaGF2ZSB0aGUgYXBwbGljYXRpb24gY2hhbmdlIHRoZSBzdGF0ZSBvZiB0aGUgcGlwZWxpbmUuIHRoZSBwcmltYXJ5IHVzZQoJICBjYXNlIGlzIHRvIHBhdXNlIHRoZSBwaXBlbGluZSB3aGVuIGFuIGF1ZGlvIG1peGVyIGlzIG1peGluZyBhIGhpZ2hlciBwcmlvcml0eQoJICBzdHJlYW0gYnV0IGl0IGNhbiBhbHNvIGJlIHVzZWQgZm9yIG90aGVyIHB1cnBvc2VzLgoJICBBZGQgc29tZSBkb2NzIGFuZCBhIHVuaXQgdGVzdC4KCSAgSW1wbGVtZW50IHRoZSBSRVFVRVNUX1NUQVRFIG1lc3NhZ2UgaW4gZ3N0LWxhdW5jaC4KCSAgQVBJOiBnc3RfbWVzc2FnZV9uZXdfcmVxdWVzdF9zdGF0ZSgpCgkgIEFQSTogZ3N0X21lc3NhZ2VfcGFyc2VfcmVxdWVzdF9zdGF0ZSgpCgkgIEFQSTogR1NUX01FU1NBR0VfUkVRVUVTVF9TVEFURQoKMjAwOS0wMi0xNiAxMjo1ODozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgQ2xlYXIgdGFyZ2V0IHdoZW4gdGhlIHRhcmdldCBwYWQgZGlzYXBwZWFycwoJICBXaGVuIHRoZSB0YXJnZXQgcGFkIGRpc2FwcGVhcnMgKGJlY2F1c2UgaXQgd2FzIGV4cGxpY2l0bHkgdW5saW5rZWQgb3IgdGhlCgkgIGVsZW1lbnQgd2FzIHJlbW92ZWQvdW5yZWZmZWQpIG1ha2Ugc3VyZSB3ZSByZWNlaXZlIGEgbm90aWZ5IHdpdGggdGhlIHVubGluawoJICBmdW5jdGlvbiBvbiB0aGUgcHJveHkgcGFkIGFuZCBjbGVhciB0aGUgdGFyZ2V0LiBXZSB1c2UgYSBzaW1wbGUgZmxhZyB0byBub3QgZG8KCSAgdGhpcyBhbmQgY2F1c2UgZGVhZGxvY2tzIHdoZW4gdGhlIHRhcmdldCB3YXMgY2hhbmdlZCBleHBsaWNpdGx5IHVzaW5nIHRoZQoJICBnaG9zdHBhZCBmdW5jdGlvbnMuCgkgIFVwZGF0ZSB0aGUgdW5pdCB0ZXN0IGJlY2F1c2Ugd2Ugbm93IHVucmVmIHRoZSB0YXJnZXQgc29vbmVyIChhbmQgY29ycmVjdGx5KS4KCjIwMDktMDItMTUgMTY6Mzc6MTcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBkb2NzOiBmb3JtYXQgYW5kIGluZGVudCBleGFtcGxlcy4KCjIwMDktMDItMDkgMjI6NDk6MDUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBhZGQgLXEvLS1xdWlldCBvcHRpb24gdG8gc3VwcmVzcyBhbnkgbm9uIGVycm9yIG91dHB1dC4KCSAgSGF2aW5nIG5vIG91dHB1dCBpcyBuaWNlIGZvciBzY3JpcHRpbmcuIEFsc28gdXBkYXRlIHRoZSBtYW5wYWdlLgoKMjAwOS0wMi0xNCAxMzozNTo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9jdnMueG1sOgoJKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSogZG9jcy9mYXEvZmFxLnhtbDoKCSogZG9jcy9mYXEvZ2V0dGluZy54bWw6CgkqIGRvY3MvZmFxL2dpdC54bWw6CgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSogZG9jcy9mYXEvc3RhcnQueG1sOgoJKiBkb2NzL2ZhcS90cm91Ymxlc2hvb3RpbmcueG1sOgoJKiBkb2NzL2ZhcS91c2luZy54bWw6CgkgIEZBUTogdXBkYXRlIGZvciBnaXQgYW5kIG1pc2NlbGxhbmVvdXMgc21hbGwgZml4ZXMgYW5kIGFkZGl0aW9ucwoJICBSZXBsYWNlIGFsbCBtZW50aW9ucyBvZiBDVlMgd2l0aCBnaXQuIEFkZCBsaW5rIHRvIGdzdC11bmluc3RhbGxlZCBzY3JpcHQgaW4gY2dpdCBhbmQgdG8gU3VibWl0dGluZ1BhdGNoZXMgcGFnZSBpbiB3aWtpLiBGaXggc29tZSB0eXBvcy4gVXBkYXRlIGluZGVudGluZyBydWxlcyB0byB3aGF0IHdlIGFjdHVhbGx5IHVzZSAoIzU3MTY0NikuCgoyMDA5LTAyLTEzIDE2OjE3OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlICoucG8gZmlsZXMgZm9yIG5ld2x5LWFkZGVkIHRyYW5zbGF0YWJsZSBzdHJpbmdzCgkgIFRoZSBvbmx5IHBlb3BsZSB3aG8gc2hvdWxkIGdldCBjb25mbGljdHMgbm93IGFyZSBwZW9wbGUgd2hvIGhhdmUgY2xvbmVkIGFuZCBidWlsdCBnc3RyZWFtZXIgYmV0d2VlbiB0aGUgdGltZSB0aG9zZSBzdHJpbmdzCgkgIHdlcmUgYWRkZWQgYW5kIHRoaXMgY29tbWl0LgoKMjAwOS0wMi0xMiAxMDozODowNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBBUEk6IEFkZCBIT01FUEFHRSB0YWcKCSAgVGhpcyB0YWcgd2lsbCBsaXN0IGEgaG9tZXBhZ2UgZm9yIHRoZSBtZWRpYSwKCSAgaS5lLiB0aGUgYXJ0aXN0J3Mgb3IgbW92aWUncyBob21lcGFnZS4KCSAgVGhpcyBpcyBkaWZmZXJlbnQgdG8gR1NUX1RBR19MT0NBVElPTiBhcyB0aGUgbGF0dGVyCgkgIGxpc3RzIHRoZSBvcmlnaW5hbCBsb2NhdGlvbiBvZiB0aGUgbWVkaWEuCgkgIEZpeGVzIGJ1ZyAjNTcxMjI3LgoKMjAwOS0wMi0wOSAxMjowMDo0MyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQnVtcCByZXZpc2lvbiB0byB1c2UgZm9yIGNvbW1vbiBzdWJtb2R1bGUuCgoyMDA5LTAyLTA4IDEwOjI4OjE2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSAgUmVwbGFjZSBzb21lIG1lbnRpb25zIG9mIENWUyBieSBHSVQKCjIwMDktMDItMDYgMTA6NTE6MjggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnkgcmVnaXN0cnk6IFJld3JpdGUgc2FuaXR5IGNoZWNrIHRvIGFjdHVhbHkgY2F0Y2ggc29tZXRoaW5nLgoJICBUaGUgcHJldmlvdXMgY29tbWl0IHdhcyBib2d1cywgYXMgd2FzIHRoZSBjaGVjayBiZWZvcmUuIFdlIGp1c3QgcG9pbnQgbSB0byB0aGUgZmlsZSBkYXRhLAoJICBzbyBuZWl0aGVyIGl0IG5vciBpdHMgbWVtYmVycyB3aWxsIGJlIE5VTEwuIEJldHRlciBjaGVjayBpZiB3ZSBoYXZlIGVub3VnaCBkYXRhLgoKMjAwOS0wMi0wNSAyMzoxMTowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9NYWtldmFyczoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiBhdm9pZCBjb25mbGljdHMgb2YgbG9jYWwgKi5wbyBmaWxlcyB3aXRoIGZpbGVzIGluIGdpdAoJICBNYWtlIGl0IHNvIHRoYXQgZmlsZW5hbWVzIGFuZCBsaW5lIG51bWJlcnMgYXJlIG9ubHkgc3RvcmVkIGluIHRoZSAqLnBvdCBmaWxlICh3aGljaCBpcyBub3QgaW4gZ2l0KSwgYnV0IG5vdCBpbiB0aGUKCSAgaW5kaXZpZHVhbCAqLnBvIGZpbGVzLiBUaGlzIGluZm9ybWF0aW9uIGlzIGhhcmRseSB1c2VmdWwgZm9yIHRyYW5zbGF0b3JzIGluIG91ciBjYXNlLCBhbmQgaXQgc2hvdWxkIGF2b2lkIHRoZSBjb25zdGFudAoJICBjb25mbGljdHMgb2YgbG9jYWwgKi5wbyBmaWxlcyB3aXRoIHRoZSBvbmVzIGluIGdpdCB3aGljaCBhcmUgY2F1c2VkIGJ5IHRoZSBzb3VyY2UgZmlsZXMgY2hhbmdpbmcgYW5kIHRoZSBsaW5lIG51bWJlcnMKCSAgYmVpbmcgdXBkYXRlZC4KCSAgVGhpcyBjb21taXQgaXMgbGlrZWx5IHRvIGNhdXNlIG9uZSBsYXN0IG1lcmdlIGNvbmZsaWN0IGZvciB5b3UsIHdoaWNoIHlvdSBjYW4gd29yayBhcm91bmQgd2l0aCAiZ2l0IGNoZWNrb3V0IHBvLyoucG8iCgkgIGJlZm9yZSBtZXJnaW5nIG9yIHB1bGxpbmcuIEFmdGVyIHRoYXQgdGhlcmUgc2hvdWxkIChob3BlZnVsbHkpIG5vdCBiZSBhbnkgbW9yZSBsb2NhbCBtb2RpZmljYXRpb25zIG9mIHRoZXNlIGZpbGVzLgoKMjAwOS0wMi0wNSAxNToyMjo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgR3N0UG9sbCBBUEkgdG8gbGliZ3N0cmVhbWVyLmRlZgoKMjAwOS0wMi0wNSAxNzoyMzo0NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGNsZWFudXA6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGVzIGluIF9jbGFzc19pbml0KCkgYW5kIHJlaW5kZW50LgoKMjAwOS0wMi0wNSAxNzowNTo1NiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IHJlbW92ZSB1bnVzZWQgc2V0L2dldCBwcm9wZXJ0eSBmdW5jdGlvbnMKCjIwMDktMDItMDUgMTU6NTY6MTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnkgcmVnaXN0cnk6IGNvbXBhcmluZyBhcnJheXMgYWdhaW5zdCBOVUxMIGlzIHVzZWxlc3MKCjIwMDktMDItMDUgMTM6NTk6NDggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHJlbW92ZSB1bnVzZWQgY29kZQoJICBTa2lwIGxvb3BpbmcgdGhydSBhIGR1bW15IGltcGxlbWVudGF0aW9uLgoKMjAwOS0wMi0wNSAxMzo1NzowNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHRlc3RzOiBHc3RDbG9ja1RpbWUgaXMgYWx3YXlzID49IDAKCjIwMDktMDItMDUgMTM6NDI6MzAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMDktMDItMDQgMTc6MjA6MjEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBjbGVhbnVwOiBFaXRoZXIgY2hlY2sgYWx3YXlzIGZvciBpbnRlcm5hbCBiZWluZyBOVUxMIG9yIGRvbid0LgoJICBJTUhPIHRoZSBnaG9zdHBhZCBpcyBib3JrZWQgaWYgaW50ZXJuYWwgaXMgTlVMTC4gU28gdGhlIGNoZWNrIGNhbiBnbyBhbmQgaXQgaXMKCSAgdXNlZCBsYXRlciB1bmNoZWNrZWQgYW55d2F5LgoKMjAwOS0wMi0wNCAxNjoyNjoyMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgY3Jhc2g6IERvbid0IGNyYXNoIG9uIG5vbiBleGlzdGVudCB0YWdzLgoKMjAwOS0wMi0wNCAxNjoxNzozNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGxlYWs6IERvbid0IGxlYWsgdHlwZSBuYW1lIGluIGZhaWx1cmUgY2FzZXMuCgoyMDA5LTAyLTA0IDE2OjA3OjMwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogRG9uJ3QgYXNzdW1lIGdzdF9wYWRfZ2V0X3BlZXIgcmV0dXJucyBub24gTlVMTCB2YWx1ZS4KCjIwMDktMDItMDQgMTU6NDE6MjQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBsZWFrOiBkb24ndCByZXR1cm4gd2l0aG91dCBjYWxsaW5nIHZhX2VuZAoKMjAwOS0wMi0wMyAxODowNDo0NiArMDEwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnQGF4aXMuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSAgSW1wbGVtZW50IHRoZSBzeXN0ZW1jbG9jayB3aXRoIGdzdHBvbGwKCSAgQWRkIGEgcHJvcGVydHkgdG8gc2VsZWN0IHRoZSBjbG9jayB0eXBlLCBjdXJyZW50bHkgUkVBTFRJTUUgYW5kIE1PTk9UT05JQyB3aGVuCgkgIHBvc2l4IHRpbWVycyBhcmUgYXZhaWxhYmxlLgoJICBJbXBsZW1lbnQgdGhlIHN5c3RlbWNsb2NrIHdpdGggR3N0UG9sbCBpbnN0ZWFkIG9mIEdDb25kLiBUaGlzIGFsbG93cyB1cyB0bwoJICBzY2hlZHVsZSB0aW1lb3V0cyB3aXRoIG5hbm9zZWNvbmQgcHJlY2lzc2lvbiBvbiBuZXdlciBrZXJuZWxzIGFuZCB3aXRoIHBwb2xsCgkgIHN1cHBvcnQuIEl0J3MgYWxzbyByZXNpbGllbnQgdG8gY2hhbmdlcyB0byB0aGUgc3lzdGVtY2xvY2sgYmVjYXVzZSBvZiBOVFAgb3IKCSAgc2ltaWxhci4KCjIwMDktMDItMDMgMTc6NDk6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0cG9sbC5oOgoJICBHc3RQb2xsOiBhZGQgbWV0aG9kcyB0byB1c2UgZ3N0cG9sbCBmb3IgdGltZW91dHMKCSAgQWRkIGEgc3BlY2lhbCB0aW1lciBtb2RlIGluIEdzdFBvbGwgdGhhdCBtYWtlcyBpdCBvbmx5IHVzZSB0aGUgY29udHJvbCBzb2NrZXQKCSAgd2l0aCBhIHRpbWVvdXQgdG8gc2NoZWR1bGUgdGltZW91dHMuIEFsc28gYWRkIGEgcGFpciBvZiBtZXRob2RzIHRvIHdha2V1cCB0aGUKCSAgdGltZW91dCB0aHJlYWQuCgkgIEFQSTogR3N0UG9sbDo6Z3N0X3BvbGxfbmV3X3RpbWVyKCkKCSAgQVBJOiBHc3RQb2xsOjpnc3RfcG9sbF93cml0ZV9jb250cm9sKCkKCSAgQVBJOiBHc3RQb2xsOjpnc3RfcG9sbF9yZWFkX2NvbnRyb2woKQoKMjAwOS0wMi0wMyAxNToyNzozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgR3N0QmFzZVNpbms6IHVzZSBuZXcgdmFyaWFibGUgdG8gc2NoZWR1bGUgcHJlcm9sbAoJICBVc2UgYSBzZXBhcmF0ZSB2YXJpYWJsZSB0byBrZWVwIHRyYWNrIGlmIHdlIG5lZWQgdG8gY2FsbCB0aGUgcHJlcm9sbCBtZXRob2QKCSAgaW5zdGVhZCBvZiBhYnVzaW5nIHRoZSBjb21taXRlZCB2YXJpYWJsZS4KCjIwMDktMDItMDMgMTI6NTI6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkgIEdzdEJhc2VTaW5rOiBhdm9pZCBjYWxsaW5nIHByZXJvbGwgbXVsdGlwbGUgdGltZXMKCSAgRml4IGEgcmVncmVzc2lvbiBpbnRyb2R1Y2VkIGJ5IGZpeCBmb3IgIzU2NzcyNSBpbiBjb21taXQKCSAgMWM3YWI0ZWQ0ZjE5YjYzYmEwNDZhNmYyZmU3ZDA5YTZjMTczNTdjNS4gV2Ugc2hvdWxkIG9ubHkgY2FsbCB0aGUgcHJlcm9sbAoJICBmdW5jdGlvbiBvbmNlIG5hbWVseSB3aGVuIHdlIGRpZCBub3QgeWV0IGNvbW1pdCB0aGUgc3RhdGUgY2hhbmdlLgoJICBBZGQgYSB1bml0IHRlc3QgdG8gY2hlY2sgdGhhdCB3ZSBjYWxsIHRoZSBwcmVyb2xsIGZ1bmN0aW9uIHdoZW4gaW50ZXJydXB0aW5nIHRoZQoJICBjbG9ja193YWl0IChzZWUgIzU2NzcyNSkuCgkgIEFkZCBhIHVuaXQgdGVzdCB0byBjaGVjayB0aGF0IHdlIG9ubHkgY2FsbCB0aGUgcHJlcm9sbCBmdW5jdGlvbiBvbmNlLgoKMjAwOS0wMS0yOSAxMzozMDo0NSArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBGb3JjZSByZWNvbmZpZ3VyZSBvZiBiYXNldHJhbnNmb3JtIHRvIHJlY2hlY2sgYWxsb2MgcmVxdWVzdAoJICBXaGlsZSByZWNvbmZpZ3VyaW5nIGEgYmFzZXRyYW5zZm9ybSBlbGVtZW50IHdlIG5lZWQgYWxzbyB0byByZWNoZWNrCgkgIHRoZSBhbGxvYyByZXF1ZXN0LiBCZWNhdXNlIGl0J3MgcG9zc2libGUgdGhhdCBkdWUgdG8gY2FwcyBjaGFuZ2VzCgkgIHRoZSBwcm94eV9hbGxvYyBzdGF0ZSBpcyBub3QgY29ycmVjdCBhbnltb3JlLgoJICAoUmUtY29tbWl0IGFmdGVyIGRpc2N1c2lvbiB3aXRoIFdpbSBvbiBJUkMpCgoyMDA5LTAyLTAyIDE0OjE5OjU3ICswMTAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBnc3RyZWdpc3RyeWJpbmFyeTogTWFrZSBpdCBjb21waWxlIHdpdGggR1NUX0RJU0FCTEVfR1NUX0RFQlVHLgoKMjAwOS0wMS0zMSAyMTozNDoyOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZG9jcy8uZ2l0aWdub3JlOgoJKiBkb2NzL2xpYnMvdG1wbC8uZ2l0aWdub3JlOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC8uZ2l0aWdub3JlOgoJICByZXBvOiBSZWFycmFuZ2UgZ2l0aWdub3JlcyBpbiBkb2NzIHN1YmRpcgoJICB0bXBsIGRpcmVjdG9yaWVzIGFyZSByZW1vdmVkIGJ5IG1ha2UgY2xlYW4sIHdoaWNoIGRlbGV0ZXMgdGhlCgkgIC5naXRpZ25vcmUuIFVzZSBhIC5naXRpZ25vcmUgaGlnaGVyIHVwIHRvIGlnbm9yZSB0aGUgdG1wbCBkaXJzIGluc3RlYWQuCgoyMDA5LTAxLTMxIDIxOjMyOjM2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc3RyZXNzLmM6CgkgIGNoZWNrOiBGaXggY29tbWVudCBhYm91dCB0aGUgdGltZW91dCBmb3IgZ2VuZXJpYyBzdHJlc3MgdGVzdC4KCSAgU2V0dGluZyB0aGUgdGltZW91dCB0byAwIG1ha2VzIGl0IGluZmluaXRlLCBzbyBmaXggdGhlIGNvbW1lbnQKCSAgYWJvdmUgYWNjb3JkaW5nbHkuCgoyMDA5LTAxLTMxIDIxOjMxOjQ4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSAgY2hlY2s6IEluY3JlYXNlIHRpbWVvdXQgZm9yIHRoZSB0ZWUgdGVzdAoJICBUaGUgdGVlIHN0cmVzcyB0ZXN0IGtlZXBzIHRpbWluZyBvdXQgZm9yIG1lIG9uIG9uZSBvZiB0aGUgc2xvd2VyCgkgIG1hY2hpbmVzLCBzbyBpbmNyZWFzZSB0aGUgdGltZW91dCB0byAzIG1pbnMuCgoyMDA5LTAxLTMwIDE0OjU2OjA4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIFVwZGF0ZSB0aGUgd2luMzIgY29uZmlnLmguaW4gdGVtcGxhdGUgZnJvbSB0aGUgbWFpbiBjb25maWcuaC5pbgoKMjAwOS0wMS0zMCAyMjoxODoxNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgQWRkIHJlbGVhc2VpbmZvIHdpdGggb25saW5lIHVybC4KCjIwMDktMDEtMzAgMTg6MTc6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGludGVyZmFjZS5oOgoJKiBnc3QvZ3N0dXJpLmg6CgkgIFJlbW92ZSBicm9rZW4gY2xhc3MgdG8gaW50ZXJmYWNlIGNhc3QgbWFjcm9zIGZyb20gR3N0VXJpSGFuZGxlciBhbmQgR3N0SW1wbGVtZW50c0ludGVyZmFjZSBoZWFkZXJzCgkgIFJlbW92ZSBjbGFzcy10by1pbnRlcmZhY2Utc3RydWN0IGNhc3QgbWFjcm9zIHdoaWNoIGRvbid0IHdvcmssCgkgIGRvbid0IG1ha2Ugc2Vuc2UsIGFuZCBpbiBzb21lIGNhc2VzIHdvdWxkbid0IGV2ZW4gY29tcGlsZSBpZgoJICB1c2VkLiBSZW1vdmFsIHNob3VsZCBiZSBvayBzZWVpbmcgdGhhdCBjb2RlIHdoaWNoIHVzZXMgYW55IG9mCgkgIHRoZXNlIGlzIGJyb2tlbiBhbmQgYm91bmQgdG8gY3Jhc2guIEZpeGVzICM1NjU2MDcuCgkgIEFQSTogcmVtb3ZlIEdTVF9JTVBMRU1FTlRTX0lOVEVSRkFDRV9DTEFTUwoJICBBUEk6IHJlbW92ZSBHU1RfSVNfSU1QTEVNRU5UU19JTlRFUkZBQ0VfQ0xBU1MKCSAgQVBJOiByZW1vdmUgR1NUX1VSSV9IQU5ETEVSX0NMQVNTCgoyMDA5LTAxLTMwIDE2OjI4OjE0ICswMDAwICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCgkqIGRvY3MvZ3N0L3RtcGwvLmdpdGlnbm9yZToKCSAgUmVtb3ZlIGdpdGlnbm9yZSBpbiBkb2NzL2dzdC90bXBsLgoJICBUaGlzIGdpdGlnbm9yZSBmaWxlIHNlZW1zIHRvIGdldCBkZWxldGVkIGJ5IHRoZSBidWlsZCwgYW5kIGRvZXNuJ3QKCSAgc2VlbSB0byBiZSBkb2luZyBhbnl0aGluZyB1c2VmdWwgYW55d2F5LgoKMjAwOS0wMS0zMCAxNjoyMTo1NSArMDAwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBjb21tb246CgkgIEJ1bXAgY29tbW9uCgoyMDA5LTAxLTMwIDE0OjU5OjA3ICswMDAwICBKYW4gU2NobWlkdCAtIFN1biBNaWNyb3N5c3RlbXMgLSBEdWJsaW4gSXJlbGFuZCA8anMyMTI0MTlAZmxhaWwuKG5vbmUpPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIEZpeCBjb21waWxhdGlvbiB3YXJuaW5nIHdpdGggRm9ydGUuCgoyMDA5LTAxLTMwIDEwOjQzOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIFJldmVydCAiQ2hlY2sgc3VnZ2VzdGVkIGNhcHMgZm9yIHByb3h5IGFsbG9jIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDUwYWZkNDU5NTc5MTkxNzcyZjQyZDFhNDRmMzk1OWU1MzBjNWMyNjkuCgkgIEl0IGJyZWFrcyB0aGUgaW50ZXJhY3RpdmUgdGVzdC1zY2FsZSB1bml0IHRlc3QuCgoyMDA5LTAxLTMwIDEwOjQyOjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIFJldmVydCAiRm9yY2UgcmVjb25maWd1cmUgb2YgYmFzZXRyYW5zZm9ybSB0byByZWNoZWNrIGFsbG9jIHJlcXVlc3QiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgM2E0NjAyZDc3MTlkZTNjM2VmN2FlY2U2OGI1Zjk0ODlkMDc4MDE2Mi4KCSAgSXQgYnJlYWtzIHRoZSBpbnRlcmFjdGl2ZSB0ZXN0LXNjYWxlIHVuaXQgdGVzdC4KCjIwMDktMDEtMzAgMTA6Mjk6NTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIEFsbG9jYXRlIGV2ZXJ5dGhpbmcgdGhhdCBpcyB3cml0dGVuIHRvIHRoZSByZWdpc3RyeSB3aXRoIGdfbWFsbG9jMCgpCgkgIEFsbG9jYXRlIGV2ZXJ5IHN0cnVjdHVyZSB0aGF0IGlzIGRpcmVjdGx5IHdyaXR0ZW4gdG8gdGhlIGJpbmFyeQoJICByZWdpc3RyeSB3aXRoIGdfbWFsbG9jMCgpLiBPdGhlcndpc2Ugc29tZSBwYXJ0cyBvZiBpdCB3aWxsIGJlCgkgIHVuaW5pdGlhbGl6ZWQgKHN0cnVjdCBwYWRkaW5nIGJlY2F1c2Ugb2YgYWxpZ25tZW50LCBldGMpIGFuZAoJICB2YWxncmluZCB3aWxsIGNvbXBsYWluIGFib3V0IGl0LgoKMjAwOS0wMS0zMCAwODozMDoyOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgVXNlIGEgc3ltYm9saWMgbGluayBmb3IgdGhlIHByZS1jb21taXQgY2xpZW50LXNpZGUgaG9vawoKMjAwOS0wMS0yOSAxNTo0OToyNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIE1ha2Ugc3VyZSB0byB0YWtlIGEgY29weSBvZiB0aGUgc3RyaW5ncyB3ZSdyZSBnb2luZyB0byBmcmVlIGxhdGVyLgoKMjAwOS0wMS0yNiAxNzoxNToxNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBBZGQgbG9nZ2luZyBpbiBmYWlsdXJlIGNhc2UuIEFkZCBtb3JlIGRldGFpbHMgdG8gYSB0b2RvIGNvbW1lbnQuCgoyMDA5LTAxLTI2IDE3OjE0OjA3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2luaXQuYzoKCSAgQWRkIGEgdHJpdmlhbCBzb3VyY2UgZm9yIHRyYWNraW5nIGdzdF9pbml0IHRpbWUgYWNjcm9zcyB2ZXJzaW9ucy4KCjIwMDktMDEtMjYgMTc6MTM6MDkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBBZGQgdG9kbyBjb21tZW50cy4KCjIwMDktMDEtMjkgMTM6Mzk6MjkgKzAxMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgQ2hlY2sgc3VnZ2VzdGVkIGNhcHMgZm9yIHByb3h5IGFsbG9jCgkgIEJlY2F1c2Ugd2UgYXJlIHRyeWluZyB0byByZXNvbHZlIGEgc3VnZ2VzdGlvbiBoZXJlIHdlIGRvbid0IG5lZWQKCSAgdG8gY2hlY2sgb24gY2FwcyBmb3IgcHJveHlfYWxsb2MgYnV0IHdlIG5lZWQgdG8gY2hlY2sgb24gdGhlIHN1Z2dlc3RlZAoJICBjYXBzIGluc3RlYWQuCgoyMDA5LTAxLTI5IDEzOjMwOjQ1ICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIEZvcmNlIHJlY29uZmlndXJlIG9mIGJhc2V0cmFuc2Zvcm0gdG8gcmVjaGVjayBhbGxvYyByZXF1ZXN0CgkgIFdoaWxlIHJlY29uZmlndXJpbmcgYSBiYXNldHJhbnNmb3JtIGVsZW1lbnQgd2UgbmVlZCBhbHNvIHRvIHJlY2hlY2sKCSAgdGhlIGFsbG9jIHJlcXVlc3QuIEJlY2F1c2UgaXQncyBwb3NzaWJsZSB0aGF0IGR1ZSB0byBjYXBzIGNoYW5nZXMKCSAgdGhlIHByb3h5X2FsbG9jIHN0YXRlIGlzIG5vdCBjb3JyZWN0IGFueW1vcmUuCgoyMDA5LTAxLTI3IDIzOjE0OjQ5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgSW1wcm92ZSB0aGUgZG9jcyBmb3IgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmMoKS4KCSAgSXRzIG1lbnRpb25lZCBpbiB0aGUgc2VjdGlvbiBkb2NzLCBidXQgbGV0cyByZXBlYXQgYXQgdGhlIGZ1bmN0aW9uIGRvY3MgdGhhdCB0aGUgY2FsbGJhY2sgY2FuIGJlIGludm9rZWQgZnJvbSBhbnkgdGhyZWFkLgoKMjAwOS0wMS0yNyAxNzo1MzowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBkb2NzOiBkb24ndCB1c2UgRVJST1JfQ0ZMQUdTIHdoZW4gYnVpbGRpbmcgJGRvY21vZHVsZS1zY2FuLmMKCSAgV2UgZG9uJ3Qgd2FudCB0byB1c2UgLVdhbGwgLVdlcnJvciBhbmQgZnJpZW5kcyB3aGVuIGJ1aWxkaW5nIHRoZSBndGstZG9jLWdlbmVyYXRlZAoJICAkZG9jbW9kdWxlLXNjYW4uYywgc2luY2Ugd2UgY2FuJ3QgZWFzaWx5IGZpeCBzdHVmZiBpZiBhIGNlcnRhaW4gZ3RrLWRvYy9jb21waWxlcgoJICBjb21iaW5hdGlvbiBicmVha3MgdGhlIGJ1aWxkLiBGaXhlcyBidWlsZCBvbiB1YnVudHUgaW50cmVwaWQuCgoyMDA5LTAxLTI3IDE3OjUyOjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIC5naXRpZ25vcmU6CgkgIE1ha2UgZ2l0IGlnbm9yZSBiYWNrdXAgZmlsZXMuCgoyMDA5LTAxLTI2IDIxOjI5OjAyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICBEb24ndCBjaGVjayB0aW1lc3RhbXAgaGVyZSwgaXRzIGRvbmUgaW4gdGhlIGNhbGxlZCBmdW5jdGlvbiBhbnl3YXkuCgoyMDA5LTAxLTI2IDEyOjUyOjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgQXZvaWQgdW5uZWVkZWQgcmVhZHMgZnJvbSB0aGUgY29udHJvbCBzb2NrZXQKCSAgQWRkIGEgbmV3IHZhcmlhYmxlIHRoYXQga2VlcHMgdHJhY2sgb2YgdGhlIHN0YXR1cyBvZiB0aGUgY29udHJvbCBzb2NrZXQuIFRoaXMKCSAgYWxsb3dzIHVzIHRvIGF2b2lkIGRvaW5nIGEgcmVhZCgpIG9uIHRoZSBjb250cm9sIHNvY2tldCB3aGVuIHdlIGRpZCBub3Qgd3JpdGUKCSAgYW55dGhpbmcgdG8gaXQuCgkgIEZpeGVzICM1Njg0MzguCgoyMDA5LTAxLTI1IDIyOjE3OjMxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgQWRkIG1vcmUgZGVidWcgbG9nZ2luZyBmb3IgZmFpbHVyZSBjYXNlcy4KCjIwMDktMDEtMjUgMjI6MTE6MzIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgRG9jdW1lbnQgdGhhdCBHU1RfUExVR0lOX0RFRklORSBtYWNyb3MgdXNlIFBBQ0tBR0UgZGVmaW5lLiBGaXhlcyAjNTU5NzIyLgoJICBQQUNLQUdFIGlzIGRlZmluZWQgYnkgYXV0b2Zvby4gSWYgcGVvcGxlIHVzZSBzb21ldGhpbmcgZGlmZmVyZW50LCB0aGV5IG1pZ2h0IHdhbnQgdG8gZGVmaW5lIGl0IHRoZW1zZWxmLgoKMjAwOS0wMS0yNSAxNzo1ODo1MiArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBGaXggdHlwbwoKMjAwOS0wMS0yNCAyMTo1MDowOCArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIE9ubHkgZnJlZSBsaXN0IG9mIGJ1ZmZlcnMgb25jZQoKMjAwOS0wMS0yNCAxNDozNzoxNCArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGRvY3MvUkVBRE1FOgoJICBGaXggdHlwbwoKMjAwOS0wMS0yMyAyMzowODowMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcG8vLmdpdGlnbm9yZToKCSAgSWdub3JlIGFub3RoZXIgZmlsZQoKMjAwOS0wMS0yMyAyMTo0NDoxMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZGQgZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2V4dGVuc2lvbiB0byB0aGUgd2luMzIgZGVmcyBmaWxlCgoyMDA5LTAxLTIzIDE2OjA5OjM1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFVwZGF0ZSB3aW4zMiBjb25maWcuaCBmb3IgMC4xMC4yMi4xIGRldiBjeWNsZS4uLgoKMjAwOS0wMS0yMyAxNjowODowOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogLmdpdGlnbm9yZToKCSogZG9jcy9nc3QvLmdpdGlnbm9yZToKCSogZG9jcy9saWJzLy5naXRpZ25vcmU6CgkqIGRvY3MvbGlicy90bXBsLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2Jhc2UvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY2hlY2svLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvbmV0Ly5naXRpZ25vcmU6CgkqIHBsdWdpbnMvaW5kZXhlcnMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICBVcGRhdGUgYSBidW5jaCBvZiBnaXRpZ25vcmVzIHRvIGNsZWFuIHVwIG15IGdpdCBzdGF0dXMgb3V0cHV0CgoyMDA5LTAxLTIzIDA5OjU0OjUzICswMTAwICBCcmlhbiBDYW1lcm9uIDxicmlhbi5jYW1lcm9uQHN1bi5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgRml4IGxpbmtpbmcgZmFpbHVyZXMgb24gU29sYXJpcy4gRml4ZXMgYnVnICM1Njg0ODEuCgkgIExpbmsgbGliZ3N0cmVhbWVyIHdpdGggJChMSUJNKSBhcyBpdCB1c2VzIG1hdGggZnVuY3Rpb25zLgoJICBBZGQgYSBjb25maWd1cmUgY2hlY2sgZm9yIHNvY2tldCBhbmQgbnNsIGxpYnJhcnkgYW5kIGFkZAoJICB0aGVtIHRvIExJQlMgaWYgdGhleSdyZSBmb3VuZC4gVGhpcyBpcyBuZWVkZWQgb24gU29sYXJpcwoJICBmb3Igc29ja2V0KCkgYW5kIGdldGhvc3RieW5hbWUoKS4KCjIwMDktMDEtMjIgMTg6MDI6MTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgVXBkYXRlIGNvbW1vbiBzbmFwc2hvdC4KCjIwMDktMDEtMjIgMTM6NTg6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBJbXByb3ZlIGRlYnVnIG91dHB1dCBieSBsb2dnaW5nIHRoZSBvZmZzZXRzLiBGaXhlcyBidWcgIzU2ODY3OC4KCSAgSW4gY3JlYXRlKCkgYWxzbyBsb2cgdGhlIG9mZnNldHMgYW5kIG5vdCBvbmx5IHRoZQoJICBidWZmZXIgc2l6ZS4KCjIwMDktMDEtMjIgMTM6NTE6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGNvbW1vbjoKCSAgRml4IHByZS1jb21taXQgaG9vawoKMjAwOS0wMS0yMiAxMjo1Mjo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBvZiBzc2g6Ly9naXQuZnJlZWRlc2t0b3Aub3JnL2dpdC9nc3RyZWFtZXIvZ3N0cmVhbWVyCgoyMDA5LTAxLTIyIDExOjU0OjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkIERvYyBmb3IgbmV3IHR5cGVmaW5kIG1ldGhvZC4KCjIwMDktMDEtMjIgMTA6NDU6NTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudCAtPiAwLjEwLjIyLjEKCjIwMDktMDEtMjIgMTA6MTY6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3Rlcicgb2Ygc3NoOi8vZ2l0LmZyZWVkZXNrdG9wLm9yZy9naXQvZ3N0cmVhbWVyL2dzdHJlYW1lcgoKMjAwOS0wMS0yMiAwNTozNTowMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgSW5zdGFsbCBhbmQgdXNlIHByZS1jb21taXQgaW5kZW50YXRpb24gaG9vayBmcm9tIGNvbW1vbgoKMjAwOS0wMS0yMSAxMjo1MDoyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIElmIG5vIHR5cGUgd2FzIGZvdW5kIHVzaW5nIHRoZSB0eXBlZmluZCBmdW5jdGlvbnMsIHRyeSBkb2luZyBhbiB1cHN0cmVhbSBVUkkgcXVlcnkgdG8gZ3Vlc3MgdGhlIHR5cGUgZnJvbSB0aGUgZXh0ZW5zaW9uLiBTZWUgIzU2NjY2MS4KCjIwMDktMDEtMjEgMTI6NDg6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSAgQWRkIG5ldyB0eXBlZmluZyBoZWxwZXIgZnVuY3Rpb24gdG8gZ3Vlc3MgdGhlIGNhcHMgYmFzZWQgb24gdGhlIGZpbGUgZXh0ZW5zaW9uLiBTZWUgIzU2NjY2MS4gQVBJOiBnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfZXh0ZW5zaW9uKCkKCjIwMDktMDEtMjEgMTI6NDU6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJICBBbGxvdyBhZGRpbmcgYSB0eXBlZmluZGVyIHdpdGhvdXQgYSB0eXBlZmluZCBmdW5jdGlvbiBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIHRvIG1hcCB0aGUgY2FwcyB0byB0aGUgZXh0ZW5zaW9uLiBTZWUgIzU2NjY2MS4KCjIwMDktMDEtMjEgMTI6NDM6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIFVwZGF0ZSB0aGUgbGFzdF9idWZmZXIgZXhhY3RseSB3aXRoIHRoZSBidWZmZXIgdGhhdCBjYXVzZWQgdGhlIHByZXJvbGwgYW5kIGFsc28gY2FsbCB0aGUgcHJlcm9sbCBtZXRob2Qgd2l0aCB0aGF0IHByZXJvbGwgYnVmZmVyLiBGaXhlcyAjNTY3NzI1LgoKMjAwOS0wMS0yMSAxMjoyMTo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZG8gbm90IGNhbGwgdGhlIHVubGluayBmdW5jdGlvbiBvbiB0aGUgdGFyZ2V0IHBhZCB3aGVuIHRoZSBnaG9zdHBhZCBpcyB1bmxpbmtlZC4gQWRkIHNvbWUgdW5pdCB0ZXN0cyBmb3IgdGhpcyBiZWhhdmlvdXIuIEZpeGVzICM1NjY5MzYuCgoyMDA5LTAxLTIxIDA0OjI5OjI1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2dlbi5zaCA6IFVzZSBnaXQgc3VibW9kdWxlCgo9PT0gcmVsZWFzZSAwLjEwLjIyID09PQoKMjAwOS0wMS0xOSAyMjo1ODo1OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnNpZ25hbHM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHBvL0xJTkdVQVM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjIyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuMjIKCjIwMDktMDEtMTkgMjE6MjA6NDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDktMDEtMTcgMjE6MDQ6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IEZpeCBvcmRlciBvZiBtZW1iZXJzIGluIEdzdEJ1c1NvdXJjZSBzdHJ1Y3R1cmUgLSB0aGUgZmlyc3QgbWVtYmVyIG11c3QgYmUgdGhlIHBhcmVudCBzdHJ1Y3R1cmUgaWUuIEdTb3UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19zZXRfbWFpbl9jb250ZXh0KSwgKGdzdF9idXNfY3JlYXRlX3dhdGNoKToKCSAgRml4IG9yZGVyIG9mIG1lbWJlcnMgaW4gR3N0QnVzU291cmNlIHN0cnVjdHVyZSAtIHRoZSBmaXJzdCBtZW1iZXIKCSAgbXVzdCBiZSB0aGUgcGFyZW50IHN0cnVjdHVyZSBpZS4gR1NvdXJjZS4gU2hvdWxkIG1ha2UgYnVzIHNvdXJjZXMKCSAgYXR0YWNoZWQgdG8gbm9uLWRlZmF1bHQgbWFpbiBjb250ZXh0cyB3b3JrIGluIGFsbCBjYXNlcyBub3cgKGllLgoJICBwcmltYXJpbHkgaW4gY2FzZXMgd2hlcmUgdGhlIGNhbGxiYWNrIGhhcyBhIG5vbi1OVUxMIHVzZXIgZGF0YQoJICBhcmd1bWVudCkuIEZpeGVzICM1NjIxNzAuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOiAodGVzdF9jdXN0b21fbWFpbl9jb250ZXh0KToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhlIGFib3ZlLCBiYXNlZCBvbiBjb2RlIGJ5CgkgIEp1c3RpbiBLYXJuZWdlcyA8anVzdGluIGF0IGFmZmluaXggY29tPi4KCjIwMDktMDEtMTUgMTA6MDQ6MzcgKzAwMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZ0BheGlzLmNvbT4KCgkgIGdzdC9nc3RwYWQuaDogQSBzbWFsbCBkb2N1bWVudGF0aW9uIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKb25hcyBIb2xtYmVyZyA8am9uYXMgZG90IGhvbG1iZXJnIGF0IGF4aXMgZG90IGNvbT4KCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEEgc21hbGwgZG9jdW1lbnRhdGlvbiBmaXguCgoyMDA5LTAxLTExIDA5OjQ2OjUyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuaDogSW5pdGlhbGl6ZSBnX29uY2VfaW5pdCogZGF0YSB3aXRoIDAuIEZpeGVzIGJ1ZyAjNTY3MjI1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgSW5pdGlhbGl6ZSBnX29uY2VfaW5pdCogZGF0YSB3aXRoIDAuIEZpeGVzIGJ1ZyAjNTY3MjI1LgoKMjAwOS0wMS0wOSAyMzozNzoxOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IHByZS1yZWxlYXNlIDAuMTAuMjEuMwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIHByZS1yZWxlYXNlIDAuMTAuMjEuMwoKMjAwOS0wMS0wOSAxNTo0MzoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogRml4IGRvY3VtZW50YXRpb24gZm9yIHRoZSB3YWl0X2Nsb2NrIG1ldGhvZCwgcmVuYW1lIGJhc2VzaW5rIC0+IHNpbmsgZm9yIGNvbnNpc3RlbmN5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2spOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgRml4IGRvY3VtZW50YXRpb24gZm9yIHRoZSB3YWl0X2Nsb2NrIG1ldGhvZCwgcmVuYW1lIGJhc2VzaW5rIC0+IHNpbmsKCSAgZm9yIGNvbnNpc3RlbmN5LgoKMjAwOS0wMS0wOCAxMzo0MToxOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdC5jOiBDcmVhdGUgYSByZWdpc3RyeSBpZiB0aGVyZSBpcyBub25lIGFsc28gd2hlbiB0aGUgb3B0aW9uIGZvciBnc3QtZGlzYWJsZS1yZWdpc3RyeS11cGRhdGUgaGFzIGJlZW4gc2VsZWN0ZWQuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgQ3JlYXRlIGEgcmVnaXN0cnkgaWYgdGhlcmUgaXMgbm9uZSBhbHNvIHdoZW4gdGhlIG9wdGlvbiBmb3IKCSAgZ3N0LWRpc2FibGUtcmVnaXN0cnktdXBkYXRlIGhhcyBiZWVuIHNlbGVjdGVkLiBGaXhlcyAjNTY3MDAyCgoyMDA5LTAxLTA2IDE4OjEwOjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBSZWYgbmV3IGVudW0gdHlwZSBpbiBnc3RfaW5pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgUmVmIG5ldyBlbnVtIHR5cGUgaW4gZ3N0X2luaXQuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCByZWNlbnRseS1hZGRlZCBBUEkuCgoyMDA5LTAxLTA2IDE3OjU4OjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIEFQSSBmb3IgbWFraW5nIGEgR1N0cmVhbWVyIHBsdWdpbiAnZGVwZW5kZW50JyBvbiBleHRlcm5hbCBmaWxlcywgZGlyZWN0b3JpZXMgb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzLCBzbyB0aGF0IEdTLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6OgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOiAoR3N0UGx1Z2luRGVwKSwgKF9Hc3RQbHVnaW5Qcml2YXRlKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2luaXQpLCAoZ3N0X3BsdWdpbl9maW5hbGl6ZSksCgkgIChnc3RfcGx1Z2luX2NsYXNzX2luaXQpLCAoZ3N0X3BsdWdpbl9saXN0X2ZyZWUpLAoJICAoZ3N0X3BsdWdpbl9leHRfZGVwX2dldF9lbnZfdmFyc19oYXNoKSwKCSAgKF9wcml2X3BsdWdpbl9kZXBzX2Vudl92YXJzX2NoYW5nZWQpLAoJICAoZ3N0X3BsdWdpbl9leHRfZGVwX2V4dHJhY3RfZW52X3ZhcnNfcGF0aHMpLAoJICAoZ3N0X3BsdWdpbl9leHRfZGVwX2dldF9oYXNoX2Zyb21fc3RhdF9lbnRyeSksCgkgIChnc3RfcGx1Z2luX2V4dF9kZXBfZGlyZW50cnlfbWF0Y2hlcyksCgkgIChnc3RfcGx1Z2luX2V4dF9kZXBfc2Nhbl9kaXJfYW5kX21hdGNoX25hbWVzKSwKCSAgKGdzdF9wbHVnaW5fZXh0X2RlcF9zY2FuX3BhdGhfd2l0aF9maWxlbmFtZXMpLAoJICAoZ3N0X3BsdWdpbl9leHRfZGVwX2dldF9zdGF0X2hhc2gpLAoJICAoX3ByaXZfcGx1Z2luX2RlcHNfZmlsZXNfY2hhbmdlZCksIChnc3RfcGx1Z2luX2V4dF9kZXBfZnJlZSksCgkgIChnc3RfcGx1Z2luX2V4dF9kZXBfc3Rydl9lcXVhbCksIChnc3RfcGx1Z2luX2V4dF9kZXBfZXF1YWxzKSwKCSAgKGdzdF9wbHVnaW5fYWRkX2RlcGVuZGVuY3kpLCAoZ3N0X3BsdWdpbl9hZGRfZGVwZW5kZW5jeV9zaW1wbGUpOgoJICAqIGdzdC9nc3RwbHVnaW4uaDogKEdzdFBsdWdpblByaXZhdGUpLCAoR3N0UGx1Z2luRmxhZ3MpLAoJICAoR1NUX1BMVUdJTl9ERVBFTkRFTkNZX0ZMQUdfTk9ORSksCgkgIChHU1RfUExVR0lOX0RFUEVOREVOQ1lfRkxBR19SRUNVUlNFKSwKCSAgKEdTVF9QTFVHSU5fREVQRU5ERU5DWV9GTEFHX1BBVEhTX0FSRV9ERUZBVUxUX09OTFkpLAoJICAoR1NUX1BMVUdJTl9ERVBFTkRFTkNZX0ZMQUdfRklMRV9OQU1FX0lTX1NVRkZJWCksCgkgIChHc3RQbHVnaW5EZXBlbmRlbmN5RmxhZ3MpLCAoR3N0UGx1Z2luRmlsdGVyKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BsdWdpbl9kZXApLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luX2RlcF9zdHJ2KSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW5fZGVwKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOiAoR1NUX01BR0lDX0JJTkFSWV9WRVJTSU9OX1NUUiksCgkgIChHc3RCaW5hcnlQbHVnaW5FbGVtZW50KSwgKF9Hc3RCaW5hcnlEZXApLCAoR3N0QmluYXJ5RGVwKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGdzdF9yZWdpc3RyeV94bWxfc2F2ZV9wbHVnaW4pOgoJICBBZGQgQVBJIGZvciBtYWtpbmcgYSBHU3RyZWFtZXIgcGx1Z2luICdkZXBlbmRlbnQnIG9uIGV4dGVybmFsIGZpbGVzLAoJICBkaXJlY3RvcmllcyBvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIHNvIHRoYXQgR1N0cmVhbWVyIGtub3dzIHdoZW4KCSAgaXQgbmVlZHMgdG8gcmUtbG9hZCBHU3RyZWFtZXIgcGx1Z2lucyB0aGF0IHdyYXAgb3RoZXIgcGx1Z2luIHN5c3RlbXMuCgkgIEZpeGVzIGJ1ZyAjMzUwNDc3LgoJICBBUEk6IGFkZCBnc3RfcGx1Z2luX2FkZF9kZXBlbmRlbmN5KCkKCSAgQVBJOiBhZGQgZ3N0X3BsdWdpbl9hZGRfZGVwZW5kZW5jeV9zaW1wbGUoKQoKMjAwOS0wMS0wNiAxMzowMDoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogQWRkIGxpYmdzdGFwcC0wLjEwIGZyb20gLWJhc2UgdG8gc2VhcmNoIHBhdGggYW5kIHJlbW92ZSB0aGUgb2xkIGxpYiBmcm9tIC1iYWQgZnJvbSB0aGUgc2Vhci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIEFkZCBsaWJnc3RhcHAtMC4xMCBmcm9tIC1iYXNlIHRvIHNlYXJjaCBwYXRoIGFuZCByZW1vdmUgdGhlIG9sZAoJICBsaWIgZnJvbSAtYmFkIGZyb20gdGhlIHNlYXJjaCBwYXRoLgoKMjAwOS0wMS0wNSAxNTo0Mjo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmVsZWFzZSB0aGUgb2JqZWN0IGxvY2sgYmVmb3JlIGNhbGxpbmcgdGhlIHF1ZXJ5IGNvbnZlcnQgcGFkIGZ1bmN0aW9ucyB0byBhdm9pZCBkZWFkbG9ja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX2xhc3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fcGF1c2VkKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgUmVsZWFzZSB0aGUgb2JqZWN0IGxvY2sgYmVmb3JlIGNhbGxpbmcgdGhlIHF1ZXJ5IGNvbnZlcnQgcGFkIGZ1bmN0aW9ucwoJICB0byBhdm9pZCBkZWFkbG9ja3MuCgoyMDA5LTAxLTA1IDE1OjQxOjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBUaGUgbG9jayBvcmRlciBzaG91bGQgYmUgbWFpbmNvbnRleHQgPiBPQkpFQ1RfTE9DSyBzbyB3ZSBuZWVkIHRvIHJlbGVhc2UgdGhlIG9iamVjdCBsb2NrIHdoZW4gd2FraW5nIHVwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfd2FrZXVwX21haW5fY29udGV4dCk6CgkgIFRoZSBsb2NrIG9yZGVyIHNob3VsZCBiZSBtYWluY29udGV4dCA+IE9CSkVDVF9MT0NLIHNvIHdlIG5lZWQgdG8gcmVsZWFzZQoJICB0aGUgb2JqZWN0IGxvY2sgd2hlbiB3YWtpbmcgdXAgdGhlIG1haW5sb29wIHRvIGF2b2lkIGRlYWRsb2Nrcy4KCjIwMDktMDEtMDUgMTA6MTQ6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFVzZSBhbiBpdGVyYXRvciB0byBzZXQgdGhlIGNsb2NrIGFuZCB0aGUgaW5kZXggc28gdGhhdCB3ZSBjYW4gcmVsZWFzZSB0aGUgb2JqZWN0IGxvY2sgYXBwcm9wcmlhdGVseS4gRmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9zZXRfaW5kZXhfZnVuYyksIChnc3RfYmluX3NldF9jbG9ja19mdW5jKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICBVc2UgYW4gaXRlcmF0b3IgdG8gc2V0IHRoZSBjbG9jayBhbmQgdGhlIGluZGV4IHNvIHRoYXQgd2UgY2FuIHJlbGVhc2UKCSAgdGhlIG9iamVjdCBsb2NrIGFwcHJvcHJpYXRlbHkuIEZpeGVzICM1NjYzOTMuCgoyMDA5LTAxLTAzIDE4OjM5OjM4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBVc2UgdGhlIG5hbWUgb2YgdGhlIHBhZHMgaW5zdGVhZCBvZiBhIHBvaW50ZXIsIGhlbHBzIGluIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19hdmFpbGFibGUpOgoJICBVc2UgdGhlIG5hbWUgb2YgdGhlIHBhZHMgaW5zdGVhZCBvZiBhIHBvaW50ZXIsIGhlbHBzIGluIGRlYnVnZ2luZy4KCjIwMDktMDEtMDMgMTg6MTY6NTQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0aW5kZXguYzogQWRkIGEgZGVidWdnaW5nIGNhdGVnb3J5IGZvciBHc3RJbmRleCwgZmlyc3QgbGl0dGxlIHN0ZXAgaW4gbWFraW5nIGluZGV4aW5nIHRvcC1ub3RjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfZ2V0X3R5cGUpOgoJICBBZGQgYSBkZWJ1Z2dpbmcgY2F0ZWdvcnkgZm9yIEdzdEluZGV4LCBmaXJzdCBsaXR0bGUgc3RlcCBpbiBtYWtpbmcKCSAgaW5kZXhpbmcgdG9wLW5vdGNoLgoKMjAwOS0wMS0wMyAxODoxMDowOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC86IEFzc2lnbiBkZWJ1ZyBzdGF0ZW1lbnRzIHRvIHJlbGV2YW50IGNhdGVnb3JpZXMgaW5zdGVhZCBvZiB0aGUgJ2RlZmF1bHQnIGNhdGVnb3J5IHNvIHRoZXkgZG9uJ3QgZ2V0IGxvc3QgaW4gZGVidS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfbWVzc2FnZV9mdWxsKSwKCSAgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfZGlzcGF0Y2hfcHJvcGVydGllc19jaGFuZ2VkKToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYWRfcHJveHlfZ2V0Y2FwcyksIChnc3RfcGFkX3Byb3h5X3NldGNhcHMpLAoJICAoZ3N0X3BhZF9hZGRfZGF0YV9wcm9iZV9mdWxsKSwgKGdzdF9wYWRfYWRkX2V2ZW50X3Byb2JlX2Z1bGwpLAoJICAoZ3N0X3BhZF9hZGRfYnVmZmVyX3Byb2JlX2Z1bGwpLCAoZ3N0X3BhZF9yZW1vdmVfZGF0YV9wcm9iZSksCgkgIChnc3RfcGFkX3JlbW92ZV9ldmVudF9wcm9iZSksIChnc3RfcGFkX3JlbW92ZV9idWZmZXJfcHJvYmUpOgoJICBBc3NpZ24gZGVidWcgc3RhdGVtZW50cyB0byByZWxldmFudCBjYXRlZ29yaWVzIGluc3RlYWQgb2YgdGhlICdkZWZhdWx0JwoJICBjYXRlZ29yeSBzbyB0aGV5IGRvbid0IGdldCBsb3N0IGluIGRlYnVnZ2luZy4KCjIwMDktMDEtMDEgMjE6Mjc6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IEFkZCBzb21lIGlkZWFzLCBob3cgdG8gbWFrZSB0aGUgZ3JhcGggc21hbGxlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgQWRkIHNvbWUgaWRlYXMsIGhvdyB0byBtYWtlIHRoZSBncmFwaCBzbWFsbGVyLgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBBZGQgYSBjb21tZW50IGZyb20gYSBkZWJ1ZyBzZXNzaW9uLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBMb2cgbW9yZSBjb250ZXh0LgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgSW5kZXQuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIEZpeCB0eXBvIGluIGRvY3MuCgoyMDA4LTEyLTI3IDE3OjQxOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBNYWtlIEdzdEJ1c1NvdXJjZSB3b3JrIHdpdGggbm9uLWRlZmF1bHQgbWFpbiBjb250ZXh0cyAoIzU2MjE3MCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfZGlzcG9zZSksIChnc3RfYnVzX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYnVzX3dha2V1cF9tYWluX2NvbnRleHQpLCAoZ3N0X2J1c19zZXRfbWFpbl9jb250ZXh0KSwKCSAgKGdzdF9idXNfcG9zdCksIChnc3RfYnVzX3NvdXJjZV9wcmVwYXJlKSwgKGdzdF9idXNfc291cmNlX2ZpbmFsaXplKSwKCSAgKGdzdF9idXNfY3JlYXRlX3dhdGNoKToKCSAgTWFrZSBHc3RCdXNTb3VyY2Ugd29yayB3aXRoIG5vbi1kZWZhdWx0IG1haW4gY29udGV4dHMgKCM1NjIxNzApLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzogKG1lc3NhZ2VfZnVuY19lb3MpLCAobWVzc2FnZV9mdW5jX2FwcCksCgkgICh0ZXN0X3dhdGNoKSwgKHRlc3Rfd2F0Y2hfd2l0aF9jdXN0b21fY29udGV4dCksIChnc3RfYnVzX3N1aXRlKToKCSAgQWRkIHRlc3QgY2FzZSBmb3IgR3N0QnVzU291cmNlIHdpdGggYSBub24tZGVmYXVsdCBtYWluIGNvbnRleHQuCgkgICogdGVzdHMvY2hlY2svbGlicy8uY3ZzaWdub3JlOgoJICBJZ25vcmUgbW9yZS4KCjIwMDgtMTItMjcgMTY6MjM6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogV3JhcCBtdWx0aS1saW5lIG1hY3JvcyBpbiBHX1NUTVRfe1NUQVJUfEVORH0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAodW5wYWNrX2VsZW1lbnQpLCAodW5wYWNrX2NvbnN0X3N0cmluZyksCgkgICh1bnBhY2tfc3RyaW5nKTo6CgkgIFdyYXAgbXVsdGktbGluZSBtYWNyb3MgaW4gR19TVE1UX3tTVEFSVHxFTkR9LgoKMjAwOC0xMi0yMCAxNzozMzo0NCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQVBJOiBBZGQgVVJJIHF1ZXJ5IHR5cGUuIFRoaXMgaXMgdXNlZnVsIHRvIHF1ZXJ5IHRoZSBVUkkgb2YgYSBzaW5rL3NvdXJjZSBlbGVtZW50IGFuZCBjYW4gYmUgdXNlZCBieSBkZW11eGVycyB0aGF0IG5lLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHF1YXJrLmM6CgkgICogZ3N0L2dzdHF1YXJrLmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X3VyaSksIChnc3RfcXVlcnlfc2V0X3VyaSksCgkgIChnc3RfcXVlcnlfcGFyc2VfdXJpKToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQVBJOiBBZGQgVVJJIHF1ZXJ5IHR5cGUuIFRoaXMgaXMgdXNlZnVsIHRvIHF1ZXJ5IHRoZSBVUkkKCSAgb2YgYSBzaW5rL3NvdXJjZSBlbGVtZW50IGFuZCBjYW4gYmUgdXNlZCBieSBkZW11eGVycyB0aGF0CgkgIG5lZWQgdG8gZ2V0IGRhdGEgZnJvbSBvdGhlciBmaWxlcy4KCSAgVGhpcyBxdWVyeSBzaG91bGQgZ28gdXBzdHJlYW0gYnkgZGVmYXVsdC4KCSAgRml4ZXMgYnVnICM1NjI5NDkuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3F1ZXJ5KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZkX3NyY19xdWVyeSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19xdWVyeSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmlsZV9zcmNfcXVlcnkpOgoJICBJbXBsZW1lbnQgVVJJIHF1ZXJ5LgoKMjAwOC0xMi0xOSAxNToxMTowNiArMDAwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJICBEb24ndCBmb3J3YXJkIGdzdF9wYWRfc2V0X2NhcHMoKSBvbiBhIHNvdXJjZSBnaG9zdHBhZCB0byBpdHMgdGFyZ2V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgRG9uJ3QgZm9yd2FyZCBnc3RfcGFkX3NldF9jYXBzKCkgb24gYSBzb3VyY2UgZ2hvc3RwYWQgdG8gaXRzIHRhcmdldC4KCSAgVGhhdCB3b3VsZCBjYXVzZSB0aGUgZ2hvc3RwYWQgdG8gZW1pdCBub3RpZnk6OmNhcHMgdHdvIHRpbWVzIChmaXN0CgkgIGZyb20gZ3N0X3BhZF9zZXRfY2FwcygpIGFuZCBhZnRlciBmcm9tIG9uX3NyY190YXJnZXRfbm90aWZ5KCkpLgoKMjAwOC0xMi0xOSAxMToyNDozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiBBZGQgc29tZSBtb3JlIHVuaXQtdGVzdHMgZm9yIHRoZSBnaG9zdHBhZCBub3RpZnkgc2lnbmFsLCBvbmUgb2Ygd2hpY2ggY3VycmVudGx5IGZhaWxzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKGdob3N0X25vdGlmeV9jYXBzKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIHNvbWUgbW9yZSB1bml0LXRlc3RzIGZvciB0aGUgZ2hvc3RwYWQgbm90aWZ5IHNpZ25hbCwgb25lIG9mIHdoaWNoCgkgIGN1cnJlbnRseSBmYWlscy4KCjIwMDgtMTItMTkgMDk6NDQ6NDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBBZGQgZ3N0X3RhZ19zZXR0ZXJfcmVzZXRfdGFncyB0byB0aGUgbGlzdCBvZiBleHBvcnRlZCBzeW1ib2xzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIGdzdF90YWdfc2V0dGVyX3Jlc2V0X3RhZ3MgdG8gdGhlIGxpc3Qgb2YgZXhwb3J0ZWQgc3ltYm9scy4KCjIwMDgtMTItMTcgMTY6MTY6NDUgKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSAgSW4gYSBzb3VyY2UgZ2hvc3RwYWQsIHdoZW4gY2FwcyBhcmUgY2hhbmdlZCBpbiB0aGUgdGFyZ2V0IHBhZCwgdGhlIGNoYW5nZSBuZWVkcyB0byBiZSByZWZsZWN0ZWQgaW4gdGhlIGdob3N0cGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgSW4gYSBzb3VyY2UgZ2hvc3RwYWQsIHdoZW4gY2FwcyBhcmUgY2hhbmdlZCBpbiB0aGUgdGFyZ2V0IHBhZCwgdGhlCgkgIGNoYW5nZSBuZWVkcyB0byBiZSByZWZsZWN0ZWQgaW4gdGhlIGdob3N0cGFkLgoJICBGaXhlcyAjNTY0ODYzLgoKMjAwOC0xMi0xNyAwOTozNzo0NyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEFkZCBGSVhNRSBmb3IgMC4xMSB0byBzZXQgdGhlIHBhZCBhcyBtZXNzYWdlIHNvdXJjZSBhbmQgbm90IHRoZSBlbGVtZW50LiBPdGhlcndpc2UgaXQncyBpbXBvc3NpYmxlIHRvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfZm91bmRfdGFnc19mb3JfcGFkKToKCSAgQWRkIEZJWE1FIGZvciAwLjExIHRvIHNldCB0aGUgcGFkIGFzIG1lc3NhZ2Ugc291cmNlIGFuZCBub3QKCSAgdGhlIGVsZW1lbnQuIE90aGVyd2lzZSBpdCdzIGltcG9zc2libGUgdG8gZGV0ZWN0IGZvciB3aGljaAoJICBwYWQgdGhlIHRhZ3Mgd2VyZSBmb3VuZCB3aXRob3V0IGFkZGluZyBhbiBldmVudCBwcm9iZQoJICBvciBzb21ldGhpbmcgc2ltaWxhciB0byB0aGUgcGFkLgoKMjAwOC0xMi0xNiAyMTozMzo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZmFxL2dlbmVyYWwueG1sOiBVcGRhdGUgdGhlIGZhcS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ2VuZXJhbC54bWw6CgkgIFVwZGF0ZSB0aGUgZmFxLgoKMjAwOC0xMi0xNiAxNTo1MTo1MiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgUmVuYW1lIGFwaSBhZGRlZCBpbiBwcmV2aW91cyBjb21taXQgYW5kIGFkZCBzaW5jZSB0YWcgdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5oOgoJICBSZW5hbWUgYXBpIGFkZGVkIGluIHByZXZpb3VzIGNvbW1pdCBhbmQgYWRkIHNpbmNlIHRhZyB0byBkb2NzLgoJICBBUEk6IGdzdF90YWdfc2V0dGVyX3Jlc2V0X3RhZ3MoKQoKMjAwOC0xMi0xNiAxNDowNTo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIGZ1bmN0aW9uIHRvIHJlc2V0IHRhZ3NldHRlciBmb3IgZWxlbWVudCByZXVzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5oOgoJICBBZGQgZnVuY3Rpb24gdG8gcmVzZXQgdGFnc2V0dGVyIGZvciBlbGVtZW50IHJldXNlLgoJICBBUEk6IGdzdF90YWdfc2V0dGVyX2ZsdXNoKCkKCjIwMDgtMTItMTYgMDk6Mzc6NTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0LmM6IEF2b2lkIGNvcHkgb2YgZW1wdHkgdGFnbGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgQXZvaWQgY29weSBvZiBlbXB0eSB0YWdsaXN0LgoKMjAwOC0xMi0xNiAwOToyMzoyMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTW9yZSBjb21wbGV0ZSB1bml0IHRlc3RzLiBGaXggaGFuZGxpbmcgb2YgZW1wdHkgdGFnbGlzdHMgKHRoZXkgd2VyZSBub3QgbWVyZ2VkIGJlZm9yZSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICBNb3JlIGNvbXBsZXRlIHVuaXQgdGVzdHMuIEZpeCBoYW5kbGluZyBvZiBlbXB0eSB0YWdsaXN0cyAodGhleSB3ZXJlCgkgIG5vdCBtZXJnZWQgYmVmb3JlKS4KCjIwMDgtMTItMTYgMDc6MDc6MzYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IFVwZGF0ZSBHc3RUYWdTZXR0ZXIgYW5kIEdzdFRhZ01lcmdlTW9kZSBkb2N1bWVudGF0aW9uLiBNZW50aW9uIHRoYXQgdGFncyBjYW4gY29tZSBmcm9tIGV2ZW50cyBhbmQgZnJvbSBhcHBsaWNhdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgVXBkYXRlIEdzdFRhZ1NldHRlciBhbmQgR3N0VGFnTWVyZ2VNb2RlIGRvY3VtZW50YXRpb24uIE1lbnRpb24KCSAgdGhhdCB0YWdzIGNhbiBjb21lIGZyb20gZXZlbnRzIGFuZCBmcm9tIGFwcGxpY2F0aW9uLiBGaXggZXhhbXBsZS4KCjIwMDgtMTItMTUgMTU6Mjc6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBSZW1vdmUgdGhlIHNlcW51bSBlbnRyeSB0aGF0IHdlIGltcGxlbWVudGVkIGluIDAuMTAgYWxyZWFkeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgUmVtb3ZlIHRoZSBzZXFudW0gZW50cnkgdGhhdCB3ZSBpbXBsZW1lbnRlZCBpbiAwLjEwIGFscmVhZHkuCgkgIEFkZCBlbnRyeSBhYm91dCByZW1vdmluZyB0aGUgZm9ybWF0IHJldHVybiB2YWx1ZSBmb3IgcXVlcmllcy4KCjIwMDgtMTItMTUgMTI6NDc6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEV4cG9zZSB0aGUgcmVuZGVyLWRlbGF5IGFzIGEgcHJvcGVydHkgc28gdGhpbmdzIGxpa2UgYXBwc2luayBjYW4gdXNlIGl0IHRvIHR3ZWFrIHRoZSBzeW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfaW5pdCksIChnc3RfYmFzZV9zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wcm9wZXJ0eSk6CgkgIEV4cG9zZSB0aGUgcmVuZGVyLWRlbGF5IGFzIGEgcHJvcGVydHkgc28gdGhpbmdzIGxpa2UgYXBwc2luayBjYW4gdXNlIGl0CgkgIHRvIHR3ZWFrIHRoZSBzeW5jaHJvbmlzYXRpb24uCgoyMDA4LTEyLTEwIDE1OjE5OjQ1ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6IEFsbG93IGNoZWNrIHRlc3RzIHRvIHVzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOiBBbGxvdyBjaGVjayB0ZXN0cyB0byB1c2UKCSAgTUFJTl9TVEFSVF9USFJFQURTKCkvTUFJTl9TVE9QX1RIUkVBRFMoKSBtdWx0aXBsZSB0aW1lcy4gQWxzbyBhbGxvd3MKCSAgQ0tfRk9SSz1ubyB0byBiZSB1c2VkIHdpdGggbXVsdGlwbGUgY2hlY2sgdGVzdCB0aGF0IHVzZSB0aHJlYWRzLgoKMjAwOC0xMi0wOSAxNjoyMzo1OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEZpeCBhIGNhcHMgbWVtb3J5IGxlYWsgaW50cm9kdWNlZCBieSB0aGUgbGFzdCBjaGFuZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkKToKCSAgRml4IGEgY2FwcyBtZW1vcnkgbGVhayBpbnRyb2R1Y2VkIGJ5IHRoZSBsYXN0IGNoYW5nZS4KCjIwMDgtMTItMDkgMTU6NDU6MzYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5jOiBDaGVjayBpZiB0aGUgY2FwcyBvZiB0aGUgcGFkcyBhcmUgY29tcGF0aWJsZSBiZWZvcmUgcmV0dXJuaW5nIGEgcGFkIGFuZCBjbGFpbWluZyBpdCBpcyBjb21wYXRpYmxlLiBUaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZCk6CgkgIENoZWNrIGlmIHRoZSBjYXBzIG9mIHRoZSBwYWRzIGFyZSBjb21wYXRpYmxlIGJlZm9yZSByZXR1cm5pbmcKCSAgYSBwYWQgYW5kIGNsYWltaW5nIGl0IGlzIGNvbXBhdGlibGUuIFRoaXMsIGFtb25nIG90aGVyIHRoaW5ncywKCSAgZml4ZXMgYSBidWcgd2l0aCBnc3QtbGF1bmNoIHdoZXJlIGFuIGluY29tcGF0aWJsZSBwYWQgaXMgY2hvc2VuCgkgIGFuZCBsaW5raW5nIGZhaWxzLiBGaXhlcyBidWcgIzU0NDAwMy4KCjIwMDgtMTItMDkgMTQ6NDY6MjQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IFJldmVydCBhY2NpZGVudGlhbGx5IGNvbW1pdGVkIHBhdGNoIGZvciBidWcgIzQwNDYzMSB3aGljaCB0cmllcyB0byBwcmludCBhIGJhY2t0cmFjZSBpZiBhIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX2luaXQpOgoJICBSZXZlcnQgYWNjaWRlbnRpYWxseSBjb21taXRlZCBwYXRjaCBmb3IgYnVnICM0MDQ2MzEgd2hpY2gKCSAgdHJpZXMgdG8gcHJpbnQgYSBiYWNrdHJhY2UgaWYgYSB0ZXN0Y2FzZSBpcyB0ZXJtaW5hdGVkIGJ5CgkgIGEgc2lnbmFsLiBUaGlzIGNvZGUgd2FzIG5ldmVyIGFjdGl2YXRlZCBhcyB0aGUgY29ycmVzcG9uZGluZwoJICBjb25maWd1cmUuYWMgY2hhbmdlIHdhc24ndCBjb21taXR0ZWQuCgoyMDA4LTEyLTA5IDEwOjU4OjAxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogVGhpcyB0ZXN0IHNob3VsZCByZXR1cm4gVFJVRSBub3cgYXMgc3luY2luZyBhbiB1bmNvbnRyb2xsZWQgb2JqZWN0IHdpbGwgc3VjY2VlZCBub3cgKHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFRoaXMgdGVzdCBzaG91bGQgcmV0dXJuIFRSVUUgbm93IGFzIHN5bmNpbmcgYW4gdW5jb250cm9sbGVkCgkgIG9iamVjdCB3aWxsIHN1Y2NlZWQgbm93ICh0aGVyZSdzIG5vdGhpbmcgdG8gc3luYykuCgoyMDA4LTEyLTA5IDA5OjU2OjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogQWdncmVnYXRlIHJldHVybiB2YWx1ZSBmb3IgZ3N0X2NvbnRyb2xsZXJfc3luY192YWx1ZXMoKS4gTW9yZSBpbmZvIGluIGxvZ2dpbmcuIEEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIEFnZ3JlZ2F0ZSByZXR1cm4gdmFsdWUgZm9yIGdzdF9jb250cm9sbGVyX3N5bmNfdmFsdWVzKCkuIE1vcmUgaW5mbyBpbgoJICBsb2dnaW5nLiBBbHdheXMgc2V0IHZhbHVlcyBvbiBmaXJzdCBzeW5jLWNhbGwuCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sc291cmNlLmM6CgkgIE1pY3Jvb3B0aW1pemF0aW9ucy4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICBGaXggcmV0dXJuIGNvZGUgYW5kIGNvbW1lbnQuCgoyMDA4LTEyLTA5IDA5OjAwOjU3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLjEuaW46IEZpeCBkZXNjcmlwdGlvbiBvZiBob3cgdG8gc3BlY2lmeSBhIHR5cGUgaW4gY2Fwcy4gRml4ZXMgIzU1Mzg3My4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBGaXggZGVzY3JpcHRpb24gb2YgaG93IHRvIHNwZWNpZnkgYSB0eXBlIGluIGNhcHMuIEZpeGVzICM1NTM4NzMuCgkgIEFsc28gcmFuZ2VzIGFuZCBsaXN0IGNvbnRhaW4gdmFsdWVzIGFuZCBub3QgcHJvcGVydHktYXNzaWdubWVudHMuCgoyMDA4LTEyLTA4IDIyOjI4OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogQ2hlY2sgZm9yIGNoYW5nZWQgcGFkcy1saXN0IGJlZm9yZSBjaGVja2luZyB0aGUgbGFzdCByZXR1cm5lZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9oYW5kbGVfYnVmZmVyKToKCSAgQ2hlY2sgZm9yIGNoYW5nZWQgcGFkcy1saXN0IGJlZm9yZSBjaGVja2luZyB0aGUgbGFzdCByZXR1cm5lZAoJICBHc3RGbG93UmV0dXJuIGJlY2F1c2UgdGhlIHBhZCBjb3VsZCBoYXZlIGJlZW4gcmVtb3ZlZCBhbmQgd2UKCSAgbmVlZCB0byBpZ25vcmUgdGhlIHZhbHVlIGluIHRoYXQgY2FzZS4KCjIwMDgtMTItMDggMTg6MzU6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uKjogQWRkIHZtZXRob2QgdGhhdCBpcyBjYWxsZWQgYmVmb3JlIHdlIHN0YXJ0IHRoZSB0cmFuc2Zvcm0gYW5kIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRyYW5nZSksIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBBZGQgdm1ldGhvZCB0aGF0IGlzIGNhbGxlZCBiZWZvcmUgd2Ugc3RhcnQgdGhlIHRyYW5zZm9ybSBhbmQgd2hpY2ggY2FuCgkgIGJlIHVzZWQgdG8gY29uZmlndXJlIHRoZSB0cmFuc2Zvcm0sIHN1Y2ggYXMgZHluYW1pYyBwcm9wZXJ0aWVzLgoKMjAwOC0xMi0wNSAyMDozMjowMyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0LmM6IFNlYXJjaCBmb3IgcGx1Z2lucyBvbiB3aW4zMiBiYXNlZCBvbiB0aGUgbG9jYXRpb24gb2YgdGhlIGdzdHJlYW1lciBETEwuICBGaXhlcyAjNTQ4Nzg2CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgU2VhcmNoIGZvciBwbHVnaW5zIG9uIHdpbjMyIGJhc2VkIG9uIHRoZSBsb2NhdGlvbiBvZiB0aGUKCSAgZ3N0cmVhbWVyIERMTC4gIEZpeGVzICM1NDg3ODYKCjIwMDgtMTItMDQgMjA6MTA6NDIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogQXBwYXJlbnRseSBBQ19DT05GSUdfTUFDUk9fRElSIGJyZWFrcyB3aGVuIHVzaW5nIG1vcmUgdGhhbiBvbmUgbWFjcm8gZGlyZWN0b3J5LCByZXZlcnRpbmcgbGFzdCBjaGFuZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQXBwYXJlbnRseSBBQ19DT05GSUdfTUFDUk9fRElSIGJyZWFrcyB3aGVuIHVzaW5nIG1vcmUKCSAgdGhhbiBvbmUgbWFjcm8gZGlyZWN0b3J5LCByZXZlcnRpbmcgbGFzdCBjaGFuZ2UuCgoyMDA4LTEyLTA0IDE5OjQ1OjA1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBjb25maWd1cmUuYWM6IFNldCBBQ19DT05GSUdfTUFDUk9fRElSIHRvIGNvbW1vbi9tNCB0byBwb2ludCBhdXRvY29uZiB0byBvdXIgTTQgbWFjcm9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFNldCBBQ19DT05GSUdfTUFDUk9fRElSIHRvIGNvbW1vbi9tNCB0byBwb2ludCBhdXRvY29uZiB0bwoJICBvdXIgTTQgbWFjcm9zLgoKMjAwOC0xMS0yOSAxMzoyOToxNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgUmVxdWlyZSBnZXR0ZXh0IDAuMTcgYmVjYXVzZSBvbGRlciB2ZXJzaW9ucyBkb24ndCBtaXggd2l0aCBsaWJ0b29sIDIuMi4gQXQgYnVpbGQgdGltZSBhbiBvbGRlciBnZXR0ZXh0IHZlcnNpb24gd2lsbCBzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQ3lnd2luIFBvcnRzIG1haW50YWluZXIKCSAgPHlzZWxrb3dpdHogYXQgdXNlcnMgZG90IHNvdXJjZWZvcmdlIGRvdCBuZXQ+CgkgICogYXV0b2dlbi5zaDoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFJlcXVpcmUgZ2V0dGV4dCAwLjE3IGJlY2F1c2Ugb2xkZXIgdmVyc2lvbnMgZG9uJ3QgbWl4IHdpdGggbGlidG9vbAoJICAyLjIuIEF0IGJ1aWxkIHRpbWUgYW4gb2xkZXIgZ2V0dGV4dCB2ZXJzaW9uIHdpbGwgc3RpbGwgd29yay4KCSAgRml4ZXMgYnVnICM1NTYwOTEuCgoyMDA4LTExLTI3IDExOjEyOjMwICswMDAwICDsnbTrrLjtmJUgPGl3aW5nc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cG9sbC5jOiBBZGRzIHN1cHBvcnQgZm9yIEZEX0NPTk5FQ1QgZXZlbnQgKHdpbjMyKS4gU2VlICM1NjIyNTguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTog7J2066y47ZiVIDxpd2luZ3MgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvZ3N0cG9sbC5jOiAoZ3N0X3BvbGxfZmRfY3RsX3dyaXRlKSwgKGdzdF9wb2xsX2ZkX2hhc19lcnJvcik6CgkgIEFkZHMgc3VwcG9ydCBmb3IgRkRfQ09OTkVDVCBldmVudCAod2luMzIpLiBTZWUgIzU2MjI1OC4KCjIwMDgtMTEtMjQgMjA6MDI6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogVHVybiBjb21tZW50IGludG8gZ3RrLWRvYyBjb21tZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIFR1cm4gY29tbWVudCBpbnRvIGd0ay1kb2MgY29tbWVudC4KCjIwMDgtMTEtMjQgMTU6Mjc6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogUmV2ZXJ0IHF1aWNrIGFjY2VwY2FwcyBhdHRlbXB0LCBpdCdzIG5vdCBmdWxseSBlcXVpdmFsZW50IHRvIHRoZSBvbGQgYmVoYXZpb3VyIGFuZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYWNjZXB0Y2Fwcyk6CgkgIFJldmVydCBxdWljayBhY2NlcGNhcHMgYXR0ZW1wdCwgaXQncyBub3QgZnVsbHkgZXF1aXZhbGVudCB0byB0aGUgb2xkCgkgIGJlaGF2aW91ciBhbmQgdGh1cyBjYXVzZXMgcmVncmVzc2lvbnMuCgoyMDA4LTExLTI0IDExOjU2OjQ0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IEZpeCBtZW1vcnkgbGVhay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfdXJpX3NldF91cmkpOgoJICBGaXggbWVtb3J5IGxlYWsuCgoyMDA4LTExLTI0IDA5OjU5OjA3ICswMDAwICBTaW1vbiBIb2xtIFRow7hnZXJzZW4gPG9kaWVAY3MuYWF1LmRrPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IFJlZHVjZSB0aGUgbnVtYmVyIG9mIHN0YXQoKSBjYWxscyBmb3IgZXZlcnkgZmlsZSBmcm9tIHRocmVlIHRpbWVzIHRvIG9uZSB0aW1lLiBGaXhlcyBidWcgIzU2MDM2MC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTaW1vbiBIb2xtIFRow7hnZXJzZW4gPG9kaWUgYXQgY3MgZG90IGFhdSBkb3QgZGs+CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgUmVkdWNlIHRoZSBudW1iZXIgb2Ygc3RhdCgpIGNhbGxzIGZvciBldmVyeSBmaWxlIGZyb20gdGhyZWUgdGltZXMKCSAgdG8gb25lIHRpbWUuIEZpeGVzIGJ1ZyAjNTYwMzYwLgoKMjAwOC0xMS0yMiAxNTowOToyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBSZW5hbWUgYSB2YXJpYWJsZSB0byBtYWtlIHRoZSBjb2RlIGNsZWFyZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjY2VwdGNhcHMpOgoJICBSZW5hbWUgYSB2YXJpYWJsZSB0byBtYWtlIHRoZSBjb2RlIGNsZWFyZXIuCgoyMDA4LTExLTIxIDIwOjU3OjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IERvbid0IHdhcm5pbmcgb24gb2Zmc2V0PT0tMS4gVGFrZW4gZnJvbSBfY2hlY2tfaW1wZXJmZWN0X29mZnNldCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIERvbid0IHdhcm5pbmcgb24gb2Zmc2V0PT0tMS4gVGFrZW4gZnJvbSBfY2hlY2tfaW1wZXJmZWN0X29mZnNldCgpLgoKMjAwOC0xMS0yMSAxODoyNjoxNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IENoZWNrIGZvciBsb2NhbGhvc3QgaW4gVVJJIHdhcyBiYWNrd2FyZHMsIGZpeCBpdC4gRml4ZXMgdW5pdCB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgQ2hlY2sgZm9yIGxvY2FsaG9zdCBpbiBVUkkgd2FzIGJhY2t3YXJkcywgZml4IGl0LiBGaXhlcyB1bml0IHRlc3QuCgoyMDA4LTExLTIxIDE3OjE0OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEFkZCBiZWdpbm5pbmdzIG9mIGEgbW9yZSBvcHRpbWl6ZWQgYWNjZXB0Y2FwcyBmdW5jdGlvbiB0aGFuIHRoZSBkZWZhdWx0IGNvcmUgb25lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRjYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9maW5kX3RyYW5zZm9ybSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYWNjZXB0Y2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpOgoJICBBZGQgYmVnaW5uaW5ncyBvZiBhIG1vcmUgb3B0aW1pemVkIGFjY2VwdGNhcHMgZnVuY3Rpb24gdGhhbiB0aGUgZGVmYXVsdAoJICBjb3JlIG9uZS4KCjIwMDgtMTEtMjEgMTY6NDg6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEF2b2lkIGdldHRpbmcgdGhlIGFjY2VwdGNhcHMgZnVuY3Rpb24gdG9vIGVhcmx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjY2VwdF9jYXBzKToKCSAgQXZvaWQgZ2V0dGluZyB0aGUgYWNjZXB0Y2FwcyBmdW5jdGlvbiB0b28gZWFybHkuCgoyMDA4LTExLTIxIDA4OjA5OjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBNYWtlIGdzdC1sYXVuY2ggaGFuZGxlIExBVEVOQ1kgbWVzc2FnZXMgYW5kIG1ha2UgaXQgcmVjYWxjdWxhdGUgdGhlIGxhdGVuY3kuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBNYWtlIGdzdC1sYXVuY2ggaGFuZGxlIExBVEVOQ1kgbWVzc2FnZXMgYW5kIG1ha2UgaXQgcmVjYWxjdWxhdGUgdGhlCgkgIGxhdGVuY3kuCgoyMDA4LTExLTIwIDIxOjA1OjE0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogVXNlIGdfZmlsZW5hbWVfZnJvbV91cmkoKSBmb3IgVVJJIHBhcnNpbmcgaW4gZmlsZXNyYyByYXRoZXIgdGhhbiByb2xsaW5nIG91dCBvd24gc2xpZ2guLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIFVzZSBnX2ZpbGVuYW1lX2Zyb21fdXJpKCkgZm9yIFVSSSBwYXJzaW5nIGluIGZpbGVzcmMgcmF0aGVyIHRoYW4gcm9sbGluZwoJICBvdXQgb3duIHNsaWdodGx5IGluY29ycmVjdCB2ZXJzaW9uLiBGaXhlcyB1c2Ugb2Ygc29tZSBwYXRocyBvbgoJICB3aW4zMi4KCjIwMDgtMTEtMjAgMjA6NDQ6NTYgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBJbiB3aW4zMiBjb2RlcGF0aCwgaWYgd2UgZmFpbCB0byB3cml0ZSB0aGUgcmVnaXN0cnksIGNyZWF0ZSB0aGUgZGlyZWN0b3J5IGZvciBpdCBhbmQgdHJ5IGFnYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgSW4gd2luMzIgY29kZXBhdGgsIGlmIHdlIGZhaWwgdG8gd3JpdGUgdGhlIHJlZ2lzdHJ5LCBjcmVhdGUgdGhlCgkgIGRpcmVjdG9yeSBmb3IgaXQgYW5kIHRyeSBhZ2FpbiwgbWF0Y2hpbmcgdGhlIGJlaGF2aW91ciBpbiBub24td2luMzIKCSAgY29kZXBhdGhzLgoKMjAwOC0xMS0yMCAxNDoyMzowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQ2hhbmdpbmcgdGhlIHJlbmRlciBkZWxheSBjaGFuZ2VzIHRoZSBsYXRlbmN5IGFuZCBzbyB3ZSBtdXN0IHBvc3QgYSBsYXRlbmN5IG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfc2V0X3JlbmRlcl9kZWxheSk6CgkgIENoYW5naW5nIHRoZSByZW5kZXIgZGVsYXkgY2hhbmdlcyB0aGUgbGF0ZW5jeSBhbmQgc28gd2UgbXVzdCBwb3N0IGEKCSAgbGF0ZW5jeSBtZXNzYWdlLgoKMjAwOC0xMS0yMCAxMDozNTo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWVyeS4qOiBBZGQgR3N0UXVlcnlUeXBlIGZvciBjdXN0b20gcXVlcmllcyBpbnN0ZWFkIG9mIGhhdmluZyB0byB1c2UgdGhlIG5vdC1zby12ZXJ5LWNvbnZlbmllbnQgcmVnaXN0cmF0aW9uIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVlcnkuYzoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQWRkIEdzdFF1ZXJ5VHlwZSBmb3IgY3VzdG9tIHF1ZXJpZXMgaW5zdGVhZCBvZiBoYXZpbmcgdG8gdXNlIHRoZQoJICBub3Qtc28tdmVyeS1jb252ZW5pZW50IHJlZ2lzdHJhdGlvbiBpbmZyYXN0cnVjdHVyZSB0byByZWdpc3RlciBuZXcKCSAgdHlwZXMuCgoyMDA4LTExLTE5IDEyOjIwOjAzICswMDAwICBBbmRyZXcgRmVyZW4gPGFjZmVyZW5AeWFob28uY29tPgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBVbnJlZiB0aGUgR0VudW1DbGFzcyBhZnRlciB1c2FnZSBhZ2Fpbi4gRml4ZXMgYnVnICM1NjE1MDEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQW5kcmV3IEZlcmVuIDxhY2ZlcmVuIGF0IHlhaG9vIGRvdCBjb20+CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9kZWZhdWx0X2RlZXBfbm90aWZ5KToKCSAgVW5yZWYgdGhlIEdFbnVtQ2xhc3MgYWZ0ZXIgdXNhZ2UgYWdhaW4uIEZpeGVzIGJ1ZyAjNTYxNTAxLgoKMjAwOC0xMS0xOSAxMjowNjo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uKjogQWRkIGRvLWxhdGVuY3kgc2lnbmFsIHdpdGggdGhlIG9sZCBkZWZhdWx0IGZhbGxiYWNrIGltcGxlbWVudGF0aW9uLiBUaGlzIGFsbG93cyBmb3IgY3VzdG9tIGxhdGVuY3kgY2FsYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChfZ3N0X2Jvb2xlYW5fYWNjdW11bGF0b3IpLCAoZ3N0X2Jpbl9jbGFzc19pbml0KSwKCSAgKGdzdF9iaW5fcmVjYWxjdWxhdGVfbGF0ZW5jeSksIChnc3RfYmluX2RvX2xhdGVuY3lfZnVuYyksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIEFkZCBkby1sYXRlbmN5IHNpZ25hbCB3aXRoIHRoZSBvbGQgZGVmYXVsdCBmYWxsYmFjayBpbXBsZW1lbnRhdGlvbi4gVGhpcwoJICBhbGxvd3MgZm9yIGN1c3RvbSBsYXRlbmN5IGNhbGN1bGF0aW9ucyBmb3Igd2hlbiB0aGUgZGVmYXVsdCBpcyBub3QKCSAgc3VmZmljaWVudC4KCSAgQVBJOiBHc3RCaW46OmRvLWxhdGVuY3kgc2lnbmFsLgoKMjAwOC0xMS0xOCAxMzozNjoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBBZGQgbmV3IHN5bWJvbHMgdG8gLmRlZiBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBzeW1ib2xzIHRvIC5kZWYgZmlsZS4KCjIwMDgtMTEtMTggMDk6NTg6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgbWV0aG9kIHRvIHJlY2FsY3VsYXRlIGFuZCByZWRpc3RyaWJ1dGUgdGhlIGxhdGVuY3kgb24gYSBiaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZWNhbGN1bGF0ZV9sYXRlbmN5KSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgQWRkIG1ldGhvZCB0byByZWNhbGN1bGF0ZSBhbmQgcmVkaXN0cmlidXRlIHRoZSBsYXRlbmN5IG9uIGEgYmluLgoJICBBUEk6IGdzdF9iaW5fcmVjYWxjdWxhdGVfbGF0ZW5jeSgpLgoKMjAwOC0xMS0xOCAwOTo1Mjo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuaDogRG9jdW1lbnQgdGhlIGZyZWVfZnVuYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBEb2N1bWVudCB0aGUgZnJlZV9mdW5jLgoKMjAwOC0xMS0xNyAyMTo0MzowNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IFVzZSBnc3RfZ3VpbnQ2NF90b19nZG91YmxlIGluc3RlYWQgb2YgZ3N0X3V0aWxfZ3VpbnQ2NF90b19nZG91YmxlIGFzIGl0IGlzIG1hcHBlZCB0byBhIGNhc3Qgb24gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBVc2UgZ3N0X2d1aW50NjRfdG9fZ2RvdWJsZSBpbnN0ZWFkIG9mIGdzdF91dGlsX2d1aW50NjRfdG9fZ2RvdWJsZQoJICBhcyBpdCBpcyBtYXBwZWQgdG8gYSBjYXN0IG9uIG5vbi13aW4zMiBwbGF0Zm9ybXMuCgoyMDA4LTExLTE3IDIxOjQxOjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogS2VlcCBsYXN0LXZhbHVlIGFuZCBvbmx5IGNhbGwgc2V0X3Byb3BlcnR5IGlmIHZhbHVlIGhhcyBjaGFuZ2VkLiBUaGlzIHN1cHJlc3NlcyBhbGwgdGhlIGdfb2JqZWMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJICBLZWVwIGxhc3QtdmFsdWUgYW5kIG9ubHkgY2FsbCBzZXRfcHJvcGVydHkgaWYgdmFsdWUgaGFzIGNoYW5nZWQuIFRoaXMKCSAgc3VwcmVzc2VzIGFsbCB0aGUgZ19vYmplY3Rfbm90aWZpZXMgd2Ugd291bGQgdHJpZ2dlciBvdGhlcndpc2UuIEl0CgkgIGFsc28gYWxsb3dzIHRoZSB1c2VyIHRvIGNoYWdlIHRoZSB2YWx1ZSB3aGlsZSB0aGVyZSBpcyBubyBjb250cm9sbGVyCgkgIGNoYW5nZS4KCjIwMDgtMTEtMTcgMjE6MjU6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBEb24ndCBjcmFzaCBpZiBlaXRoZXIgb2YgdGhlIHN0cmluZyBHVmFsdWVzIGlzIGVtcHR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgRG9uJ3QgY3Jhc2ggaWYgZWl0aGVyIG9mIHRoZSBzdHJpbmcgR1ZhbHVlcyBpcyBlbXB0eS4KCjIwMDgtMTEtMTcgMTU6NDg6MTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmMgKHByaW50X2FsbF91cmlfaGFuZGxlcnMpOiBOZXcgZnVuY3Rpb24sIHByaW50cyBhIHN1bW1hcnkgb2Ygd2hhdCBVUkkgc2NoZW1lcyBhcmUgc3VwcG9ydGVkIGJ5IHdoYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0xMS0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jIChwcmludF9hbGxfdXJpX2hhbmRsZXJzKTogTmV3IGZ1bmN0aW9uLAoJICBwcmludHMgYSBzdW1tYXJ5IG9mIHdoYXQgVVJJIHNjaGVtZXMgYXJlIHN1cHBvcnRlZCBieSB3aGF0CgkgIGVsZW1lbnRzLgoJICAobWFpbik6IFBsdW1iIGluIHN1cHBvcnQgZm9yIC0tdXJpLWhhbmRsZXJzIG9yIC11LCBhbmQgZml4IHRoZQoJICBhcmdjIGNoZWNrIGZvciAtYSBhbmQgLXUuCgoyMDA4LTExLTE3IDA0OjQ5OjA2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuaDogQWRkIEdfR05VQ19QVVJFIHRvIGdzdF91dGlsX3VpbnQ2NF9zY2FsZSogYW5kIHRoZSBkb3VibGU8LT51aW50NjQgY29udmVyc2lvbiBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBZGQgR19HTlVDX1BVUkUgdG8gZ3N0X3V0aWxfdWludDY0X3NjYWxlKiBhbmQgdGhlIGRvdWJsZTwtPnVpbnQ2NAoJICBjb252ZXJzaW9uIGZ1bmN0aW9ucy4KCjIwMDgtMTEtMTMgMTg6MDk6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IEF2b2lkIGNvc3RseSB0eXBlY2hlY2tpbmcgZm9yIHRyaXZpYWxseSBjb3JyZWN0IHBvaW50ZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2ZpbmFsaXplKToKCSAgQXZvaWQgY29zdGx5IHR5cGVjaGVja2luZyBmb3IgdHJpdmlhbGx5IGNvcnJlY3QgcG9pbnRlcnMuCgkgICogZ3N0L2dzdHBvbGwuYzogKGdzdF9wb2xsX3dhaXQpOgoJICBBZGQgc29tZSBHX0xJS0VMWSBoZXJlIGFuZCB0aGVyZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX3B1c2gpOgoJICBBZGQgc29tZSBkZWJ1ZyBpbmZvLgoKMjAwOC0xMS0xMyAxODowNTo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcmFuZG9tL3d0YXkvcG9sbC10aW1lb3V0OiBTbWFsbCB0d2Vha3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3d0YXkvcG9sbC10aW1lb3V0OgoJICBTbWFsbCB0d2Vha3MuCgoyMDA4LTExLTEzIDE4OjAzOjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvb2xkL3Rlc3RzdWl0ZS86IFJlbW92ZSByZWZlcmVuY2VzIHRvIGRlcHJlY2F0ZWQgQVBJIGdfbWVtX2NodW5rKi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2ludGVyc2VjdGlvbi5jOiAobWFpbik6CgkgICogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vbG9hZGluZy5jOiAobWFpbik6CgkgIFJlbW92ZSByZWZlcmVuY2VzIHRvIGRlcHJlY2F0ZWQgQVBJIGdfbWVtX2NodW5rKi4KCSAgRml4ZXMgIzU2MDQ0Mi4KCjIwMDgtMTEtMTIgMTY6NTU6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBBZGQgLS1wbHVnaW4gb3B0aW9uLiBGaXhlcyAjNTYwMzAxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAobWFpbik6CgkgIEFkZCAtLXBsdWdpbiBvcHRpb24uIEZpeGVzICM1NjAzMDEuCgoyMDA4LTExLTEyIDEyOjQ1OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9yYW5kb20vd3RheS9wb2xsLXRpbWVvdXQ6IFF1aWNrIGJyYWluZHVtcCBmb3IgYSBwb3NzaWJsZSAobm90IHRvdGFsbHkgdmVyaWZpZWQpIGF0b21pYyBjYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS93dGF5L3BvbGwtdGltZW91dDoKCSAgUXVpY2sgYnJhaW5kdW1wIGZvciBhIHBvc3NpYmxlIChub3QgdG90YWxseSB2ZXJpZmllZCkgYXRvbWljIGNhc2UuCgoyMDA4LTExLTEyIDEwOjM5OjI1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuKjogRG9uJ3Qgd3JpdGUgYW5kIGNoZWNrIGEgQ1JDIGZvciB0aGUgYmluYXJ5IHJlZ2lzdHJ5IGZpbGUuIEl0J3MgZ3VhcmFudGVlZCB0aGF0IHRoZSByZWdpc3RyeSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NodW5rKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfaW5pdGlhbGl6ZV9tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NhY2hlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfY2hlY2tfbWFnaWMpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBEb24ndCB3cml0ZSBhbmQgY2hlY2sgYSBDUkMgZm9yIHRoZSBiaW5hcnkgcmVnaXN0cnkgZmlsZS4gSXQncwoJICBndWFyYW50ZWVkIHRoYXQgdGhlIHJlZ2lzdHJ5IGlzIGNvbXBsZXRlbHkgd3JpdHRlbiAoaXQncyBmaXJzdCB3cml0dGVuCgkgIHRvIGEgdGVtcG9yYXJ5IGZpbGUgYW5kIHRoZW4gbW92ZWQpIGFuZCBpZiB0aGUgcmVnaXN0cnkgd2FzIGNvcnJ1cHRlZAoJICBieSBzb21lIGhhcmR3YXJlIGZhaWx1cmUgd2Ugd291bGQgaGF2ZSBiaWdnZXIgcHJvYmxlbXMuCgkgIEJ1bXAgYmluYXJ5IHJlZ2lzdHJ5IHZlcnNpb24gdG8gMC4xMC4yMS4xIGZvciB0aGlzIGFzIGl0J3MgYW4KCSAgaW5jb21wYXRpYmxlIGNoYW5nZSBhbmQgdG8gZW5zdXJlIHRoYXQgdGhlIHJlZ2lzdHJ5IGdldHMgcmVidWlsZAoJICBhZnRlciB0aGUgdXBkYXRlLgoJICBUaGlzIHNhdmVzIHNvbWUgbWlsbGlzZWNvbmRzIGZvciByZWFkaW5nL3dyaXRpbmcgdGhlIHJlZ2lzdHJ5LgoJICBGaXhlcyBidWcgIzU2MDM5OS4KCjIwMDgtMTEtMTEgMTQ6NTA6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3JhbmRvbS93dGF5L3BvbGwtdGltZW91dDogU29tZSBwc2V1ZG8gY29kZSBmb3IgaG93IHdlIGNvdWxkIGltcGxlbWVudCBjbG9jayB0aW1lb3V0cyB3aXRoIEdzdFBvbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3d0YXkvcG9sbC10aW1lb3V0OgoJICBTb21lIHBzZXVkbyBjb2RlIGZvciBob3cgd2UgY291bGQgaW1wbGVtZW50IGNsb2NrIHRpbWVvdXRzIHdpdGggR3N0UG9sbC4KCjIwMDgtMTEtMTAgMTM6NTY6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBVcGRhdGUgQXV0aG9yIHN0cmluZyB0byBtYXRjaCBvdGhlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgVXBkYXRlIEF1dGhvciBzdHJpbmcgdG8gbWF0Y2ggb3RoZXJzLgoKMjAwOC0xMS0wNiAxNTozNzoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBSZW9yZ2FuaXplIHNvbWUgbW9yZSwgYmUgbW9yZSBjb25zZXJ2YXRpdmUgd2l0aCB0aGUgR1NUX1RZUEVfQVJSQVkgbm90IGJlaW5nIGZpeGVkIGFuZCBpbmxpbmUgdGhlIHRyaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF90eXBlX2lzX2ZpeGVkKSwgKGdzdF92YWx1ZV9pc19maXhlZCk6CgkgIFJlb3JnYW5pemUgc29tZSBtb3JlLCBiZSBtb3JlIGNvbnNlcnZhdGl2ZSB3aXRoIHRoZSBHU1RfVFlQRV9BUlJBWSBub3QKCSAgYmVpbmcgZml4ZWQgYW5kIGlubGluZSB0aGUgdHJpdmlhbCBjaGVjay4KCjIwMDgtMTEtMDYgMTU6MDk6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBDYWxsZ3JpbmQgbWljcm8gb3B0aW1pc2F0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2NvcHkpLCAoX2dzdF9jYXBzX2ZyZWUpLAoJICAoZ3N0X2NhcHNfbWVyZ2Vfc3RydWN0dXJlKSwgKGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUpLAoJICAoZ3N0X2NhcHNfY29weV9udGgpLCAoZ3N0X2NhcHNfc2V0X3NpbXBsZSksCgkgIChnc3RfY2Fwc19zZXRfc2ltcGxlX3ZhbGlzdCksIChnc3RfY2Fwc19pc19maXhlZCksCgkgIChnc3RfY2Fwc19pc19lcXVhbF9maXhlZCksIChnc3RfY2Fwc19pbnRlcnNlY3QpLAoJICAoZ3N0X2NhcHNfc3VidHJhY3QpLCAoZ3N0X2NhcHNfbm9ybWFsaXplKSwgKGdzdF9jYXBzX2RvX3NpbXBsaWZ5KSwKCSAgKGdzdF9jYXBzX3RvX3N0cmluZyk6CgkgIENhbGxncmluZCBtaWNybyBvcHRpbWlzYXRpb25zLgoJICBBdm9pZCBhcnJheSBib3VuZHMgY2hlY2tzIGFuZCBmb3JjZSBpbmxpbmUgb2YgdHJpdmlhbCBmdW5jdGlvbi4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X3NldF9uYW1lX2RlZmF1bHQpOgoJICAtMSBpcyBlcXVpdmFsZW50IHRvIGxldHRpbmcgZ2xpYiB0byB0aGUgc3RybGVuIGJ1dCB0aGVuIHRoZXJlIGlzIG1vcmUKCSAgcm9vbSBmb3Igb3B0aW1pc2F0aW9ucyBhbmQgaXQncyBub3Qgb3VyIGZhdWx0LgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfaWRfZW1wdHlfbmV3X3dpdGhfc2l6ZSk6CgkgIG5vIG5lZWQgdG8gY2xlYXIgdGhlIGFycmF5LCB3ZSdyZSBjb29sLgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3R5cGVfaXNfZml4ZWQpLCAoZ3N0X3ZhbHVlX2lzX2ZpeGVkKToKCSAgVGhlIG1vc3QgY29tbW9uIF9pc19maXhlZCgpIGNoZWNrIGlzIGRvbmUgb24gZnVuZGFtZW50YWwgZ2xpYiBiYXNlCgkgIHR5cGVzIHNvIHdlIGNoZWNrIHRoaXMgZmlyc3QgaW5zdGVhZCBvZiBkb2luZyBhIGh1Z2UgYW1vdW50IG9mCgkgIHVzZWxlc3MgR1NUX1RZUEVfQVJSQVkgY2FsbHMuCgoyMDA4LTExLTA2IDEyOjAzOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGV2ZW50Lmg6IEFkZCBhIFNLSVAgc2VlayBmbGFnIGZvciB1c2Ugd2l0aCBhZHZhbmNlZCB0cmlja21vZGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgQWRkIGEgU0tJUCBzZWVrIGZsYWcgZm9yIHVzZSB3aXRoIGFkdmFuY2VkIHRyaWNrbW9kZXMuCgkgIEFQSTogR3N0U2Vla0ZsYWdzOjpHU1RfU0VFS19GTEFHX1NLSVAKCjIwMDgtMTEtMDUgMTY6NTc6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IE5vIG5lZWQgdG8gbWVtc2V0LCB3ZSBjYW4gY2xlYXIgdGhlIHZhbHVlIG91cnNlbHZlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9pZF9lbXB0eV9uZXdfd2l0aF9zaXplKToKCSAgTm8gbmVlZCB0byBtZW1zZXQsIHdlIGNhbiBjbGVhciB0aGUgdmFsdWUgb3Vyc2VsdmVzLgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3R5cGVfaXNfZml4ZWQpLAoJICAoZ3N0X3ZhbHVlX2dldF9jb21wYXJlX2Z1bmMpOgoJICBTb21lIG9wdGltaXNhdGlvbnMgZnJvbSBhIGZldyBjYWxsZ3JpbmQgc2Vzc2lvbnM6CgkgIFdoZW4gY2hlY2tpbmcgaWYgYSB0eXBlIGlzIGZpeGVkLCBjaGVjayBmb3IgdHJpdmlhbCBmdW5kYW1lbnRhbCB0eXBlcwoJICBmaXJzdCBiZWZvcmUgY2hlY2tpbmcgdHlwZXMgZm9yIHdoaWNoIHdlIG5lZWQgdG8gZ2V0IHRoZSB0eXBlIGZvbGxvd2VkCgkgIGJ5IHRoZSBoZWF2eSBkdXR5IHR5cGUgY2hlY2tzLCB0aGlzIHJlZHVjZXMgdGhlIGFtb3VudCBvZgoJICBnX3R5cGVfZnVuZGFtZW50YWwoKSBjYWxscyBhIGxvdC4KCSAgV2hlbiBnZXR0aW5nIHRoZSBjb21wYXJlIGZ1bmN0aW9uLCBmaXJzdCBjaGVjayBmb3Igb3VyIHJlZ2lzdGVyZWQgdHlwZXMuCgkgIElmIHRoYXQgZmFpbHMsIGRvIHRoZSBoZWF2eSBkdXR5IGdfdHlwZV9pc19hKCkgY2hlY2tzLCByZWR1Y2VzIHRoZQoJICBhbW91bnQgb2YgZ190eXBlX2lzX2EoKSBjb25zaWRlcmFibHkuCgoyMDA4LTExLTA1IDExOjE3OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogTXVtYmxlIHNvbWV0aGluZyBhYm91dCByZW1vdmluZyBHc3RYTUwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIE11bWJsZSBzb21ldGhpbmcgYWJvdXQgcmVtb3ZpbmcgR3N0WE1MLgoKMjAwOC0xMS0wNCAxODoxMDowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogR2V0IHRoZSBzZXFudW0gYmVmb3JlIHdlIGRpc3Bvc2UgdGhlIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIEdldCB0aGUgc2VxbnVtIGJlZm9yZSB3ZSBkaXNwb3NlIHRoZSBtZXNzYWdlLgoKMjAwOC0xMS0wNCAxNjoxMDowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFJlZmVyIHRvIHRoZSBmcmFtZXN0ZXBwaW5nIGRvY3VtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBSZWZlciB0byB0aGUgZnJhbWVzdGVwcGluZyBkb2N1bWVudC4KCjIwMDgtMTEtMDQgMTU6NTY6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBDb3B5IHNlcW51bXMgZnJvbSBldmVudHMgdG8gbWVzc2FnZXMgc28gdGhhdCB0aGV5IGNhbiBhbGwgYmUgcmVsYXRlZCBiYWNrIHRvIGVhY2hvdGhlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2hhbmRsZV9hc3luY19zdGFydCksCgkgIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpLCAoZ3N0X2Jpbl9xdWVyeSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgQ29weSBzZXFudW1zIGZyb20gZXZlbnRzIHRvIG1lc3NhZ2VzIHNvIHRoYXQgdGhleSBjYW4gYWxsIGJlIHJlbGF0ZWQKCSAgYmFjayB0byBlYWNob3RoZXIuCgoyMDA4LTExLTA0IDE1OjUyOjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBQcmludCB0aGUgbWVzc2FnZSBzZXFudW1zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgUHJpbnQgdGhlIG1lc3NhZ2Ugc2VxbnVtcy4KCjIwMDgtMTEtMDQgMTM6NTY6MzcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jIChnc3RfdXRpbF9zZXFudW1fbmV4dCk6IFJlZmFjdG9yIGZvciBjbGFyaXR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0xMS0wNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuYyAoZ3N0X3V0aWxfc2VxbnVtX25leHQpOiBSZWZhY3RvciBmb3IgY2xhcml0eS4KCSAgQWxzbyBhZGQgQVBJOiB0byBwcmV2aW91cyBjaGFuZ2Vsb2cgZW50cnkuCgoyMDA4LTExLTA0IDEyOjIyOjUzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBBZGQgc2VxdWVuY2UgbnVtYmVycyB0byBldmVudHMgYW5kIG1lc3NhZ2VzLiBTZWUgIzU1OTI1MC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMTEtMDQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgIEFkZCBzZXF1ZW5jZSBudW1iZXJzIHRvIGV2ZW50cyBhbmQgbWVzc2FnZXMuIFNlZSAjNTU5MjUwLgoJICAqIGdzdC9nc3R1dGlscy5jIChnc3RfdXRpbF9zZXFudW1fbmV4dCwgZ3N0X3V0aWxfc2VxbnVtX2NvbXBhcmUpOgoJICBOZXcgZnVuY3Rpb25zLgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RldmVudC5jIChfZ3N0X2V2ZW50X2NvcHksIGdzdF9ldmVudF9uZXcpOiBJbml0aWFsaXplIG5ldwoJICBldmVudHMgd2l0aCBhIG5ldyBzZXF1ZW5jZSBudW1iZXIsIGFuZCBjb3B5IGl0IHdoZW4gY29weWluZy4KCSAgKGdzdF9ldmVudF9nZXRfc2VxbnVtLCBnc3RfZXZlbnRfc2V0X3NlcW51bSk6IEFjY2Vzc29ycyBmb3IgYW4KCSAgZXZlbnQncyBzZXF1ZW5jZSBudW1iZXIuCgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jIChfZ3N0X21lc3NhZ2VfY29weSwgZ3N0X21lc3NhZ2VfbmV3X2N1c3RvbSk6CgkgIChnc3RfZXZlbnRfZ2V0X3NlcW51bSwgZ3N0X2V2ZW50X3NldF9zZXFudW0pOiBBcyB3aXRoIGV2ZW50cywgc28KCSAgd2l0aCBtZXNzYWdlcy4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgbmV3IGZ1bmN0aW9ucyB0byB0aGUgZG9jcy4KCjIwMDgtMTEtMDQgMTE6NTU6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL21hbnVhbC86IFNvbWUgQXBwbGljYXRpb24gRGV2ZWxvcG1lbnQgTWFudWFsIGZpeGVzIHRoYW5rcyB0bwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9pbnRyby1nc3RyZWFtZXIueG1sOgoJICAqIGRvY3MvbWFudWFsL2ludHJvLXByZWZhY2UueG1sOgoJICBTb21lIEFwcGxpY2F0aW9uIERldmVsb3BtZW50IE1hbnVhbCBmaXhlcyB0aGFua3MgdG8KCSAgQW5kcmV3IEZlcmVuLiBGaXhlcyAjNTU4NDU5LgoKMjAwOC0xMS0wMyAxMjoyOToxMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IERvbid0IGJvdGhlciB3aXRoIHRoZSBHVGltZXIgaWYgd2UgZG9uJ3Qgb3V0cHV0IHRoZSByZXN1bHRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgRG9uJ3QgYm90aGVyIHdpdGggdGhlIEdUaW1lciBpZiB3ZSBkb24ndCBvdXRwdXQgdGhlIHJlc3VsdHMuCgoyMDA4LTExLTAzIDEwOjU5OjQ5ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbTogQWRkIFdJTjMyX0xJQlMgdG8gbGliZ3N0bmV0IExJQkFERC4gRml4ZXMgIzU1NzMwMC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBEYXZpZCBTY2hsZWVmICA8ZHNAc2NobGVlZi5vcmc+CgkgICogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBBZGQgV0lOMzJfTElCUyB0byBsaWJnc3RuZXQgTElCQURELiBGaXhlcyAjNTU3MzAwLgoKMjAwOC0xMC0zMSAxNTo1NDo0NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IE9oIG15LCBzdHVkaXAsIHN0dXBpZCBtZS4gUmVtb3ZlIGRvdWJsZSBzdGF0KCkgY2FsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIE9oIG15LCBzdHVkaXAsIHN0dXBpZCBtZS4gUmVtb3ZlIGRvdWJsZSBzdGF0KCkgY2FsbC4KCjIwMDgtMTAtMzEgMTQ6MjQ6NDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogVXNlIGdfdW5saW5rIGluc3RlYWQgb2YgdW5saW5rLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIFVzZSBnX3VubGluayBpbnN0ZWFkIG9mIHVubGluay4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIFVzZSBnbGliIHR5cGUuCgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIEFkZCBhIEZJWE1FOi4KCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBGb3JtYXR0aW5nICYgd2hpdGVzcGFjZXMuCgoyMDA4LTEwLTMxIDA4OjUzOjI3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IERvYyB0eXBvLiBVc2UgcmV0dXJuIHZhbHVlIG9mIHBhcmVudF9jbGFzcy0+ZXZlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgRG9jIHR5cG8uIFVzZSByZXR1cm4gdmFsdWUgb2YgcGFyZW50X2NsYXNzLT5ldmVudC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBDaGFpbiB1cCBhdCB0aGUgZW5kIGZvciBjb25zaXN0ZW5jeS4KCjIwMDgtMTAtMzAgMTU6Mjk6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBDaGFuZ2UgdG8geGluY2x1ZGUgYmFzZWQgYnVpbGQgLSBpdHMgZmFzdGVyIGFuZCBlYXNpZXIgdG8gbWFpbnRhaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgIENoYW5nZSB0byB4aW5jbHVkZSBiYXNlZCBidWlsZCAtIGl0cyBmYXN0ZXIgYW5kIGVhc2llciB0byBtYWludGFpbi4KCjIwMDgtMTAtMzAgMTQ6MTU6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IFVzZSBnX3VubGluaygpIGFzIG5vbmUgb2YgdGhlc2UgYXJlIGRpcmVjdG9yaWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgVXNlIGdfdW5saW5rKCkgYXMgbm9uZSBvZiB0aGVzZSBhcmUgZGlyZWN0b3JpZXMuCgoyMDA4LTEwLTI5IDE3OjA0OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IFNvbWUgbW9yZSBjb21tZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfcHJvdmlkZV9jbG9ja19mdW5jKToKCSAgU29tZSBtb3JlIGNvbW1lbnRzLgoKMjAwOC0xMC0yNyAxNTowMjo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBJZiB3ZSBoYXZlIGEgZml4YXRlIGZ1bmN0aW9uLCBjYWxsIGl0IGV2ZW4gaWYgd2UgYWxyZWFkeSBoYXZlIGZpeGVkIGNhcHMgYmVjYXVzZSB0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9maW5kX3RyYW5zZm9ybSksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpOgoJICBJZiB3ZSBoYXZlIGEgZml4YXRlIGZ1bmN0aW9uLCBjYWxsIGl0IGV2ZW4gaWYgd2UgYWxyZWFkeSBoYXZlIGZpeGVkIGNhcHMKCSAgYmVjYXVzZSB0aGUgc3ViY2xhc3MgbWlnaHQgYWRkIHNvbWUgY2Fwcy4gTWFrZXMgYXVkaW9jb252ZXJ0IGFkZCBhCgkgIGRlZmF1bHQgY2hhbm5lbCBsYXlvdXQuCgoyMDA4LTEwLTI0IDA5OjQxOjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IENsZWFyIHRoZSBvdXRwdXQgYnVmZmVyIHZhcmlhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldHJhbmdlKToKCSAgQ2xlYXIgdGhlIG91dHB1dCBidWZmZXIgdmFyaWFibGUuCgkgIENsZWFudXBzIHRvIHRoZSBlcnJvciBwYXRoIGluIHRoZSBnZXRyYW5nZSBmdW5jdGlvbi4KCSAgRml4ZXMgIzU1NzY0OS4KCjIwMDgtMTAtMjMgMTI6NTI6NTggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBVc2UgZ3N0X2J1ZmZlcl90cnlfbmV3X2FuZF9hbGxvYygpIGFuZCBoYW5kbGUgZXJyb3JzIGluc3RlYWQgb2YgdXNpbmcgZ3N0X2J1ZmZlcl9uZXdfYW5kX2FsbG9jKCkgdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NyZWF0ZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY3JlYXRlX3JlYWQpOgoJICBVc2UgZ3N0X2J1ZmZlcl90cnlfbmV3X2FuZF9hbGxvYygpIGFuZCBoYW5kbGUgZXJyb3JzIGluc3RlYWQgb2YKCSAgdXNpbmcgZ3N0X2J1ZmZlcl9uZXdfYW5kX2FsbG9jKCkgd2hpY2ggYWJvcnRzIGlmIHRoZSBidWZmZXIgY291bGRuJ3QKCSAgYmUgYWxsb2NhdGVkLgoKMjAwOC0xMC0yMyAwOTo0OTowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IFNldCB0aGUgbGFzdF9zdG9wIHRvIGEgbW9yZSBtZWFuaW5nZnVsIHBvc2l0aW9uIHdoZW4gY29uZmlndXJpbmcgdGhlIHNlZ21lbnQuIGllLiB0aGUgc3RhcnQvc3RvcCBvZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnRfZnVsbCk6CgkgIFNldCB0aGUgbGFzdF9zdG9wIHRvIGEgbW9yZSBtZWFuaW5nZnVsIHBvc2l0aW9uIHdoZW4gY29uZmlndXJpbmcgdGhlCgkgIHNlZ21lbnQuIGllLiB0aGUgc3RhcnQvc3RvcCBvZiB0aGUgc2VnbWVudCBvciBjbGlwcGVkIGFnYWluc3QgdGhlCgkgIHVwZGF0ZWQgc2VnbWVudCBib3VuZGFyaWVzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBzb21lIHVuaXQgdGVzdHMgZm9yIHRoZSBsYXN0X3N0b3AuCgoyMDA4LTEwLTIzIDA3OjExOjU0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzogVXNlIEdTVF8oUkVBRHxXUklURSlfKEZMT0FUfERPVUJMRSlfKExFfEJFKSBpbnN0ZWFkIG9mIG91ciBvd24gY29waWVzIG9mIHRoZW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBVc2UgR1NUXyhSRUFEfFdSSVRFKV8oRkxPQVR8RE9VQkxFKV8oTEV8QkUpIGluc3RlYWQgb2Ygb3VyIG93bgoJICBjb3BpZXMgb2YgdGhlbS4KCjIwMDgtMTAtMjMgMDc6MDk6MjEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFQSTogTW92ZSBmbG9hdCBlbmRpYW5uZXNzIGNvbnZlcnNpb24gbWFjcm9zIGZyb20gbGliZ3N0ZmxvYXRjYXN0IHRvIGNvcmUgYXMgaXQncyB1c2VmdWwgaW4gZ2VuZXJhbCwgZXZlbiBpbiBjb3JlLiBGaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBUEk6IE1vdmUgZmxvYXQgZW5kaWFubmVzcyBjb252ZXJzaW9uIG1hY3JvcyBmcm9tIGxpYmdzdGZsb2F0Y2FzdAoJICB0byBjb3JlIGFzIGl0J3MgdXNlZnVsIGluIGdlbmVyYWwsIGV2ZW4gaW4gY29yZS4gRml4ZXMgYnVnICM1NTUxOTYuCgkgIFRoaXMgYWRkcyBHRE9VQkxFX0ZST01fQkUsIEdET1VCTEVfRlJPTV9MRSwgR0RPVUJMRV9UT19CRSwKCSAgR0RPVUJMRV9UT19MRSwgR0RPVUJMRV9TV0FQX0xFX0JFLCBHRkxPQVRfRlJPTV9CRSwgR0ZMT0FUX0ZST01fTEUsCgkgIEdGTE9BVF9UT19CRSwgR0ZMT0FUX1RPX0xFLCBHRkxPQVRfU1dBUF9MRV9CRS4KCSAgQWxzbyBhZGQgR1NUX1JFQURfIGFuZCBHU1RfV1JJVEVfIG1hY3JvcyBmb3IgZmxvYXRzIGFuZCBkb3VibGVzOgoJICBHU1RfUkVBRF9GTE9BVF9MRSwgR1NUX1JFQURfRkxPQVRfQkUsIEdTVF9SRUFEX0RPVUJMRV9MRSwKCSAgR1NUX1JFQURfRE9VQkxFX0JFLCBHU1RfV1JJVEVfRkxPQVRfTEUsIEdTVF9XUklURV9GTE9BVF9CRSwKCSAgR1NUX1dSSVRFX0RPVUJMRV9MRSwgR1NUX1dSSVRFX0RPVUJMRV9CRS4KCjIwMDgtMTAtMjIgMTQ6NDc6MDQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFQSTogQWRkIGdzdF9ieXRlX3JlYWRlcl9nZXRfZGF0YSBhbmQgZ3N0X2J5dGVfcmVhZGVyX3BlZWtfZGF0YSB0byBnZXQgYSBwb2ludGVyIHRvIHRoZSBkYXRhIGF0IHRoZSBjdXJyZW50IHBvc2l0aW9uIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOiAoZ3N0X2J5dGVfcmVhZGVyX2dldF9kYXRhKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX2RhdGEpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgQVBJOiBBZGQgZ3N0X2J5dGVfcmVhZGVyX2dldF9kYXRhIGFuZCBnc3RfYnl0ZV9yZWFkZXJfcGVla19kYXRhCgkgIHRvIGdldCBhIHBvaW50ZXIgdG8gdGhlIGRhdGEgYXQgdGhlIGN1cnJlbnQgcG9zaXRpb24gYW5kIGhhdmUKCSAgYSBndWFyYW50ZWVkIHNpemUuCgoyMDA4LTEwLTIyIDE0OjI1OjE2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogRml4IGEgYnVnIGluIHRoZSBvdXRwdXQgb2YgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgc3VtbWFyeSB3aGVuIC0tZ3N0LWRpc2FibGUtcmVnaXN0cnkgaXMgc3VwcGxpZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBGaXggYSBidWcgaW4gdGhlIG91dHB1dCBvZiB0aGUgY29uZmlndXJlIHNjcmlwdCBzdW1tYXJ5CgkgIHdoZW4gLS1nc3QtZGlzYWJsZS1yZWdpc3RyeSBpcyBzdXBwbGllZAoKMjAwOC0xMC0yMiAxMzo0NzoyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9iYXNlLzogRml4IHRoZSBuYW1lcyBvZiAyIGZ1bmN0aW9ucyBpbiB0aGUgZG9jcyBzdHJpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBGaXggdGhlIG5hbWVzIG9mIDIgZnVuY3Rpb25zIGluIHRoZSBkb2NzIHN0cmluZ3MuCgoyMDA4LTEwLTIxIDE2OjMwOjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFByb3RlY3Qgc2lua19hbGxvYyBjYXBzIHdpdGggdGhlIHNpbmtwYWQgbG9jayB0byBhdm9pZCBuYXN0eSBjYXBzIHJlZmNvdW50IHByb2JsZW1zLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zdWdnZXN0KToKCSAgUHJvdGVjdCBzaW5rX2FsbG9jIGNhcHMgd2l0aCB0aGUgc2lua3BhZCBsb2NrIHRvIGF2b2lkIG5hc3R5IGNhcHMKCSAgcmVmY291bnQgcHJvYmxlbXMgYXMgc2VlbiBpbiBiYW5zaGVlIGFuZCBtYXliZSBhbHNvIGluIGZhcnNpZ2h0Mi4KCSAgUmVtb3ZlIGF0b21pYyBpbnQgbm93IHRoYXQgd2UgbmVlZCB0byB0YWtlIHRoZSBsb2NrIGFueXdheXMuCgoyMDA4LTEwLTIwIDE1OjE4OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJbXBsZW1lbnQgbW9yZSBzZWVraW5nIGluIHB1bGwgbW9kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19kZWZhdWx0X2RvX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc2lua19kZWZhdWx0X3ByZXBhcmVfc2Vla19zZWdtZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfcGVyZm9ybV9zZWVrKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX2xhc3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fcGF1c2VkKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpOgoJICBJbXBsZW1lbnQgbW9yZSBzZWVraW5nIGluIHB1bGwgbW9kZS4KCSAgVXNlIHBhZCBjb252ZXJ0IGZ1bmN0aW9ucyB0byBjb252ZXJ0IHBvc2l0aW9uIHRvIHRoZSByZXF1ZXN0ZWQgZm9ybWF0LgoJICBGaXggcG9zaXRpb24vZHVyYXRpb24gcmVwb3J0aW5nIGluIHB1bGwgbW9kZS4KCSAgSW1wbGVtZW50IHBvc2l0aW9uIGFuZCBkdXJhdGlvbiByZXBvcnRpbmcgaW4gb3RoZXIgZm9ybWF0cyB0aGFuIHRpbWUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBZGQgbWVtYmVyIHRvIGtlZXAgdHJhY2sgb2Ygd2hlbiB0aGUgc2VnbWVudCBpcyBwbGF5aW5nLgoKMjAwOC0xMC0yMCAxMzozMjowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogV2hlbiB3ZSB1c2UgZ3N0X3BhZF9hbGxvY19idWZmZXIoKSB3aXRob3V0IHdhbnRpbmcgdG8gc2V0IHRoZSBjYXBzIHdlIGFsc28gZG9uJ3QgbmVlZCB0byBjaGVjayBpZiB0aGUgYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpOgoJICBXaGVuIHdlIHVzZSBnc3RfcGFkX2FsbG9jX2J1ZmZlcigpIHdpdGhvdXQgd2FudGluZyB0byBzZXQgdGhlIGNhcHMgd2UKCSAgYWxzbyBkb24ndCBuZWVkIHRvIGNoZWNrIGlmIHRoZSBjYXBzIGFyZSBjb21wYXRpYmxlIGJlY2F1c2UgdGhlIGNhbGxlcgoJICBwcmVzdW1hYmx5IGlzIGdvaW5nIHRvIHBlcmZvcm0gaXRzIG93biBjdXN0b20gY2hlY2tzLiBGaXhlcyBzb21lIGNhc2VzCgkgIHdoZXJlIGJhc2V0cmFuc2Zvcm0gZWxlbWVudHMgd291bGQgZXJyb3Igb3V0IHdoZW4gaXQgd2FzIG5vdCBuZWVkZWQuCgoyMDA4LTEwLTIwIDEzOjI5OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFVwZGF0ZSBjb21tZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspOgoJICBVcGRhdGUgY29tbWVudC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9yZWNvbmZpZ3VyZSk6CgkgIEFkZCBzb21lIGRlYnVnIGluZm8uCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBZGQgbmV3IG1ldGhvZC4KCjIwMDgtMTAtMTkgMTk6NTc6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfZG9fc2Vlayk7CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfZG9fc2Vlayk7CgkgIFJlbW92ZSBkdXBsaWNhdGVkIGFzc2lnbm1lbnQgYW5kIGxvZyBhIG1lc3NhZ2UgaW4gZmFpbHVyZSBjYXNlLgoKMjAwOC0xMC0xOSAxMDoxMzozOSArMDAwMCAgRGlnIEdlIDxkaWcuZ2UuY25AZ21haWwuY29tPgoKCSAgdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6IEZpeCBjb3B5J24ncGFzdGUgYnVnIGluIGhlbGxvIHdvcmxkIGV4YW1wbGUgKCM1NTY5MDApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IERpZyBHZSA8ZGlnLmdlLmNuIGF0IGdtYWlsIGNvbT4KCSAgKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzogKG1haW4pOgoJICBGaXggY29weSduJ3Bhc3RlIGJ1ZyBpbiBoZWxsbyB3b3JsZCBleGFtcGxlICgjNTU2OTAwKS4KCjIwMDgtMTAtMTcgMTM6Mjc6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFF1ZXJ5IHRoZSB0b3RhbCBudW1iZXIgb2YgYnl0ZXMgd2hlbiBhY3RpdmF0aW5nIHRoZSBwYWQgaW4gcHVsbCBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpOgoJICBRdWVyeSB0aGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzIHdoZW4gYWN0aXZhdGluZyB0aGUgcGFkIGluIHB1bGwgbW9kZS4KCSAgSW1wbGVtZW50IGR1cmF0aW9uIHF1ZXJ5IGluIHB1bGwgbW9kZSBieSB1c2luZyB0aGUgaW5zdGFsbGVkIHBhZCBjb252ZXJ0CgkgIGZ1bmN0aW9uIHRvIGNvbnZlcnQgZnJvbSBieXRlcyB0byB0aGUgcmVxdWVzdGVkIGZvcm1hdC4KCjIwMDgtMTAtMTYgMTQ6MDk6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgbWV0aG9kIHRvIGNvbW1pdCB0aGUgc3RhdGUgaW4gc3ViY2xhc3Nlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RvX3ByZXJvbGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19mbHVzaF9zdGFydCksIChnc3RfYmFzZV9zaW5rX2ZsdXNoX3N0b3ApLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fc2VlayksCgkgIChnc3RfYmFzZV9zaW5rX2xvb3ApLCAoZ3N0X2Jhc2Vfc2lua19wYWRfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zaW5rX3NlbmRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkIG1ldGhvZCB0byBjb21taXQgdGhlIHN0YXRlIGluIHN1YmNsYXNzZXMuCgkgIFJlZmFjdG9yIHRoZSBmbHVzaF9zdGFydCBhbmQgZmx1c2hfc3RvcCBjb2RlIGJlY2F1c2Ugd2UgbmVlZCBpdCBmb3IKCSAgZmx1c2hpbmcgd2hpbGUgc2Vla2luZyB0b28uCgkgIEltcGxlbWVudCB0aGUgYmVnaW5uaW5ncyBvZiBzZWVraW5nIGluIHB1bGwgbW9kZS4KCSAgVXNlIHRoZSBzZWdtZW50IGxhc3Rfc3RvcCBmaWVsZCBmb3IgdGhlIHB1bGxpbmcgb2Zmc2V0LgoJICBGaXggdGhlIHBhdXNlIG1ldGhvZCBpbiBwdWxsIG1vZGUuCgkgIENvbmZpZ3VyZSB0aGUgc2VnbWVudCB0byBCWVRFUyBmb3IgcHVsbCBtb2RlLgoJICBBUEk6IEdzdEJhc2VTaW5rOjpnc3RfYmFzZV9zaW5rX2RvX3ByZXJvbGwoKQoKMjAwOC0xMC0xNiAxMzo1Njo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBVcGRhdGUgc29tZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KToKCSAgVXBkYXRlIHNvbWUgZG9jcy4KCjIwMDgtMTAtMTQgMTc6MTA6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cXVhcmsuYzogRml4IHByaW50ZiBmb3JtYXQgd2FybmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1YXJrLmM6IChfcHJpdl9nc3RfcXVhcmtzX2luaXRpYWxpemUpOgoJICBGaXggcHJpbnRmIGZvcm1hdCB3YXJuaW5nLgoKMjAwOC0xMC0xNCAxMjozNDo1NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogRml4IGZsb3cgYWdncmVnYXRpb24gb2YgdGVlLiBFcnJvciBvdXQgaW1tZWRpYXRlbHkgZm9yIGFsbCBmbG93IHJldHVybnMgZXhjZXB0IE9LIGFuZCBOT1RfLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2hhbmRsZV9idWZmZXIpOgoJICBGaXggZmxvdyBhZ2dyZWdhdGlvbiBvZiB0ZWUuIEVycm9yIG91dCBpbW1lZGlhdGVseSBmb3IgYWxsIGZsb3cgcmV0dXJucwoJICBleGNlcHQgT0sgYW5kIE5PVF9MSU5LRUQsIHJldHVybiBOT1RfTElOS0VEIGlmIGFsbCBwYWRzIGFyZSBub3QgbGlua2VkCgkgIGFuZCByZXR1cm4gT0sgaWYgYXQgbGVhc3Qgb25lIHBhZCBpcyBsaW5rZWQuCgkgIEJlZm9yZSB3ZSBlcnJvcmVkIG91dCBvbiAiZmF0YWwiIGZsb3cgcmV0dXJucyAoaS5lLiBub3QgZm9yIFdST05HX1NUQVRFKQoJICBhbmQgb3RoZXJ3aXNlIHJldHVybmVkIHRoZSBmbG93IHJldHVybiBvZiB0aGUgbGFzdCBwYWQsIHdoaWNoIGlzIHdyb25nLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOiAoX2Zha2VfY2hhaW4pLCAoX2Zha2VfY2hhaW5fZXJyb3IpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAodGVlX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdHMgZm9yIHRoZSBmbG93IGFnZ3JlZ2F0aW9uLgoKMjAwOC0xMC0xMyAxNzoxOToyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFJlbW92ZSBpdGVtIGZyb20gdGhlIHRvZG8gbGlzdCBiZWNhdXNlIGl0IHdhcyBmaXhlZCB3aXRoIHRoZSBsYXRlbmN5IHN0YXRlIGNoYW5nZSByZXdyaXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgUmVtb3ZlIGl0ZW0gZnJvbSB0aGUgdG9kbyBsaXN0IGJlY2F1c2UgaXQgd2FzIGZpeGVkIHdpdGggdGhlIGxhdGVuY3kKCSAgc3RhdGUgY2hhbmdlIHJld3JpdGVzLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkgIFVwZGF0ZSBzb21lIGRvY3MuCgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X25ld19zZWdtZW50X2Z1bGwpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX25ld19zZWdtZW50X2Z1bGwpLCAoZ3N0X2V2ZW50X25ld19idWZmZXJfc2l6ZSksCgkgIChnc3RfZXZlbnRfcGFyc2VfYnVmZmVyX3NpemUpLCAoZ3N0X2V2ZW50X25ld19xb3MpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3FvcyksIChnc3RfZXZlbnRfbmV3X3NlZWspLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3NlZWspLCAoZ3N0X2V2ZW50X25ld19sYXRlbmN5KSwKCSAgKGdzdF9ldmVudF9wYXJzZV9sYXRlbmN5KToKCSAgVXNlIHF1YXJrcyB0byBjb25zdHJ1Y3QgYW5kIHBhcnNlIGV2ZW50cy4KCSAgKiBnc3QvZ3N0cXVhcmsuYzogKF9wcml2X2dzdF9xdWFya3NfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHF1YXJrLmg6CgkgIEFkZCBzb21lIG1vcmUgcXVhcmtzIHRvIHRoZSB0YWJsZS4KCSAgRW1pdCBhIHdhcm5pbmcgd2hlbiB0aGUgcXVhcmsgdGFibGVzIGFyZSBub3QgaW4gc3luYy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBhbiBhc3NlcnQuCgoyMDA4LTEwLTEzIDE2OjQ3OjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zLzogRG9uJ3QgaW5zdGFsbCBzdGF0aWMgbGlicyBmb3IgcGx1Z2lucy4gRml4ZXMgIzU1MDg1MSBmb3IgY29yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJICBEb24ndCBpbnN0YWxsIHN0YXRpYyBsaWJzIGZvciBwbHVnaW5zLiBGaXhlcyAjNTUwODUxIGZvciBjb3JlLgoKMjAwOC0xMC0xMyAxMDo1MDoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuYzogRml4IGRlYWRsb2NrLCBnX3NvdXJjZV9nZXRfaWQoKSBjYW5ub3QgYmUgY2FsbGVkIGluIGZpbmFsaXplLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3NvdXJjZV9maW5hbGl6ZSksCgkgIChnc3RfYnVzX2FkZF93YXRjaF9mdWxsX3VubG9ja2VkKSwgKGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwpLAoJICAoZ3N0X2J1c19lbmFibGVfc3luY19tZXNzYWdlX2VtaXNzaW9uKSwKCSAgKGdzdF9idXNfZGlzYWJsZV9zeW5jX21lc3NhZ2VfZW1pc3Npb24pLAoJICAoZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoX2Z1bGwpLCAoZ3N0X2J1c19yZW1vdmVfc2lnbmFsX3dhdGNoKToKCSAgRml4IGRlYWRsb2NrLCBnX3NvdXJjZV9nZXRfaWQoKSBjYW5ub3QgYmUgY2FsbGVkIGluIGZpbmFsaXplLgoJICBLZWVwIHRyYWNrIG9mIHRoZSB3YXRjaCBzb3VyY2UgYnkga2VlcGluZyBhIHBvaW50ZXIgdG8gdGhlIHNvdXJjZSBvYmplY3QKCSAgaW5zdGVhZC4KCSAgVXNlIHRoZSBidXMgbG9jayB0byBwcm90ZWN0IGFjY2VzcyB0byB0aGUgcG9pbnRlciB0byB0aGUgY3VycmVudAoJICB3YXRjaCBzb3VyY2UuCgoyMDA4LTEwLTEzIDA5OjIyOjIyICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L2dzdGJ1cy5jOiBPbmx5IGFsbG93IG9uZSBidXMgd2F0Y2ggdG8gYmUgc2V0IGF0IGEgdGltZS4gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgZGlzcGF0Y2hlciBwb3BzIHRoZSBtZXNzYWdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlIG9uIFBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3NvdXJjZV9maW5hbGl6ZSksCgkgIChnc3RfYnVzX2FkZF93YXRjaF9mdWxsKSwgKGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaF9mdWxsKToKCSAgT25seSBhbGxvdyBvbmUgYnVzIHdhdGNoIHRvIGJlIHNldCBhdCBhIHRpbWUuIFRoaXMgaXMgbmVjZXNzYXJ5CgkgIGJlY2F1c2UgdGhlIGRpc3BhdGNoZXIgcG9wcyB0aGUgbWVzc2FnZSBmcm9tIHRoZSBidXMgYW5kIHRoZSBzZWNvbmQKCSAgd2F0Y2hlciB3aWxsIHRoZW4gZ2V0IE5VTEwgb3IgdGhlIG5leHQgbWVzc2FnZSAoYW5kIHRoZSBmaXJzdCB3b24ndAoJICBnZXQgdGhpcyBuZXh0IG1lc3NhZ2UgdGhlbiwgZXRjKS4gSWYgbW9yZSB0aGFuIG9uZSAid2F0Y2hlciIgaXMKCSAgcmVxdWlyZWQgc2lnbmFsIHdhdGNoZXMgc2hvdWxkIGJlIHVzZWQuIEZpeGVzIGJ1ZyAjNTI2MDQ0LgoKMjAwOC0xMC0xMiAyMjoxNjowMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IENoYW5nZSB0aGUgcHJpbnRpbmcgb2YgdGhlICdidWZmZXJpbmcuLi4nIG91dHB1dCB0byBhdm9pZCBwdXR0aW5nIGEgXHIgaW4gYSB0cmFuc2xhdGVhYmxlIHN0cmluZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBDaGFuZ2UgdGhlIHByaW50aW5nIG9mIHRoZSAnYnVmZmVyaW5nLi4uJyBvdXRwdXQgdG8gYXZvaWQgcHV0dGluZwoJICBhIFxyIGluIGEgdHJhbnNsYXRlYWJsZSBzdHJpbmcgKGZsYWdnZWQgYnkgdGhlIFRQKS4KCjIwMDgtMTAtMTAgMTU6Mzg6MDYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R4bWwuYzogQ2xhcmlmeSB0aGF0IHRoZSBzYXZlX3RoeXNlbGYoKSBhbmQgcmVzdG9yZV90aHlzZWxmKCkgdmlydHVhbCBmdW5jdGlvbnMgb2YgR3N0T2JqZWN0IG5lZWQgdG8gYmUgb3ZlcnJpZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0eG1sLmM6CgkgIENsYXJpZnkgdGhhdCB0aGUgc2F2ZV90aHlzZWxmKCkgYW5kIHJlc3RvcmVfdGh5c2VsZigpIHZpcnR1YWwKCSAgZnVuY3Rpb25zIG9mIEdzdE9iamVjdCBuZWVkIHRvIGJlIG92ZXJyaWRlbiwgbm90CgkgIGdzdF9vYmplY3RfKHNhdmV8cmVzdG9yZSlfdGh5c2VsZigpIHdoaWNoIGlzIGltcG9zc2libGUuCgkgIEZpeGVzIGJ1ZyAjNTU1NzAwLgoKMjAwOC0xMC0xMCAxNToyNzozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogUmV2ZXJ0IGEgcGF0Y2ggZnJvbSAyMSBtb250aHMgYWdvIHRoYXQgYnJva2UgY2FwcyBuZWdvdGlhdGlvbiBpbiBwdWxsIG1vZGUuIEJhc2ljYWxseSwgaGF2aW5nIGEgYnVmZmVyIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9yYW5nZSksIChnc3RfcGFkX3B1bGxfcmFuZ2UpOgoJICBSZXZlcnQgYSBwYXRjaCBmcm9tIDIxIG1vbnRocyBhZ28gdGhhdCBicm9rZSBjYXBzIG5lZ290aWF0aW9uIGluIHB1bGwKCSAgbW9kZS4gQmFzaWNhbGx5LCBoYXZpbmcgYSBidWZmZXIgcGFzcyBvdmVyIGEgcGFkIHdpbGwgdHJpZ2dlciB0aGUKCSAgc2V0Y2FwcyBmdW5jdGlvbiB3aGVuIGNhcHMgY2hhbmdlLCBqdXN0IGxpa2UgaW4gcHVzaCBtb2RlLgoKMjAwOC0xMC0xMCAxNToxMjoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OiBVcGRhdGUgdGhlIGRvY3Mgc29tZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgVXBkYXRlIHRoZSBkb2NzIHNvbWUgbW9yZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9wZWVrKToKCSAgSWYgd2UgcHVsbCBhIGJ1ZmZlciB3aXRoIG5vbi10cml2aWFsIGNhcHMsIHN1Z2dlc3QgdGhvc2UgY2FwcyB3aXRoIHRoZQoJICBtYXggcHJvYmFiaWxpdHkuCgoyMDA4LTEwLTEwIDE0OjMxOjAzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogQWRkIGFub3RoZXIgbGltaXRhdGlvbiBvZiBwYWQtYmxvY2tpbmcgd2l0aCBzZWdtZW50IHNlZWtzIG5vdCBwdXNoaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIEFkZCBhbm90aGVyIGxpbWl0YXRpb24gb2YgcGFkLWJsb2NraW5nIHdpdGggc2VnbWVudCBzZWVrcyBub3QgcHVzaGluZwoJICBFT1MgZXZlbnRzLgoKMjAwOC0xMC0xMCAxMzoyNDoxMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB3aW4zMi9jb21tb24vOiBBZGQgbmV3IHN5bWJvbHMgdG8gdGhlIHdpbjMyIGRlZnMgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IHN5bWJvbHMgdG8gdGhlIHdpbjMyIGRlZnMgZmlsZXMKCjIwMDgtMTAtMTAgMTA6Mzg6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFRoZSBtZXNzYWdlIHNyYyBjYW4gYmUgTlVMTCwgZG9uJ3QgdHJ5IHRvIHByaW50IHRoZSBvYmplY3QgbmFtZXMgaW4gdGhhdCBjYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKHVwZGF0ZV9kZWdyZWUpLAoJICAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgVGhlIG1lc3NhZ2Ugc3JjIGNhbiBiZSBOVUxMLCBkb24ndCB0cnkgdG8gcHJpbnQgdGhlIG9iamVjdCBuYW1lcyBpbiB0aGF0CgkgIGNhc2UuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wYWRfYWN0aXZhdGUpOgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzogKHJ1bl9waXBlbGluZSksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBzb21lIGRlYnVnLgoJICBGaXggdGhlIHRlc3QsIHB1bGwgYmFzZWQgc2lua3MgZ28gQVNZTkMgdG8gUEFVU0VELCBqdXN0IGxpa2Ugb3RoZXIKCSAgc2NoZWR1bGluZyBtb2Rlcy4KCjIwMDgtMTAtMTAgMTA6MDE6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDogU21hbGwgZG9jIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgIFNtYWxsIGRvYyB1cGRhdGUuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19wYWRfZ2V0Y2FwcyksIChnc3RfYmFzZV9zaW5rX3BhZF9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3NpbmtfaW5pdCksIChnc3RfYmFzZV9zaW5rX3NldF9ibG9ja3NpemUpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfYmxvY2tzaXplKSwgKGdzdF9iYXNlX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NpbmtfbmVlZHNfcHJlcm9sbCksCgkgIChnc3RfYmFzZV9zaW5rX2xvb3ApLCAoZ3N0X2Jhc2Vfc2lua19wYWRfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19uZWdvdGlhdGVfcHVsbCksIChnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZCBibG9ja3NpemUgcHJvcGVydHkgYW5kIG1ldGhvZHMgdG8gY29udHJvbCB0aGUgYW1vdW50IG9mIGRhdGEKCSAgdG8gcHVsbC4KCSAgTmVnb3RpYXRlIGZpcnN0IGJlZm9yZSBhY3RpdmF0aW5nIHVwc3RyZWFtIGluIHB1bGwgbW9kZSBzbyB0aGF0IHRoZXkgY2FuCgkgIG5lZ290aWF0ZSB0aGVtc2VsdmVzLgoJICBXaGVuIHdlIG9wZXJhdGUgaW4gcHVsbCBtb2RlLCB3ZSBvbmx5IGFjY2VwdCB0aGUgY2FwcyB0aGF0IHdlCgkgIG5lZ290aWF0ZWQuCgkgIE1ha2UgdGhlIHNpbmsgZ28gQVNZTkMgdG8gUEFVU0VELCBsaWtlIGFsbCBvdGhlciBzaW5rcy4KCSAgQVBJOiBHc3RCYXNlU2luazo6Z3N0X2Jhc2Vfc2lua19zZXRfYmxvY2tzaXplKCkKCSAgQVBJOiBHc3RCYXNlU2luazo6Z3N0X2Jhc2Vfc2lua19nZXRfYmxvY2tzaXplKCkKCSAgQVBJOiBHc3RCYXNlU2luazo6YmxvY2tzaXplCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfd2FpdF9wbGF5aW5nKSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfbGl2ZSksIChnc3RfYmFzZV9zcmNfaXNfbGl2ZSksCgkgIChnc3RfYmFzZV9zcmNfc2V0X2Zvcm1hdCksIChnc3RfYmFzZV9zcmNfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zcmNfc2V0X2Jsb2Nrc2l6ZSksIChnc3RfYmFzZV9zcmNfZ2V0X2Jsb2Nrc2l6ZSksCgkgIChnc3RfYmFzZV9zcmNfc2V0X2RvX3RpbWVzdGFtcCksIChnc3RfYmFzZV9zcmNfZ2V0X2RvX3RpbWVzdGFtcCksCgkgIChnc3RfYmFzZV9zcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NyY19nZXRfcHJvcGVydHkpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBBZGQgdHlwZWNoZWNraW5nIGluIHB1YmxpYyBBUEkgZnVuY3Rpb25zLgoJICBBZGQgbWV0aG9kcyB0byBjb250cm9sIHRoZSBibG9ja3NpemUgaW4gc3ViY2xhc3Nlcy4KCSAgQVBJOiBHc3RCYXNlU3JjOjpnc3RfYmFzZV9zcmNfc2V0X2Jsb2Nrc2l6ZSgpCgkgIEFQSTogR3N0QmFzZVNyYzo6Z3N0X2Jhc2Vfc3JjX2dldF9ibG9ja3NpemUoKQoKMjAwOC0xMC0xMCAwOToxMToxMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiBXZSBub3cgc2VlIDMgZXZlbnRzIGdvIHRocm91Z2ggb3VyIHBhZCwgc2luY2UgYmFzZXNpbmsgbm93IHNlbmRzIHVwc3RyZWFtIGxhdGVuY3kgZXZlbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKHByb2JlX2RvX25vdGhpbmcpLCAoZGF0YV9wcm9iZSksCgkgIChidWZmZXJfcHJvYmUpLCAoZXZlbnRfcHJvYmUpLCAoR1NUX1NUQVJUX1RFU1QpOgoJICBXZSBub3cgc2VlIDMgZXZlbnRzIGdvIHRocm91Z2ggb3VyIHBhZCwgc2luY2UgYmFzZXNpbmsgbm93IHNlbmRzCgkgIHVwc3RyZWFtIGxhdGVuY3kgZXZlbnRzLgoKMjAwOC0xMC0wOCAxNToyMToxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBSZWxlYXNlIHRoZSBvYmplY3QgbG9jayBiZWZvcmUgdHJ5aW5nIHRvIGZsdXNoIHRoZSBidXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgIFJlbGVhc2UgdGhlIG9iamVjdCBsb2NrIGJlZm9yZSB0cnlpbmcgdG8gZmx1c2ggdGhlIGJ1cy4KCjIwMDgtMTAtMDggMTQ6MjE6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEZvcndhcmQgTEFURU5DWSBldmVudHMgdXBzdHJlYW1zIHNvIHRoYXQgZWxlbWVudHMga25vdyBhYm91dCB0aGUgdG90YWwgcGlwZWxpbmUgbGF0ZW5jeS4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19zZW5kX2V2ZW50KToKCSAgRm9yd2FyZCBMQVRFTkNZIGV2ZW50cyB1cHN0cmVhbXMgc28gdGhhdCBlbGVtZW50cyBrbm93IGFib3V0IHRoZSB0b3RhbAoJICBwaXBlbGluZSBsYXRlbmN5LiBGaXhlcyAjNTU1MzA3LgoKMjAwOC0xMC0wOCAxMToyMDoxNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IEFsbG93IHRocm91Z2ggcXVlcmllcyB3aGVuIHdlIGRvbid0IGtub3cgaG93IGFzIG90aGVyd2lzZSBpdCdzIG5vdCBwb3NzaWJsZSB0byBxdWVyeSB0aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBBbGxvdyB0aHJvdWdoIHF1ZXJpZXMgd2hlbiB3ZSBkb24ndCBrbm93IGhvdwoJICB0byBhZGp1c3QgdGhlbSAobm90IFRJTUUgb3IgQllURVMpLCBhcyBvdGhlcndpc2UgaXQncwoJICBub3QgcG9zc2libGUgdG8gcXVlcnkgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gb3JkZXIKCSAgdG8gc2VlayBpbiBvdGhlciBmb3JtYXRzIGF0IGFsbC4KCjIwMDgtMTAtMDggMTE6MTI6MTUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgY2hhbmdlbG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjaGFuZ2Vsb2cKCjIwMDgtMTAtMDggMTE6MTE6MjUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFBsYWNhdGUgZG9jIHBlbmRhbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0xMC0wOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBQbGFjYXRlIGRvYyBwZW5kYW50cy4KCjIwMDgtMTAtMDggMTA6Mzk6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuKjogVW5icmVhayAtZ29vZCBidWlsZCwgcHJpdmF0ZSBpcyBhIHJlc2VydmVkIGMrKyBrZXl3b3JkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSAgVW5icmVhayAtZ29vZCBidWlsZCwgcHJpdmF0ZSBpcyBhIHJlc2VydmVkIGMrKyBrZXl3b3JkLgoKMjAwOC0xMC0wOCAxMDoxOToxMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLio6IEZpeCB1bmludGVuZGVkIEFQSSByZW1vdmFsOiByZS1hZGQgR1NUX0dIT1NUX1BBRF9DQVNUIHRvIHRoZSBoZWFkZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTEwLTA4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RnaG9zdHBhZC5oIChHU1RfR0hPU1RfUEFEX0NBU1QpOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jIChHU1RfR0hPU1RfUEFEX0NBU1QpOiBGaXggdW5pbnRlbmRlZCBBUEkKCSAgcmVtb3ZhbDogcmUtYWRkIEdTVF9HSE9TVF9QQURfQ0FTVCB0byB0aGUgaGVhZGVyLgoKMjAwOC0xMC0wOCAxMDoxMjo0NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmggKEdzdFByb3h5UGFkLCBHc3RQcm94eVBhZENsYXNzLCBHc3RHaG9zdFBhZCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMTAtMDggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmggKEdzdFByb3h5UGFkLCBHc3RQcm94eVBhZENsYXNzLCBHc3RHaG9zdFBhZCkKCSAgKEdzdEdob3N0UGFkQ2xhc3MpOiBQdWJsaWNhbGx5IGV4cG9zZSB0aGVzZSBzdHJ1Y3R1cmVzIHNvIGFzIHRvCgkgIGFsbG93IGVhc3kgc3ViY2xhc3NpbmcgZnJvbSBDLiBIaWRlIHRoZSBtZW1iZXIgZGF0YSBiZWhpbmQgYQoJICBwcml2YXRlIG9wYXF1ZSBkYXRhIHBvaW50ZXIuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IEFkYXB0IHRvIHN0b3JlIGluc3RhbmNlIGRhdGEgaW4gdGhlIHR5cGUKCSAgaW5zdGFuY2UncyBwcml2YXRlIGRhdGEgcmVnaW9uLCBub3QgaW4gdGhlIHB1YmxpYyBzdHJ1Y3QuCgoyMDA4LTEwLTA4IDEwOjA3OjE1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogSWYgd2UgY2FuJ3QgZ2V0IGEgY2FjaGUgZmlsZSBkb24ndCB0cnkgdG8gc2F2ZSBzb21ldGhpbmcgdG8gaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZV9jYWNoZSk6CgkgIElmIHdlIGNhbid0IGdldCBhIGNhY2hlIGZpbGUgZG9uJ3QgdHJ5IHRvIHNhdmUgc29tZXRoaW5nIHRvIGl0LgoJICBEZXJlZmVyZW5jaW5nIE5VTEwgcG9pbnRlcnMgdXN1YWxseSBpc24ndCBhIGdvb2QgaWRlYS4KCjIwMDgtMTAtMDggMDg6NTQ6NTUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfZ2hvc3RfcGFkX2NvbnN0cnVjdCk6IElmIHdlIGdvdCBhIHRlbXBsYXRlIHZpYSBnX29iamVjdF9nZXQoKSwgYmUgc3VyZSB0byB1bnJlZiBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMTAtMDggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9naG9zdF9wYWRfY29uc3RydWN0KTogSWYgd2UgZ290IGEKCSAgdGVtcGxhdGUgdmlhIGdfb2JqZWN0X2dldCgpLCBiZSBzdXJlIHRvIHVucmVmIGl0LgoJICAqIGdzdC9nc3RidWZmZXIuaCAoR1NUX0JVRkZFUl9GUkVFX0ZVTkMpOiBGaXggaW5jb3JyZWN0IGRvYy4KCjIwMDgtMTAtMDcgMTU6MTI6MjEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svOiBBZGQgU3BhcmMgQUJJIGNoZWNrcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9zcGFyYy5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3NwYXJjLmg6CgkgIEFkZCBTcGFyYyBBQkkgY2hlY2tzCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIENhc3Qgc2lnbmVkIGludGVnZXIgdG8gdW5zaWduZWQgdG8gYXZvaWQgYSBjb21waWxlciB3YXJuaW5nLgoKMjAwOC0xMC0wNyAxMjoyNjo0MCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6IFVzZSBuZXcgR1NUX1JFQURfVUlOVDI0XyhMRXxCRSkgbWFjcm9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzogKGdzdF9ieXRlX3JlYWRlcl9nZXRfdWludDI0X2xlKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9nZXRfdWludDI0X2JlKSwgKGdzdF9ieXRlX3JlYWRlcl9nZXRfaW50MjRfbGUpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX2dldF9pbnQyNF9iZSksIChnc3RfYnl0ZV9yZWFkZXJfcGVla191aW50MjRfbGUpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfdWludDI0X2JlKSwgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX2ludDI0X2xlKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX2ludDI0X2JlKToKCSAgVXNlIG5ldyBHU1RfUkVBRF9VSU5UMjRfKExFfEJFKSBtYWNyb3MuCgoyMDA4LTEwLTA3IDEyOjAwOjQ5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBbHdheXMgdXNlIHRoZSB1bmFsaWduZWQgdmFyaWFudHMgb2YgR1NUX1JFQURfVUlOVCogYW5kIEdTVF9XUklURV9VSU5UKiBhcyBpdCdzIHRvbyBlYXN5IHRvIGJyZWFrIHRoZSBJU08gQyBzdHJpY3QgYWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWx3YXlzIHVzZSB0aGUgdW5hbGlnbmVkIHZhcmlhbnRzIG9mIEdTVF9SRUFEX1VJTlQqIGFuZCBHU1RfV1JJVEVfVUlOVCoKCSAgYXMgaXQncyB0b28gZWFzeSB0byBicmVhayB0aGUgSVNPIEMgc3RyaWN0IGFsaWFzaW5nIHJ1bGVzIHdpdGggc2ltcGxlCgkgIGNhc3RzIHRvIHRoZSBjb3JyZXNwb25kaW5nIHR5cGUgYW5kIHRoaXMgd291bGQgaW50cm9kdWNlIGhhcmQgdG8gZGVidWcKCSAgYnVncy4gRml4ZXMgYnVnICM1NDU3MTQuCgkgIEFQSTogQWRkIEdTVF9SRUFEX1VJTlQyNF8oTEV8QkUpIGFuZCBHU1RfV1JJVEVfVUlOVDI0XyhMRXxCRSkuCgoyMDA4LTEwLTA3IDA2OjU2OjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogQWRkICdTaW5jZScgYml0cyB0byBndGstZG9jIGNodW5rcyBmb3IgbmV3IEFQSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOiAoR1NUX0JVRkZFUl9GUkVFX0ZVTkMpOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9jb25zdHJ1Y3QpOgoJICBBZGQgJ1NpbmNlJyBiaXRzIHRvIGd0ay1kb2MgY2h1bmtzIGZvciBuZXcgQVBJLgoKMjAwOC0xMC0wNiAyMTo1Mjo1NyArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEZpeCBkb2N1bWVudGF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEZpeCBkb2N1bWVudGF0aW9uCgoyMDA4LTEwLTA2IDE4OjAzOjU4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIGNoYW5nZWxvZywgZG9oCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjaGFuZ2Vsb2csIGRvaAoKMjAwOC0xMC0wNiAxODowMTo0MiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5oIChHU1RfQlVGRkVSX0ZSRUVfRlVOQyk6IE5ldyBBUEksIGEgZnJlZSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIG9uIHRoZSBtYWxsb2NfZGF0YSB0byBmcmVlIGl0LiBCLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTEwLTA2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RidWZmZXIuaCAoR1NUX0JVRkZFUl9GUkVFX0ZVTkMpOiBOZXcgQVBJLCBhIGZyZWUgZnVuY3Rpb24KCSAgdGhhdCB3aWxsIGJlIGNhbGxlZCBvbiB0aGUgbWFsbG9jX2RhdGEgdG8gZnJlZSBpdC4gQmFzaWNhbGx5IGEgd2F5CgkgIHRvIGF2b2lkIHN1YmNsYXNzaW5nIHdoZW4gYWxsIHlvdSBuZWVkIGlzIGEgZGlmZmVyZW50IGZyZWUKCSAgZnVuY3Rpb24sIGkuZS4gZnJlZSgpIGluc3RlYWQgb2YgZ19mcmVlKCkuCgkgICogZ3N0L2dzdGJ1ZmZlci5jIChnc3RfYnVmZmVyX2ZpbmFsaXplKTogRnJlZSBtYWxsb2NfZGF0YSB2aWEKCSAgY2FsbGluZyB0aGUgZnJlZSBmdW5jdGlvbi4KCSAgKGdzdF9idWZmZXJfaW5pdCk6IEluaXRpYWxpemUgdGhlIGZyZWUgZnVuY3Rpb24gdG8gZ19mcmVlLgoKMjAwOC0xMC0wNiAxNzo1NzoyNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLio6IE5ldyBmdW5jdGlvbiwgZmluaXNoZXMgdGhlIGluaXRpYWxpemF0aW9uIG9mIGdob3N0IHBhZC4gVXNlZnVsIGZvciBsYW5ndWFnZSBiaW5kaW5ncyBhbmQgc3ViY2xhc3NlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTEwLTA2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RnaG9zdHBhZC5oOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfZ2hvc3RfcGFkX2NvbnN0cnVjdCk6IE5ldyBmdW5jdGlvbiwKCSAgZmluaXNoZXMgdGhlIGluaXRpYWxpemF0aW9uIG9mIGdob3N0IHBhZC4gVXNlZnVsIGZvciBsYW5ndWFnZQoJICBiaW5kaW5ncyBhbmQgc3ViY2xhc3NlcnMgb2YgR3N0R2hvc3RQYWQuIEZpeGVzICM1MzkxMDguCgkgIChnc3RfZ2hvc3RfcGFkX25ld19mdWxsKTogVXNlIHRoZSBuZXcgY29uc3RydWN0b3IuCgoyMDA4LTEwLTA2IDE2OjE1OjAyICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L2dzdGJpbi5jOiBLZWVwIHRyYWNrIG9mIHBhZHMgdGhhdCBhcmUgYmVpbmcgbGlua2VkL3VubGlua2VkIGFuZCByZXN5bmMgdGhlIHN0YXRlIGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlIG9uIFBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2luaXQpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKHVwZGF0ZV9kZWdyZWUpLAoJICAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25ldyksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBLZWVwIHRyYWNrIG9mIHBhZHMgdGhhdCBhcmUgYmVpbmcgbGlua2VkL3VubGlua2VkIGFuZCByZXN5bmMgdGhlIHN0YXRlCgkgIGNoYW5nZXMuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfZGlyZWN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2NoYWluX2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X2dldHJhbmdlX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pLCAoZ3N0X3BhZF91bmxpbmspLAoJICAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLCAoZ3N0X3BhZF9saW5rKSwKCSAgKGdzdF9wYWRfZXZlbnRfZGVmYXVsdF9kaXNwYXRjaCksIChnc3RfcGFkX2NoYWluKSwgKGdzdF9wYWRfcHVzaCksCgkgIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpLCAoZ3N0X3BhZF9nZXRfcmFuZ2UpLAoJICAoZ3N0X3BhZF9wdWxsX3JhbmdlKToKCSAgU29tZSBjb2RlIGNsZWFudXBzLCB1c2UgbWFjcm9zIHRvIGNoZWNrIHBhZCBkaXJlY3Rpb24uCgkgIERvbid0IG5lZWQgdG8gdGFrZSB0aGUgbG9jayBvbiB0aGUgcGFkIGRpcmVjdGlvbi4KCSAgUG9zdCBzdHJ1Y3R1cmUgY2hhbmdlIHdoZW4gcGFkcyBhcmUgbGlua2VkL3VubGlua2VkLgoJICBDaGFuZ2Ugc29tZSBjaGVja3MgaW50byBfcmV0dXJuX2lmX2ZhaWwoKS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgICh0ZXN0X2xpbmtfc3RydWN0dXJlX2NoYW5nZV9zdGF0ZV9jaGFuZ2VkX3N5bmNfY2IpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2Jpbl9zdWl0ZSk6CgkgIEFkZCB0ZXN0Y2FzZSBmb3IgcGFkIGxpbmsvdW5saW5rZSByZXN5bmMgZHVyaW5nIGEgc3RhdGUgY2hhbmdlLgoJICBGaXhlcyAjNTEwMzU0LgoKMjAwOC0xMC0wNiAxNTozMTo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEltcGxlbWVudCBTVFJVQ1RVUkVfQ0hBTkdFRCBtZXNzYWdlcy4gVGhlc2UgbWVzc2FnZXMgd2lsbCBiZSB1c2VkIHRvIHNpZ25hbCB0aGUgcGFyZW50IGJpbiBvZiBsaW5rL3VubGluayBvcGVyYXRpb25zIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfc3RydWN0dXJlX2NoYW5nZSksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zdHJ1Y3R1cmVfY2hhbmdlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBJbXBsZW1lbnQgU1RSVUNUVVJFX0NIQU5HRUQgbWVzc2FnZXMuIFRoZXNlIG1lc3NhZ2VzIHdpbGwgYmUgdXNlZCB0bwoJICBzaWduYWwgdGhlIHBhcmVudCBiaW4gb2YgbGluay91bmxpbmsgb3BlcmF0aW9ucyB0aGF0IGNvdWxkIHJlcXVpcmUgYQoJICByZXN5bmMgd2hlbiBkb2luZyBhIHN0YXRlIGNoYW5nZS4gU2VlICMjNTEwMzU0LgoJICBBUEk6IGdzdF9tZXNzYWdlX25ld19zdHJ1Y3R1cmVfY2hhbmdlKCkKCSAgQVBJOiBnc3RfbWVzc2FnZV9wYXJzZV9zdHJ1Y3R1cmVfY2hhbmdlKCkKCjIwMDgtMTAtMDYgMTU6MjE6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVhcmsuKjogQWRkIHNvbWUgbW9yZSBxdWFya3MgZm9yIG5ldyBtZXNzYWdlLiBTZWUgIzUxMDM1NC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1YXJrLmM6CgkgICogZ3N0L2dzdHF1YXJrLmg6CgkgIEFkZCBzb21lIG1vcmUgcXVhcmtzIGZvciBuZXcgbWVzc2FnZS4gU2VlICM1MTAzNTQuCgoyMDA4LTEwLTA2IDEyOjU3OjM5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBhZGQgQVBJIHRhZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IGFkZCBBUEkgdGFnCgoyMDA4LTEwLTA2IDEyOjQxOjUzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBZGQgYml0IHJlYWRlciBhbmQgYnl0ZSByZWFkZXIgY2xhc3NlcywgaW5jbHVkaW5nIGRvY3VtZW50YXRpb24gYW5kIGFuIGV4dGVuc2l2ZSB1bml0IHRlc3Qgc3VpdGUuIEZpeGVzIGJ1ZyAjNTUzNTU0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOiAoZ3N0X2JpdF9yZWFkZXJfbmV3KSwKCSAgKGdzdF9iaXRfcmVhZGVyX25ld19mcm9tX2J1ZmZlciksIChnc3RfYml0X3JlYWRlcl9mcmVlKSwKCSAgKGdzdF9iaXRfcmVhZGVyX2luaXQpLCAoZ3N0X2JpdF9yZWFkZXJfaW5pdF9mcm9tX2J1ZmZlciksCgkgIChnc3RfYml0X3JlYWRlcl9zZXRfcG9zKSwgKGdzdF9iaXRfcmVhZGVyX2dldF9wb3MpLAoJICAoZ3N0X2JpdF9yZWFkZXJfZ2V0X3JlbWFpbmluZyksIChnc3RfYml0X3JlYWRlcl9za2lwKSwKCSAgKGdzdF9iaXRfcmVhZGVyX3NraXBfdG9fYnl0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzogKEdET1VCTEVfU1dBUF9MRV9CRSksCgkgIChHRkxPQVRfU1dBUF9MRV9CRSksIChnc3RfYnl0ZV9yZWFkZXJfbmV3KSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9uZXdfZnJvbV9idWZmZXIpLCAoZ3N0X2J5dGVfcmVhZGVyX2ZyZWUpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX2luaXQpLCAoZ3N0X2J5dGVfcmVhZGVyX2luaXRfZnJvbV9idWZmZXIpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX3NldF9wb3MpLCAoZ3N0X2J5dGVfcmVhZGVyX2dldF9wb3MpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX2dldF9yZW1haW5pbmcpLCAoZ3N0X2J5dGVfcmVhZGVyX3NraXApLAoJICAoZ3N0X2J5dGVfcmVhZGVyX2dldF91aW50OCksIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X2ludDgpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfdWludDgpLCAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfaW50OCksCgkgIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X3VpbnQyNF9sZSksIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X3VpbnQyNF9iZSksCgkgIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X2ludDI0X2xlKSwgKGdzdF9ieXRlX3JlYWRlcl9nZXRfaW50MjRfYmUpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfdWludDI0X2xlKSwgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX3VpbnQyNF9iZSksCgkgIChnc3RfYnl0ZV9yZWFkZXJfcGVla19pbnQyNF9sZSksIChnc3RfYnl0ZV9yZWFkZXJfcGVla19pbnQyNF9iZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9iaXRfcmVhZGVyX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9zdWl0ZSk6CgkgIEFkZCBiaXQgcmVhZGVyIGFuZCBieXRlIHJlYWRlciBjbGFzc2VzLCBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbgoJICBhbmQgYW4gZXh0ZW5zaXZlIHVuaXQgdGVzdCBzdWl0ZS4gRml4ZXMgYnVnICM1NTM1NTQuCgoyMDA4LTEwLTA2IDA4OjU4OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJbXByb3ZlIHBvc2l0aW9uIHJlcG9ydGluZyB3aGlsZSBmbHVzaGluZyBhbmQgb3RoZXIgaW50ZXJtZWRpYXRlIHN0YXRlIGNoYW5nZXMuIEZpeGVzICM1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpOgoJICBJbXByb3ZlIHBvc2l0aW9uIHJlcG9ydGluZyB3aGlsZSBmbHVzaGluZyBhbmQgb3RoZXIgaW50ZXJtZWRpYXRlIHN0YXRlCgkgIGNoYW5nZXMuIEZpeGVzICM1NTM4NzQuCgoyMDA4LTEwLTA2IDA4OjQ1OjQyICswMDAwICBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDBAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBGaXggc21hbGwgcmVmb3VudCBsZWFrIGluIGNhcHMgY29tcGF0aWJpbGl0eSBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDAgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCk6CgkgIE9yaWdpbmFsIHBhdGNoIGJ5IDogU2ltb24gRGVzY2FyaWVzCgkgIEZpeCBzbWFsbCByZWZvdW50IGxlYWsgaW4gY2FwcyBjb21wYXRpYmlsaXR5IGNoZWNrLgoJICBGaXhlcyAjNTUxNjc2LgoKMjAwOC0xMC0wNiAwNzozMDo1NyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtcmVxdWVzdC54bWw6IEZpeCAwLjggYXBpIHVzYWdlIGluIGV4YW1wbGUuIEZpeGVzICM1NTQ1NjEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtcmVxdWVzdC54bWw6CgkgIEZpeCAwLjggYXBpIHVzYWdlIGluIGV4YW1wbGUuIEZpeGVzICM1NTQ1NjEKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgQ2hhbmdlIDAuOSB0byAwLjEwIGhlcmUuCgoyMDA4LTEwLTA2IDA3OjEzOjAyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtZGF0YS54bWw6IENoYW5nZSAiZXZlbnQtZXZlbnQgaW50ZXJhY3Rpb24iIHRvICJlbGVtZW50LWVsZW1lbnQgaW50ZXJhY3Rpb24iLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtZGF0YS54bWw6CgkgIENoYW5nZSAiZXZlbnQtZXZlbnQgaW50ZXJhY3Rpb24iIHRvICJlbGVtZW50LWVsZW1lbnQgaW50ZXJhY3Rpb24iLgoJICBGaXhlcyAjNTUyNDQ4LiBBbHNvIGZpeCBzYW1wbGUgY29kZSBmb3Igc2Vla2luZyBhbmQgZG8gbW9yZSAwLjgtPjAuMTAKCSAgdXBkYXRlcy4KCjIwMDgtMTAtMDUgMTA6MDE6NTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCYWNrIHRvIGRldmVsb3BtZW50IC0+IDAuMTAuMjEuMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQgLT4gMC4xMC4yMS4xCgo9PT0gcmVsZWFzZSAwLjEwLjIxID09PQoKMjAwOC0xMC0wMiAyMzo1OTo1MyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjIxCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuMjEKCjIwMDgtMTAtMDIgMjI6NDI6MTggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOC0wOS0yOCAyMjo0OTo1NiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IDAuMTAuMjAuNCBwcmUtcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIDAuMTAuMjAuNCBwcmUtcmVsZWFzZQoKMjAwOC0wOS0yOCAyMToxOToxNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBGaXggYXNzZXJ0aW9uIGluIGJhc2V0cmFuc2Zvcm0gd2hlbiB0aGUgc3ViY2xhc3MgY2hvb3NlcyBub3QgdG8gYWxsb2NhdGUgYSBidWZmZXIgaW4gcHJlcGFyZV9idWZmZXIoKSwgYW5kIG1ha2UgY2Fwc2YuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jYXBzZmlsdGVyLmM6CgkgIEZpeCBhc3NlcnRpb24gaW4gYmFzZXRyYW5zZm9ybSB3aGVuIHRoZSBzdWJjbGFzcyBjaG9vc2VzIG5vdCB0bwoJICBhbGxvY2F0ZSBhIGJ1ZmZlciBpbiBwcmVwYXJlX2J1ZmZlcigpLCBhbmQgbWFrZSBjYXBzZmlsdGVyIGVycm9yIG91dAoJICBjbGVhbmx5IGlmIHJlcXVlc3RlZCB0byBhcHBseSBjYXBzIHRoYXQgZG9uJ3QgY29tcGxldGVseSBzcGVjaWZ5IHRoZQoJICBidWZmZXIuIEZpeGVzICM1NTE1MDkKCjIwMDgtMDktMjQgMTU6MDM6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogVGFrZSBuZXcgY2FwcyByZWYgYmVjYXVzZSBvdXIgb2xkIG9uZSBtaWdodCBoYXZlIGJlZW4gZ29uZSB3aGVuIHRoZSBzdWJjbGFzcyBwZXJmb3IuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKToKCSAgVGFrZSBuZXcgY2FwcyByZWYgYmVjYXVzZSBvdXIgb2xkIG9uZSBtaWdodCBoYXZlIGJlZW4gZ29uZSB3aGVuIHRoZQoJICBzdWJjbGFzcyBwZXJmb3JtcyBhIGdzdF9wYWRfc2V0X2NhcHMoKSBvbiB0aGUgc3JjcGFkLiBTZWUgIzU0ODc2NC4KCjIwMDgtMDktMTYgMTU6MzU6MDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBBbHNvIGNvbW1pdCBDaGFuZ2VMb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFsc28gY29tbWl0IENoYW5nZUxvZwoKMjAwOC0wOS0xNiAxNToyNDowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBHYWguIENvbW1pdCBwcmUtcmVsZWFzZSBpbmZvIHRoYXQgc2hvdWxkIGhhdmUgZ29uZSBpbiBsYXN0IHdlZWsgYWxyZWFkeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEdhaC4gQ29tbWl0IHByZS1yZWxlYXNlIGluZm8gdGhhdCBzaG91bGQgaGF2ZSBnb25lIGluIGxhc3Qgd2VlayBhbHJlYWR5LgoJICAyMDA4LTA5LTEwICBKYW4gU2NobWlkdCAgPGphbi5zY2htaWR0QHN1bi5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICAwLjEwLjIwLjIgcHJlLXJlbGVhc2UKCSAgKiBwby9MSU5HVUFTOgoJICAqIHBvL2lkLnBvOgoJICAqIHBvL3B0X0JSLnBvOgoJICBOZXcgdHJhbnNsYXRpb25zLgoKMjAwOC0wOS0xNSAxNToxODowNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29uZmlndXJlLmFjOiBEbyBub3QgcHJvYmUgYXZhaWxhYmlsaXR5IG9mIGNoZWNrIHVuaXQgdGVzdCBsaWJyYXJ5IHdoZW4gY3Jvc3MgY29tcGlsaW5nLCBhcyB0ZXN0IHdvdWxkIG5vdCB3b3JrIGFueXdhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRG8gbm90IHByb2JlIGF2YWlsYWJpbGl0eSBvZiBjaGVjayB1bml0IHRlc3QgbGlicmFyeSB3aGVuIGNyb3NzCgkgIGNvbXBpbGluZywgYXMgdGVzdCB3b3VsZCBub3Qgd29yayBhbnl3YXkuIEFsc28gY2xlYW51cCB2ZXJib3NlIG91dHB1dAoJICBvZiB0aGUgY2hlY2sgdGVzdC4gRml4ZXMgIzU1MTk1Mi4KCjIwMDgtMDktMTQgMjI6MDE6MzAgKzAwMDAgIEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMEBnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBBdm9pZCBsZWFraW5nIHRoZSBwYXJlbnQgcmVmIHdoZW4gd2UgZmFpbCBjaGFuZ2luZyB0aGUgc3RhdGUgb2YgdGhlIGVsZW1lbnQgdXNpbmcgZ3N0X2VsZW1lbnRfc3luY18uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDAgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc3luY19zdGF0ZV93aXRoX3BhcmVudCk6CgkgIEF2b2lkIGxlYWtpbmcgdGhlIHBhcmVudCByZWYgd2hlbiB3ZSBmYWlsIGNoYW5naW5nIHRoZSBzdGF0ZSBvZiB0aGUKCSAgZWxlbWVudCB1c2luZyBnc3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50KCkuIEZpeGVzICM1NTE5NzguCgoyMDA4LTA5LTExIDE2OjU2OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvaW50cm8tbW90aXZhdGlvbi54bWw6IFJlbW92ZSBzb21lIGJpdHMgdGhhdCBubyBsb25nZXIgYXBwbHksIHVwZGF0ZSBvdGhlcnMgKCM1NTE2NDIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9pbnRyby1tb3RpdmF0aW9uLnhtbDo6CgkgIFJlbW92ZSBzb21lIGJpdHMgdGhhdCBubyBsb25nZXIgYXBwbHksIHVwZGF0ZSBvdGhlcnMgKCM1NTE2NDIpLgoKMjAwOC0wOS0wOSAxODo0NzoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjogQWRkIEdTVF9EQVRBRElSLCBoYXJkLWNvZGUgY3B1IHRvIHg4Ni4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBBZGQgR1NUX0RBVEFESVIsIGhhcmQtY29kZSBjcHUgdG8geDg2LgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBTcGFjZXMgdG8gdGFicy4KCjIwMDgtMDktMDMgMDU6NTI6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5oOiBGaXggU2luY2U6IG1hcmtlcnMgZm9yIG5ldyBnZW8gdGFncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgRml4IFNpbmNlOiBtYXJrZXJzIGZvciBuZXcgZ2VvIHRhZ3MuCgoyMDA4LTA5LTAyIDIwOjAwOjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5oOiBGaXggYWN0dWFsIHRhZyBuYW1lIGRlZmluZSBhZnRlciByZW5hbWluZyBmcm9tIGFsdGl0dWRlIHRvIGVsZXZhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgRml4IGFjdHVhbCB0YWcgbmFtZSBkZWZpbmUgYWZ0ZXIgcmVuYW1pbmcgZnJvbSBhbHRpdHVkZSB0byBlbGV2YXRpb24uCgoyMDA4LTA5LTAxIDE0OjA1OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBBZGQgZmFsbGJhY2sgd2hlbiBjYWxsaW5nIHRoZSBkZXByZWNhdGVkIGZ1bmN0aW9uIG9uIGFuIGVsZW1lbnQgdGhhdCBpbXBsZW1lbnRzIHRoZSBuZXcgaW50ZXJuYWxfbGluayBoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGFkZF91bnJlZl9wYWRfdG9fbGlzdCksCgkgIChnc3RfcGFkX2dldF9pbnRlcm5hbF9saW5rc19kZWZhdWx0KToKCSAgQWRkIGZhbGxiYWNrIHdoZW4gY2FsbGluZyB0aGUgZGVwcmVjYXRlZCBmdW5jdGlvbiBvbiBhbiBlbGVtZW50IHRoYXQKCSAgaW1wbGVtZW50cyB0aGUgbmV3IGludGVybmFsX2xpbmsgaGFuZGxlci4KCjIwMDgtMDktMDEgMTM6MzU6MzIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCBuZXcgdGFncyBmb3IgZ2VvIGxvY2F0aW9uIGFuZCBjbGFyaWZ5IHB1cnBvc2Ugb2YgZXhpc3RpbmcgbG9jYXRpb24gdGFnLiBGaXhlcyAjNDgxMTY5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBZGQgbmV3IHRhZ3MgZm9yIGdlbyBsb2NhdGlvbiBhbmQgY2xhcmlmeSBwdXJwb3NlIG9mIGV4aXN0aW5nIGxvY2F0aW9uCgkgIHRhZy4gRml4ZXMgIzQ4MTE2OQoKMjAwOC0wOS0wMSAxMToyNzo0NSArMDAwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkgIGdzdC9nc3RwYWQuYzogVXNlIHRocmVhZC1zYWZlIGludGVybmFsIGxpbmtzIGl0ZXJhdG9yLiBGaXhlcyAjNTQ5NTA0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIgZG90IGNhPgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaXRlcmF0ZV9pbnRlcm5hbF9saW5rc19kZWZhdWx0KSwKCSAgKGdzdF9wYWRfZXZlbnRfZGVmYXVsdF9kaXNwYXRjaCksIChnc3RfcGFkX2Rpc3BhdGNoZXIpOgoJICBVc2UgdGhyZWFkLXNhZmUgaW50ZXJuYWwgbGlua3MgaXRlcmF0b3IuIEZpeGVzICM1NDk1MDQuCgoyMDA4LTA5LTAxIDEwOjQyOjA0ICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgQWRkIHRocmVhZHNhZmUgcmVwbGFjZW1lbnQgZnVuY3Rpb25zIGZvciBnZXR0aW5nIGludGVybmFsIGxpbmtzIG9mIGFuIGVsZW1lbnQuIERlcHJlY2F0ZSB0aGUgb2xkIGludGVybmFsIGxpbmtzIGZ1bmN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpLAoJICAoZ3N0X3BhZF9zZXRfaXRlcmF0ZV9pbnRlcm5hbF9saW5rc19mdW5jdGlvbiksCgkgIChpbnRfbGlua19pdGVyX2RhdGFfZnJlZSksIChpdGVyYXRlX3BhZCksCgkgIChnc3RfcGFkX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3NfZGVmYXVsdCksCgkgIChnc3RfcGFkX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3MpLCAoZ3N0X3BhZF9nZXRfaW50ZXJuYWxfbGlua3MpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQWRkIHRocmVhZHNhZmUgcmVwbGFjZW1lbnQgZnVuY3Rpb25zIGZvciBnZXR0aW5nIGludGVybmFsIGxpbmtzIG9mIGFuCgkgIGVsZW1lbnQuIERlcHJlY2F0ZSB0aGUgb2xkIGludGVybmFsIGxpbmtzIGZ1bmN0aW9ucy4KCSAgQVBJOkdzdFBhZDo6Z3N0X3BhZF9zZXRfaXRlcmF0ZV9pbnRlcm5hbF9saW5rc19mdW5jdGlvbigpCgkgIEFQSTpHc3RQYWQ6OkdzdFBhZEl0ZXJJbnRMaW5rRnVuY3Rpb24KCSAgQVBJOkdzdFBhZDo6Z3N0X3BhZF9pdGVyYXRlX2ludGVybmFsX2xpbmtzKCkKCSAgQVBJOkdzdFBhZDo6Z3N0X3BhZF9pdGVyYXRlX2ludGVybmFsX2xpbmtzX2RlZmF1bHQoKQoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19pdGVyYXRlX2ludGVybmFsX2xpbmtzKSwKCSAgKGdzdF9wcm94eV9wYWRfaW5pdCk6CgkgIEltcGxlbWVudCB0aHJlYWRzYWZlIGludGVybmFsIGxpbmtzLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAodGVlX3N1aXRlKToKCSAgVW5pdCB0ZXN0IGZvciBpbnRlcm5hbCBsaW5rcyBvbiB0ZWUuIFNlZSAjNTQ5NTA0LgoKMjAwOC0wOC0zMCAxMjo1Nzo0NyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBsaWJzL3RyYW5zZm9ybTEgdGVzdCByZXF1aXJlcyBsaWJzL3Rlc3RfdHJhbnNmb3JtLmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGxpYnMvdHJhbnNmb3JtMSB0ZXN0IHJlcXVpcmVzIGxpYnMvdGVzdF90cmFuc2Zvcm0uYwoKMjAwOC0wOC0zMCAxMjowNzo0MSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRGllIGV2aWwgZGVhZGxvY2ssIGRpZSAhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2ludGVybmFsX2xpbmtzX2RlZmF1bHQpOgoJICBEaWUgZXZpbCBkZWFkbG9jaywgZGllICEKCjIwMDgtMDgtMzAgMTE6NTU6NTkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBGaXggYWxsIGxlYWtzIGR1ZSB0byB0aGUgYnVnIGluIGdzdF9wYWRfdGVtcGxhdGVfbmV3KCkgYnkgd2hpY2ggaXQgZG9lcyBub3Qgc3RlYWwgdGhlIHJlZmNvdW50IG9mIHRoZSBnaXZlbiBjYXBzIGFzIHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogKG5hbWVfaXNfdmFsaWQpLCAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggYWxsIGxlYWtzIGR1ZSB0byB0aGUgYnVnIGluIGdzdF9wYWRfdGVtcGxhdGVfbmV3KCkgYnkgd2hpY2ggaXQgZG9lcwoJICBub3Qgc3RlYWwgdGhlIHJlZmNvdW50IG9mIHRoZSBnaXZlbiBjYXBzIGFzIHN0YXRlZC4KCSAgUkVWRVJUIFRISVMgQ09NTUlUIE9OQ0UgRklYRUQgIQoJICBSRVZFUlQgVEhJUyBDT01NSVQgT05DRSBGSVhFRCAhCgkgIFJFVkVSVCBUSElTIENPTU1JVCBPTkNFIEZJWEVEICEKCSAgUkVWRVJUIFRISVMgQ09NTUlUIE9OQ0UgRklYRUQgIQoJICBSRVZFUlQgVEhJUyBDT01NSVQgT05DRSBGSVhFRCAhCgkgIFJFVkVSVCBUSElTIENPTU1JVCBPTkNFIEZJWEVEICEKCjIwMDgtMDgtMjkgMTc6NTg6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0aXRlcmF0b3IuKjogQWZ0ZXIgMyB5ZWFycyBpdCdzIGFib3V0IHRpbWUgdG8gcmV2aXNlIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBpdGVyYXRvciBvYmplY3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgQWZ0ZXIgMyB5ZWFycyBpdCdzIGFib3V0IHRpbWUgdG8gcmV2aXNlIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZQoJICBpdGVyYXRvciBvYmplY3RzLgoKMjAwOC0wOC0yOSAxNjoxMDo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogTWFrZSB0aGUgaW50ZXJuYWwgbGlua3MgZnVuY3Rpb24gbGVzcyB0aHJlYWQtdW5zYWZlIGFuZCBhZGQgc29tZSBjb21tZW50cywgZHVubm8gd2h5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9pbnRlcm5hbF9saW5rc19kZWZhdWx0KToKCSAgTWFrZSB0aGUgaW50ZXJuYWwgbGlua3MgZnVuY3Rpb24gbGVzcyB0aHJlYWQtdW5zYWZlIGFuZCBhZGQgc29tZQoJICBjb21tZW50cywgZHVubm8gd2h5LgoKMjAwOC0wOC0yOSAxNDoxMjowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RfcHJpdmF0ZS5oOiBJbmNsdWRlIGdzdGluZm8uaCBldmVuIGlmIEdTVF9ESVNBQkxFX0dTVF9ERUJVRyBpcyBkZWZpbmVkLiBGaXhlcyBidWlsZCB3aXRoIC0tZGlzYWJsZS1nc3QtZGVidWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICBJbmNsdWRlIGdzdGluZm8uaCBldmVuIGlmIEdTVF9ESVNBQkxFX0dTVF9ERUJVRyBpcyBkZWZpbmVkLiBGaXhlcwoJICBidWlsZCB3aXRoIC0tZGlzYWJsZS1nc3QtZGVidWcuCgoyMDA4LTA4LTI5IDAwOjM0OjU4ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiBSZXZlcnQgbGFzdCBjaGFuZ2UsIHNpbmNlIGl0IGJyZWFrcyBhIGZldyBwbHVnaW5zLCBmZm1wZWcsIGFsYXcsIGFuZCBtdWxhdy4gIENvZGUgaXMgY29ycmVjdCwgYi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogUmV2ZXJ0IGxhc3QgY2hhbmdlLCBzaW5jZSBpdCBicmVha3MKCSAgYSBmZXcgcGx1Z2lucywgZmZtcGVnLCBhbGF3LCBhbmQgbXVsYXcuICBDb2RlIGlzIGNvcnJlY3QsCgkgIGJ1dCBzaG91bGRuJ3QgYmUgZW5hYmxlZCB1bnRpbCB3ZSd2ZSByZWxlYXNlZCBmaXhlZCB2ZXJzaW9ucwoJICBvZiAtZ29vZCBhbmQgLWZmbXBlZy4KCjIwMDgtMDgtMjggMjA6MTI6NTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RvYmplY3QuYzogUHV0IHRoZSBnc3Rfb2JqZWN0X2dldF9uYW1lKCkgYmFjayBpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOgoJICBQdXQgdGhlIGdzdF9vYmplY3RfZ2V0X25hbWUoKSBiYWNrIGluLgoKMjAwOC0wOC0yOCAxMjozMjoxOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IFRoZSBvbGQgYmVoYXZpb3VyIHdhcyB0aGF0IGdzdF9wYWRfdGVtcGxhdGVfbmV3KCkgdGFrZXMgb3duZXJzaGlwIG9mIHRoZSBjYXBzLiBBcyB3ZSBub3cgY2FsbCBnLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBUaGUgb2xkIGJlaGF2aW91ciB3YXMgdGhhdCBnc3RfcGFkX3RlbXBsYXRlX25ldygpIHRha2VzIG93bmVyc2hpcCBvZgoJICB0aGUgY2Fwcy4gQXMgd2Ugbm93IGNhbGwgZ19vYmplY3RfbmV3KCkgd2hpY2ggY2FsbHMgZ19vYmplY3Rfc2V0KCkgYW5kCgkgIHdoaWNoIGNvcGllcyB0aGUgY2Fwcywgd2UgaGF2ZSB0byB1bnJlZiB0aGVtIHRvIG5vdCBsZWFrIHRoZW0uIEZpeGVzCgkgIG1ha2UgdmFsZ3JpZCBmb3IgbWUuCgoyMDA4LTA4LTI4IDEwOjQ1OjA0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dXJpLmM6IERvbid0IHNlZ2ZhdWx0IG9uIGlucHV0IGxpa2UgInRlbDorMS0xMjMtNTU1LTEyMzQiLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXJpLmM6CgkgIERvbid0IHNlZ2ZhdWx0IG9uIGlucHV0IGxpa2UgInRlbDorMS0xMjMtNTU1LTEyMzQiLgoKMjAwOC0wOC0yNyAwNzoxODozNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBEdWUgdG8gcG9wdWxhciByZXF1ZXN0IGFsc28gaW5jbHVkZSBPYmplY3RUeXBlIGluIGdzdF9vYmplY3RfZ2V0X3BhdGhfc3RyaW5nKCkuIE1ha2VzIGdzdC1sYXVuY2ggLXYgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzoKCSAgRHVlIHRvIHBvcHVsYXIgcmVxdWVzdCBhbHNvIGluY2x1ZGUgT2JqZWN0VHlwZSBpbgoJICBnc3Rfb2JqZWN0X2dldF9wYXRoX3N0cmluZygpLiBNYWtlcyBnc3QtbGF1bmNoIC12IGJpdCBtb3JlIHVzZWZ1bC4KCjIwMDgtMDgtMjcgMDM6MDQ6MjMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IFJlbW92ZSBjaGVjayBpbiBnc3RfcGFkX3F1ZXJ5X2NvbnZlcnQoKSB0aGF0IHNyY192YWwgbXVzdCBiZSBwb3NpdGl2ZSwgYmVjYXVzZSB0aGF0J3Mgbm90IGEgcmVxdWlyZW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiBSZW1vdmUgY2hlY2sgaW4gZ3N0X3BhZF9xdWVyeV9jb252ZXJ0KCkgdGhhdAoJICBzcmNfdmFsIG11c3QgYmUgcG9zaXRpdmUsIGJlY2F1c2UgdGhhdCdzIG5vdCBhIHJlcXVpcmVtZW50LgoJICBUaGlzIGNhdXNlcyBwcm9ibGVtcyB3aXRoIGNvbnZlcnRpbmcgbmVnYXRpdmUgZ3JhbnVsZXBvcwoJICB2YWx1ZXMgZm9yIERpcmFjLgoJICAqIGdzdC9nc3RxdWVyeS5jOiBTYW1lLCBnc3RfcXVlcnlfbmV3X2NvbnZlcnQoKS4KCjIwMDgtMDgtMjcgMDI6NTk6NTkgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IFJlbW92ZSBjaGVjayBpbiBnc3RfcGFkX3F1ZXJ5X2NvbnZlcnQoKSB0aGF0IHNyY192YWwgbXVzdCBiZSBwb3NpdGl2ZSwgYmVjYXVzZSB0aGF0J3Mgbm90IGEgcmVxdWlyZW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiBSZW1vdmUgY2hlY2sgaW4gZ3N0X3BhZF9xdWVyeV9jb252ZXJ0KCkgdGhhdAoJICBzcmNfdmFsIG11c3QgYmUgcG9zaXRpdmUsIGJlY2F1c2UgdGhhdCdzIG5vdCBhIHJlcXVpcmVtZW50LgoJICBUaGlzIGNhdXNlcyBwcm9ibGVtcyB3aXRoIGNvbnZlcnRpbmcgbmVnYXRpdmUgZ3JhbnVsZXBvcwoJICB2YWx1ZXMgZm9yIERpcmFjLgoKMjAwOC0wOC0yNSAxMTowNjozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjbG9jay5jOiBBZGQgc29tZSBtb3JlIGRlYnVnZ2luZyB0byB0aGUgY2xvY2sgc2xhdmluZyBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19hZGRfb2JzZXJ2YXRpb24pOgoJICBBZGQgc29tZSBtb3JlIGRlYnVnZ2luZyB0byB0aGUgY2xvY2sgc2xhdmluZyBjb2RlLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgQWRkIG5ldyBiYXNldHJhbnNmb3JtIG1ldGhvZC4KCjIwMDgtMDgtMjUgMTE6MDA6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFRha2UgdGhlIChyZWN1cnNpdmUpIHN0YXRlIGxvY2sgYmV0d2VlbiBnZXR0aW5nIHRoZSBsb2NrZWQgc3RhdGUgb2YgYW4gZWxlbWVudCBhbmQgY2hhbmdpbmcgdGhlIGVsZW1lbnQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIFRha2UgdGhlIChyZWN1cnNpdmUpIHN0YXRlIGxvY2sgYmV0d2VlbiBnZXR0aW5nIHRoZSBsb2NrZWQgc3RhdGUgb2YgYW4KCSAgZWxlbWVudCBhbmQgY2hhbmdpbmcgdGhlIGVsZW1lbnQgc3RhdGUuIFRoaXMgYWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0bwoJICBsb2NrIGFuIGVsZW1lbnQncyBzdGF0ZSBhbmQgdGhlbiBjaGFuZ2UgaXRzIHN0YXRlIHdpdGhvdXQgcmFjZXMuCgoyMDA4LTA4LTI1IDEwOjUyOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBXaGVuIGFuIGVsZW1lbnQgaXMgaW4gdGhlIGxvY2tlZCBzdGF0ZSB3ZSBzdGlsbCB3YW50IHRvIHVwZGF0ZSB0aGUgYmFzZV90aW1lIG9mIHRoZSBlbGVtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgV2hlbiBhbiBlbGVtZW50IGlzIGluIHRoZSBsb2NrZWQgc3RhdGUgd2Ugc3RpbGwgd2FudCB0byB1cGRhdGUgdGhlCgkgIGJhc2VfdGltZSBvZiB0aGUgZWxlbWVudC4KCjIwMDgtMDgtMjEgMTE6MTc6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogVXNlIHRoZSByZXN1bHQgZnJvbSBnc3RfcGFkX3NldF9jYXBzKCkgaW5zdGVhZCBvZiBhc3N1bWluZyB0aGUgZWxlbWVudCBhbHdheXMgYWNjZXB0ZWQgdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpOgoJICBVc2UgdGhlIHJlc3VsdCBmcm9tIGdzdF9wYWRfc2V0X2NhcHMoKSBpbnN0ZWFkIG9mIGFzc3VtaW5nIHRoZSBlbGVtZW50CgkgIGFsd2F5cyBhY2NlcHRlZCB0aGUgY2FwcyBjb21wdXRlZCBieSB0aGUgZGVmYXVsdCBuZWdvdGlhdGUgZnVuY3Rpb24uCgoyMDA4LTA4LTIwIDEwOjUyOjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgSW1wbGVtZW50IG1ldGhvZCBmb3IgcmVjb25maWd1cmluZyBiYXNldHJhbnNmb3JtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldHJhbmdlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbiksIChnc3RfYmFzZV90cmFuc2Zvcm1fc3VnZ2VzdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcmVjb25maWd1cmUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBJbXBsZW1lbnQgbWV0aG9kIGZvciByZWNvbmZpZ3VyaW5nIGJhc2V0cmFuc2Zvcm0uCgkgIEFQSTogR3N0QmFzZVRyYW5zZm9ybTo6Z3N0X2Jhc2VfdHJhbnNmb3JtX3JlY29uZmlndXJlKCkKCjIwMDgtMDgtMjAgMDc6MjI6MTEgKzAwMDAgIE11cnJheSBDdW1taW5nIDxtdXJyYXljQG11cnJheWMuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IE1lbnRpb24gdGhhdCB0aGlzIGlzIGp1c3QgbGlrZSBnc3RfYnVmZmVyX21lcmdlKCkgYnV0IHdpdGggZXh0cmEgdW5yZWZmaW5nIGZvciBDIGNvZGVycy4gQWR2aXNlIGxhbmd1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogTXVycmF5IEN1bW1pbmcgPG11cnJheWNAbXVycmF5Yy5jb20+CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIE1lbnRpb24gdGhhdCB0aGlzIGlzIGp1c3QgbGlrZSBnc3RfYnVmZmVyX21lcmdlKCkgYnV0IHdpdGggZXh0cmEKCSAgdW5yZWZmaW5nIGZvciBDIGNvZGVycy4gQWR2aXNlIGxhbmd1YWdlIGJpbmRpbmdzIG5vdCB0byB3cmFwIGl0LgoJICBGaXhlcyBCdWcgIzUzMzg1Ni4KCSAgQWxzbyBmaXggZmlsZSBjb21tZW50LgoKMjAwOC0wOC0yMCAwNzowMzo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IENhbGwgc3VwZXI6OmV2ZW50KCkgd2hlbiBub3QgaGFuZGxpbmcgaXQuIEZpeGVzICM1NDQ4NTUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZpZXdlZCBieTogV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIENhbGwgc3VwZXI6OmV2ZW50KCkgd2hlbiBub3QgaGFuZGxpbmcgaXQuIEZpeGVzICM1NDQ4NTUuCgoyMDA4LTA4LTE5IDE3OjIzOjE4ICswMDAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyb0BubnZhLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBVc2UgNjQgYml0IHZhcmlhbnRzIG9mIHN0YXQgZnVuY3Rpb25zIG9uIHdpbjMyLCB0byBlbmFibGUgc3VwcG9ydCBvZiBsYXJnZSBmaWxlcyB0aGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyb0BubnZhLm9yZz4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgVXNlIDY0IGJpdCB2YXJpYW50cyBvZiBzdGF0IGZ1bmN0aW9ucyBvbiB3aW4zMiwgdG8gZW5hYmxlIHN1cHBvcnQKCSAgb2YgbGFyZ2UgZmlsZXMgdGhlcmUuCgkgIEZpeGVzICM1NDcyNzcuCgoyMDA4LTA4LTE5IDE2OjQ3OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJbXByb3ZlIHBvc2l0aW9uIHJlcG9ydGluZyBpbiB0aGUgZmx1c2hpbmcgc3RhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpLAoJICAoZ3N0X2Jhc2Vfc2lua19uZWdvdGlhdGVfcHVsbCksIChnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgSW1wcm92ZSBwb3NpdGlvbiByZXBvcnRpbmcgaW4gdGhlIGZsdXNoaW5nIHN0YXRlLgoJICBBbHNvIHJlcG9ydCB0aGUgcG9zaXRpb24gd2hlbiB3ZSBhcmUgbm90IHlldCBwcmVyb2xsZWQgYnV0IHdlCgkgIGhhdmUgYSBuZXdzZWdtZW50IGV2ZW50LiBGaXhlcyAjNTQzNDQ0LgoJICBJbXByb3ZlIHRoZSBwdWxsLWJhc2VkIG5lZ290aWF0aW9uIGNvZGUuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGZha2VzaW5rX3N1aXRlKToKCSAgQWRkIHRlc3RjYXNlIGZvciBwb3NpdGlvbiByZXBvcnRpbmcgd2hpbGUgZmx1c2hpbmcgaW4gUEFVU0VEIGFuZAoJICBQTEFZSU5HLgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVXBkYXRlIHVuaXQtdGVzdCwgd2UgY2FuIG5vdyBxdWVyeSB0aGUgcG9zaXRpb24gYXMgc29vbiBhcyB3ZSByZWNlaXZlIGEKCSAgTkVXU0VHTUVOVCBldmVudC4KCjIwMDgtMDgtMTkgMDg6NTI6MDUgKzAwMDAgIEphc29uIFpoYW8gPGUzNDIzY0Btb3Rvcm9sYS5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFdoZW4gdGhlIHN1YmNsYXNzIGV2ZW50IGhhbmRsZXIgcmVsZWFzZXMgdGhlIFBSRVJPTExfTE9DSywgd2UgY291bGQgYmUgaW4gdGhlIGZsdXNoaW5nIHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBKYXNvbiBaaGFvIDxlMzQyM2MgYXQgbW90b3JvbGEgZG90IGNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpOgoJICBXaGVuIHRoZSBzdWJjbGFzcyBldmVudCBoYW5kbGVyIHJlbGVhc2VzIHRoZSBQUkVST0xMX0xPQ0ssIHdlIGNvdWxkIGJlCgkgIGluIHRoZSBmbHVzaGluZyBzdGF0ZSBhbmQgd2UgaGF2ZSB0byBpZ25vcmUgdGhlIGV2ZW50LiBGaXhlcyAjNTQ4Mzk0LgoKMjAwOC0wOC0xOCAxMToyODowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guMS5pbjogRG9jdW1lbnQgR1NUX1JFR0lTVFJZX1VQREFURSBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBEb2N1bWVudCBHU1RfUkVHSVNUUllfVVBEQVRFIGVudmlyb25tZW50IHZhcmlhYmxlLgoKMjAwOC0wOC0xOCAwOTo1OToxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBJZiB0aGUgZWxlbWVudCBpcyBjb25maWd1cmVkIGluIHBhc3N0aHJvdWdoIG1vZGUgYnV0IHRoZSBwcmVwYXJlX291dHB1dF9idWZmZXIgZ2F2ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpOgoJICBJZiB0aGUgZWxlbWVudCBpcyBjb25maWd1cmVkIGluIHBhc3N0aHJvdWdoIG1vZGUgYnV0IHRoZQoJICBwcmVwYXJlX291dHB1dF9idWZmZXIgZ2F2ZSB1cyBhIG5ldyBvdXRwdXQgYnVmZmVyLCBkaXNjYXJkIHRoYXQgYnVmZmVyCgkgIGFuZCByZXVzZSB0aGUgaW5wdXQgYnVmZmVyLgoKMjAwOC0wOC0xNSAxNzowMTowNyArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLio6IFByb3RlY3QgcGFkX2FsbG9jIHdpdGggYSBuZXcgbG9jayBzbyB0aGF0IHdlIGNhbiBiZSBzdXJlIHRoYXQgbm90aGluZyBpcyBwZXJmb3JtaW5nIGEgcGFkXy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyAgPG9sZS5hbmRyZS5yYXZuYXMgYXQgdGFuZGJlcmcgY29tPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2ZpbmFsaXplKSwgKGdzdF90ZWVfaW5pdCksCgkgIChnc3RfdGVlX3JlcXVlc3RfbmV3X3BhZCksIChnc3RfdGVlX3JlbGVhc2VfcGFkKSwKCSAgKGdzdF90ZWVfZmluZF9idWZmZXJfYWxsb2MpLCAoZ3N0X3RlZV9idWZmZXJfYWxsb2MpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIFByb3RlY3QgcGFkX2FsbG9jIHdpdGggYSBuZXcgbG9jayBzbyB0aGF0IHdlIGNhbiBiZSBzdXJlIHRoYXQgbm90aGluZyBpcwoJICBwZXJmb3JtaW5nIGEgcGFkX2FsbG9jIHdoZW4gcmVtb3ZpbmcgdGhlIHBhZC4gRml4ZXMgIzU0NzgzNS4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzogKGJ1ZmZlcl9hbGxvY19oYXJuZXNzX3NldHVwKSwKCSAgKGJ1ZmZlcl9hbGxvY19oYXJuZXNzX3RlYXJkb3duKSwgKGFwcF90aHJlYWRfZnVuYyksCgkgIChmaW5hbF9zaW5rcGFkX2J1ZmZlcmFsbG9jKSwgKEdTVF9TVEFSVF9URVNUKSwgKHRlZV9zdWl0ZSk6CgkgIEFkZGVkIHRlc3RjYXNlIGZvciBzaHV0ZG93biByYWNlLgoKMjAwOC0wOC0xNCAyMDowNTozMyArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuaDogQWRkIGRvYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEFkZCBkb2MKCjIwMDgtMDgtMTQgMTY6Mzc6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogR28gb3ZlciB0aGUgYnVmZmVyX2FsbG9jIGZ1bmN0aW9uIGFnYWluIGFuZCBtYWtlIHN1cmUgd2UgYWx3YXlzIGVuZCB1cCBhbGxvY2F0aW5nIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBHbyBvdmVyIHRoZSBidWZmZXJfYWxsb2MgZnVuY3Rpb24gYWdhaW4gYW5kIG1ha2Ugc3VyZSB3ZSBhbHdheXMgZW5kIHVwCgkgIGFsbG9jYXRpbmcgYSBidWZmZXIuCgkgIEFkZCBzb21lIG1vcmUgZG9jcy4KCSAgQXZvaWQgZG9pbmcgcGFkIGFsbG9jIHdoZW4gd2UgaGF2ZSBhIHBlbmRpbmcgc3VnZ2VzdGlvbiBiZWNhdXNlIHdlCgkgIGNhbm5vdCB5ZXQgZGVhbCB3aXRoIGNoYW5naW5nIGNhcHMgaW4gdGhhdCBjYXNlLiBGaXhlcyAjNTQ3NzI4CgoyMDA4LTA4LTE0IDE0OjI2OjIwICswMDAwICBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgoJICBkb2NzL21hbnVhbC86IEFkZCBvbmUgbW9yZSBpbWFnZSBzaG93aW5nIGRpZmZlcmVudCB0aW1lcyB0b2dldGhlciB3aXRoIGEgZGVzY3JpYmluZyBwYXJhZ3JhcGguIEZpeGVzICM1NDc3MjkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogTHVjIFBpb25jaG9uIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkgICogZG9jcy9tYW51YWwvY2xvY2tzLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9kaWFncmFtcy1jbG9ja3Muc3ZnOgoJICBBZGQgb25lIG1vcmUgaW1hZ2Ugc2hvd2luZyBkaWZmZXJlbnQgdGltZXMgdG9nZXRoZXIgd2l0aCBhIGRlc2NyaWJpbmcKCSAgcGFyYWdyYXBoLiBGaXhlcyAjNTQ3NzI5LgoKMjAwOC0wOC0xNCAxNDowNDo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjogQWRkIG5ldyBtZXRob2QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgQWRkIG5ldyBtZXRob2QuCgoyMDA4LTA4LTE0IDEzOjU3OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IERvbid0IG92ZXJ3cml0ZSB0aGUgb3V0c2l6ZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBleHBlY3RlZCBzaXplIG9mIGEgbmV3IGJ1ZmZlciBiZWNhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksIChnc3RfYmFzZV90cmFuc2Zvcm1fc3VnZ2VzdCk6CgkgIERvbid0IG92ZXJ3cml0ZSB0aGUgb3V0c2l6ZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBleHBlY3RlZCBzaXplIG9mIGEgbmV3CgkgIGJ1ZmZlciBiZWNhdXNlIHdlIHN0aWxsIG5lZWQgaXQgaW4gY2FzZSB3ZSBjYW5ub3QgcHJvY2VzcyB0aGUgbmV3CgkgIGJ1ZmZlci4KCSAgV2hlbiBjb252ZXJ0aW5nIHRoZSBzaXplIG9mIHRoZSBuZXcgYnVmZmVyIHRvIGFuIHVwc3RyZWFtIHNpemUsIGFjdHVhbGx5CgkgIHVzZSB0aGUgZXhwZWN0ZWQgc2l6ZSBvZiB0aGUgYnVmZmVyLCBub3Qgc29tZSBvdGhlciByYW5kb20gdmFsdWUuCgkgIFVzZSBhbiBhdG9taWMgaW50IHRvIHNpZ25hbCB0aGF0IGEgbmV3IHVwc3RyZWFtIGNhcHMgc3VnZ2VzdGlvbiBpcwoJICBhdmFpbGFibGUuCgkgIFdoZW4gd2UgY2FuIGNvbnZlcnQgdGhlIGN1cnJlbnQgYnVmZmVyIHRvIGEgbmV3IGZvcm1hdCwgY2hlY2sgaWYgdGhlCgkgIGJ1ZmZlciBzaXplIGlzIG9mIHRoZSBleHBlY3RlZCBzaXplIGFuZCBhbGxvY2F0ZSBhIG5ldyBidWZmZXIgb2YgdGhlCgkgIGV4cGVjdGVkIHNpemUgd2hlbiB0aGlzIGlzIG5vdCB0aGUgY2FzZS4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgcmVtb3ZlIGlmZGVmZmVkIGNvZGUgZnJvbSB0aGUgdW5pdCB0ZXN0LgoKMjAwOC0wOC0xMiAxODo0ODo0MiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGtnY29uZmlnLzogUmVtb3ZlIC1sZ3N0Y29udHJvbC0wLjEwIHdoaWNoIG5ldmVyIHdvcmtlZCBhbnl3YXkgYXMgdGhlIGxpYiBpcyBjYWxsZWQgZ3N0Y29udHJvbGxlci0wLjEwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIFJlbW92ZSAtbGdzdGNvbnRyb2wtMC4xMCB3aGljaCBuZXZlciB3b3JrZWQgYW55d2F5IGFzIHRoZSBsaWIgaXMKCSAgY2FsbGVkIGdzdGNvbnRyb2xsZXItMC4xMC4KCjIwMDgtMDgtMTIgMDY6Mjc6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IFJlbW92ZSBkb3VibGUgaW50ZXJmYWNlIGZyb20gZG9jLXN0cmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSAgKiBnc3QvZ3N0cHJlc2V0Lmg6CgkgIFJlbW92ZSBkb3VibGUgaW50ZXJmYWNlIGZyb20gZG9jLXN0cmluZy4KCjIwMDgtMDgtMTIgMDY6MTY6MDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvOiBGaXggaGVhZGluZ3MgaW4gZG9jcyBhbmQgZ3RrLWRvYyB3YXJuaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIEZpeCBoZWFkaW5ncyBpbiBkb2NzIGFuZCBndGstZG9jIHdhcm5pbmdzLgoKMjAwOC0wOC0xMSAxOTowNDowNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IERvbid0IHVzZSBnX21rc3RtcCgpIG9uIHdpbjMyLCBpdCdzIHVuc2FmZSBpZiBnbGliIGlzIHVzaW5nIGEgZGlmZmVyZW50IGxpYmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBEb24ndCB1c2UgZ19ta3N0bXAoKSBvbiB3aW4zMiwgaXQncyB1bnNhZmUgaWYgZ2xpYiBpcyB1c2luZyBhIGRpZmZlcmVudAoJICBsaWJjLgoJICBGaXhlcyAjNTQ0Nzc2LgoKMjAwOC0wOC0xMSAxNToxNDoyOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBGaXggYSAibWF5IGJlIHVzZWQgdW5pdGlhbGl6ZWQiIHdhcm5pbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIEZpeCBhICJtYXkgYmUgdXNlZCB1bml0aWFsaXplZCIgd2FybmluZy4KCjIwMDgtMDgtMTEgMDg6MDY6MjAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIERvY3VtZW50IHByZXNldC1pZmFjZSB2bWV0aG9kcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cHJlc2V0Lmg6CgkgIERvY3VtZW50IHByZXNldC1pZmFjZSB2bWV0aG9kcy4KCjIwMDgtMDgtMTEgMDc6MDc6NDUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOiBUdXJuIHRob3VnaHRzIGFib3V0IEhBTCBpbnRvIGEgbm90ZS10YWcuIFJlbW92ZSBtZW50aW9uaW5nIHRoYXQgaXMgb25seSB1c2VkIHRvIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSAgVHVybiB0aG91Z2h0cyBhYm91dCBIQUwgaW50byBhIG5vdGUtdGFnLiBSZW1vdmUgbWVudGlvbmluZyB0aGF0IGlzCgkgIG9ubHkgdXNlZCB0byBkaXNjb3ZlciBkZXZpY2VzLgoKMjAwOC0wOC0wNyAxNTo0OTowMCArMDAwMCAgRnJlZGVyaWMgQ3JvemF0IDxmY3JvemF0QG1hbmRyaXZhLm9yZz4KCgkgIGdzdC9nc3QuYzogTWFrZSBzdXJlIGdldHRleHQgcmV0dXJucyB0cmFuc2xhdGlvbnMgaW4gVVRGLTggZW5jb2RpbmcgcmF0aGVyIHRoYW4gaW4gdGhlIGN1cnJlbnQgbG9jYWxlIGVuY29kaW5nICgjNTQ2OC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEZyZWRlcmljIENyb3phdCA8ZmNyb3phdEBtYW5kcml2YS5vcmc+CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wcmUpOgoJICBNYWtlIHN1cmUgZ2V0dGV4dCByZXR1cm5zIHRyYW5zbGF0aW9ucyBpbiBVVEYtOCBlbmNvZGluZyByYXRoZXIKCSAgdGhhbiBpbiB0aGUgY3VycmVudCBsb2NhbGUgZW5jb2RpbmcgKCM1NDY4MjIpLgoKMjAwOC0wOC0wNyAxMjoyODoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IEZpeCBzdWJzZXQgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3N0cnVjdHVyZV9pc19zdWJzZXRfZmllbGQpOgoJICBGaXggc3Vic2V0IHRlc3QuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgSW1wcm92ZSB1bml0IHRlc3Qgc3Vic2V0IHRlc3RzIGFuZCBhZGQgYSB0ZXN0Y2FzZSBmb3IgdGhlIHN1YnNldCBmYWlsdXJlCgkgIGNhc2VzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgSW1wcm92ZSBzdWJ0cmFjdGlvbiB1bml0IHRlc3QuCgoyMDA4LTA4LTA3IDA3OjAxOjE1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiBVbmxvY2ssIGluc3RlYWQgb2YgbG9ja2luZyBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgVW5sb2NrLCBpbnN0ZWFkIG9mIGxvY2tpbmcgYWdhaW4uCgoyMDA4LTA4LTA1IDE2OjUwOjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5oOiBDbGFyaWZ5IHRoZSBkb2NzIGEgYml0IG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQ2xhcmlmeSB0aGUgZG9jcyBhIGJpdCBtb3JlLgoKMjAwOC0wOC0wNSAxNTo0MjowMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOiBEb24ndCBsZWFrIG9sZCB0YWdsaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6CgkgIERvbid0IGxlYWsgb2xkIHRhZ2xpc3QuCgoyMDA4LTA4LTA1IDE1OjAzOjI3ICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBBdm9pZCBvdmVyZmxvd3MgaW4gZml4YXRpb24gY29kZSB3aGVuIGRlYWxpbmcgd2l0aCBNQVhJTlQgdmFsdWVzLCB3aGljaCB2NGwyc3JjIHNlZW1zIHRvIGRvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIgZG90IGNhPgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKGdzdF9zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX25lYXJlc3RfZnJhY3Rpb24pOgoJICBBdm9pZCBvdmVyZmxvd3MgaW4gZml4YXRpb24gY29kZSB3aGVuIGRlYWxpbmcgd2l0aCBNQVhJTlQgdmFsdWVzLCB3aGljaAoJICB2NGwyc3JjIHNlZW1zIHRvIGRvLgoJICBGaXhlcyAjNTQ2MzI4LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSBhIHVuaXQgdGVzdCB0byBjaGVjayB0aGUgZml4LgoKMjAwOC0wOC0wNSAxMToxMjoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBVc2UgbmV3IGNhcHMgc3VnZ2VzdGlvbiBmZWF0dXJlIG9mIGJhc2V0cmFuc2Zvcm0gdG8gcmVxdWVzdCBhIGNhcHMgbmVnb3RpYXRpb24gdXBzdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGNvcHlfZnVuYyksCgkgIChnc3RfY2Fwc2ZpbHRlcl9zZXRfcHJvcGVydHkpOgoJICBVc2UgbmV3IGNhcHMgc3VnZ2VzdGlvbiBmZWF0dXJlIG9mIGJhc2V0cmFuc2Zvcm0gdG8gcmVxdWVzdCBhIGNhcHMKCSAgbmVnb3RpYXRpb24gdXBzdHJlYW0uCgoyMDA4LTA4LTA1IDExOjExOjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQWRkIG5ldyBmdW5jdGlvbjoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkIG5ldyBmdW5jdGlvbjoKCSAgQVBJOiBHc3RCYXNlVHJhbnNmb3JtOjpnc3RfYmFzZV90cmFuc2Zvcm1fc3VnZ2VzdCgpCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZmluYWxpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2Nhbl90cmFuc2Zvcm0pLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2ZpbmRfdHJhbnNmb3JtKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9hY3RpdmF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Bhc3N0aHJvdWdoKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pc19wYXNzdGhyb3VnaCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X2luX3BsYWNlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pc19pbl9wbGFjZSksIChnc3RfYmFzZV90cmFuc2Zvcm1fdXBkYXRlX3FvcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Fvc19lbmFibGVkKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pc19xb3NfZW5hYmxlZCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X2dhcF9hd2FyZSksIChnc3RfYmFzZV90cmFuc2Zvcm1fc3VnZ2VzdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcmVjb25maWd1cmUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBSZXdyaXRlIG9mIGJhc2V0cmFuc2Zvcm0gdG8gcGVyZm9ybSBuZWdvdGlhdGlvbiBvdXRzaWRlIG9mIHRoZQoJICBidWZmZXJfYWxsb2MgZnVuY3Rpb25zLiAgRml4ZXMgIzU0NTg1My4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGJ1ZmZlcl9hbGxvY19jdDIpOgoJICBVcGRhdGUgdW5pdCB0ZXN0LgoKMjAwOC0wOC0wNSAwNTo0NDowMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHByZXNldC5jOiBPbmx5IHJ1biBwcmVzZXQgdGVzdHMgd2hlbiAkSE9NRSBpcyB3cml0YWJsZS4gUHJlbGltaW5hcnkgZml4IGZvciAjNTQ1NDMzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJlc2V0LmM6CgkgIE9ubHkgcnVuIHByZXNldCB0ZXN0cyB3aGVuICRIT01FIGlzIHdyaXRhYmxlLiBQcmVsaW1pbmFyeSBmaXggZm9yCgkgICM1NDU0MzMuCgoyMDA4LTA4LTA0IDE1OjQ5OjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBGaXggcmFjZSBmb3IgYmlucyB0aGF0IHNpbXVsYXRlIEFTWU5DIHN0YXRlIGNoYW5nZXMgYnkgaW5zZXJ0aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwgKGJpbl9oYW5kbGVfYXN5bmNfZG9uZSksCgkgIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBGaXggcmFjZSBmb3IgYmlucyB0aGF0IHNpbXVsYXRlIEFTWU5DIHN0YXRlIGNoYW5nZXMgYnkgaW5zZXJ0aW5nCgkgIEFTWU5DX1NUQVJUIGFuZCBBU1lOQ19ET05FIG1lc3NhZ2VzIGluIHRoZWlyIGJ1cy4gV2UgbmVlZCB0byBjaGVjayBmb3IKCSAgcGVuZGluZyBBU1lOQyBtZXNzYWdlcyBldmVuIHdoZW4gdGhlIGJpbiBkb2VzIG5vdCBoYXZlIEFTWU5DIGNoaWxkcmVuLgoJICBXZSBub3RlIGRldGVjdCB0aGlzIGJlaGF2aW91ciBiZWNhdXNlIHdlIHdpbGwgcmVjZWl2ZSBhbiBBU1lOQyBtZXNzYWdlCgkgIHRoYXQgaXMgb3JpZ2luYXRpbmcgZnJvbSB0aGUgYmluIGl0c2VsZi4KCSAgRml4ZXMgcmFjZXMgd2l0aCBkZWNvZGViaW4yIHN0YXRlIGNoYW5nZXMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgc29tZSBtb3JlIGRlYnVnLgoKMjAwOC0wOC0wNCAxMzowMTozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0LmM6IEZpeCB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSk6CgkgIEZpeCB0eXBvLgoKMjAwOC0wOC0wNCAxMjo0NjoyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogQXJnaC4gYWN0dWFsbHkgc2F2ZSB0aGUgdGV4dCBiZWZvcmUgY29tbWl0dGluZy4gTm93IGFkZHMgZ3N0X3RhZ19tZXJnZV9zdHJpbmdzX3dpdGhfY29tbWEoKSB0byBnc3RfLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIEFyZ2guIGFjdHVhbGx5IHNhdmUgdGhlIHRleHQgYmVmb3JlIGNvbW1pdHRpbmcuIE5vdyBhZGRzCgkgIGdzdF90YWdfbWVyZ2Vfc3RyaW5nc193aXRoX2NvbW1hKCkgdG8gZ3N0X3RhZ19yZWdpc3RlcigpLgoKMjAwOC0wOC0wNCAxMjozMDoyNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuKjogRG8gYXMgdGltIHBvaW50ZWQgb3V0IGFuZCBhY3R1YWxseSByZWdpc3RlciB0aGUgbmV3IHRhZy4gQWxzbyBpbXByb3ZlIHRlIGRvY3MgYW5kIHVzZSBnc3RfdGFnX21lcmdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgRG8gYXMgdGltIHBvaW50ZWQgb3V0IGFuZCBhY3R1YWxseSByZWdpc3RlciB0aGUgbmV3IHRhZy4gQWxzbyBpbXByb3ZlCgkgIHRlIGRvY3MgYW5kIHVzZSBnc3RfdGFnX21lcmdlX3N0cmluZ3Nfd2l0aF9jb21tYSgpIG1ldGhvZCB0byBhbGxvdwoJICByZXRyaXZpbmcgYWxsIGtleXdvcmRzIG1lcmdlZCBpbiBvbmUgbGlzdC4KCjIwMDgtMDgtMDEgMTE6NTc6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJldmVydCAnYWNjaWRlbnRpYWwnIGNoYW5nZSBvZiB0aGUgY29uZmlndXJlIG9wdGlvbiByZW1vdmFsLiBXZSBzdGlsbCBuZWVkIHRvIGdlbmVyYXRlIHRoZSB0eXBlcyBmaWxlIGluIGNvbmZpZ3VyZSAtLS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICBSZXZlcnQgJ2FjY2lkZW50aWFsJyBjaGFuZ2Ugb2YgdGhlIGNvbmZpZ3VyZSBvcHRpb24gcmVtb3ZhbC4gV2Ugc3RpbGwKCSAgbmVlZCB0byBnZW5lcmF0ZSB0aGUgdHlwZXMgZmlsZSBpbiBjb25maWd1cmUgLS1kaXNhYmxlLWxvYWQtc2F2ZS4KCjIwMDgtMDgtMDEgMTE6MzQ6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCBuZXcgdGFnbGlzdCBpdGVtIEdTVF9UQUdfS0VZV09SRFMsIG5lZWRlZCBmb3IgIzUyMDY5NCAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQWRkIG5ldyB0YWdsaXN0IGl0ZW0gR1NUX1RBR19LRVlXT1JEUywgbmVlZGVkIGZvciAjNTIwNjk0IC4KCjIwMDgtMDgtMDEgMTA6MDI6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogQWRkICJuYW1lLXRlbXBsYXRlIiwgImRpcmVjdGlvbiIsICJwcmVzZW5jZSIgYW5kICJjYXBzIiBwcm9wZXJ0aWVzLCBzbyB0aGF0IGdzdF9wYWRfdGVtcGxhdGVfbmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIChnc3RfcGFkX3RlbXBsYXRlX2NsYXNzX2luaXQpLCAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0KSwKCSAgKGdzdF9wYWRfdGVtcGxhdGVfbmV3KSwgKGdzdF9wYWRfdGVtcGxhdGVfcGFkX2NyZWF0ZWQpLAoJICAoZ3N0X3BhZF90ZW1wbGF0ZV9zZXRfcHJvcGVydHkpLCAoZ3N0X3BhZF90ZW1wbGF0ZV9nZXRfcHJvcGVydHkpOgoJICBBZGQgIm5hbWUtdGVtcGxhdGUiLCAiZGlyZWN0aW9uIiwgInByZXNlbmNlIiBhbmQgImNhcHMiIHByb3BlcnRpZXMsCgkgIHNvIHRoYXQgZ3N0X3BhZF90ZW1wbGF0ZV9uZXcoKSBpcyBqdXN0IGEgdGhpbiB3cmFwcGVyIGFyb3VuZAoJICBnX29iamVjdF9uZXcoKSwgd2hpY2ggaXMgYmV0dGVyIGZvciBiaW5kaW5ncy4gKEZpeGVzOiAjNTM5NzcyKQoKMjAwOC0wNy0zMSAxNzoxNjo1MCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHVyaS5jOiBCZSBtb3JlIGxpYmVyYWwgaW4gd2hhdCBVUklzIHdlIGFjY2VwdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHVyaS5jOgoJICBCZSBtb3JlIGxpYmVyYWwgaW4gd2hhdCBVUklzIHdlIGFjY2VwdC4KCSAgRG8gbm90IHVuZXNjYXBlIGJpdHMgb2YgdGhlIFVSSSBmb3Igbm8gYXBwYXJlbnQgcmVhc29uIGJlZm9yZSBwYXNzaW5nIHRvCgkgIHRoZSBlbGVtZW50LiBGaXhlcyAjNTQ1MzUyLgoKMjAwOC0wNy0zMSAxNToyNDoyMSArMDAwMCAgUm9iZXJ0IFNjaHdlYmVsIDxyLnNjaHdlYmVsQHBlbmd1dHJvbml4LmRlPgoKCSAgZ3N0L2dzdC5jOiBJbmNsdWRlIGdzdGNvbmZpZy5oIGFzIG1hY3JvcyBmcm9tIGl0IGFyZSB1c2VkLiBGaXhlcyBidWcgIzU0NTYwNy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSb2JlcnQgU2Nod2ViZWwgPHIuc2Nod2ViZWxAcGVuZ3V0cm9uaXguZGU+CgkgICogZ3N0L2dzdC5jOgoJICBJbmNsdWRlIGdzdGNvbmZpZy5oIGFzIG1hY3JvcyBmcm9tIGl0IGFyZSB1c2VkLiBGaXhlcyBidWcgIzU0NTYwNy4KCjIwMDgtMDctMzEgMTU6MjA6MzIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFJlbW92ZSBHU1RfRElTQUJMRV8oRU5VTVRZUEVTfElOREVYfFVSSSkgZXZlcnl3aGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX3NldF9pbmRleF9mdW5jKToKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9pbmRleCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV94bWxfcmVhZF9jYWNoZSksIChnc3RfcmVnaXN0cnlfeG1sX3NhdmVfZmVhdHVyZSk6CgkgICogcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtaW5kZW50OgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9pbmRleF9pbmZvKSwgKHByaW50X2VsZW1lbnRfbGlzdCksCgkgIChwcmludF9wbHVnaW5fZmVhdHVyZXMpLCAocHJpbnRfZWxlbWVudF9mZWF0dXJlcyk6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKHByaW50X2V2ZW50X21hc2tzKSwKCSAgKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgICogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJICBSZW1vdmUgR1NUX0RJU0FCTEVfKEVOVU1UWVBFU3xJTkRFWHxVUkkpIGV2ZXJ5d2hlcmUuCgkgIERpc2FibGluZyB0aGUgaW5kZXhlcnMgYW5kIFVSSSBoYW5kbGVyIGNvZGUgd2lsbCBvbmx5IHJlZHVjZSB0aGUKCSAgcmVxdWlyZWQgYW1vdW50IG9mIG1lbW9yeSBieSBhIHZlcnkgc21hbGwgYW1vdW50IGJ1dCBvbiB0aGUgb3RoZXIgaGFuZAoJICByZXF1aXJlcyBtdWNoIG1vcmUgbWFpbnRhaW5jZSB3b3JrLiBBcGFydCBmcm9tIHRoYXQgbWFueSBwbGFjZXMgb2YKCSAgY29kZSBhcmUgYnJva2VuIHdoZW4gZGlzYWJsaW5nIHRoZW0uCgkgIERpc2FibGluZyB0aGUgZW51bSB0eXBlcyBkb2Vzbid0IHJlZHVjZSB0aGUgcmVxdWlyZWQgYW1vdW50IG9mIG1lbW9yeQoJICBieSBtb3JlIHRoYW4gYSBmZXcgYnl0ZXMgYW5kIG1ha2VzIGl0IGhhcmQgdG8gZml4IGJ1Z3MgbGlrZSAjNTM5NzcyLAoJICBpLmUuIHVzZSB0aGUgZW51bXMgYXMgR09iamVjdCBwcm9wZXJ0aWVzLgoKMjAwOC0wNy0zMSAxMzowNjo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IEFkZCBzb21lIHRob3VnaHRzIGFuZCBwcm9ibGVtcyB3aXRoIHVwc3RyZWFtIHJlbmVnb3RpYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIEFkZCBzb21lIHRob3VnaHRzIGFuZCBwcm9ibGVtcyB3aXRoIHVwc3RyZWFtIHJlbmVnb3RpYXRpb24uCgoyMDA4LTA3LTMxIDEyOjUwOjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBSZW1vdmUgc2lsbHkgcmVkdW5kYW50IGRlYnVnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjY2VwdGNhcHNfZGVmYXVsdCksCgkgIChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpLCAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCk6CgkgIFJlbW92ZSBzaWxseSByZWR1bmRhbnQgZGVidWcuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgQ2xhcmlmeSB0aGUgZG9jcyByZWdhcmRpbmcgbmV3IGNhcHMgcmVjZWl2ZWQgZnJvbSBwYWRfYWxsb2MuCgoyMDA4LTA3LTMxIDA5OjU1OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IE1ha2Ugc2V0dGluZyB0aGUgY2FwcyBtb3JlIHRocmVhZHNhZmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9jYXBzZmlsdGVyX2dldF9wcm9wZXJ0eSksIChnc3RfY2Fwc2ZpbHRlcl90cmFuc2Zvcm1fY2Fwcyk6CgkgIE1ha2Ugc2V0dGluZyB0aGUgY2FwcyBtb3JlIHRocmVhZHNhZmUuCgoyMDA4LTA3LTMxIDA4OjM5OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6IFVwZGF0ZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDoKCSAgVXBkYXRlIGRvY3MuCgoyMDA4LTA3LTMxIDA4OjM3OjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBBZGQgYW5kIHVzZSBhIGN1c3RvbSBhY2NlcHRjYXBzIGZ1bmN0aW9uIGluc3RlYWQgb2YgZmFsbGluZyBiYWNrIHRvIHRoZSBwb3RlbnRpYWxseSBsZXNzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KSwKCSAgKGdzdF9xdWV1ZV9hY2NlcHRjYXBzKToKCSAgQWRkIGFuZCB1c2UgYSBjdXN0b20gYWNjZXB0Y2FwcyBmdW5jdGlvbiBpbnN0ZWFkIG9mIGZhbGxpbmcgYmFjayB0byB0aGUKCSAgcG90ZW50aWFsbHkgbGVzcyBvcHRpbWl6ZWQgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KCjIwMDgtMDctMjkgMTU6MzI6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IE9ubHkgc2FuaXR5LWNoZWNrIHRoZSBidWZmZXIgc2l6ZSBpZiByZXF1ZXN0ZWRfY2FwcyA9PSBidWZmZXJfY2FwcyAoaWUuIGRvbid0IHRha2UgcGFkIGNhcHMgaW50byBhY2NvdW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCk6CgkgIE9ubHkgc2FuaXR5LWNoZWNrIHRoZSBidWZmZXIgc2l6ZSBpZiByZXF1ZXN0ZWRfY2FwcyA9PSBidWZmZXJfY2FwcwoJICAoaWUuIGRvbid0IHRha2UgcGFkIGNhcHMgaW50byBhY2NvdW50LCB0aGV5J3JlIG5vdCByZWxldmFudCBoZXJlKQoKMjAwOC0wNy0yOSAxNDozMjo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuKjogUmV2ZXJ0aW5nIGFzIG5vdCBldmVyeXRoaW5nIGlzIGNsZWFyIHlldC4gTmVlZHMgc29tZSBnZW5lcmFsIGRlc2lnbiB3b3JrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIFJldmVydGluZyBhcyBub3QgZXZlcnl0aGluZyBpcyBjbGVhciB5ZXQuIE5lZWRzIHNvbWUgZ2VuZXJhbCBkZXNpZ24KCSAgd29yay4KCjIwMDgtMDctMjkgMTM6MzY6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIENoYW5nZUxvZzogQ2hhbmdlTG9nIHN1cmdlcnkgZm9yIHRlZSBjb21taXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnkgZm9yIHRlZSBjb21taXQuCgoyMDA4LTA3LTI5IDEzOjMwOjAyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBDbGVhbnVwIHNlY3Rpb24tZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQ2xlYW51cCBzZWN0aW9uLWZpbGUuCgoyMDA4LTA3LTI5IDExOjU3OjExICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS4qOiBSZWxheSB0YWcgZXZlbnRzIGluIHRlZS4gRml4ZXMgcGFydHMgb2YgIzQ3NDAxNi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICBSZWxheSB0YWcgZXZlbnRzIGluIHRlZS4gRml4ZXMgcGFydHMgb2YgIzQ3NDAxNi4KCjIwMDgtMDctMjkgMDA6NDU6MjkgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIEJ1aWxkIHRoZSBuZXQgbGlicmFyeSBpZiB3ZSBoYXZlIHdpbnNvY2syLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkgIEJ1aWxkIHRoZSBuZXQgbGlicmFyeSBpZiB3ZSBoYXZlIHdpbnNvY2syLgoKMjAwOC0wNy0yNiAxMjowMDozNiArMDAwMCAgTHVjIFBpb25jaG9uIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoKCSAgZG9jcy9tYW51YWwvOiBSZXBsYWNlIG9uZSBkaWFncmFtIHdpdGggdHdvIHNlcGFyYXRlIG9uZXMgYW5kIHVwZGF0ZXMgb3RoZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IEx1YyBQaW9uY2hvbiA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC10aHJlYWRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9kaWFncmFtcy1waXBlbGluZXMuc3ZnOgoJICAqIGRvY3MvbWFudWFsL2hlbGxvLXdvcmxkLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9saW5rZWQtZWxlbWVudHMucG5nOgoJICAqIGRvY3MvbWFudWFsL21pbWUtd29ybGQucG5nOgoJICAqIGRvY3MvbWFudWFsL3F1ZXVlLnBuZzoKCSAgKiBkb2NzL21hbnVhbC90aHJlYWQtYnVmZmVyaW5nLnBuZzoKCSAgKiBkb2NzL21hbnVhbC90aHJlYWQtc3luY2hyb25pemluZy5wbmc6CgkgIFJlcGxhY2Ugb25lIGRpYWdyYW0gd2l0aCB0d28gc2VwYXJhdGUgb25lcyBhbmQgdXBkYXRlcyBvdGhlcnMuCgkgIEZpeGVzICM1NDI0MDEuCgoyMDA4LTA3LTI1IDEwOjI0OjQzICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuaDogRml4IGxpbmsgaW4gZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgRml4IGxpbmsgaW4gZG9jdW1lbnRhdGlvbi4KCjIwMDgtMDctMjQgMTc6Mzg6NDMgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWVzc2FnZS5jOiBGaXggY29uZnVzaW5nIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIEZpeCBjb25mdXNpbmcgZG9jdW1lbnRhdGlvbi4KCjIwMDgtMDctMjQgMTU6MTM6MjQgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDogcmV2ZXJ0IHRoZSBjaGFuZ2VzIHRvIHRoZSBoZWFkZXIgZmlsZSBmb3IgdGhlIEFCSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIHJldmVydCB0aGUgY2hhbmdlcyB0byB0aGUgaGVhZGVyIGZpbGUgZm9yIHRoZSBBQkkuCgoyMDA4LTA3LTI0IDE0OjQ3OjU4ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLio6IERvbid0IGNhY2hlIHRoZSBzZWVrYWJsZSBzdGF0dXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBEb24ndCBjYWNoZSB0aGUgc2Vla2FibGUgc3RhdHVzLgoJICBGaXhlcyBidWcgIzU0NDE3NAoKMjAwOC0wNy0yNCAxMjozNjoyMCArMDAwMCAgUmVuZSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDogQWRkIGZha2VzaW5rIHRvIGV4YW1wbGUgY29kZSB0byBjbG9zZSB0aGUgcGlwZWxpbmUgZ3JhcGguICBUaGlzIHByZXZlbnRzIHRoZSBwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6IEFkZCBmYWtlc2luayB0byBleGFtcGxlCgkgIGNvZGUgdG8gY2xvc2UgdGhlIHBpcGVsaW5lIGdyYXBoLiAgVGhpcyBwcmV2ZW50cyB0aGUgcHJvZ3JhbSBmcm9tCgkgIHByaW50aW5nIGludGVybmFsIGRhdGEgZmxvdyBlcnJvcnMuCgoyMDA4LTA3LTIzIDE1OjQ0OjA0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDogQ29ycmVjdCB0eXBvLiBGaXhlcyBidWcgIzU0NDMyMC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgIENvcnJlY3QgdHlwby4gRml4ZXMgYnVnICM1NDQzMjAuCgoyMDA4LTA3LTIyIDE4OjEyOjU0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBjb25maWd1cmUuYWM6IFJlbW92ZSBBQ19JU0NfUE9TSVggbWFjcm87IGl0J3MgYnJva2VuIG9uIHNvbWUgcGxhdGZvcm1zIGFuZCBub3QgbmVlZGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFJlbW92ZSBBQ19JU0NfUE9TSVggbWFjcm87IGl0J3MgYnJva2VuIG9uIHNvbWUgcGxhdGZvcm1zIGFuZCBub3QgbmVlZGVkLgoJICBBZGQgY2hlY2sgKHRha2VuIGZyb20gLWJhc2UpIGZvciB3aW5zb2NrLCBhZGRzIFdJTjMyX0xJQlMKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgIEFkZCBXSU4zMl9MSUJTIHRvIExJQkFERCBmb3IgbGliZ3N0cmVhbWVyLiBOZWVkZWQgbm93IHRoYXQgZ3N0cG9sbCB1c2VzCgkgIHdpbnNvY2suCgkgIERlZmluZSBHU1RfRVhQT1JUUyB3aGVuIGJ1aWxkaW5nIGxpYmdzdHJlYW1lciAob25seSB1c2VkIG9uIHdpbjMyKQoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIFVzZSBHU1RfRVhQT1JUIGluc3RlYWQgb2YgbG9jYWxseS1kZWZpbmVkIChhbmQgaW5jb3JyZWN0IElNUE9SVF9TWU1CT0wpCgkgIGZvciBzeW1ib2xzIHRoYXQgd2UgbmVlZCB0byBleHBvcnQgaW4gYm90aCB0aGVzZSBmaWxlcy4KCSAgKiBnc3QvZ3N0cG9sbC5jOgoJICBJbmNsdWRlIGdzdF9wcml2YXRlLmggaGlnaGVyIHVwIHRvIGF2b2lkIHNvbWUgY29tcGlsZSBwcm9ibGVtcyBvbiB3aW4zMi4KCjIwMDgtMDctMjIgMDk6MjQ6MzcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBGaXggdHlwb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBGaXggdHlwb3MuCgoyMDA4LTA3LTIyIDAwOjI5OjU1ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogUHJldmlvdXMgY29tbWl0IHdhcyB3cm9uZyBOVUxMIGNhcHMgZG9lcyBub3QgZXhpc3QgYW5kIGluZGljYXRlIGFuIGVycm9yLCBzbyBhbHNvIGFkZCBhIEZJWE1FIHRvIGdzdF9jLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgIFByZXZpb3VzIGNvbW1pdCB3YXMgd3JvbmcgTlVMTCBjYXBzIGRvZXMgbm90IGV4aXN0CgkgIGFuZCBpbmRpY2F0ZSBhbiBlcnJvciwgc28gYWxzbyBhZGQgYSBGSVhNRSB0bwoJICBnc3RfY2Fwc19pc19lcXVhbCB3aGVyZSBOVUxMIGNhcHMgYXJlIGFjY2VwdGVkLgoKMjAwOC0wNy0yMSAyMzowMjo0MCArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IEFsbG93IHBhc3Npbmcgb2YgTlVMTCB0byBnc3RfY2Fwc191bmlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICBBbGxvdyBwYXNzaW5nIG9mIE5VTEwgdG8gZ3N0X2NhcHNfdW5pb24KCjIwMDgtMDctMjEgMjE6MzI6MDYgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogQWRkIGluIGRvYyB0aGF0IGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldCBjYW4gYWNjZXB0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBBZGQgaW4gZG9jIHRoYXQgZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0IGNhbiBhY2NlcHQKCSAgTlVMTCB0byBjbGVhciB0YXJnZXQKCjIwMDgtMDctMTUgMjI6NTM6MDAgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC86IEdzdFJlZ2lzdHJ5UG9vbCBkb2Vzbid0IGV4aXN0OyBkb24ndCByZWZlciB0byBpdCBpbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIEdzdFJlZ2lzdHJ5UG9vbCBkb2Vzbid0IGV4aXN0OyBkb24ndCByZWZlciB0byBpdCBpbiBkb2NzLgoJICBEb24ndCByZWZlciB0byBmdW5jdGlvbnMgdGhhdCBkb24ndCBleGlzdCBpbiBkb2NzLCBpdCdzCgkgIHVuaGVscGZ1bC4KCjIwMDgtMDctMTIgMTc6NTE6MTYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3QuYzogRml4IHNjYW5uaW5nIG9mIHBhdGhzIGdpdmVuIHZpYSAtLWdzdC1wbHVnaW4tcGF0aC4gRml4ZXMgYnVnICM1NDIxNzUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgRml4IHNjYW5uaW5nIG9mIHBhdGhzIGdpdmVuIHZpYSAtLWdzdC1wbHVnaW4tcGF0aC4gRml4ZXMgYnVnICM1NDIxNzUuCgoyMDA4LTA3LTEyIDE3OjQzOjE1ICswMDAwICB0bWF0dGggPGxlLmJ1c2luZXNzbWFuQGdtYWlsLmNvbT4KCgkgIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOiBEb24ndCB1c2UgYW4gdW5kZWNsYXJlZCB2YXJpYWJsZSBpbiB0aGUgZXhhbXBsZSBwcm9ncmFtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IHRtYXR0aCA8bGUgZG90IGJ1c2luZXNzbWFuIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6CgkgIERvbid0IHVzZSBhbiB1bmRlY2xhcmVkIHZhcmlhYmxlIGluIHRoZSBleGFtcGxlIHByb2dyYW0uCgkgIEZpeGVzIGJ1ZyAjNTQyNTczLgoKMjAwOC0wNy0xMiAwOTo1OTozMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogU3F1ZWV6ZSBnaG9zdC1wYWQgbGlua3MgYW5kIHJlbW92ZSA8PiBmcm9tIGNsYXNzbmFtZSBsYWJlbHMgdG8gc2F2ZSBtb3JlIGhvcml6b250YWwgc3BhY2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIFNxdWVlemUgZ2hvc3QtcGFkIGxpbmtzIGFuZCByZW1vdmUgPD4gZnJvbSBjbGFzc25hbWUgbGFiZWxzIHRvIHNhdmUKCSAgbW9yZSBob3Jpem9udGFsIHNwYWNlLgoKMjAwOC0wNy0xMSAxOTozMDo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogR2l2ZSByZXF1ZXN0IGFuZCBzb21ldGltZXMgcGFkcyBhIGRpZmZlcmVudCBzaHBlIHN0eWxlLiBDb25kZW5zZSB0aGUgZ3JhcGhzIGEgbGl0dGxlIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIEdpdmUgcmVxdWVzdCBhbmQgc29tZXRpbWVzIHBhZHMgYSBkaWZmZXJlbnQgc2hwZSBzdHlsZS4gQ29uZGVuc2UgdGhlCgkgIGdyYXBocyBhIGxpdHRsZSBtb3JlLgoKMjAwOC0wNy0xMCAwMDozMDowMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgY29uZmlndXJlLmFjOiBEb24ndCByZXF1aXJlIGZsZXggYW5kIGJpc29uIGlmIHRoZSBwYXJzZXIgaXMgZGlzYWJsZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRG9uJ3QgcmVxdWlyZSBmbGV4IGFuZCBiaXNvbiBpZiB0aGUgcGFyc2VyIGlzIGRpc2FibGVkLgoKMjAwOC0wNy0wOCAxMToyMDoyMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOiBEb24ndCB1c2UgZGVjbGFyYXRpb25zIGFmdGVyIHN0YXRlbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgKF9saXN0X2ZpbmRfc29ydGVkX2N1c3RvbSk6CgkgIERvbid0IHVzZSBkZWNsYXJhdGlvbnMgYWZ0ZXIgc3RhdGVtZW50cy4KCjIwMDgtMDctMDggMDk6MDQ6MjUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RjaGlsZHByb3h5LmM6IEFkZCBGSVhNRXMgZm9yIDAuMTEgdG8gdXNlIEdTVF9UWVBFX09CSkVDVCBpbiB0aGUgc2lnbmF0dXJlIG9mIHRoZSB0aGUgY2hpbGQtYWRkZWQgLyAtcmVtb3ZlZCBzaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOiAoZ3N0X2NoaWxkX3Byb3h5X2Jhc2VfaW5pdCk6CgkgIEFkZCBGSVhNRXMgZm9yIDAuMTEgdG8gdXNlIEdTVF9UWVBFX09CSkVDVCBpbiB0aGUgc2lnbmF0dXJlCgkgIG9mIHRoZSB0aGUgY2hpbGQtYWRkZWQgLyAtcmVtb3ZlZCBzaWduYWxzIGFzIEdzdENoaWxkUHJveHkKCSAgb25seSBzdXBwb3J0cyBHc3RPYmplY3RzLgoKMjAwOC0wNy0wNyAxMTowMToyNiArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IEZpeCBtZW1sZWFrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIEZpeCBtZW1sZWFrCgoyMDA4LTA3LTA2IDEyOjQ5OjQzICswMDAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyb0BubnZhLm9yZz4KCgkgIGdzdC9nc3Rwb2xsLmM6IEZpeCAiaWdub3JlZCByZXR1cm4gdmFsdWUiIGNvbXBpbGVyIHdhcm5pbmcgd2l0aCBuZXdlciBnbGliYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRybyBhdCBubnZhIGRvdCBvcmc+CgkgICogZ3N0L2dzdHBvbGwuYzoKCSAgRml4ICJpZ25vcmVkIHJldHVybiB2YWx1ZSIgY29tcGlsZXIgd2FybmluZyB3aXRoIG5ld2VyIGdsaWJjLgoKMjAwOC0wNy0wNSAxNjoyODoyOCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdGNoaWxkcHJveHkuYzogRml4IGNvcHkmcGFzdGUgZXJyb3IgaW4gZ3N0X2NoaWxkX3Byb3h5X3JlbW92ZWQoKSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBGaXggY29weSZwYXN0ZSBlcnJvciBpbiBnc3RfY2hpbGRfcHJveHlfcmVtb3ZlZCgpIGRvY3VtZW50YXRpb24uCgoyMDA4LTA3LTAyIDE0OjQzOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBQcmludCBlcnJvciBkZWJ1ZyBtZXNzYWdlIGlmIHBsdWdpbiBkZXNjcmlwdGlvbiBmaWVsZHMgdGhhdCBzaG91bGQgYmUgc2V0IGFyZSBOVUxMLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChDSEVDS19QTFVHSU5fREVTQ19GSUVMRCksIChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgIFByaW50IGVycm9yIGRlYnVnIG1lc3NhZ2UgaWYgcGx1Z2luIGRlc2NyaXB0aW9uIGZpZWxkcyB0aGF0IHNob3VsZAoJICBiZSBzZXQgYXJlIE5VTEwuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfY29uc3Rfc3RyaW5nKToKCSAgRG9uJ3QgY3Jhc2ggaWYgdGhlIHN0cmluZyB0byBzZXJpYWxpc2UgaXMgTlVMTCAoaXQgcmVhbGx5IHNob3VsZAoJICBub3QgYmUsIGJ1dCBhcHBhcmVudGx5IHRoaXMgdXNlZCB0byB3b3JrIHdpdGggdGhlIHhtbCByZWdpc3RyeSAuLi4pLgoKMjAwOC0wNy0wMiAxMjoyMzoxMiArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OiBGaXggcGFyc2luZyBvZiBsb2cgbWVzc2FnZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6CgkgIEZpeCBwYXJzaW5nIG9mIGxvZyBtZXNzYWdlcwoKMjAwOC0wNy0wMSAwOToyNzo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjogU29ydCBhbHBoYWJldGljYWxseSBzbyBtYWtlIGNoZWNrLWV4cG9ydHMgZG9lc24ndCBiYXJmLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6OgoJICBTb3J0IGFscGhhYmV0aWNhbGx5IHNvIG1ha2UgY2hlY2stZXhwb3J0cyBkb2Vzbid0IGJhcmYuCgoyMDA4LTA3LTAxIDA1OjUzOjMyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZXZlbnQuYzogVXNlIGdzdF9mb3JtYXRfZ2V0X25hbWUoKSB0byBpbXByb3ZlIGRlYnVnIG91dHB1dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgIFVzZSBnc3RfZm9ybWF0X2dldF9uYW1lKCkgdG8gaW1wcm92ZSBkZWJ1ZyBvdXRwdXQuCgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBSZW1vdmUgI2lmZGVmJ2VkIGNvZGUuIEFkZCBUT0RPIGNvbW1lbnQuCgkgICogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgQWRkIGRlYnVnIG91dHB1dCB0byBlYXNlIHNwb3R0aW5nIGZvcm1hdCAhPSBzZWdtZW50LmZvcm1hdCBhc3NlcnRpb25zLgoKMjAwOC0wNi0zMCAwOTo0Mjo0MyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svbGlicy9nZHAuYzogQWxzbyBlbmFibGUgdGhlIEdEUCB1bml0IHRlc3QgYWdhaW4gb24gUFBDIG5vdyB0aGF0IHRoZSBidWcgaXMgZml4ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IChnc3RfZHBfc3VpdGUpOgoJICBBbHNvIGVuYWJsZSB0aGUgR0RQIHVuaXQgdGVzdCBhZ2FpbiBvbiBQUEMgbm93IHRoYXQgdGhlIGJ1ZwoJICBpcyBmaXhlZC4KCjIwMDgtMDYtMzAgMDk6Mzg6NDUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogRG9uJ3Qgd3JpdGUgdG8gdGhlIHNhbWUgcmVnaW9uIG9mIG1lbW9yeSBhcyBhIHVpbnQ2NCBhbmQgdWludDE2IGFzIHRoaXMgYnJlYWtzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIERvbid0IHdyaXRlIHRvIHRoZSBzYW1lIHJlZ2lvbiBvZiBtZW1vcnkgYXMgYSB1aW50NjQgYW5kIHVpbnQxNgoJICBhcyB0aGlzIGJyZWFrcyBzdHJpY3QgYWxpYXNpbmcgcnVsZXMgYW5kIGFwcGFyYW50bHkgYnJlYWtzIG9uIFBQQwoJICBhbmQgczM5MC4gVGhhbmtzIHRvIFNqb2VyZCBTaW1vbnMgZm9yIGFuYWx5c2luZy4gRml4ZXMgYnVnICMzNDgxMTQuCgoyMDA4LTA2LTI5IDE2OjExOjI0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6IE9wdGltaXplIGxpc3QgaGFuZGxpbmcuIFVzZSBvd24gZmluZCBmdW5jdGlvbi4gRXhwbG9pdCB0aGF0IGZhY3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBPcHRpbWl6ZSBsaXN0IGhhbmRsaW5nLiBVc2Ugb3duIGZpbmQgZnVuY3Rpb24uIEV4cGxvaXQgdGhhdCBmYWN0IHRoYXQKCSAgdGhlIGxpc3QgaXMgc29ydGVkLiBBbHNvIHBhc3MgYmFjayB0aGUgbm9kZSBiZWZvcmUsIHNvIHRoYXQgd2UgY2FuCgkgIGluc2VydCBxdWlja2x5LiBIYXZlIGEgZmFzdCBwYXRoIGZvciBhcHBlbmQuCgoyMDA4LTA2LTI5IDE1OjAwOjI2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi86IEZpeCB0d28gdHlwb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWZyYW1lc3RlcC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgIEZpeCB0d28gdHlwb3MuCgoyMDA4LTA2LTI3IDA5OjAyOjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb25maWd1cmUuYWM6CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgU2hvdyBjb25maWd1cmF0aW9uIHN1bWFyeSBhZnRlciBjb25maWd1cmUgcnVuLiBCYXNlZCBvbiBwYXRjaCBieQoJICBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+LiBGaXhlczogIzU0MDEzNAoKMjAwOC0wNi0yNyAwNzowMzowNSArMDAwMCAgTHVjIFBpb25jaG9uIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoKCSAgZG9jcy9tYW51YWwvOiBBZGQgc2NhbGUgZmFjdG9yIGZvciBwZGYgb3V0cHV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IEx1YyBQaW9uY2hvbiAgPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC10aHJlYWRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICBBZGQgc2NhbGUgZmFjdG9yIGZvciBwZGYgb3V0cHV0LgoJICAqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgIFN3aXRjaGVkIHNlY3Rpb25zICJwYWRzIiBhbmQgImJpbnMiIGFuZCBhZGRlZCBhIHBpcGVsaW5lIGRpYWdyYW0uCgkgICogZG9jcy9tYW51YWwvaW50cm8tZ3N0cmVhbWVyLnhtbDoKCSAgQWRkZWQgbW9yZSBpbmZvIG9uIGdzdHJlYW1lci4KCSAgKiBkb2NzL21hbnVhbC9pbnRyby1tb3RpdmF0aW9uLnhtbDoKCSAgQ29tbWVudGVkIG91dCB0aGUgd2hvbGUgc2VjdGlvbiAiY3VycmVudCBwcm9ibGVtIiwgd2hpY2ggc291bmRzCgkgIGhpc3RvcmljYWwgYW5kIHNvbWVob3cgb3NvbGV0ZTsgaXQgY291bGQgYmUgdHVybmVkIGluIGEgcG9zaXRpdmUKCSAgd2F5IGFuZCByZXVzZWQgdG8gaW1wcm92ZSB0aGUgZGVzaWduIHByaW5jaXBsZXMuCgkgICogZG9jcy9tYW51YWwvaW50cm8tcHJlZmFjZS54bWw6CgkgIC0gVXBkYXRlIFVSTHMgdG8gbGlicmFyeS5nbm9tZS5vcmcuCgkgIC0gRG8gbm90IG1lbnRpb24gR1RLKyBpbiBwcmVsaW1pbmFyeSByZWFkaW5nIChpcnJlbGV2YW50KS4KCSAgLSBNZW50aW9uIFBsdWdpbiBXcml0ZXIncyBNYW51YWwgYW5kIGZ1cnRoZXIgcmVhZGluZyBvbmx5IGluIHRoZQoJICBwcmV2aW91cyBzZWN0aW9uLgoJICAtIEFkZGVkIGEgbGlzdCBvZiBtb3N0IHJlbGV2YW50IEdPYmplY3QvZ2xpYiB0b3BpY3MuCgkgICogZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgICogZG9jcy9tYW51YWwvYmluLWVsZW1lbnQtZ2hvc3QuZmlnOgoJICAqIGRvY3MvbWFudWFsL2Jpbi1lbGVtZW50LWdob3N0LnBuZzoKCSAgKiBkb2NzL21hbnVhbC9iaW4tZWxlbWVudC1ub2dob3N0LmZpZzoKCSAgKiBkb2NzL21hbnVhbC9iaW4tZWxlbWVudC1ub2dob3N0LnBuZzoKCSAgKiBkb2NzL21hbnVhbC9iaW4tZWxlbWVudC5maWc6CgkgICogZG9jcy9tYW51YWwvYmluLWVsZW1lbnQucG5nOgoJICAqIGRvY3MvbWFudWFsL2ZpbHRlci1lbGVtZW50LW11bHRpLmZpZzoKCSAgKiBkb2NzL21hbnVhbC9maWx0ZXItZWxlbWVudC1tdWx0aS5wbmc6CgkgICogZG9jcy9tYW51YWwvZmlsdGVyLWVsZW1lbnQuZmlnOgoJICAqIGRvY3MvbWFudWFsL2ZpbHRlci1lbGVtZW50LnBuZzoKCSAgKiBkb2NzL21hbnVhbC9nc3RyZWFtZXItb3ZlcnZpZXcucG5nOgoJICAqIGRvY3MvbWFudWFsL2hlbGxvLXdvcmxkLmZpZzoKCSAgKiBkb2NzL21hbnVhbC9oZWxsby13b3JsZC5wbmc6CgkgICogZG9jcy9tYW51YWwvbGlua2VkLWVsZW1lbnRzLmZpZzoKCSAgKiBkb2NzL21hbnVhbC9saW5rZWQtZWxlbWVudHMucG5nOgoJICAqIGRvY3MvbWFudWFsL21pbWUtd29ybGQuZmlnOgoJICAqIGRvY3MvbWFudWFsL21pbWUtd29ybGQucG5nOgoJICAqIGRvY3MvbWFudWFsL3F1ZXVlLmZpZzoKCSAgKiBkb2NzL21hbnVhbC9xdWV1ZS5wbmc6CgkgICogZG9jcy9tYW51YWwvc2ltcGxlLXBsYXllci5wbmc6CgkgICogZG9jcy9tYW51YWwvc2luay1lbGVtZW50LmZpZzoKCSAgKiBkb2NzL21hbnVhbC9zaW5rLWVsZW1lbnQucG5nOgoJICAqIGRvY3MvbWFudWFsL3NyYy1lbGVtZW50LmZpZzoKCSAgKiBkb2NzL21hbnVhbC9zcmMtZWxlbWVudC5wbmc6CgkgICogZG9jcy9tYW51YWwvZGlhZ3JhbXMtZ2VuZXJhbC5zdmc6CgkgICogZG9jcy9tYW51YWwvZGlhZ3JhbXMtcGlwZWxpbmVzLnN2ZzoKCSAgUmVtb3ZlZCAuZmlnLCBhZGRlZCAucG5nIGNvdW50ZXJwYXJ0LgoJICBGaXhlczogIzUzOTEzNwoKMjAwOC0wNi0yNiAyMDoyNzowMCArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS4qOiByZXZlcnQgZXh0cmEtc2l6ZS1idWZmZXJzIHN0dWZmLCBjYXVzZWQgc29tZSByYWNlIGNvbmRpdGlvbnMgYW5kIGV4dHJhLXNpemUtYnVmZmVycy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgcmV2ZXJ0IGV4dHJhLXNpemUtYnVmZmVycyBzdHVmZiwgY2F1c2VkIHNvbWUgcmFjZSBjb25kaXRpb25zCgkgIGFuZCBleHRyYS1zaXplLWJ1ZmZlcnMgaXMgbm90IHVzZWQgYW55bW9yZS4gRG9jcyBuZWVkcyBzb21lIHVwZGF0ZXMKCjIwMDgtMDYtMjYgMTI6NTI6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9jb21tb24vOiBVcGRhdGUgd2luMzIgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJICAqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFVwZGF0ZSB3aW4zMiBmaWxlcy4KCjIwMDgtMDYtMjYgMTI6MjQ6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5oOiBBZGQgbWlzc2luZyBTaW5jZScgbWFya2VycyB0byBndGstZG9jIGJsdXJicy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuaDogKEdzdERlYnVnR3JhcGhEZXRhaWxzKSwKCSAgKEdTVF9ERUJVR19CSU5fVE9fRE9UX0ZJTEUpOgoJICBBZGQgbWlzc2luZyBTaW5jZScgbWFya2VycyB0byBndGstZG9jIGJsdXJicy4KCjIwMDgtMDYtMjYgMTE6NTk6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzogQWRkIHNvbWUgbW9yZSB0ZXN0cyB3aXRoIHN3aXRjaGluZyBjYXBzIGluIGJ1ZmZlcl9hbGxvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6IChidWZmZXJfYWxsb2NfcHQxKSwKCSAgKHNldF9jYXBzX3B0MSksIChHU1RfU1RBUlRfVEVTVCksIChzZXRfY2Fwc19wdDIpLCAodHJhbnNmb3JtX2lwXzEpLAoJICAoc2V0X2NhcHNfMSksIChzZXRfY2Fwc19jdDEpLCAodHJhbnNmb3JtX2N0MSksCgkgICh0cmFuc2Zvcm1fY2Fwc19jdDEpLCAodHJhbnNmb3JtX3NpemVfY3QxKSwgKGJ1ZmZlcl9hbGxvY19jdDEpLAoJICAoc2V0X2NhcHNfY3QyKSwgKHRyYW5zZm9ybV9jdDIpLCAodHJhbnNmb3JtX2NhcHNfY3QyKSwKCSAgKHRyYW5zZm9ybV9zaXplX2N0MiksIChidWZmZXJfYWxsb2NfY3QyKToKCSAgQWRkIHNvbWUgbW9yZSB0ZXN0cyB3aXRoIHN3aXRjaGluZyBjYXBzIGluIGJ1ZmZlcl9hbGxvYy4KCjIwMDgtMDYtMjUgMTc6Mjc6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9saWJzLzogTW9yZSB0ZXN0cywgcHJlcGFyZSBmb3IgdGVzdHMgd2l0aCBzd2l0Y2hpbmcgY2FwcyBpbiBidWZmZXJfYWxsb2MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzogKGdzdF90ZXN0X3RyYW5zX2Jhc2VfaW5pdCksCgkgIChnc3RfdGVzdF90cmFuc19jbGFzc19pbml0KSwgKHJlc3VsdF9zaW5rX2NoYWluKSwKCSAgKHJlc3VsdF9idWZmZXJfYWxsb2MpLCAoZ3N0X3Rlc3RfdHJhbnNfbmV3KSwgKGdzdF90ZXN0X3RyYW5zX2ZyZWUpLAoJICAoZ3N0X3Rlc3RfdHJhbnNfcHVzaCksIChnc3RfdGVzdF90cmFuc19wb3ApOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOiAoYnVmZmVyX2FsbG9jX3B0MSksCgkgIChzZXRfY2Fwc19wdDEpLCAoR1NUX1NUQVJUX1RFU1QpLCAoc2V0X2NhcHNfcHQyKSwgKHRyYW5zZm9ybV9pcF8xKSwKCSAgKHNldF9jYXBzXzEpLCAoc2V0X2NhcHNfY3QxKSwgKHRyYW5zZm9ybV9jdDEpLAoJICAodHJhbnNmb3JtX2NhcHNfY3QxKSwgKHRyYW5zZm9ybV9zaXplX2N0MSksIChidWZmZXJfYWxsb2NfY3QxKSwKCSAgKHNldF9jYXBzX2N0MiksICh0cmFuc2Zvcm1fY3QyKSwgKHRyYW5zZm9ybV9jYXBzX2N0MiksCgkgICh0cmFuc2Zvcm1fc2l6ZV9jdDIpLCAoYnVmZmVyX2FsbG9jX2N0MiksCgkgIChnc3RfYmFzZXRyYW5zZm9ybV9zdWl0ZSk6CgkgIE1vcmUgdGVzdHMsIHByZXBhcmUgZm9yIHRlc3RzIHdpdGggc3dpdGNoaW5nIGNhcHMgaW4gYnVmZmVyX2FsbG9jLgoKMjAwOC0wNi0yNSAxNTozOTowMiArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS4qOiBGaXggZGVhZC1sb2NrIGluIHVuZGVycnVuX2NiCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBGaXggZGVhZC1sb2NrIGluIHVuZGVycnVuX2NiCgoyMDA4LTA2LTI1IDE0OjQ5OjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OiBGaXggZGV2aWNlIG9wZW4vY2xvc2UgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBGaXggZGV2aWNlIG9wZW4vY2xvc2UgZG9jcy4KCjIwMDgtMDYtMjUgMTQ6NDc6MTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIENoYW5nZUxvZzogTWVudGlvbiBidWdudW1iZXIgZm9yIGxhc3QgY29tbWl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDaGFuZ2VMb2c6CgkgIE1lbnRpb24gYnVnbnVtYmVyIGZvciBsYXN0IGNvbW1pdC4KCjIwMDgtMDYtMjUgMTQ6NDQ6NTIgKzAwMDAgIEx1YyBQaW9uY2hvbiA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCgkgIGRvY3MvbWFudWFsL21hbnVhbC54bWw6IC0gUmVvcmdhbmlzZWQgdGhlIHByZXZpb3VzICJpbnRyb2R1Y3Rpb24iIGJ1bmRsZSBpbnRvIEZvcmV3b3JkLAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IEx1YyBQaW9uY2hvbiAgPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgkgICogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgLSBSZW9yZ2FuaXNlZCB0aGUgcHJldmlvdXMgImludHJvZHVjdGlvbiIgYnVuZGxlIGludG8gRm9yZXdvcmQsCgkgIEludHJvZHVjdGlvbiwgYW5kIEFib3V0IEdTdHJlYW1lci4gVGhlIHR3byBmaXJzdCBhcmUgPHByZWZhY2U+CgkgIGRvY2Jvb2sgZWxlbWVudHMuIFRoZSBsYXRlciBpcyB0aGUgZmlyc3QgcGFydCBvZiB0aGUgYm9vay4KCSAgLSBhZGRlZCBpbnRyby1nc3RyZWFtZXIueG1sIChjb250ZW50IHBhcnRpYWxseSBmcm9tCgkgIGludHJvLXByZWZhY2UueG1sKQoJICAtIG1vdmVkIGFwcGVuZGl4LXdpbjMyLnhtbCBpbnRvIGFwcGVuZGl4LWludGVncmF0aW9uLnhtbAoJICAqIGRvY3MvbWFudWFsL2ludHJvLXByZWZhY2UueG1sOiBnc3RyZWFtZXIgc2VjdGlvbiBtb3ZlZC4uLgoJICAqIGRvY3MvbWFudWFsL2ludHJvLWdzdHJlYW1lci54bWw6IC4uLmhlcmUuIG5ldyBmaWxlLgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXdpbjMyLnhtbDogcmVtb3ZlZCBmaWxlLiBDb250ZW50IG1vdmVkLi4uCgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOiAuLi5oZXJlLgoJICAqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDogc2VjdGlvbiBhYm91dCBHc3RFZGl0b3IgbW92ZWQuLi4KCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOiAuLi5oZXJlLgoKMjAwOC0wNi0yNSAxNDozMjo1MyArMDAwMCAgTHVjIFBpb25jaG9uIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoKCSAgZG9jcy9tYW51YWwvOiAtIEV4cGxpY2l0ZWx5IGluY2x1ZGUgZ2xpYi5oLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IEx1YyBQaW9uY2hvbiAgPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICAqIGRvY3MvbWFudWFsL2hlbGxvLXdvcmxkLmZpZzoKCSAgLSBFeHBsaWNpdGVseSBpbmNsdWRlIGdsaWIuaC4KCSAgLSBEbyBub3QgdXNlIGdsb2JhbCB2YXJpYWJsZXMuCgkgIC0gVXNlIGdfcHJpbnRlcnIoKSBpbnN0ZWFkIG9mIGdfcHJpbnQoKS4KCSAgLSBNaW5vciBmb3JtYXRpbmcvcmVuYW1pbmcgdG8gaW5jcmVhc2UgcmVhZGliaWxpdHkuCgkgIC0gUmVuYW1lZCBuZXdfcGFkKCkgdG8gb25fcGFkX2FkZGVkKCkKCSAgLSBJbXByb3ZlZCBleHBsZW5hdG9yeSBjb21tZW50cy4KCSAgLSByZW5hbWVkIG9nZyBwYXJzZXIgdG8gb2dnIGRlbXV4ZXIKCSAgLSBVc2UgImF1dG9hdWRpb3NpbmsiIGluc3RlYWQgb2YgImFsc2FzaW5rIi4KCSAgRml4ZXM6ICM1Mzg2MTkKCjIwMDgtMDYtMjUgMTQ6Mjc6MzcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIENoYW5nZUxvZzogUmVtb3ZlIGN2cyBjb25mbGljdCBtYXJrZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIENoYW5nZUxvZzoKCSAgUmVtb3ZlIGN2cyBjb25mbGljdCBtYXJrZXIuCgoyMDA4LTA2LTI1IDE0OjI1OjQ5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL1JFQURNRTogRG9jdW1lbnQgdGhhdCBmb3IgcGxnaW4tZG9jcyB3ZSBleHRyYXh0IGhlIHNob3J0LWRlc2MgZnJvbSB0aGUgZWxlbWVudCBkZXRhaWxzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgRG9jdW1lbnQgdGhhdCBmb3IgcGxnaW4tZG9jcyB3ZSBleHRyYXh0IGhlIHNob3J0LWRlc2MgZnJvbSB0aGUgZWxlbWVudAoJICBkZXRhaWxzLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgVGVsbCB0aGF0IGRldmljZXMgc2hvdWxkIGJlIGNsb3NlZCBpbiBQQVVTRUQgLT4gUkVBRFkuCgkgICogZG9jcy9tYW51YWwvUkVBRE1FOgoJICBEb2N1bWVudCBob3cgdGVzdHMgaW4gdGhlIG1hbnVhbCBhcmUgaGFuZGxlZC4KCSAgKiBkb2NzL21hbnVhbHMubWFrOgoJICBUeXBvIGluIGNvbW1lbnQuCgoyMDA4LTA2LTI1IDExOjUwOjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBPbmx5IGNhcmUgYWJvdXQgbGF0ZW5jeSBtaW4gYW5kIG1heCB3aGVuIHRoZSBzaW5rIGlzIGFjdHVhbGx5IGEgbGl2ZSBzaW5rLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fcXVlcnlfbGF0ZW5jeV9mb2xkKToKCSAgT25seSBjYXJlIGFib3V0IGxhdGVuY3kgbWluIGFuZCBtYXggd2hlbiB0aGUgc2luayBpcyBhY3R1YWxseSBhIGxpdmUKCSAgc2luay4KCjIwMDgtMDYtMjUgMTA6NTM6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDogRml4IHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICBGaXggdHlwby4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDoKCSAgQWRkIG5vdGVzIGFib3V0IHdoeSB0cmFuc2Zvcm0gbmVlZHMgdG8ga25vdyBpbnB1dC9vdXRwdXQgc2l6ZXMuCgkgIEFkZCBzb21lIGlzc3VlcyB0aGF0IG5lZWQgdG8gYmUgc29sdmVkLgoJICBBZGQgc29tZSBtb3JlIHVzZSBjYXNlcy4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6IChnc3RfdGVzdF90cmFuc19iYXNlX2luaXQpLAoJICAoZ3N0X3Rlc3RfdHJhbnNfY2xhc3NfaW5pdCksIChyZXN1bHRfc2lua19jaGFpbiksCgkgIChyZXN1bHRfYnVmZmVyX2FsbG9jKSwgKGdzdF90ZXN0X3RyYW5zX25ldyksIChnc3RfdGVzdF90cmFuc19mcmVlKSwKCSAgKGdzdF90ZXN0X3RyYW5zX3B1c2gpLCAoZ3N0X3Rlc3RfdHJhbnNfcG9wKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzogKGJ1ZmZlcl9hbGxvY19wdDEpLAoJICAoc2V0X2NhcHNfcHQxKSwgKEdTVF9TVEFSVF9URVNUKSwgKHNldF9jYXBzX3B0MiksICh0cmFuc2Zvcm1faXBfMSksCgkgIChzZXRfY2Fwc18xKSwgKHNldF9jYXBzX2N0MSksICh0cmFuc2Zvcm1fY3QxKSwKCSAgKHRyYW5zZm9ybV9jYXBzX2N0MSksICh0cmFuc2Zvcm1fc2l6ZV9jdDEpLCAoYnVmZmVyX2FsbG9jX2N0MSksCgkgIChnc3RfYmFzZXRyYW5zZm9ybV9zdWl0ZSk6CgkgIEFkZCBzdXBvcnQgZm9yIGRpZmZlcmVudCBwYWQgdGVtcGxhdGVzIGFuZCBidWZmZXItYWxsb2MuCgkgIEFkZCBtb3JlIGNoZWNrcyBmb3IgY2FwcyBhbmQgYnVmZmVyLWFsbG9jLgoJICBBZGQgY2hlY2tzIGZvciBwcm94eSBidWZmZXIgYWxsb2MuCgkgIEFkZCB1bml0IHRlc3QgZm9yIGNvcHkgdHJhbnNmb3JtLgoKMjAwOC0wNi0yNCAxOTo1Njo1MSArMDAwMCAgTHVjIFBpb25jaG9uIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoKCSAgZG9jcy9tYW51YWwvOiBUeXBvIGFuZCBmb3JtYXR0aW5nIGZpeGVzICgjNTM4NTk0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBMdWMgUGlvbmNob24gIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1saWNlbnNpbmcueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLXhtbC54bWw6CgkgICogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9pbnRyby1wcmVmYWNlLnhtbDoKCSAgVHlwbyBhbmQgZm9ybWF0dGluZyBmaXhlcyAoIzUzODU5NCkuCgoyMDA4LTA2LTI0IDA3OjQ5OjM2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogRml4IHNvbWUgbWVtb3J5IGxlYWtzIGFuZCB1c2VzIG9mIG9iamVjdCBpbnN0YW5jZXMgdGhhdCB3ZSBkb24ndCBhY3R1YWxseSBvd24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggc29tZSBtZW1vcnkgbGVha3MgYW5kIHVzZXMgb2Ygb2JqZWN0IGluc3RhbmNlcyB0aGF0IHdlIGRvbid0CgkgIGFjdHVhbGx5IG93bi4KCjIwMDgtMDYtMjIgMTk6MTk6MzUgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogQWRkIGZ1bmN0aW9uYWxpdHkgdG8gZXh0cmEtc2l6ZS1idWZmZXJzIHByb3BlcnR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgQWRkIGZ1bmN0aW9uYWxpdHkgdG8gZXh0cmEtc2l6ZS1idWZmZXJzIHByb3BlcnR5LgoKMjAwOC0wNi0yMiAxNDozNToxMyArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBEb24ndCB1cGRhdGUgdGhlIGN1cl90aW1lIG9uIEdTVF9DTE9DS19USU1FX05PTkUgKCM1Mzc4MDQpIGFuZCBkb24ndCBhY3RpdmF0ZSB0aGUgcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgRG9uJ3QgdXBkYXRlIHRoZSBjdXJfdGltZSBvbiBHU1RfQ0xPQ0tfVElNRV9OT05FICgjNTM3ODA0KSBhbmQgZG9uJ3QKCSAgYWN0aXZhdGUgdGhlIHBhZHMgaWYgdGhleSBhcmUgYWRkZWQgaW4gU1RBVEVfTlVMTC4KCjIwMDgtMDYtMjEgMjE6MjA6MTMgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBZGQgbmV3IEFQSSB0byBkb2MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkIG5ldyBBUEkgdG8gZG9jCgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBBUEk6IGdzdF9jaGVja190ZWFyZG93bl9wYWRfYnlfbmFtZQoKMjAwOC0wNi0yMSAxOTo0ODo1MyArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLio6IEFsc28gc2V0dXAgcmVxdWVzdCBwYWRzIGFuZCBhbGxvdyBzZXR1cCBwYWRzIGJ5IG5hbWUgKCM1Mzc4MTIpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgQWxzbyBzZXR1cCByZXF1ZXN0IHBhZHMgYW5kIGFsbG93IHNldHVwIHBhZHMgYnkgbmFtZSAoIzUzNzgxMikKCSAgQVBJOiBnc3RfY2hlY2tfc2V0dXBfc3JjX3BhZF9ieV9uYW1lCgkgIEFQSTogZ3N0X2NoZWNrX3NldHVwX3NpbmtfcGFkX2J5X25hbWUKCjIwMDgtMDYtMjAgMjE6MDg6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svOiBVc2UgSEFWRV9WQUxHUklORF9IIHNvbWUgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgVXNlIEhBVkVfVkFMR1JJTkRfSCBzb21lIG1vcmUuCgoyMDA4LTA2LTIwIDE2OjI5OjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHNjcmlwdHMvY3ZzLXVwZGF0ZS5zaDogUGFzcyBhcmd1bWVudHMgdG8gbWFrZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc2NyaXB0cy9jdnMtdXBkYXRlLnNoOgoJICBQYXNzIGFyZ3VtZW50cyB0byBtYWtlLgoJICBSdW4gYXV0b3JlZ2VuLnNoIGlmIE1ha2VmaWxlIGlzIG5vdCB0aGVyZS4KCjIwMDgtMDYtMjAgMTU6NTQ6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgRG9uJ3QgYXNzdW1lIHRoYXQgPHZhbGdyaW5kL3ZhbGdyaW5kLmg+IGV4aXN0cyBqdXN0IGJlY2F1c2UgdGhlIGJpbmFyeSBpcyB0aGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIERvbid0IGFzc3VtZSB0aGF0IDx2YWxncmluZC92YWxncmluZC5oPiBleGlzdHMganVzdCBiZWNhdXNlCgkgIHRoZSBiaW5hcnkgaXMgdGhlcmUuCgoyMDA4LTA2LTIwIDEyOjA2OjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svOiBBZGQgc29tZSB0ZXN0IGJhc2V0cmFuc2Zvcm0gZWxlbWVudCBhbmQgdGhlIGJlZ2lubmluZ3Mgb2YgdmFyaW91cyB1bml0IHRlc3RzIGZvciBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOiAoZ3N0X3Rlc3RfdHJhbnNfYmFzZV9pbml0KSwKCSAgKGdzdF90ZXN0X3RyYW5zX2NsYXNzX2luaXQpLCAoZ3N0X3Rlc3RfdHJhbnNfaW5pdCksCgkgIChnc3RfdGVzdF90cmFuc19zZXRfZGF0YSksIChyZXN1bHRfc2lua19jaGFpbiksCgkgIChnc3RfdGVzdF90cmFuc19uZXcpLCAoZ3N0X3Rlc3RfdHJhbnNfZnJlZSksIChnc3RfdGVzdF90cmFuc19wdXNoKSwKCSAgKGdzdF90ZXN0X3RyYW5zX3BvcCk6CgkgICogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgICh0cmFuc2Zvcm1faXBfMSksIChzZXRfY2Fwc18xKSwgKGdzdF9iYXNldHJhbnNmb3JtX3N1aXRlKToKCSAgQWRkIHNvbWUgdGVzdCBiYXNldHJhbnNmb3JtIGVsZW1lbnQgYW5kIHRoZSBiZWdpbm5pbmdzIG9mIHZhcmlvdXMKCSAgdW5pdCB0ZXN0cyBmb3IgaXQuCgoyMDA4LTA2LTIwIDExOjI0OjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBJbmNyZWFzZSBjb2RlIHJlYWRhYmlsaXR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9wZWVrKToKCSAgSW5jcmVhc2UgY29kZSByZWFkYWJpbGl0eS4KCSAgRG9uJ3QgdHJ5IHRvIGNvbXBhcmUgYnVmZmVyIG9mZnNldHMgd2hlbiB0aGVyIGFyZSBpbnZhbGlkLgoKMjAwOC0wNi0yMCAxMTowNzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOiBEaXN0IHNvbWUgbW9yZSBkZXNpZ24gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIERpc3Qgc29tZSBtb3JlIGRlc2lnbiBkb2NzLgoJICAqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBTbWFsbCBhZGRpdGlvbjogZ29vZCBwbHVnaW5zIG11c3RuJ3QgaGF2ZSBmdW5jdGlvbmFsIGNvZGUKCSAgd2l0aGluIGFzc2VydGlvbiBtYWNyb3MuCgoyMDA4LTA2LTIwIDEwOjMyOjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDogU29tZSBpZGVhcyBhYm91dCBhIGZyYW1lc3RlcCBBUEkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDoKCSAgU29tZSBpZGVhcyBhYm91dCBhIGZyYW1lc3RlcCBBUEkKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDoKCSAgU3RhcnQgZGVzaWduIGFuZCB1c2UgY2FzZXMgZm9yIGJhc2V0cmFuc2Zvcm0gaW4gb3JkZXIgdG8gZ2V0IGl0CgkgIGZpeGVkIHNvb24uCgoyMDA4LTA2LTIwIDEwOjIwOjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBNYWtlIGl0IGtub3duIHRoYXQgZ3N0X2J1c19wb2xsKCkgaXMgcHVyZSBldmlsIChmaXhlcyAjNTM4ODEwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICBNYWtlIGl0IGtub3duIHRoYXQgZ3N0X2J1c19wb2xsKCkgaXMgcHVyZSBldmlsIChmaXhlcyAjNTM4ODEwKS4KCjIwMDgtMDYtMjAgMTA6MTQ6NTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBSZW1vdmUgc2hvcnRfZGVzY3JpcHRpb24uIEFkZCBiYXNpYyBkb2NzIGZvciBnc3R0eXBlZmluZGVsZW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIFJlbW92ZSBzaG9ydF9kZXNjcmlwdGlvbi4gQWRkIGJhc2ljIGRvY3MgZm9yIGdzdHR5cGVmaW5kZWxlbWVudC4KCSAgU2ltcGxpZnkgbWFya3VwIGZvciBmYWtlc3JjL2Zkc3JjLgoKMjAwOC0wNi0yMCAxMDowNzoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogQWRkZWQgU2luY2UgZG9jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NsYXNzX2luaXQpOgoJICBBZGRlZCBTaW5jZSBkb2MuCgoyMDA4LTA2LTIwIDEwOjAyOjE0ICswMDAwICBqb2VsIGxhcnNzb24gPHRpbGxqb2VsQGdtYWlsLmNvbT4KCgkgIEFkZCB0aW1lb3V0IHByb3BlcnR5IGxpa2UgdWRwc3JjLiBGaXhlcyAjNTM4NjI4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IGpvZWwgbGFyc3NvbiA8dGlsbGpvZWwgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZkX3NyY19pbml0KSwgKGdzdF9mZF9zcmNfdXBkYXRlX2ZkKSwKCSAgKGdzdF9mZF9zcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9mZF9zcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mZF9zcmNfY3JlYXRlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgIEFkZCB0aW1lb3V0IHByb3BlcnR5IGxpa2UgdWRwc3JjLiBGaXhlcyAjNTM4NjI4LgoJICBBZGQgc29tZSBtb3JlIGRvY3MgYW5kIGV4YW1wbGUgcGlwZWxpbmVzLgoKMjAwOC0wNi0yMCAwODo1NDo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBtZXRob2QgdG8gYWxsb3cgc2lua3MgdG8gc3BlY2lmeSBhZGRpdGlvbmFsIGRlbGF5IGJldHdlZW4gdGhlIHN5bmMgdGltZXMgYW5kIHRoZSBhY3R1YWwgcmVuZGVyaW5nIG9mIHRoZSBkYXRhLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5X2xhdGVuY3kpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfcmVuZGVyX2RlbGF5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3JlbmRlcl9kZWxheSksIChnc3RfYmFzZV9zaW5rX3dhaXRfZW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgQWRkIG1ldGhvZCB0byBhbGxvdyBzaW5rcyB0byBzcGVjaWZ5IGFkZGl0aW9uYWwgZGVsYXkgYmV0d2VlbiB0aGUgc3luYwoJICB0aW1lcyBhbmQgdGhlIGFjdHVhbCByZW5kZXJpbmcgb2YgdGhlIGRhdGEuCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19zZXRfcmVuZGVyX2RlbGF5KCkKCSAgQVBJOiBnc3RfYmFzZV9zaW5rX2dldF9yZW5kZXJfZGVsYXkoKQoKMjAwOC0wNi0yMCAwODo0NTowMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJ1bXAgdmVyc2lvbiBudW1iZXIgYmFjayB0byBkZXYgLT4gMC4xMC4yMC4xCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQnVtcCB2ZXJzaW9uIG51bWJlciBiYWNrIHRvIGRldiAtPiAwLjEwLjIwLjEKCjIwMDgtMDYtMjAgMDg6Mzk6NTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFQSTogQWRkIEdTVF9UQUdfQVRUQUNITUVOVCBmb3IgZ2VuZXJpYyBmaWxlIGF0dGFjaG1lbnRzIHRvIHN0cmVhbXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFQSTogQWRkIEdTVF9UQUdfQVRUQUNITUVOVCBmb3IgZ2VuZXJpYyBmaWxlIGF0dGFjaG1lbnRzIHRvIHN0cmVhbXMuCgkgIEZpeGVzIGJ1ZyAjNTM4NTY4LgoKMjAwOC0wNi0yMCAwODozNjo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IFJldmVydCBvbmUgY2hhbmdlLCB0aGF0IG1ha2UgcmV0IHZhbHVlIHBvc3NpYmxlIHVuaW5pdGlhbGl6ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBSZXZlcnQgb25lIGNoYW5nZSwgdGhhdCBtYWtlIHJldCB2YWx1ZSBwb3NzaWJsZSB1bmluaXRpYWxpemVkLgoKMjAwOC0wNi0yMCAwODozMjozNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IFVzZSBmcmVlemUvdGhhdyBub3RpZnkgdG8gc3luYyBub3RpZnkgZW1pc3Npb24gYSBiaXQgKGl0cyBhbHNvIG1vcmUgZWZmaWNpZW50KS4gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBVc2UgZnJlZXplL3RoYXcgbm90aWZ5IHRvIHN5bmMgbm90aWZ5IGVtaXNzaW9uIGEgYml0IChpdHMgYWxzbyBtb3JlCgkgIGVmZmljaWVudCkuIE1vdmUgZGVidWcgb3V0cHV0IHRvIExPRyAoaXMgY2FsbGVkIGEgbG90IGluIGEgbG9vcCkuCgkgIEFsd2F5cyB1bnNldCBnX3ZhbHVlcyBpZiB0aGUgaGF2ZSBiZWVuIGluaXRpYWxpemVkLgoKMjAwOC0wNi0yMCAwODoyODo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSWYgd2UgaGF2ZSBub3Qgc2VlbiBhIGJ1ZmZlciBiZWZvcmUgRU9TLCB1c2UgdGhlIHNlZ21lbnQgdmFsdWVzIHRvIHJlcG9ydCB0aGUgY3VycmVudCBwby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9lb3MpLCAoZ3N0X2Jhc2Vfc2lua19ldmVudCk6CgkgIElmIHdlIGhhdmUgbm90IHNlZW4gYSBidWZmZXIgYmVmb3JlIEVPUywgdXNlIHRoZSBzZWdtZW50IHZhbHVlcyB0bwoJICByZXBvcnQgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW5zdGVhZCBvZiBpbnZhbGlkIHBvc2l0aW9ucy4KCjIwMDgtMDYtMjAgMDg6MjE6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIElnbm9yZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvdG1wbC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICBJZ25vcmUgbW9yZS4KCjIwMDgtMDYtMjAgMDg6MTc6MDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJld3JpdGUgaGFuZGxpbmcgb2YgZGVmYXVsdCB2YWx1ZXMuIEZpeCBvdmVyZmxvdyB3aXRoIHVuc2lnbmVkIHR5cGVzIGluIGxpbmVhciBpbnRlcnBvbGF0aW9uLiBSZW1vdmUgbm93IG9ic29sZXRlIF9maS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIFJld3JpdGUgaGFuZGxpbmcgb2YgZGVmYXVsdCB2YWx1ZXMuIEZpeCBvdmVyZmxvdyB3aXRoIHVuc2lnbmVkIHR5cGVzCgkgIGluIGxpbmVhciBpbnRlcnBvbGF0aW9uLiBSZW1vdmUgbm93IG9ic29sZXRlIF9maXJzdF92YWx1ZSgpIGZ1bmN0aW9uLgoJICBBZGQgbW9yZSB0ZXN0cy4gRml4ZXMgIzUzODIwMS4KCjIwMDgtMDYtMjAgMDg6MTQ6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQWRkIGRlYnVnIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpOgoJICBBZGQgZGVidWcgaW5mby4KCSAgV2hlbiBhIGJ1ZmZlciBpcyB3cml0YWJsZSwgaXRzIG1ldGFkYXRhIGlzIGFsc28gd3JpdGFibGUgc28gd2UgZG9uJ3QKCSAgbmVlZCB0byBzdWJidWZmZXIgKHdoaWNoIHRoZW4gbWFrZXMgdGhlIGJ1ZmZlciBub3Qtd3JpdGFibGUgYW55bW9yZSkuCgo9PT0gcmVsZWFzZSAwLjEwLjIwID09PQoKMjAwOC0wNi0xOCAxMDo1ODozNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjIwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuMjAKCjIwMDgtMDYtMTggMTA6NTY6MTggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDgtMDYtMTEgMjE6MTQ6MTcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiAwLjEwLjE5LjMgcHJlLXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAwLjEwLjE5LjMgcHJlLXJlbGVhc2UKCjIwMDgtMDYtMTEgMjA6MDc6MzEgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgUmVuYW1lIERBVEFESVIgdG8gR1NUX0RBVEFESVIgdG8gYXZvaWQgYnVpbGQgcHJvYmxlbXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgUmVuYW1lIERBVEFESVIgdG8gR1NUX0RBVEFESVIgdG8gYXZvaWQgYnVpbGQgcHJvYmxlbXMKCSAgb24gd2luMzIuIFBhdGNoIEJ5OiBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCSAgRml4ZXM6ICM1MzY4NTcKCjIwMDgtMDYtMDUgMTA6MTM6NDUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogRXhwbGljaXRlbHkgbGluayB3aXRoIC1sZGwgaWYgZGxhZGRyKCkgaXMgZm91bmQgdGhlcmUuIEJlZm9yZSBpdCB3YXMgaW1wbGljaXRlbHkgbGlua2VkIGJ5IHRoZSBnbW9kdWxlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEV4cGxpY2l0ZWx5IGxpbmsgd2l0aCAtbGRsIGlmIGRsYWRkcigpIGlzIGZvdW5kIHRoZXJlLiBCZWZvcmUgaXQgd2FzCgkgIGltcGxpY2l0ZWx5IGxpbmtlZCBieSB0aGUgZ21vZHVsZSBwa2djb25maWcgZmlsZSBidXQgaW4gZ2xpYiAyLjE3LjAKCSAgLWxkbCBoYXMgbW92ZWQgZnJvbSBMaWJzIHRvIExpYnMucHJpdmF0ZS4gRml4ZXMgYnVnICM1MzY3NDQuCgoyMDA4LTA2LTA1IDA5OjQyOjMxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgUHV0IHByZS1yZWxlYXNlIGNoYW5lZ2xvZyBlbnRyeSB3aGVyZSBpdCBhY3R1YWxseSBoYXBwZW5lZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUHV0IHByZS1yZWxlYXNlIGNoYW5lZ2xvZyBlbnRyeSB3aGVyZSBpdCBhY3R1YWxseSBoYXBwZW5lZAoKMjAwOC0wNi0wNSAwOTo0MToyNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IDAuMTAuMTkuMiBwcmUtcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIDAuMTAuMTkuMiBwcmUtcmVsZWFzZQoKMjAwOC0wNi0wNSAwODo1NTo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlcnJvci5jOiBGaXggdHlwbyAoc3BvdHRlZCBieSBGYWJyaWNpbyBHb2RveSwgIzUzNjcyMykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOiAoX2dzdF9zdHJlYW1fZXJyb3JzX2luaXQpOgoJICBGaXggdHlwbyAoc3BvdHRlZCBieSBGYWJyaWNpbyBHb2RveSwgIzUzNjcyMykuCgoyMDA4LTA2LTA0IDExOjQ3OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBBZGQgc29tZSBkZWJ1Zy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19zZXRfYXN5bmNfZW5hYmxlZCksCgkgIChnc3RfYmFzZV9zaW5rX3NldF90c19vZmZzZXQpLCAoZ3N0X2Jhc2Vfc2lua19wZXJmb3JtX3Fvcyk6CgkgIEFkZCBzb21lIGRlYnVnLgoJICBNYWtlIHN1cmUgd2UgZG9uJ3QgZ2VuZXJhdGUgaW52YWxpZCBRb1MgbWVzc2FnZXMuCgoyMDA4LTA2LTA0IDExOjMxOjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGV2ZW50LmM6IEFkZCBzb21lIGFzc2VydCBhbmQgZG9jcyBmb3IgaW52YWxpZCBpbnB1dCB0byB0aGUgcW9zIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfcW9zKToKCSAgQWRkIHNvbWUgYXNzZXJ0IGFuZCBkb2NzIGZvciBpbnZhbGlkIGlucHV0IHRvIHRoZSBxb3MgZnVuY3Rpb24uCgoyMDA4LTA1LTMwIDE1OjQ4OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBUaGUgcmVwb3J0ZWQgcG9zaXRpb24gbXVzdCBhbHdheXMgYmUgc21hbGxlciB0aGFuIHRoZSBsYXN0IHNlZW4gdGltZXN0YW1wcyAob3IgdGltZXN0YW1wLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBUaGUgcmVwb3J0ZWQgcG9zaXRpb24gbXVzdCBhbHdheXMgYmUgc21hbGxlciB0aGFuIHRoZSBsYXN0IHNlZW4KCSAgdGltZXN0YW1wcyAob3IgdGltZXN0YW1wICsgZHVyYXRpb24gZm9yIHJldmVyc2UpLgoKMjAwOC0wNS0zMCAwNzozNjoxNyArMDAwMCAgUm9iIEJyYWRmb3JkIDxyb2JAcm9ic3Rlci5vcmcudWs+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogRG9uJ3QgcmVjdXJzZSBpbnRvIC5kZWJ1ZyBkaXJlY3RvcmllcyBhcyBzb21lIGRpc3Ryb3MgaW5zdGFsbCB0aGUgZGVidWdnaW5nIHN5bWJvbHMgbmV4dCB0byB0aGUgcGwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSb2IgQnJhZGZvcmQgPHJvYiBhdCByb2JzdGVyIGRvdCBvcmcgZG90IHVrPgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIERvbid0IHJlY3Vyc2UgaW50byAuZGVidWcgZGlyZWN0b3JpZXMgYXMgc29tZSBkaXN0cm9zIGluc3RhbGwKCSAgdGhlIGRlYnVnZ2luZyBzeW1ib2xzIG5leHQgdG8gdGhlIHBsdWdpbnMgaW4gLmRlYnVnIGRpcmVjdG9yaWVzCgkgIGFuZCBkbG9wZW4oKSBjcmFzaGVzIG9uIHRoZW0gc29tZXRpbWVzLiBGaXhlcyBidWcgIzUwODA3MC4KCSAgQWRkIEZJWE1FIGZvciAwLjExIHRvIG5vdCByZWN1cnNlIGludG8gZGlyZWN0b3JpZXMgYXQgYWxsIGJlY2F1c2UKCSAgaXQncyB2ZXJ5IGluY29uc2lzdGVudCB0byB0aGUgYmVoYXZpb3VyIG9mIG90aGVyIFBBVEggZW52aXJvbm1lbnQKCSAgdmFyaWFibGVzLgoKMjAwOC0wNS0yOSAxNjozNDoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRml4IHBvc2l0aW9uIHF1ZXJ5IHJhbmdlIGNoZWNrcyBpbiByZXZlcnNlIHBsYXliYWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX2xhc3QpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBGaXggcG9zaXRpb24gcXVlcnkgcmFuZ2UgY2hlY2tzIGluIHJldmVyc2UgcGxheWJhY2suCgoyMDA4LTA1LTI5IDA3OjE5OjQ3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0ZWxlbWVudC4qOiBEZXByZWNhdGVkIGdzdF9lbGVtZW50X2dldF9wYWQoKSBhcyBpdCBjYW4ndCBiZSB1c2VkIHNhbmVseS4gSXQncyBub3QgY2xlYXIgb2YgdGhlIHJlZmVyZW5jZSB0byB0aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBEZXByZWNhdGVkIGdzdF9lbGVtZW50X2dldF9wYWQoKSBhcyBpdCBjYW4ndCBiZSB1c2VkIHNhbmVseS4gSXQncyBub3QKCSAgY2xlYXIgb2YgdGhlIHJlZmVyZW5jZSB0byB0aGUgcmVzdWx0aW5nIHBhZCBtdXN0IGJlIHJlbGVhc2VkIGxhdGVyCgkgIG9yIG5vdCwgcmVzdWx0aW5nIGluIHBvc3NpYmxlIGxlYWtzLiBGaXhlcyBidWcgIzUzMzg2NS4KCjIwMDgtMDUtMjggMTY6NDY6MDcgKzAwMDAgIEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1QHN2bi5nbm9tZS5vcmc+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogU21hbGwgZG9jIGZpeC4gRml4ZXMgIzUzNTI4NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdSBhdCBzdm4gZG90IGdub21lIGRvdCBvcmc+CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIFNtYWxsIGRvYyBmaXguIEZpeGVzICM1MzUyODUuCgoyMDA4LTA1LTI4IDEzOjQ4OjE3ICswMDAwICBCamFybmUgUm9zZW5ncmVuIDxiamFybmVAYXhpcy5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogTWFrZSBzZW5kaW5nIGFuIEVPUyBldmVudCB0byB0aGUgYmFzZXNyYyBub24tYmxvY2tpbmcgZXZlbiBpZiB0aGUgaW1wbGVtZW50YXRpb24gZG9lcyBibG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBCamFybmUgUm9zZW5ncmVuIDxiamFybmUgYXQgYXhpcyBkb3QgY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfcGFkX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfc2V0X2ZsdXNoaW5nKSwKCSAgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBNYWtlIHNlbmRpbmcgYW4gRU9TIGV2ZW50IHRvIHRoZSBiYXNlc3JjIG5vbi1ibG9ja2luZyBldmVuIGlmIHRoZQoJICBpbXBsZW1lbnRhdGlvbiBkb2VzIGJsb2NraW5nIHdhaXRzIGluIHRoZSBjcmVhdGUgZnVuY3Rpb24uIFRoaXMgaXMgZG9uZQoJICBieSB1bmxvY2tpbmcgdGhlIGNyZWF0ZSBmdW5jdGlvbiB3aGVuIEVPUyBpcyBzZW50LgoJICBGaXhlcyAjNTM1MjE4LgoKMjAwOC0wNS0yOCAxMDo0NDoxNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogSWYgcG9zc2libGUgcHJpbnQgdGhlIGVsZW1lbnQgdHlwZSBvZiBHVmFsdWVBcnJheSBwcm9wZXJ0aWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBJZiBwb3NzaWJsZSBwcmludCB0aGUgZWxlbWVudCB0eXBlIG9mIEdWYWx1ZUFycmF5IHByb3BlcnRpZXMuCgoyMDA4LTA1LTI4IDA3OjQ3OjIyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0aXRlcmF0b3IuYzogUmVtb3ZlIGFuIHVudXNlZCBmaWVsZCBmcm9tIHRoZSBwcml2YXRlIEdzdExpc3RJdGVyYXRvciBzdHJ1Y3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBSZW1vdmUgYW4gdW51c2VkIGZpZWxkIGZyb20gdGhlIHByaXZhdGUgR3N0TGlzdEl0ZXJhdG9yIHN0cnVjdC4KCjIwMDgtMDUtMjcgMjA6MTk6MTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBBZGQgcGFyYW1ldGVyIGd1YXJkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIEFkZCBwYXJhbWV0ZXIgZ3VhcmRzLgoKMjAwOC0wNS0yNyAxOTo0Nzo0OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IFJldmVydCB0ZXN0IGNoYW5nZSBhbmQgYWRkIGNvbW1lbnQgd2h5IGl0IHNob3VsZCBub3Qgd29yay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIFJldmVydCB0ZXN0IGNoYW5nZSBhbmQgYWRkIGNvbW1lbnQgd2h5IGl0IHNob3VsZCBub3Qgd29yay4KCjIwMDgtMDUtMjcgMTg6MzE6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiBFeHRlbmRpbmcgdGhlIHRlc3QgYSBsaXR0bGUgdG8gdmVyaWZ5IHRoYXQgd2UgYWxzbyBnZXQgdGhlIE5VTEwgc3RhdGUtIGNoYW5nZSBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgRXh0ZW5kaW5nIHRoZSB0ZXN0IGEgbGl0dGxlIHRvIHZlcmlmeSB0aGF0IHdlIGFsc28gZ2V0IHRoZSBOVUxMIHN0YXRlLQoJICBjaGFuZ2UgbWVzc2FnZS4KCjIwMDgtMDUtMjcgMTY6Mzc6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cHJlc2V0LmM6IEFkZCBTaW5jZTogbWFya2VycyB0byBkb2NzIGJsdXJicy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHByZXNldC5jOiAoZ3N0X3ByZXNldF9kZWZhdWx0X2dldF9tZXRhKSwKCSAgKGdzdF9wcmVzZXRfZ2V0X3ByZXNldF9uYW1lcyksIChnc3RfcHJlc2V0X2dldF9wcm9wZXJ0eV9uYW1lcyksCgkgIChnc3RfcHJlc2V0X2xvYWRfcHJlc2V0KSwgKGdzdF9wcmVzZXRfc2F2ZV9wcmVzZXQpLAoJICAoZ3N0X3ByZXNldF9yZW5hbWVfcHJlc2V0KSwgKGdzdF9wcmVzZXRfZGVsZXRlX3ByZXNldCksCgkgIChnc3RfcHJlc2V0X3NldF9tZXRhKToKCSAgQWRkIFNpbmNlOiBtYXJrZXJzIHRvIGRvY3MgYmx1cmJzLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgcmVjZW50bHktYWRkZWQgQVBJLgoKMjAwOC0wNS0yNyAxNToxMTozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSAgY29uZmlndXJlLmFjOiBBZGQgREFUQURJUiBmb3Igc3RvcmluZyBwcmVzZXRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFN0ZWZhbiBLb3N0ICA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgkgICogY29uZmlndXJlLmFjOgoJICBBZGQgREFUQURJUiBmb3Igc3RvcmluZyBwcmVzZXRzLgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgIEFkZCBHc3RQcmVzZXQgdG8gZG9jcy4KCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3RwcmVzZXQuYzogKHByZXNldF9nZXRfcGF0aHMpLCAocHJlc2V0X3NraXBfcHJvcGVydHkpLAoJICAocHJlc2V0X29wZW5fYW5kX3BhcnNlX2hlYWRlciksIChwcmVzZXRfcGFyc2VfdmVyc2lvbiksCgkgIChwcmVzZXRfbWVyZ2UpLCAocHJlc2V0X2dldF9rZXlmaWxlKSwKCSAgKGdzdF9wcmVzZXRfZGVmYXVsdF9nZXRfcHJlc2V0X25hbWVzKSwKCSAgKGdzdF9wcmVzZXRfZGVmYXVsdF9nZXRfcHJvcGVydHlfbmFtZXMpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X2xvYWRfcHJlc2V0KSwKCSAgKGdzdF9wcmVzZXRfZGVmYXVsdF9zYXZlX3ByZXNldHNfZmlsZSksCgkgIChnc3RfcHJlc2V0X2RlZmF1bHRfc2F2ZV9wcmVzZXQpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X3JlbmFtZV9wcmVzZXQpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X2RlbGV0ZV9wcmVzZXQpLCAoZ3N0X3ByZXNldF9kZWZhdWx0X3NldF9tZXRhKSwKCSAgKGdzdF9wcmVzZXRfZGVmYXVsdF9nZXRfbWV0YSksIChnc3RfcHJlc2V0X2RlZmF1bHRfcmFuZG9taXplKSwKCSAgKGdzdF9wcmVzZXRfZGVmYXVsdF9yZXNldCksIChnc3RfcHJlc2V0X2dldF9wcmVzZXRfbmFtZXMpLAoJICAoZ3N0X3ByZXNldF9nZXRfcHJvcGVydHlfbmFtZXMpLCAoZ3N0X3ByZXNldF9sb2FkX3ByZXNldCksCgkgIChnc3RfcHJlc2V0X3NhdmVfcHJlc2V0KSwgKGdzdF9wcmVzZXRfcmVuYW1lX3ByZXNldCksCgkgIChnc3RfcHJlc2V0X2RlbGV0ZV9wcmVzZXQpLCAoZ3N0X3ByZXNldF9zZXRfbWV0YSksCgkgIChnc3RfcHJlc2V0X2dldF9tZXRhKSwgKGdzdF9wcmVzZXRfY2xhc3NfaW5pdCksCgkgIChnc3RfcHJlc2V0X2Jhc2VfaW5pdCksIChnc3RfcHJlc2V0X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0cHJlc2V0Lmg6CgkgIEFkZCBHc3RQcmVzZXQgdG8gY29yZS4gRml4ZXMgIzM5Njc3OQoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmVzZXQuYzogKGdzdF9wcmVzZXRfdGVzdF9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3ByZXNldF90ZXN0X3NldF9wcm9wZXJ0eSksIChnc3RfcHJlc2V0X3Rlc3RfY2xhc3NfaW5pdCksCgkgIChnc3RfcHJlc2V0X3Rlc3RfYmFzZV9pbml0KSwgKGdzdF9wcmVzZXRfdGVzdF9nZXRfdHlwZSksCgkgIChnc3RfcHJlc2V0X3Rlc3RfcGx1Z2luX2luaXQpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAocmVtb3ZlX3ByZXNldF9maWxlKSwgKHRlc3Rfc2V0dXApLCAodGVzdF90ZWFyZG93biksCgkgIChnc3RfcHJlc2V0X3N1aXRlKToKCSAgQWRkIEdzdFByZXNldCB1bml0IHRlc3RzLgoKMjAwOC0wNS0yNyAxMDo1OTozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogVGhlIGRlZmF1bHQgZXZlbnQgZnVuY3Rpb24gb24gYSBzaW5rcGFkIHNob3VsZCByZXR1cm4gVFJVRSB3aGVuIHRoZXJlIGFyZSBubyBpbnRlcm5hbCBsaW5rcyBidXQgc2hvdWxkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2V2ZW50X2RlZmF1bHRfZGlzcGF0Y2gpOgoJICBUaGUgZGVmYXVsdCBldmVudCBmdW5jdGlvbiBvbiBhIHNpbmtwYWQgc2hvdWxkIHJldHVybiBUUlVFIHdoZW4KCSAgdGhlcmUgYXJlIG5vIGludGVybmFsIGxpbmtzIGJ1dCBzaG91bGQgY29sbGVjdCB0aGUgcmV0dXJuIHZhbHVlcyBmcm9tCgkgIHRoZSBpbnRlcm5hbCBsaW5rcyBvdGhlcndpc2UuCgoyMDA4LTA1LTI3IDEwOjU3OjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogVXNlIGZhc3RlciBhbmQgc2FmZXIgX3BhZF9wdXNoX2V2ZW50KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfc3JjX2V2ZW50KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICBVc2UgZmFzdGVyIGFuZCBzYWZlciBfcGFkX3B1c2hfZXZlbnQoKS4KCjIwMDgtMDUtMjcgMTA6NTA6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBnc3RfYmluX2ZpbmRfdW5saW5rZWRfcGFkKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGVsZW1lbnRfZmluZF91bmxpbmtlZF9wYWQpLAoJICAoZ3N0X2Jpbl9maW5kX3VubGlua2VkX3BhZCksIChnc3RfYmluX2ZpbmRfdW5jb25uZWN0ZWRfcGFkKSwKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQVBJOiBhZGQgZ3N0X2Jpbl9maW5kX3VubGlua2VkX3BhZCgpCgkgIEFQSTogZGVwcmVjYXRlIGdzdF9iaW5fZmluZF91bmNvbm5lY3RlZF9wYWQoKSAoIzQwMTQ1NikKCjIwMDgtMDUtMjYgMTA6MDc6MDkgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgZ3N0LzogRml4ZWQgYSBidW5jaCBvZiB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdHRhc2suYzoKCSAgKiBnc3QvZ3N0dGFzay5oOgoJICBGaXhlZCBhIGJ1bmNoIG9mIHR5cG9zLgoKMjAwOC0wNS0yNSAxNjozNDozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86ICd1bmNvbm5lY3RlZCBwYWQnIC0+ICd1bmxpbmtlZCBwYWQnIGZvciBjb25zaXN0ZW5jeSAoIzQwMTQ1NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3VubGluayksIChlbGVtZW50X2ZpbmRfdW5saW5rZWRfcGFkKSwKCSAgKGdzdF9iaW5fZmluZF91bmNvbm5lY3RlZF9wYWQpLCAoZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKSwKCSAgKGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbl9mdWxsKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgJ3VuY29ubmVjdGVkIHBhZCcgLT4gJ3VubGlua2VkIHBhZCcgZm9yIGNvbnNpc3RlbmN5ICgjNDAxNDU2KS4KCjIwMDgtMDUtMjUgMTY6MTM6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDogU21hbGwgZG9jcyB1cGRhdGUsIGNhbid0IGJlIGJvdGhlcmVkIHRvIHJld3JpdGUgdGhlIG5vbnNlbnNpY2FsIGV4YW1wbGVzIHJpZ2h0IG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdGFnZ2luZy54bWw6CgkgIFNtYWxsIGRvY3MgdXBkYXRlLCBjYW4ndCBiZSBib3RoZXJlZCB0byByZXdyaXRlIHRoZSBub25zZW5zaWNhbAoJICBleGFtcGxlcyByaWdodCBub3cuCgoyMDA4LTA1LTI1IDE0OjQ0OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGV2ZW50Lmg6IENsYXJpZnkgZG9jcyBmb3IgR1NUX1NFRUtfVFlQRV9DVVIgKCM1MzQ1MDUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgQ2xhcmlmeSBkb2NzIGZvciBHU1RfU0VFS19UWVBFX0NVUiAoIzUzNDUwNSkuCgoyMDA4LTA1LTI1IDE0OjEzOjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3BhcnNlL2dyYW1tYXIueTogUmVtb3ZlIHVubmVlZGVkIGNhc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBSZW1vdmUgdW5uZWVkZWQgY2FzdHMuCgoyMDA4LTA1LTI1IDEzOjU2OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgR2V0IGFsbCBtaXNzaW5nIGVsZW1lbnRzIGZyb20gYSBwYXJzZSBsYXVuY2ggc3RyaW5nIGlmIHBvc3NpYmxlIChpZS4gaWYgdGhlIEZBVEFMX0VSUk9SUyBmbGFnIGhhcyBiZWVuIHNwZWNpZmllZCkuIEZpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBHZXQgYWxsIG1pc3NpbmcgZWxlbWVudHMgZnJvbSBhIHBhcnNlIGxhdW5jaCBzdHJpbmcgaWYgcG9zc2libGUKCSAgKGllLiBpZiB0aGUgRkFUQUxfRVJST1JTIGZsYWcgaGFzIGJlZW4gc3BlY2lmaWVkKS4gRml4ZXMgIzUyODE3OC4KCjIwMDgtMDUtMjQgMTY6Mzg6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay86IEFkZCBzb21lIHVuaXQgdGVzdHMgZm9yIHRoZSBuZXcgZ3N0X3BhcnNlX2xhdW5jaCpfZnVsbCgpIEFQSS4gKEV4cG9zZXMgYSBwcmV2aW91c2x5LWV4aXN0aW5nIG1lbW9yeSBsZWEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBBZGQgc29tZSB1bml0IHRlc3RzIGZvciB0aGUgbmV3IGdzdF9wYXJzZV9sYXVuY2gqX2Z1bGwoKSBBUEkuCgkgIChFeHBvc2VzIGEgcHJldmlvdXNseS1leGlzdGluZyBtZW1vcnkgbGVhayBpbiB0aGUgZXJyb3IgY29kZQoJICBwYXRoLCBzbyBhZGRpbmcgdG8gVkFMR1JJTkRfVE9fRklYIGZvciBub3cpLgoKMjAwOC0wNS0yNCAxNTozMzo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogZ3N0X3BhcnNlX2xhdW5jaF9mdWxsKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOiAoX0dzdFBhcnNlQ29udGV4dCk6CgkgICogZ3N0L2dzdHBhcnNlLmM6IChnc3RfcGFyc2VfZXJyb3JfcXVhcmspLCAoZ3N0X3BhcnNlX2NvbnRleHRfbmV3KSwKCSAgKGdzdF9wYXJzZV9jb250ZXh0X2ZyZWUpLCAoZ3N0X3BhcnNlX2NvbnRleHRfZ2V0X21pc3NpbmdfZWxlbWVudHMpLAoJICAoZ3N0X3BhcnNlX2xhdW5jaHYpLCAoZ3N0X3BhcnNlX2xhdW5jaHZfZnVsbCksIChnc3RfcGFyc2VfbGF1bmNoKSwKCSAgKGdzdF9wYXJzZV9sYXVuY2hfZnVsbCk6CgkgICogZ3N0L2dzdHBhcnNlLmg6IChHU1RfUEFSU0VfRkxBR19OT05FKSwgKEdTVF9QQVJTRV9GTEFHX0ZBVEFMX0VSUk9SUyksCgkgIChHc3RQYXJzZUZsYWdzKSwgKEdzdFBhcnNlQ29udGV4dCk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24pLAoJICAoZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uX2Z1bGwpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogZ3N0L3BhcnNlL3R5cGVzLmg6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZ3N0X3BhcnNlXypfZnVsbCBBUEkgKCM1MjgxNzgpOgoJICBBUEk6IGdzdF9wYXJzZV9sYXVuY2hfZnVsbCgpCgkgIEFQSTogZ3N0X3BhcnNlX2xhdW5jaHZfZnVsbCgpCgkgIEFQSTogZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uX2Z1bGwoKQoJICBBUEk6IGdzdF9wYXJzZV9jb250ZXh0X25ldygpCgkgIEFQSTogZ3N0X3BhcnNlX2NvbnRleHRfZnJlZSgpCgkgIEFQSTogZ3N0X3BhcnNlX2NvbnRleHRfZ2V0X21pc3NpbmdfZWxlbWVudHMoKQoKMjAwOC0wNS0yMyAwNjo1MDoxMCArMDAwMCAgU3VyZXNoIEt1bWFyIFAgPHN1cmVzaGt1bWFyLnBwQGdtYWlsLmNvbT4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogQWxzbyBzdXBwb3J0IGZmbXBlZyBpbiBnc3QtdW5pbnN0YWxsZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogU3VyZXNoIEt1bWFyIFAgPHN1cmVzaGt1bWFyLnBwQGdtYWlsLmNvbT4KCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIEFsc28gc3VwcG9ydCBmZm1wZWcgaW4gZ3N0LXVuaW5zdGFsbGVkLgoKMjAwOC0wNS0yMiAyMDoyOToyMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgY29uZmlndXJlLmFjOiBBZnRlciBkaXNjdXNzaW9uIG9uIElSQyB1c2UgdGhlIGJpbmFyeSByZWdpc3RyeSBhcyBkZWZhdWx0IGJ1dCBhbGxvdyB0byBkaXNhYmxlIGl0IHdpdGggLS1kaXNhYmxlLWJpbmFyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQWZ0ZXIgZGlzY3Vzc2lvbiBvbiBJUkMgdXNlIHRoZSBiaW5hcnkgcmVnaXN0cnkgYXMgZGVmYXVsdAoJICBidXQgYWxsb3cgdG8gZGlzYWJsZSBpdCB3aXRoIC0tZGlzYWJsZS1iaW5hcnktcmVnaXN0cnkuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCB0aGUgdHdvIG5ldyBzeW1ib2xzIGZvciB0aGUgYmluYXJ5IHJlZ2lzdHJ5LgoKMjAwOC0wNS0yMiAxNTozODo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IE1vcmUgZ3VhcmRzIGFnYWluc3QgYmFkIGlucHV0OyB0eXBvIGZpeDsgc29tZSBtaW5vciBjbGVhbi11cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYXJzZS5jOiAoX2dzdF9wYXJzZV9lc2NhcGUpLCAoZ3N0X3BhcnNlX2xhdW5jaHYpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKToKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OiAoZ3JhcGgpOgoJICBNb3JlIGd1YXJkcyBhZ2FpbnN0IGJhZCBpbnB1dDsgdHlwbyBmaXg7IHNvbWUgbWlub3IgY2xlYW4tdXBzLgoKMjAwOC0wNS0yMiAwODozMzoyNyArMDAwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJZiBub3RoaW5nIGVsc2UgY2FuIGJlIHVzZWQsIHVzZSB0aGUgbGFzdCBidWZmZXIncyBzdGFydCB0aW1lIGFzIHRoZSBzZWdtZW50J3MgbGFzdCBzdG9wLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2pvZXJkIFNpbW9ucyA8c2pvZXJkIGF0IGx1b24gZG90IG5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKToKCSAgSWYgbm90aGluZyBlbHNlIGNhbiBiZSB1c2VkLCB1c2UgdGhlIGxhc3QgYnVmZmVyJ3Mgc3RhcnQgdGltZSBhcwoJICB0aGUgc2VnbWVudCdzIGxhc3Qgc3RvcC4gRml4ZXMgYnVnICM1MzQyNTguCgoyMDA4LTA1LTIxIDE4OjMzOjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBNb3ZlIHNpemUgc2FuaXR5IGNoZWNrIHRvIHRoZSByaWdodCBwbGFjZTogZG93bnN0cmVhbSBtYXkgcmV0dXJuIGEgYnVmZmVyIHdpdGggYSBzbWFsbGVyIHNpemUgaWYgdGhlIGJ1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpOgoJICBNb3ZlIHNpemUgc2FuaXR5IGNoZWNrIHRvIHRoZSByaWdodCBwbGFjZTogZG93bnN0cmVhbSBtYXkgcmV0dXJuCgkgIGEgYnVmZmVyIHdpdGggYSBzbWFsbGVyIHNpemUgaWYgdGhlIGJ1ZmZlciBjYXBzIGFyZSBkaWZmZXJlbnQgdGhhbgoJICB0aGUgcmVxdWVzdGVkIG9uZXMsIGFzIG1heSBoYXBwZW4gd2hlbiBkb2luZyByZXZlcnNlIG5lZ290aWF0aW9uLgoKMjAwOC0wNS0yMSAxNjowNjo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBTbWFsbCBjbGVhbnVwcy4gQWRkIG5vdGUgYWRib3V0IGdfZm9wZW4oKSBvbiB3aW5kb3dzIGFuZCB3aHkgd2UgZG9uJ3QgdXNlIGl0IHlldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19zZXRfbG9jYXRpb24pLAoJICAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3NldF9sb2NhdGlvbiksCgkgIChnc3RfZmlsZV9zcmNfc3RhcnQpOgoJICBTbWFsbCBjbGVhbnVwcy4gQWRkIG5vdGUgYWRib3V0IGdfZm9wZW4oKSBvbiB3aW5kb3dzIGFuZCB3aHkgd2UgZG9uJ3QKCSAgdXNlIGl0IHlldC4KCjIwMDgtMDUtMjEgMTU6NTc6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb24ndCB1c2UgZ3N0X2VsZW1lbnRfZ2V0X3BhZCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xvYWRfYW5kX2xpbmspOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfbGlua19wYWRzKSwKCSAgKGdzdF9lbGVtZW50X3VubGlua19wYWRzKToKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX3NldHVwX3NyY19wYWQpLAoJICAoZ3N0X2NoZWNrX3RlYXJkb3duX3NyY19wYWQpLCAoZ3N0X2NoZWNrX3NldHVwX3NpbmtfcGFkKSwKCSAgKGdzdF9jaGVja190ZWFyZG93bl9zaW5rX3BhZCksCgkgIChnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcl9saXN0KToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzogKHNldHVwX211bHRpcXVldWUpLAoJICAobXFfc2lua3BhZF90b19zcmNwYWQpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAocnVuX2RlbGF5ZWRfdGVzdCksCgkgIChnc3RfcGFyc2VfdGVzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIERvbid0IHVzZSBnc3RfZWxlbWVudF9nZXRfcGFkKCkuCgoyMDA4LTA1LTIxIDE1OjU0OjI4ICswMDAwICBGZWxpcGUgQ29udHJlcmFzIDxmZWxpcGUuY29udHJlcmFzQG5va2lhLmNvbT4KCgkgIGRvY3MvTWFrZWZpbGUuYW06IEZpeCBpbnN0YWxsaW5nIHBsdWdpbiBkb2N1bWVudGF0aW9uIHdoZW4gZ3RrLWRvYyBpcyBkaXNhYmxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9NYWtlZmlsZS5hbToKCSAgRml4IGluc3RhbGxpbmcgcGx1Z2luIGRvY3VtZW50YXRpb24gd2hlbiBndGstZG9jIGlzIGRpc2FibGVkLgoKMjAwOC0wNS0yMSAxNTo1MToyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbWFudWFsLzogQXZvaWQgdXNpbmcgYSBiYWQgZnVuY3Rpb24gaW4gdGhlIGV4YW1wbGUgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSAgQXZvaWQgdXNpbmcgYSBiYWQgZnVuY3Rpb24gaW4gdGhlIGV4YW1wbGUgY29kZS4KCjIwMDgtMDUtMjEgMTU6NDk6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2xvY2suYzogRml4IGRlYnVnIG9mIHRoZSBuZXcgY2xvY2sgcmF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfc2V0X2NhbGlicmF0aW9uKToKCSAgRml4IGRlYnVnIG9mIHRoZSBuZXcgY2xvY2sgcmF0ZS4KCjIwMDgtMDUtMjEgMTE6MTA6MzIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjogQWRkIGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jaygpIHRvIHRoZSBleHBvcnRlZCBzeW1ib2xzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIEFkZCBnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2soKSB0byB0aGUgZXhwb3J0ZWQgc3ltYm9scy4KCjIwMDgtMDUtMjAgMDg6Mjg6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFVucmVmIGV2ZW50cyB0aGF0IHRoZSBHc3RCYXNlVHJhbnNmb3JtOjpldmVudCB2ZnVuYyBkaWRuJ3Qgd2FudCB0byBoYXZlIGZvcndhcmRlZCBiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbS5tdWxsZXIgYXQgY29sbGFib3JhIGNvIHVrPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfZXZlbnQpOgoJICBVbnJlZiBldmVudHMgdGhhdCB0aGUgR3N0QmFzZVRyYW5zZm9ybTo6ZXZlbnQgdmZ1bmMgZGlkbid0IHdhbnQgdG8KCSAgaGF2ZSBmb3J3YXJkZWQgYnkgdGhlIGJhc2UgY2xhc3MuIENsb3NlcyBhIGxlYWsgaW4gaWRlbnRpdHkuCgkgIEZpeGVzIGJ1ZyAjNDQ2NzYzLgoKMjAwOC0wNS0xOSAxNjozNjo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEV4cG9zZSBhIG1ldGhvZCB0aGF0IHdhcyBwcmV2aW91c2x5IHVzZWQgaW50ZXJuYWxseSB0byBzeW5jaHJvbml6ZSBhZ2FpbnN0IHRoZSBjbG9jayBiZWNhdXNlIGl0IGNhbiBiZSB1c2VmdWwgZm9yIHN1Yi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBFeHBvc2UgYSBtZXRob2QgdGhhdCB3YXMgcHJldmlvdXNseSB1c2VkIGludGVybmFsbHkgdG8gc3luY2hyb25pemUKCSAgYWdhaW5zdCB0aGUgY2xvY2sgYmVjYXVzZSBpdCBjYW4gYmUgdXNlZnVsIGZvciBzdWJjbGFzc2VzIHRvby4KCSAgR3N0QmFzZVNpbms6OmdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jaygpCgoyMDA4LTA1LTE5IDExOjU5OjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBBZGQgc2FuaXR5IGNoZWNrIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBnZXQgc21hbGxlciBidWZmZXJzIHRoYW4gcmVxdWVzdGVkIChhbmQgZmFsbGJhY2sgdG8gbm9ybWFsIGJ1ZmZlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYnVmZmVyX2FsbG9jX3VuY2hlY2tlZCk6CgkgIEFkZCBzYW5pdHkgY2hlY2sgdG8gbWFrZSBzdXJlIHdlIGRvbid0IGdldCBzbWFsbGVyIGJ1ZmZlcnMKCSAgdGhhbiByZXF1ZXN0ZWQgKGFuZCBmYWxsYmFjayB0byBub3JtYWwgYnVmZmVyIGFsbG9jIGlmIHdlIGRvKS4KCjIwMDgtMDUtMTkgMTE6MTE6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFJlZmFjdG9yIGFkanVzdGluZyB0aGUgcnVubmluZ190aW1lIHdpdGggbGF0ZW5jeSBhbmQgb2Zmc2V0IGludG8gYSBzZXBhcmF0ZSBtZXRob2QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfYWRqdXN0X3RpbWUpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKSwgKGdzdF9iYXNlX3Npbmtfd2FpdF9lb3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpOgoJICBSZWZhY3RvciBhZGp1c3RpbmcgdGhlIHJ1bm5pbmdfdGltZSB3aXRoIGxhdGVuY3kgYW5kIG9mZnNldCBpbnRvIGEKCSAgc2VwYXJhdGUgbWV0aG9kLgoJICBXaGVuIGRvaW5nIGNsaXBwaW5nLCB3ZSBzdGlsbCB3YW50IHRvIHVzZSB0aGUgc3ViY2xhc3MgZ2V0X3RpbWVzIG1ldGhvZCwKCSAganVzdCBpbiBjYXNlIHRoZSBEVVJBVElPTiBvciBUSU1FU1RBTVAgYXJlIG5vdCBzZXQuCgoyMDA4LTA1LTE5IDEwOjQ2OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgZ3N0X3R5cGVfZmluZF9zdWdnZXN0X3NpbXBsZSgpLCAjNTMzNzQwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOiAoZ3N0X3R5cGVfZmluZF9zdWdnZXN0X3NpbXBsZSk6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmg6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFQSTogYWRkIGdzdF90eXBlX2ZpbmRfc3VnZ2VzdF9zaW1wbGUoKSwgIzUzMzc0MC4KCjIwMDgtMDUtMTkgMTA6Mjk6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogVXNlIHJpZ2h0IGVycm9yIGNvZGUgd2hlbiB0eXBlZmluZGluZyBmYWlscywgc28gd2UgY2FuIHVzZSB0aGUgZGVmYXVsdCAodHJhbnNsYXRlZCkgZXJyb3IuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc3RhcnQpOgoJICBVc2UgcmlnaHQgZXJyb3IgY29kZSB3aGVuIHR5cGVmaW5kaW5nIGZhaWxzLCBzbyB3ZSBjYW4gdXNlCgkgIHRoZSBkZWZhdWx0ICh0cmFuc2xhdGVkKSBlcnJvciBtZXNzYWdlcy4KCjIwMDgtMDUtMTkgMTA6MDM6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogV2hlbiB0aGUgc3ViY2xhc3MgZGlkIG5vdCBzZXQgY2FwcyBvbiBvdXRnb2luZyBidWZmZXJzLCBjb25maWd1cmUgdGhlIGNhcHMgd2UgbmVnb3RpYXRlZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19zdGFydCk6CgkgIFdoZW4gdGhlIHN1YmNsYXNzIGRpZCBub3Qgc2V0IGNhcHMgb24gb3V0Z29pbmcgYnVmZmVycywgY29uZmlndXJlIHRoZQoJICBjYXBzIHdlIG5lZ290aWF0ZWQgb24gdGhlIHNvdXJjZSBwYWQuCgkgIFdoZW4gdGhlIHR5cGVmaW5kIGhlbHBlciBkb2VzIG5vdCBmaW5kIGNhcHMsIGVycm9yIG91dCBwcm9wZXJseSBpbnN0ZWFkCgkgIG9mIGRvaW5nIHRoaW5ncyB3aXRoIE5VTEwgY2Fwcy4KCjIwMDgtMDUtMTggMTg6NTM6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dHlwZWZpbmQuaDogVGFicyB0byBzcGFjZXMsIG9oIHllcyEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmg6CgkgIFRhYnMgdG8gc3BhY2VzLCBvaCB5ZXMhCgoyMDA4LTA1LTE4IDEyOjEzOjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnkKCjIwMDgtMDUtMTggMTE6NTI6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiBBZGQgRGF2aWQncyBhbmQgQmVuamFtaW4ncyB0ZXN0cyBmb3IgYXJyYXkgc3VidHJhY3Rpb24gdG8gdGhlIHVuaXQgdGVzdCBzdWl0ZSwgd2hpY2ggc3VnZ2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogKHRlc3RfaW50ZXJzZWN0MiksIChnc3RfY2Fwc19zdWl0ZSk6CgkgIEFkZCBEYXZpZCdzIGFuZCBCZW5qYW1pbidzIHRlc3RzIGZvciBhcnJheSBzdWJ0cmFjdGlvbiB0byB0aGUKCSAgdW5pdCB0ZXN0IHN1aXRlLCB3aGljaCBzdWdnZXN0cyB0aGF0ICMxNDc5MzEgaXMgZml4ZWQgdGhlc2UgZGF5cy4KCjIwMDgtMDUtMTggMTE6MzU6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZXZlbnQuYzogRG9jdW1lbnQgdGhhdCBnc3RfZXZlbnRfbmV3X3RhZygpIGFuZCBnc3RfZXZlbnRfbmV3X25hdmlnYXRpb24oKSB0YWtlIG93bmVyc2hpcCBvZiB0aGUgdGFnbGlzdC9zdHJ1Y3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgIERvY3VtZW50IHRoYXQgZ3N0X2V2ZW50X25ld190YWcoKSBhbmQgZ3N0X2V2ZW50X25ld19uYXZpZ2F0aW9uKCkKCSAgdGFrZSBvd25lcnNoaXAgb2YgdGhlIHRhZ2xpc3Qvc3RydWN0dXJlIHBhc3NlZCB0byB0aGVtLiAoIzUzMzYzNSkuCgoyMDA4LTA1LTE3IDE3OjIwOjUxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvTWFrZWZpbGUuYW06IERvbid0IGRlc2NlbmQgaW50byB0aGUgcGx1Z2lucyBkaXIgaWYgcGx1Z2luIGRvY3MgYnVpbGRpbmcgaXMgZGlzYWJsZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvTWFrZWZpbGUuYW06CgkgIERvbid0IGRlc2NlbmQgaW50byB0aGUgcGx1Z2lucyBkaXIgaWYgcGx1Z2luIGRvY3MgYnVpbGRpbmcKCSAgaXMgZGlzYWJsZWQuCgkgICogZG9jcy9SRUFETUU6CgkgIEFkZCBhIG5vdGUgYWJvdXQgdGhlIG5ldyB0eXBlOkdUeXBlTmFtZSBzeW50YXggZm9yIHRoZSBwbHVnaW4KCSAgZG9jdW1lbnRhdGlvbiAudHlwZXMgZmlsZS4KCjIwMDgtMDUtMTcgMTM6NTQ6NTIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RtZXNzYWdlLio6IE1hcmsgdGhlIGRlYnVnIHN0cmluZyBwYXJhbWV0ZXJzIGFzIGNvbnN0LiBGaXhlcyBidWcgIzUzMzQ5MC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19lcnJvciksCgkgIChnc3RfbWVzc2FnZV9uZXdfd2FybmluZyksIChnc3RfbWVzc2FnZV9uZXdfaW5mbyk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgTWFyayB0aGUgZGVidWcgc3RyaW5nIHBhcmFtZXRlcnMgYXMgY29uc3QuIEZpeGVzIGJ1ZyAjNTMzNDkwLgoKMjAwOC0wNS0xNiAyMTowOTo0NSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBTb3J0IGJ1ZmZlciBjYWNoZSBsaXN0IGJ5IGVuZCBvZmZzZXRzLiBUaGlzIG1ha2VzIHN1cmUgdGhhdCB3ZSBkb24ndCBzdG9wIHRvIHNlYXJjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspOgoJICBTb3J0IGJ1ZmZlciBjYWNoZSBsaXN0IGJ5IGVuZCBvZmZzZXRzLiBUaGlzIG1ha2VzIHN1cmUgdGhhdCB3ZSBkb24ndAoJICBzdG9wIHRvIHNlYXJjaCBmb3IgYSBjYWNoZWQgYnVmZmVyIHRoYXQgY29udGFpbnMgdGhlIHJlcXVlc3RlZCBkYXRhCgkgIHRvbyBlYXJseS4KCSAgQWxzbyByZWFkIGEgbWluaW11bSBvZiA0ayBieXRlcyBpbnN0ZWFkIG9mIDUxMiBieXRlcyBhcyB0aGlzIGlzIGEgYml0CgkgIG1vcmUgZWZmaWNpZW50LiBGaXhlcyBidWcgIzQ1OTg2Mi4KCjIwMDgtMDUtMTQgMTg6MTc6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmM6IEV4cGxhaW4gd2h5IHdlIGNvcHkgdGhlIGxpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIEV4cGxhaW4gd2h5IHdlIGNvcHkgdGhlIGxpc3QuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIEltcHJvdmUgZG9jcy4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgQWRkIG9uZSBkZWJ1Zy1sb2cgc3RhdGVtZW50IHRvIGhlbHAgdHJhY2luZyBwcm9iZWxtcyB3aXRoIGxpbmtpbmcgcGFkcy4KCjIwMDgtMDUtMTQgMTg6MDk6MDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6IEFkZCBhIHRlc3QgZm9yIHJlbW92aW5nIHRoZSBkZWZhdWx0IGxvZyBoYW5kbGVyLiBTZWVtcyB0byBmYWlsIHVuZGVyIHdpbmRvd3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIEFkZCBhIHRlc3QgZm9yIHJlbW92aW5nIHRoZSBkZWZhdWx0IGxvZyBoYW5kbGVyLiBTZWVtcyB0byBmYWlsIHVuZGVyCgkgIHdpbmRvd3MuCgoyMDA4LTA1LTE0IDEzOjUyOjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBSZWxlYXNlIHBhZCBsb2NrIGJlZm9yZSBjYWxsaW5nIG91dCB0byBhdm9pZCBhIHBvc3NpYmxlIGRlYWRsb2NrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3BlZXJfYWNjZXB0X2NhcHMpOgoJICBSZWxlYXNlIHBhZCBsb2NrIGJlZm9yZSBjYWxsaW5nIG91dCB0byBhdm9pZCBhIHBvc3NpYmxlIGRlYWRsb2NrLgoKMjAwOC0wNS0xNCAxMDoyMjoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wYXJzZS9ncmFtbWFyLnk6IFJlbW92ZSB1bm5lZWRlZCB2YWx1ZSB1bnNldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgUmVtb3ZlIHVubmVlZGVkIHZhbHVlIHVuc2V0LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgZGUvc2VyaWFsaXphdGlvbiBvZiBjYXBzLgoKMjAwOC0wNS0xMyAxMjo1NDowMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFVzZSBjdXN0b20gbWFyc2hhbGVycyB0aGF0IHRha2UgR3N0TWluaU9iamVjdCBhcyBmaXJzdCBwYXJhbWV0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgKG1hcnNoYWxfVk9JRF9fTUlOSU9CSkVDVF9PQkpFQ1QpLCAoZ3N0X2Zha2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKG1hcnNoYWxfVk9JRF9fTUlOSU9CSkVDVF9PQkpFQ1QpLAoJICAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpOgoJICBVc2UgY3VzdG9tIG1hcnNoYWxlcnMgdGhhdCB0YWtlIEdzdE1pbmlPYmplY3QgYXMgZmlyc3QgcGFyYW1ldGVyLgoJICBVc2luZyBPQkpFQ1QgYXMgcGFyYW1ldGVyIHdoaWxlIGEgR3N0TWluaU9iamVjdCBpcyBnaXZlbiB3aWxsIGxlYWQKCSAgdG8gYXNzZXJ0aW9ucyBpZiBidWlsdCB3aXRoIEdfRU5BQkxFX0RFQlVHLiBGaXhlcyBidWcgIzUyNTUzMi4KCjIwMDgtMDUtMTMgMTI6Mzg6MzEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IENsZWFuIHVwIG9uIEZMVVNIX1NUT1AgYW5kIG5vdCBGTFVTSF9TVEFSVC4gRm9yd2FyZCBib3RoIGV2ZW50cyBpbW1lZGlhdGVseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NlbmRfY2FjaGVkX2V2ZW50cyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgQ2xlYW4gdXAgb24gRkxVU0hfU1RPUCBhbmQgbm90IEZMVVNIX1NUQVJULiBGb3J3YXJkIGJvdGggZXZlbnRzCgkgIGltbWVkaWF0ZWx5LgoKMjAwOC0wNS0xMyAxMTo0NToyNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogRm9yd2FyZCBGTFVTSF9TVEFSVCBldmVudHMgaW1tZWRpYXRlbHkgYW5kIGNsZWFuIHVwIGluc3RlYWQgb2YgY2FjaGluZyB0aGVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9oYW5kbGVfc3JjX3F1ZXJ5KSwgKHN0b3BfdHlwZWZpbmRpbmcpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfc2VuZF9jYWNoZWRfZXZlbnRzKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBGb3J3YXJkIEZMVVNIX1NUQVJUIGV2ZW50cyBpbW1lZGlhdGVseSBhbmQgY2xlYW4gdXAgaW5zdGVhZCBvZgoJICBjYWNoaW5nIHRoZW0uCgoyMDA4LTA1LTEzIDA3OjExOjA1ICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQ2hlY2sgdGhlIGNhcHMgb2YgdGhlIGJ1ZmZlciByZXR1cm5lZCBieSBnc3RfcGFkX2FsbG9jX2J1ZmZlcigpIGFuZCBmYWxsIGJhY2sgdG8gZGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTam9lcmQgU2ltb25zIDxzam9lcmQgYXQgbHVvbiBkb3QgbmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIENoZWNrIHRoZSBjYXBzIG9mIHRoZSBidWZmZXIgcmV0dXJuZWQgYnkgZ3N0X3BhZF9hbGxvY19idWZmZXIoKSBhbmQKCSAgZmFsbCBiYWNrIHRvIGRlZmF1bHQgbmVnb3RpYXRpb24gaW4gdGhlIGNoYWluIGZ1bmN0aW9uIGlmIHRoZSBjYXBzCgkgIGFyZSBkaWZmZXJlbnQgZnJvbSB3aGF0IHdhcyByZXF1ZXN0ZWQuIEZpeGVzIGJ1ZyAjNTI2NzY4LgoKMjAwOC0wNS0wOSAyMDo0ODoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE5vLCBsZXQncyBub3QgdXNlIGdfc2xpY2Vfe2R1cHxjb3B5fSBoZXJlLCBzaW5jZSB0aGV5IG9ubHkgZXhpc3Qgc2luY2UgR0xpYiAyLjE0IGFuZCB3ZSBzdGlsbCBkZXBlbmQgb25seSBvbiA+PSAyLjEyLi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIE5vLCBsZXQncyBub3QgdXNlIGdfc2xpY2Vfe2R1cHxjb3B5fSBoZXJlLCBzaW5jZSB0aGV5IG9ubHkgZXhpc3QKCSAgc2luY2UgR0xpYiAyLjE0IGFuZCB3ZSBzdGlsbCBkZXBlbmQgb25seSBvbiA+PSAyLjEyLiBBbHNvIGFkZAoJICB1bml0IHRlc3QgZm9yIGdzdF9zZWdtZW50X2NvcHkoKS4KCjIwMDgtMDUtMDkgMTg6MjU6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuaDogVHJ5IHRvIGZpeCAnZGVyZWZlcmVuY2luZyB0eXBlLXB1bm5lZCBwb2ludGVyIHdpbGwgYnJlYWsgc3RyaWN0IGFsaWFzaW5nIHJ1bGVzJyB3YXJuaW5ncyB3aXRoIEMrKyBjb20uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmg6IChHU1RfQk9JTEVSUExBVEVfRlVMTCk6CgkgIFRyeSB0byBmaXggJ2RlcmVmZXJlbmNpbmcgdHlwZS1wdW5uZWQgcG9pbnRlciB3aWxsIGJyZWFrIHN0cmljdAoJICBhbGlhc2luZyBydWxlcycgd2FybmluZ3Mgd2l0aCBDKysgY29tcGlsZXJzIGFuZCBHTGliID49IDIuMTQuMDogR0xpYgoJICBjaGFuZ2VkIHRoZSBkZWZhdWx0IEdUeXBlIHR5cGVkZWYgZnJvbSBndWxvbmcgdG8gZ3NpemUgYXQgc29tZSBwb2ludCwKCSAgYnV0IGtlcHQgR1R5cGUgdHlwZWRlZidlZCB0byBndWxvbmcgZm9yIEMrKyBmb3IgQUJJIHJlYXNvbnM7IHRoZQoJICBnX29uY2VfKiBmdW5jdGlvbnMgYWxsIHRha2UgYSBnc2l6ZSAqIHRob3VnaCwgc28gd29yayBhcm91bmQgdGhlIHR5cGUKCSAgbWlzbWF0Y2ggZm9yIEMrKyBieSBkb2luZyBldmVyeXRoaW5nIGluIGdzaXplIGFuZCBjYXN0aW5nIHRvIEdUeXBlCgkgIGxhdGVyLgoKMjAwOC0wNS0wOSAxNDowMjo1MyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogQWRkIGRvY3VtZW50YXRpb24gZm9yIHRoZSBzaWduYWxzIHRvIHB1c2ggb3VyIGNvcmUgcGx1Z2luIGRvY3MgY292ZXJhZ2UgYmFjayB1cCB0byAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIEFkZCBkb2N1bWVudGF0aW9uIGZvciB0aGUgc2lnbmFscyB0byBwdXNoIG91ciBjb3JlIHBsdWdpbiBkb2NzCgkgIGNvdmVyYWdlIGJhY2sgdXAgdG8gMTAwJS4KCjIwMDgtMDUtMDggMTQ6MjM6MTYgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBnc3QvZ3N0aW5mby5oIChHU1RfRlVOQ1RJT04pOiBSZXZlcnRlZCBHU1RfRlVOQ1RJT04gdG8gdGhlIG9sZCB2ZXJzaW9uIGFzIHdlIGRvbid0IHdhbnQgdGhlIGZ1bGwgc2lnbmF0dXJlIGluIEMrKyBjb2QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uaCAoR1NUX0ZVTkNUSU9OKToKCSAgUmV2ZXJ0ZWQgR1NUX0ZVTkNUSU9OIHRvIHRoZSBvbGQgdmVyc2lvbiBhcyB3ZSBkb24ndCB3YW50IHRoZQoJICBmdWxsIHNpZ25hdHVyZSBpbiBDKysgY29kZS4gQWxzbyBhZGRlZCBzdXBwb3J0IGZvciBNU1ZDLgoKMjAwOC0wNS0wOCAxMTozNzowMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmg6IEludGVybiB0aGUgdHlwZSBuYW1lIHN0cmluZywgc2ltaWxhciB0byB3aGF0IEdfREVGSU5FX1RZUEUgZG9lcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEludGVybiB0aGUgdHlwZSBuYW1lIHN0cmluZywgc2ltaWxhciB0byB3aGF0IEdfREVGSU5FX1RZUEUgZG9lcy4KCjIwMDgtMDUtMDggMTE6Mjc6NTYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5oOiBNYWtlIEdTVF9CT0lMRVJQTEFURSB0aHJlYWQtc2FmZSBpZiBidWlsZGluZyB3aXRoIEdMaWIgMi4xNCBvciBuZXdlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIE1ha2UgR1NUX0JPSUxFUlBMQVRFIHRocmVhZC1zYWZlIGlmIGJ1aWxkaW5nIHdpdGggR0xpYiAyLjE0IG9yIG5ld2VyLgoKMjAwOC0wNS0wOCAwNTo1NTozNCArMDAwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IERvbid0IHBhc3N0aHJvdWdoIGJ1ZmZlciBhbGxvY2F0aW9uIHRvbyBlYXNpbHkgaWYgdGhlIGNhcHMgY2hhbmdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gYSBwYXRjaCBieTogU2pvZXJkIFNpbW9ucyA8c2pvZXJkIGF0IGx1b24gZG90IG5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBEb24ndCBwYXNzdGhyb3VnaCBidWZmZXIgYWxsb2NhdGlvbiB0b28gZWFzaWx5IGlmIHRoZSBjYXBzIGNoYW5nZS4KCSAgVGhpcyBicmVha3Mgd2hlbiB3b3JraW5nIGluIHBhc3N0aHJvdWdoIG1vZGUgYW5kIHVwc3RyZWFtIGNoYW5nZXMKCSAgaXQncyBjYXBzLiBGaXhlcyBidWcgIzUyNjc2OC4KCjIwMDgtMDUtMDcgMTk6MjQ6NDQgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBnc3QvZ3N0aW5mby5jIChnc3RfZGVidWdfbG9nX3ZhbGlzdCk6IEltcHJvdmVkIHRoZSBfX0ZJTEVfXyBwYXJ0IG9mIGRlYnVnIG91dHB1dCBmb3IgTVNWQy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYyAoZ3N0X2RlYnVnX2xvZ192YWxpc3QpOgoJICBJbXByb3ZlZCB0aGUgX19GSUxFX18gcGFydCBvZiBkZWJ1ZyBvdXRwdXQgZm9yIE1TVkMuCgoyMDA4LTA1LTA3IDE5OjE1OjE0ICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KTogRGVjbGFyYXRpb24gYWZ0ZXIgc3RhdGVtZW50IGZpeCBmb3IgY29tcGlsZXJzIGxpa2UgTVNWQy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KToKCSAgRGVjbGFyYXRpb24gYWZ0ZXIgc3RhdGVtZW50IGZpeCBmb3IgY29tcGlsZXJzIGxpa2UgTVNWQy4KCjIwMDgtMDUtMDcgMTk6MDk6MDggKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICB3aW4zMi9jb21tb24vY29uZmlnLmguaW46IERvbid0IGRlZmluZSBHU1RfRlVOQ1RJT04sIGlmIEdMaWIgc3VwcG9ydHMgTVNWQyB3ZSdkIG11Y2ggcmF0aGVyIHVzZSB0aGUgcmVhbCB0aGluZyB0aGFuIGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBEb24ndCBkZWZpbmUgR1NUX0ZVTkNUSU9OLCBpZiBHTGliIHN1cHBvcnRzIE1TVkMgd2UnZCBtdWNoIHJhdGhlcgoJICB1c2UgdGhlIHJlYWwgdGhpbmcgdGhhbiBoYXZpbmcgIj8/PyIgdW5jb25kaXRpb25hbGx5LgoKMjAwOC0wNS0wNyAxODo1MToyMiArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIGdzdC9nc3RpbmZvLmggKEdTVF9GVU5DVElPTik6IE1hZGUgR1NUX0ZVTkNUSU9OIGFuIGFsaWFzIGZvciBHX1NUUkZVTkMgdG8gYXZvaWQgZHVwbGljYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmggKEdTVF9GVU5DVElPTik6CgkgIE1hZGUgR1NUX0ZVTkNUSU9OIGFuIGFsaWFzIGZvciBHX1NUUkZVTkMgdG8gYXZvaWQgZHVwbGljYXRpb24uCgoyMDA4LTA1LTA3IDA5OjQ3OjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IFNtYWxsIGNvZGUgY2xlYW51cC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9hdmFpbGFibGVfZmFzdCk6CgkgIFNtYWxsIGNvZGUgY2xlYW51cC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZXRfZmx1c2hpbmcpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2Vlayk6CgkgIEZpeCBzb21lIGNvbW1lbnRzLgoKMjAwOC0wNS0wNyAwOTozNDo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy4qOiBBZGRlZCBmb3JtYXQgcHJvcGVydHkgdG8gY29udHJvbCB0aGUgZm9ybWF0IG9mIHRoZSBuZXdzZWdtZW50IGV2ZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfaW5pdCksIChnc3RfZmFrZV9zcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mYWtlX3NyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2Zha2Vfc3JjX3N0YXJ0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgQWRkZWQgZm9ybWF0IHByb3BlcnR5IHRvIGNvbnRyb2wgdGhlIGZvcm1hdCBvZiB0aGUgbmV3c2VnbWVudCBldmVudHMuCgkgIEFQSTogR3N0RmFrZVNyYzpmb3JtYXQKCjIwMDgtMDUtMDYgMDg6NDU6MDcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBBZGQgZ3N0X3BhZF9oYXNfbmFtZSgpIHRvIHRoZSBleHBvcnRlZCBzeW1ib2xzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIGdzdF9wYWRfaGFzX25hbWUoKSB0byB0aGUgZXhwb3J0ZWQgc3ltYm9scy4KCjIwMDgtMDUtMDYgMDg6NDM6NTcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIERvbid0IGFsbG93IG5lZ2F0aXZlIHNpemVzIHdoZW4gYWxsb2NhdGluZyBuZXcgYnVmZmVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKToKCSAgRG9uJ3QgYWxsb3cgbmVnYXRpdmUgc2l6ZXMgd2hlbiBhbGxvY2F0aW5nIG5ldyBidWZmZXJzLgoJICBGaXhlcyBidWcgIzQ2MTI1My4KCjIwMDgtMDUtMDUgMTY6NDc6MjkgKzAwMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZEBsdW9uLm5ldD4KCgkgIGdzdC9nc3RidXMuYzogRG9uJ3QgcHJpbnQgYSB3YXJuaW5nIGlmIHRoZSBxdWV1ZSBpcyBlbXB0eSB3aGVuIHdlIHRyeSB0byBwb3AgaGVyZS4gVGhhdCBjb3VsZCBoYXBwZW4gaWYgYW5vdGhlciB0aHJlYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNqb2VyZCBTaW1vbnMgPHNqb2VyZCBhdCBsdW9uIG5ldD4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3NvdXJjZV9kaXNwYXRjaCk6CgkgIERvbid0IHByaW50IGEgd2FybmluZyBpZiB0aGUgcXVldWUgaXMgZW1wdHkgd2hlbiB3ZSB0cnkgdG8gcG9wCgkgIGhlcmUuIFRoYXQgY291bGQgaGFwcGVuIGlmIGFub3RoZXIgdGhyZWFkIG9yIGNhbGxiYWNrIHNldCB0aGUKCSAgYnVzIHRvIGZsdXNoaW5nIGJldHdlZW4gdGhlIHNvdXJjZSdzIGNoZWNrL3ByZXBhcmUgYW5kIHRoZQoJICBkaXNwYXRjaCBiZWluZyBjYWxsZWQgKCM1MzE1MzgpLgoKMjAwOC0wNS0wNSAxNjoyNToyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBTbWFsbCBkb2NzIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIFNtYWxsIGRvY3MgZml4LgoKMjAwOC0wNS0wNSAxNTo1MDozNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IEFkZCB1bml0IHRlc3QgZm9yIGRlc2VyaWFsaXppbmcgdWludDY0cyBhbmQgY2hlY2sgc29tZSByZWFsbHkgbGFyZ2UgbnVtYmVycyBpbiB0aGUgaW50NjQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgZGVzZXJpYWxpemluZyB1aW50NjRzIGFuZCBjaGVjayBzb21lIHJlYWxseSBsYXJnZQoJICBudW1iZXJzIGluIHRoZSBpbnQ2NCB0ZXN0LgoKMjAwOC0wNS0wNCAxOTowNzoyMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogVXNlICIlcyIgYXMgZm9ybWF0IHN0cmluZyBpbnN0ZWFkIG9mIHByaW50aW5nIHN0cmluZ3MgZGlyZWN0bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChuX3ByaW50KSwgKHByaW50X2hpZXJhcmNoeSksCgkgIChwcmludF9pbnRlcmZhY2VzKSwgKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKSwKCSAgKHByaW50X3NpZ25hbF9pbmZvKToKCSAgVXNlICIlcyIgYXMgZm9ybWF0IHN0cmluZyBpbnN0ZWFkIG9mIHByaW50aW5nIHN0cmluZ3MgZGlyZWN0bHkuCgoyMDA4LTA1LTA0IDE0OjI1OjA3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0Y2xvY2suYzogTWFrZSBzb21lIGNoZWNrcyBhY3R1YWxseSB1c2VmdWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX3NldF9jYWxpYnJhdGlvbik6CgkgIE1ha2Ugc29tZSBjaGVja3MgYWN0dWFsbHkgdXNlZnVsLgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbik6CgkgIFJlbW92ZSBzb21lIHVudXNlZCBjb2RlLiBVbnNpZ25lZCBpbnRlZ2VycyB0ZW5kIHRvIGJlID49IDAuCgoyMDA4LTA1LTAzIDE5OjIzOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogRml4ICdTaW5jZTonIHZlcnNpb24gaW4gZ3N0X3ZhbHVlX2R1cF9taW5pX29iamVjdCgpIGRvY3MgYmx1cmI6IHRoaXMgZnVuY3Rpb24gd2FzIG5vdCBpbiB0aGUgdW5zLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfdmFsdWVfZ2V0X21pbmlfb2JqZWN0KToKCSAgRml4ICdTaW5jZTonIHZlcnNpb24gaW4gZ3N0X3ZhbHVlX2R1cF9taW5pX29iamVjdCgpIGRvY3MgYmx1cmI6IHRoaXMKCSAgZnVuY3Rpb24gd2FzIG5vdCBpbiB0aGUgdW5zY2hlZHVsZWQgMC4xMC4xOSByZWxlYXNlLgoKMjAwOC0wNS0wMyAxOToxMzo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBPbmx5IHByaW50IG9uZSBsb2cgbWVzc2FnZSBwZXIgbm9uLXBsdWdpbiBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICBPbmx5IHByaW50IG9uZSBsb2cgbWVzc2FnZSBwZXIgbm9uLXBsdWdpbiBmaWxlLgoKMjAwOC0wNS0wMyAxOTowODo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmM6IEZpeCBhbGlnbm1lbnQgb2YgZGVidWcgbG9nIGNvbHVtbnMgb24gNjQtYml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoZ3N0X2RlYnVnX2xvZ19kZWZhdWx0KToKCSAgRml4IGFsaWdubWVudCBvZiBkZWJ1ZyBsb2cgY29sdW1ucyBvbiA2NC1iaXQuCgoyMDA4LTA1LTAzIDE2OjUyOjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9saWJzLzogSWdub3JlIHByaXZhdGUgY29udHJvbGxlciBoZWFkZXJzIGZvciBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgSWdub3JlIHByaXZhdGUgY29udHJvbGxlciBoZWFkZXJzIGZvciBkb2NzLgoKMjAwOC0wNS0wMyAxNToyNToyNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IE1vdmUgc29tZSBwcml2YXRlIGRlY2xhcmF0aW9ucyBpbnRvIHByaXZhdGUgaGVhZGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2Vfc2V0X2ludGVycG9sYXRpb25fbW9kZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZXByaXZhdGUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2xpYi5jOgoJICBNb3ZlIHNvbWUgcHJpdmF0ZSBkZWNsYXJhdGlvbnMgaW50byBwcml2YXRlIGhlYWRlcnMuCgoyMDA4LTA1LTAyIDEwOjEyOjMzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBSZW1vdmUgc29tZSBjb2RlIHRoYXQgaXMgdW51c2VkIGFmdGVyIFN0ZWZhbidzIHJlZmFjdG9yaW5nIGFuZCB1c2VzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIG5vdywuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzogKGRlYnVnX2R1bXBfZWxlbWVudF9wYWQpOgoJICBSZW1vdmUgc29tZSBjb2RlIHRoYXQgaXMgdW51c2VkIGFmdGVyIFN0ZWZhbidzIHJlZmFjdG9yaW5nIGFuZCB1c2VzCgkgIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIG5vdywgcmVzdWx0aW5nIGluIGEgY29tcGlsZXIgd2FybmluZy4KCjIwMDgtMDUtMDEgMTM6MDM6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogUnVuIGdfc3RyX2hhc19zdWZmaXgoKSBvbmx5IG9uIHRoZSBmaWxlIG5hbWUsIG5vdCB0aGUgZW50aXJlIGZpbGUgcGF0aC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgUnVuIGdfc3RyX2hhc19zdWZmaXgoKSBvbmx5IG9uIHRoZSBmaWxlIG5hbWUsIG5vdCB0aGUKCSAgZW50aXJlIGZpbGUgcGF0aC4KCjIwMDgtMDQtMzAgMTQ6MjA6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IFNpbmNlIHdlJ3JlIG5vdCBjYWxsZWQgb25seSBmcm9tIHRoZSBjaGFpbiBmdW5jdGlvbiBhbnkgbG9uZ2VyLCB3ZSBjYW4ndCBhc3N1bWUgdGhhdCB0aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xlYWtfZG93bnN0cmVhbSk6CgkgIFNpbmNlIHdlJ3JlIG5vdCBjYWxsZWQgb25seSBmcm9tIHRoZSBjaGFpbiBmdW5jdGlvbiBhbnkgbG9uZ2VyLAoJICB3ZSBjYW4ndCBhc3N1bWUgdGhhdCB0aGVyZSdzIGFsd2F5cyBkYXRhIGluIHRoZSBxdWV1ZSwgc28gbW92ZQoJICB0aGUgaXNfZnVsbCBjaGVjayB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsb29wIChvdGhlcndpc2Ugd2UnZAoJICBoaXQgdGhlIGFzc2VydCB3aGVuIGNoYW5naW5nIHRoZSBsaW1pdCBwcm9wZXJ0aWVzIHdoaWxlIHRoZQoJICBxdWV1ZSBpcyBlbXB0eSBvciBub3QgcnVubmluZyB5ZXQpLgoJICBBbHNvLCBvbmx5IHNldCBhIGRpc2NvbnQgaWYgaXRlbXMgd2VyZSBhY3R1YWxseSByZW1vdmVkIGZyb20KCSAgdGhlIHF1ZXVlLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6ICh0ZXN0X2xlYWt5X2Rvd25zdHJlYW0pOgoJICBUZXN0IGNhc2UgZm9yIHRoZSBhYm92ZS4KCjIwMDgtMDQtMzAgMDk6MzU6NDMgKzAwMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZ0BheGlzLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogV2hlbiBjaGFuZ2luZyB0aHIgbWF4IGNhcGFjaXR5IG9mIGEgbGVha3kgcXVldWUsIGltbWVkaWF0bHkgZHJvcCBidWZmZXJzIGluc3RlYWQgb2Ygd2FpdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEpvbmFzIEhvbG1iZXJnIDxqb25hcyBkb3QgaG9sbWJlcmcgYXQgYXhpcyBkb3QgY29tPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9sZWFrX2Rvd25zdHJlYW0pLAoJICAoZ3N0X3F1ZXVlX2NoYWluKSwgKHF1ZXVlX2NhcGFjaXR5X2NoYW5nZSksCgkgIChnc3RfcXVldWVfc2V0X3Byb3BlcnR5KToKCSAgV2hlbiBjaGFuZ2luZyB0aHIgbWF4IGNhcGFjaXR5IG9mIGEgbGVha3kgcXVldWUsIGltbWVkaWF0bHkgZHJvcCBidWZmZXJzCgkgIGluc3RlYWQgb2Ygd2FpdGluZyBmb3IgYSBwdXNoIG9uIHRoZSBzaW5rcGFkLiBGaXhlcyAjNTMwNjM3LgoKMjAwOC0wNC0zMCAwNzo1NjozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogUmVmYWN0b3IgY29kZSBhbmQgZml4IGhhbmRsaW5nIG9mIGdob3N0cGFkcyBhbmQgdGhlaXIgcHJveHlwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBSZWZhY3RvciBjb2RlIGFuZCBmaXggaGFuZGxpbmcgb2YgZ2hvc3RwYWRzIGFuZCB0aGVpciBwcm94eXBhZHMuCgoyMDA4LTA0LTI5IDExOjIzOjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIG1ldGhvZCB0byBjb252ZW5pZW50bHkgY2hlY2sgdGhlIG5hbWUgb2YgYSBjdXN0b20gZXZlbnQgd2l0aCBnc3RfZXZlbnRfaGFzX25hbWUoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9oYXNfbmFtZSk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBtZXRob2QgdG8gY29udmVuaWVudGx5IGNoZWNrIHRoZSBuYW1lIG9mIGEgY3VzdG9tIGV2ZW50IHdpdGgKCSAgZ3N0X2V2ZW50X2hhc19uYW1lKCkuCgkgIFJlZm9ybWF0IHRoZSBldmVudCBkb2NzIHNvIHRoYXQgcmVsYXRlZCBtZXRob2RzIGFyZSBwdXQgdG9nZXRoZXIgaW5zdGVhZAoJICBvZiB0aGUgZGVmYXVsdCBhbHBoYWJldGljYWwgc29ydC4KCSAgVXBkYXRlIHVuaXQgdGVzdCB3aXRoIG5ldyBtZXRob2QuCgkgIEFQSTogR3N0RXZlbnQ6OmdzdF9ldmVudF9oYXNfbmFtZSgpCgoyMDA4LTA0LTI4IDE4OjQ0OjQ4ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbTogRG9uJ3QgYWRkIGFuIGV4cGxpY2l0IGxpbmsgdG8gbGliZ3N0cmVhbWVyLTAuMTAubGE7IGl0J3MgYWxyZWFkeSBpbmNsdWRlZCBpbiBHU1RfT0JKX0xJQlMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBEb24ndCBhZGQgYW4gZXhwbGljaXQgbGluayB0byBsaWJnc3RyZWFtZXItMC4xMC5sYTsgaXQncyBhbHJlYWR5CgkgIGluY2x1ZGVkIGluIEdTVF9PQkpfTElCUy4KCjIwMDgtMDQtMjggMDk6MjE6MzMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3QuYzogUmVnaXN0ZXIgR3N0Q2xvY2sgdHlwZSBmcm9tIGEgdHlwZS1zYWZlIGNvbnRleHQuIEZpeGVzIGJ1ZyAjNTMwMzE3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIFJlZ2lzdGVyIEdzdENsb2NrIHR5cGUgZnJvbSBhIHR5cGUtc2FmZSBjb250ZXh0LiBGaXhlcyBidWcgIzUzMDMxNy4KCjIwMDgtMDQtMjYgMDA6MTM6MDMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSAgdG9vbHMvZ3N0LXJ1bi5jOiBJbmNsdWRlIDx1bmlzdGQuaD4gY29uZGl0aW9uYWxseSBvbiBIQVZFX1VOSVNURF9IIGFzIGVsc2V3aGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5IEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoJICAqIHRvb2xzL2dzdC1ydW4uYzoKCSAgSW5jbHVkZSA8dW5pc3RkLmg+IGNvbmRpdGlvbmFsbHkgb24gSEFWRV9VTklTVERfSCBhcyBlbHNld2hlcmUuCgoyMDA4LTA0LTI1IDE3OjU0OjI4ICswMDAwICBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDBAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBVc2UgdGhlIEdMaWIgc3R1ZmYgdG8gY3JlYXRlIGEgcHJpdmF0ZSBzdHJ1Y3R1cmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX2luaXQpLAoJICAoZ3N0X2Jpbl9kaXNwb3NlKToKCSAgVXNlIHRoZSBHTGliIHN0dWZmIHRvIGNyZWF0ZSBhIHByaXZhdGUgc3RydWN0dXJlLgoJICBBZGQgc29tZSBsb2NraW5nIGFyb3VuZCBzb21lIGRpc3Bvc2UgbWV0aG9kcyB0byBtYWtlIHRoZW0gYSBsaXR0bGUKCSAgc2FmZXIsIHNlZSAjNTI5NzIzLiBQYXRjaCBieTogQW50b2luZSBUcmVtYmxheSA8aGV4YTAwIGF0IGdtYWlsIGRvdCBjb20+CgoyMDA4LTA0LTI1IDEzOjIyOjMyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlLzogRml4IGRvYyB0eXBvcyBhbmQgdW5pZnkgY2FwcyBhIGJpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgRml4IGRvYyB0eXBvcyBhbmQgdW5pZnkgY2FwcyBhIGJpdC4KCjIwMDgtMDQtMjUgMTM6MDk6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guMS5pbjogRm9yZ290IHRvIGFsc28gYWRkIHRoZSBlbnZ2YXIgZG9jcyBoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIEZvcmdvdCB0byBhbHNvIGFkZCB0aGUgZW52dmFyIGRvY3MgaGVyZS4KCjIwMDgtMDQtMjUgMTA6MDE6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBSZWYgc29tZSBtb3JlIGNsYXNzZXMgaW4gZ3N0X2luaXQoKSB0byB3b3JrIGFyb3VuZCB0aHJlYWQtc2FmZXR5IGlzc3VlcyBpbiBwcmUtMi4xNiBHTGlicywgYW5kIGFkZCBiYXNpYyB1bml0IHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCksIChnc3RfZGVpbml0KToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKSwgKHBpcGVsaW5lX3RocmVhZCksCgkgICh0ZXN0X2NvbmN1cnJlbnRfY3JlYXRlKSwgKGdzdF9waXBlbGluZV9zdWl0ZSk6CgkgIFJlZiBzb21lIG1vcmUgY2xhc3NlcyBpbiBnc3RfaW5pdCgpIHRvIHdvcmsgYXJvdW5kIHRocmVhZC1zYWZldHkKCSAgaXNzdWVzIGluIHByZS0yLjE2IEdMaWJzLCBhbmQgYWRkIGJhc2ljIHVuaXQgdGVzdC4KCjIwMDgtMDQtMjUgMDc6MjI6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFJlYXJyYW5nZSB0aGUgbGF0ZW5jeSBxdWVyeSBjb2RlLiBXZSBhbHdheXMgd2FudCB0byBkbyB0aGUgdXBzdHJlYW0gcXVlcnksIGV2ZW4gaWYgd2UgYXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3Npbmtfc2VuZF9ldmVudCk6CgkgIFJlYXJyYW5nZSB0aGUgbGF0ZW5jeSBxdWVyeSBjb2RlLiBXZSBhbHdheXMgd2FudCB0byBkbyB0aGUgdXBzdHJlYW0KCSAgcXVlcnksIGV2ZW4gaWYgd2UgYXJlIG5vdCBsaXZlIHNvIHRoYXQgdGhlIHVwc3RyZWFtIGVsZW1lbnRzIGNhbiBnZXQgdGhlCgkgIGxhdGVuY3kgcmVzdWx0cyB0b28uIElmIHdlIGZhaWwgZG9pbmcgdGhlIHF1ZXJ5IGFuZCB3ZSBhcmUgbGl2ZSwgd2UKCSAgcmV0dXJuIFRSVUUgYWZ0ZXJ3YXJkcy4KCjIwMDgtMDQtMjQgMTU6MTQ6NTQgKzAwMDAgIEphc29uIFpoYW8gPGUzNDIzY0Btb3Rvcm9sYS5jb20+CgoJICBFbmFibGUvZGlzYWJsZSBzY2FuX2FuZF91cGRhdGVfcmVnaXN0cnkoKSBiYXNlZCBvbiBjb21tYW5kbGluZSBzd2l0Y2ggb3IgZW52aXJvbm1lbnQgdmFyaWFibGUuIEZpeGVzICM1MjA0NjguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogSmFzb24gWmhhbyA8ZTM0MjNjQG1vdG9yb2xhLmNvbT4KCSAgKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgKiBnc3QvZ3N0LmM6CgkgIEVuYWJsZS9kaXNhYmxlIHNjYW5fYW5kX3VwZGF0ZV9yZWdpc3RyeSgpIGJhc2VkIG9uIGNvbW1hbmRsaW5lIHN3aXRjaAoJICBvciBlbnZpcm9ubWVudCB2YXJpYWJsZS4gRml4ZXMgIzUyMDQ2OC4KCSAgKiBDaGFuZ2VMb2c6CgkgIEZpeCB0eXBvIGluIG15IHByZXZpb3VzIGNvbW1pdC4KCjIwMDgtMDQtMjQgMDg6Mjc6NTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBBZGQgYSB3YXJuaW5nIG9mIHdlIGhpdCB1bmhhbmRsZWQgZmFjdG9yaWVzIHdoZW4gc2F2aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgQWRkIGEgd2FybmluZyBvZiB3ZSBoaXQgdW5oYW5kbGVkIGZhY3RvcmllcyB3aGVuIHNhdmluZy4KCSAgTW9yZSBkZWJ1ZyBsb2dnaW5nIGRldGFpbCwgYnV0IG1vdmUgdG8gTE9HIGNhdGVnb3J5LgoKMjAwOC0wNC0yNCAwNjo0Njo1NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IFRlbGwgdGhlICp0cnV0aCogd2hlbiBpbXByb3ZpbmcgdGhlIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBUZWxsIHRoZSAqdHJ1dGgqIHdoZW4gaW1wcm92aW5nIHRoZSBkb2N1bWVudGF0aW9uLgoKMjAwOC0wNC0yMyAxNDo1NDoyMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IFVucmVmIHRoZSBmYWN0b3J5IGFmdGVyIGl0IHdhcyB1c2VkIHRoZSBsYXN0IHRpbWUsIG5vdCBiZWZvcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKToKCSAgVW5yZWYgdGhlIGZhY3RvcnkgYWZ0ZXIgaXQgd2FzIHVzZWQgdGhlIGxhc3QgdGltZSwgbm90IGJlZm9yZS4KCSAgKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6IChnc3RfaW5kZXhfZmFjdG9yeV9tYWtlKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgYSBiaXQgYW5kIGRvbid0IGxlYWsgYSByZWYgdG8gdGhlIGluZGV4IGZhY3Rvcnkgd2l0aAoJICBlYWNoIGNhbGwuCgoyMDA4LTA0LTIzIDEzOjU1OjAxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogSW1wcm92ZSB0aGUgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIEltcHJvdmUgdGhlIGRvY3VtZW50YXRpb24uCgoyMDA4LTA0LTIzIDEwOjE0OjM4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBUaGUgZ2xpYiBtYWNybyBzZWVtcyB0byBiZSBib3JrZWQuIFVzZSBnX3NsaWNlX2NvcHkgZGlyZWN0bHkgYW5kIGNhc3QgaW4gdGhlIGhvcGUgdGhhdCB0aGlzIGZpeGVzIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgVGhlIGdsaWIgbWFjcm8gc2VlbXMgdG8gYmUgYm9ya2VkLiBVc2UgZ19zbGljZV9jb3B5IGRpcmVjdGx5IGFuZCBjYXN0CgkgIGluIHRoZSBob3BlIHRoYXQgdGhpcyBmaXhlcyB0aGUgd2FybmluZyBvbiA2NGJpdC4KCjIwMDgtMDQtMjMgMDc6MDg6NTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IERvY3VtZW50IHRoZSBuZXcgZnVuY3Rpb24uIFVzZSBnX3NsaWNlX2R1cCgpIChubyBuZWVkIGZvciBnc3Rfc2VnbWVudF9pbml0KCkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBEb2N1bWVudCB0aGUgbmV3IGZ1bmN0aW9uLiBVc2UgZ19zbGljZV9kdXAoKSAobm8gbmVlZCBmb3IKCSAgZ3N0X3NlZ21lbnRfaW5pdCgpKS4KCjIwMDgtMDQtMjMgMDY6NTc6MzAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IE1vdmUgR1BhcmFtU2VwYyBtYWNyb3MgdG8gc3RhbmRhcnQgc2VjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgTW92ZSBHUGFyYW1TZXBjIG1hY3JvcyB0byBzdGFuZGFydCBzZWN0aW9uLgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgRG4ndCBkb2N1bWVudCBfZ2V0X3R5cGUgLSBpdHMgaW4gcHJpdmF0ZSBzZWN0aW9uIGluIGRvY3MgYW55d2F5IGFuZAoJICB0aGlzIGRvYy1ibG9iIHdhcyBpbmNvbXBsZXRlLgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBGaXggd3Jvbmcgc3ltYm9sIG5hbWVzIGluIGRvY3MuCgkgICogZ3N0L2dzdG1hY3Jvcy5oOgoJICBBZGQgb25jZSBkb2Mgc2VudGVuY2UuCgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgIElnbm9yZSBtb3JlLgoKMjAwOC0wNC0yMSAxMDoyNTowMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvTWFrZWZpbGUuYW06IEFuZCByZW1vdmUgdGhvc2UgbGlicyBoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgQW5kIHJlbW92ZSB0aG9zZSBsaWJzIGhlcmUuCgoyMDA4LTA0LTIxIDA5OjI5OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9saWJzL01ha2VmaWxlLmFtOiBGaXggZG9jcyBidWlsZCBhZ2FpbiBieSBhZGRpbmcgbGliZ3N0bmV0LTAuMTAuc28gdG8gU0NBTk9CSl9ERVBTLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIEZpeCBkb2NzIGJ1aWxkIGFnYWluIGJ5IGFkZGluZyBsaWJnc3RuZXQtMC4xMC5zbyB0byBTQ0FOT0JKX0RFUFMuCgoyMDA4LTA0LTIxIDA4OjM0OjA5ICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBBZGQgdGhlIG1pbi10aHJlc2hvbGQgdG8gdGhlIG1pbiBsYXRlbmN5IGlmIHBvc3NpYmxlLiBGaXhlcyAjNTI5MTQ4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIgZG90IGNhPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgQWRkIHRoZSBtaW4tdGhyZXNob2xkIHRvIHRoZSBtaW4gbGF0ZW5jeSBpZiBwb3NzaWJsZS4gRml4ZXMgIzUyOTE0OC4KCjIwMDgtMDQtMjEgMDc6NDU6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjogU3R1cGlkIGVkaXRvciwgSSByZW1vdmVkIHRoYXQgbGluZSBhcyBpdCBzaG91bGQgZ28gaW4geWV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgIFN0dXBpZCBlZGl0b3IsIEkgcmVtb3ZlZCB0aGF0IGxpbmUgYXMgaXQgc2hvdWxkIGdvIGluIHlldC4KCjIwMDgtMDQtMjEgMDc6NDI6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBSZW1vdmUgbGlicmFyeSB0eXBlcyBmcm8gY29yZSBkb2NzIGFuZCBoYXZlIHRoZW0gaW4gbGlicyBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJICBSZW1vdmUgbGlicmFyeSB0eXBlcyBmcm8gY29yZSBkb2NzIGFuZCBoYXZlIHRoZW0gaW4gbGlicyBkb2NzLgoJICBSZWZvcm1hdCBhbmQgY2xlYW51cC4gQWRkIGNvbW1lbnQgZm9yIG1pbmlvYmplY3QgdHlwZXMuCgoyMDA4LTA0LTIwIDE2OjMyOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHVyaS5jOiBGaXggbGVhazogZ19zdHJkb3duIG9wZXJhdGVzIG9uIHRoZSBzdHJpbmcgaW4gcGxhY2UsIHdoaWxlIGdfYXNjaWlfc3RyZG93bigpIHJldHVybnMgYSBuZXdseS1hbGxvY2F0ZWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF91cmlfZ2V0X3Byb3RvY29sKToKCSAgRml4IGxlYWs6IGdfc3RyZG93biBvcGVyYXRlcyBvbiB0aGUgc3RyaW5nIGluIHBsYWNlLCB3aGlsZQoJICBnX2FzY2lpX3N0cmRvd24oKSByZXR1cm5zIGEgbmV3bHktYWxsb2NhdGVkIHN0cmluZy4KCjIwMDgtMDQtMjAgMDk6NTU6MjUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IFByaW50IHRoZSBVUkkgcHJvdG9jb2xzIGFuZCB0aGUgVVJJIHR5cGUgc3VwcG9ydGVkIGJ5IHRoZSBlbGVtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfdXJpX2hhbmRsZXJfaW5mbyksCgkgIChwcmludF9lbGVtZW50X2luZm8pOgoJICBQcmludCB0aGUgVVJJIHByb3RvY29scyBhbmQgdGhlIFVSSSB0eXBlIHN1cHBvcnRlZCBieSB0aGUgZWxlbWVudC4KCjIwMDgtMDQtMTkgMTY6MDU6NTggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R0YWdsaXN0LmM6IFVzZSBnX3ZhbHVlX3Rha2Vfc3RyaW5nKCkgaW5zdGVhZCBvZiB0aGUgZGVwcmVjYXRlZCBnX3ZhbHVlX3NldF9zdHJpbmdfdGFrZV9vd25lcnNoaXAoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKGdzdF90YWdfbWVyZ2Vfc3RyaW5nc193aXRoX2NvbW1hKToKCSAgVXNlIGdfdmFsdWVfdGFrZV9zdHJpbmcoKSBpbnN0ZWFkIG9mIHRoZSBkZXByZWNhdGVkCgkgIGdfdmFsdWVfc2V0X3N0cmluZ190YWtlX293bmVyc2hpcCgpLgoKMjAwOC0wNC0xOSAxNTo0MjoxOSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IFJldHVybiB0aGUgb2xkIENSQyBpbnN0ZWFkIG9mIDAgaWYgd2UgZ2l2ZSBhIE5VTEwgYnVmZmVyIG9yIGEgYnVmZmVyIHdpdGggYSBsZW5ndGggb2YgMC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChfZ3N0X2NyYzMyKToKCSAgUmV0dXJuIHRoZSBvbGQgQ1JDIGluc3RlYWQgb2YgMCBpZiB3ZSBnaXZlIGEgTlVMTCBidWZmZXIKCSAgb3IgYSBidWZmZXIgd2l0aCBhIGxlbmd0aCBvZiAwLgoKMjAwOC0wNC0xOSAxNTozNjoyMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHVyaS5jOiBBIHZhbGlkIFVSSSBzY2hlbWUgY2FuIGFsc28gaW5jbHVkZSAnKycsICctJyBhbmQgJy4nIGFkZGl0aW9uYWwgdG8gYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYXMgcGVyIFJGQyAzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF91cmlfcHJvdG9jb2xfY2hlY2tfaW50ZXJuYWwpLAoJICAoZ3N0X3VyaV9nZXRfcHJvdG9jb2wpLCAoZ3N0X3VyaV9oYXNfcHJvdG9jb2wpLAoJICAoZ3N0X3VyaV9jb25zdHJ1Y3QpLCAoZ3N0X3VyaV9oYW5kbGVyX3NldF91cmkpOgoJICBBIHZhbGlkIFVSSSBzY2hlbWUgY2FuIGFsc28gaW5jbHVkZSAnKycsICctJyBhbmQgJy4nIGFkZGl0aW9uYWwKCSAgdG8gYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYXMgcGVyIFJGQyAzOTg2IFNlY3Rpb24gMy4xLgoJICBIYW5kbGUgVVJJIHNjaGVtZXMgY2FzZSBpbnNlbnNpdGl2ZSBpbiBhbGwgcGxhY2VzIGFuZCBjb252ZXJ0CgkgIHRvIGxvd2VyLWNhc2Ugd2hlbiBjb25zdHJ1Y3RpbmcgYW4gVVJJIG9yIHNldHRpbmcgYW4gVVJJIHdpdGgKCSAgdGhlIEdzdFVSSUhhbmRsZXIgaW50ZXJmYWNlLiBGaXhlcyBidWcgIzUyODg2OC4KCSAgQWxsIGVsZW1lbnRzIGNhbiBzdGlsbCBhc3N1bWUgKGFzIGJlZm9yZSkgdGhhdCB0aGV5IHdpbGwKCSAgZ2V0IHBhc3NlZCBVUklzIHdpdGggYSBsb3dlci1jYXNlIFVSSSBzY2hlbWUgYnkgdGhlIEdzdFVSSUhhbmRsZXIKCSAgaW50ZXJmYWNlLgoKMjAwOC0wNC0xNyAxMDowOTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IERvbid0IHVzZSBnX2F0b21pY19zZXRfaW50IHdoZXJlIGl0J3Mgbm90IG5lZWRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9zdGF0aWNfY2Fwc19nZXQpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2VudHJ5X25ldyk6CgkgIERvbid0IHVzZSBnX2F0b21pY19zZXRfaW50IHdoZXJlIGl0J3Mgbm90IG5lZWRlZC4KCjIwMDgtMDQtMTcgMDg6NDU6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggMiBjYXBzIGxlYWtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9jYXBzKToKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBGaXggMiBjYXBzIGxlYWtzLgoKMjAwOC0wNC0xNyAwODozNDoxNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IFVzZSBnX2F0b21pY19pbnRfc2V0KCkgaGVyZSB0b28gaW5zdGVhZCBvZiBhc3NpZ25tZW50ICsgZ19hdG9taWNfaW50X2dldCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9hdG9taWNfaW50X3NldCk6CgkgIFVzZSBnX2F0b21pY19pbnRfc2V0KCkgaGVyZSB0b28gaW5zdGVhZCBvZiBhc3NpZ25tZW50ICsKCSAgZ19hdG9taWNfaW50X2dldCgpLgoKMjAwOC0wNC0xNyAwNzoxNDo0NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLio6IEFQSTogRGVwcmVjYXRlIGdzdF9hdG9taWNfaW50X3NldCgpLCBnX2F0b21pY19pbnRfc2V0KCkgc2hvdWxkIGJlIHVzZWQgbm93IHRoYXQgd2UgZGVwZW5kIG9uIG5ldyBlbm91Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBUEk6IERlcHJlY2F0ZSBnc3RfYXRvbWljX2ludF9zZXQoKSwgZ19hdG9taWNfaW50X3NldCgpIHNob3VsZCBiZSB1c2VkCgkgIG5vdyB0aGF0IHdlIGRlcGVuZCBvbiBuZXcgZW5vdWdoIEdMaWIuCgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9zdGF0aWNfY2Fwc19nZXQpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2VudHJ5X25ldyk6CgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfaW5pdCksIChnc3RfZGVidWdfc2V0X2NvbG9yZWQpLAoJICAoZ3N0X2RlYnVnX3NldF9kZWZhdWx0X3RocmVzaG9sZCksIChfZ3N0X2RlYnVnX2NhdGVnb3J5X25ldyksCgkgIChnc3RfZGVidWdfY2F0ZWdvcnlfc2V0X3RocmVzaG9sZCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19pbml0KSwKCSAgKGdzdF9iYXNlX3Npbmtfc2V0X3Fvc19lbmFibGVkKToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfc2V0X3Byb3BlcnR5KToKCSAgVXNlIGdfYXRvbWljX2ludF9zZXQoKSBpbnN0ZWFkIG9mIGdzdF9hdG9taWNfaW50X3NldCgpLgoKMjAwOC0wNC0xNiAxODo0ODowMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHF1ZXJ5LmM6IEFsc28gdXNlIEdfR0lOVDY0X0NPTlNUQU5UIGZvciB0aGUgcXVlcmllcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6CgkgIEFsc28gdXNlIEdfR0lOVDY0X0NPTlNUQU5UIGZvciB0aGUgcXVlcmllcy4KCjIwMDgtMDQtMTYgMTg6Mzg6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RtZXNzYWdlLmM6IFVzZSBHX0dJTlQ2NF9DT05TVEFOVCBpbiB2YXJhcmdzIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBVc2UgR19HSU5UNjRfQ09OU1RBTlQgaW4gdmFyYXJncyBmdW5jdGlvbi4KCjIwMDgtMDQtMTYgMTU6NTE6MTcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBJbml0aWFsaXplIHRoZSByZWdpc3RyeSBtYWdpYyB3aXRoIHplcm9lcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X2luaXRpYWxpemVfbWFnaWMpOgoJICBJbml0aWFsaXplIHRoZSByZWdpc3RyeSBtYWdpYyB3aXRoIHplcm9lcy4KCjIwMDgtMDQtMTYgMTQ6MTg6NTggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS4qOiBBZGQgY3JjMzIgY2hlY2tzdW0gdG8gdGhlIGJpbmFyeSByZWdpc3RyeSBmaWxlIGFuZCBjaGVjayB0aGlzIGJlZm9yZSBhY2NlcHRpbmcgYSByZWdpc3RyeSBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKF9nc3RfY3JjMzIpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2luaXRpYWxpemVfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZV9jYWNoZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2NoZWNrX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIEFkZCBjcmMzMiBjaGVja3N1bSB0byB0aGUgYmluYXJ5IHJlZ2lzdHJ5IGZpbGUgYW5kIGNoZWNrIHRoaXMgYmVmb3JlCgkgIGFjY2VwdGluZyBhIHJlZ2lzdHJ5IGZpbGUuCgkgIEFsc28gZnJlZSB0aGUgZGF0YSBsaXN0IHdoZW4gd3JpdGluZyB0byB0aGUgcmVnaXN0cnkgZmlsZSBmYWlscy4KCjIwMDgtMDQtMTYgMTM6MTY6NDQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBJZiBhbiBlbGVtZW50IHN1cHBvcnRzIHRoZSBVcmkgaW50ZXJmYWNlLCByZXR1cm5zIGEgdmFsaWQgcG9pbnRlciB0byB0aGUgc3VwcG9ydGVkIFVSSSBwcm90by4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pOgoJICBJZiBhbiBlbGVtZW50IHN1cHBvcnRzIHRoZSBVcmkgaW50ZXJmYWNlLCByZXR1cm5zIGEgdmFsaWQgcG9pbnRlcgoJICB0byB0aGUgc3VwcG9ydGVkIFVSSSBwcm90b2NvbHMgYnV0IHRoaXMgcG9pbnRlciBjb250YWlucyBub3RoaW5nCgkgIGRvbid0IHRyeSB0byBzYXZlIHRoYXQgYXMgaXQgd2lsbCBjb3JydXB0IHRoZSByZWdpc3RyeS4KCSAgRG9uJ3QgdW5yZWYgdGhlIHBsdWdpbiBpZiB3ZSBhZGRlZCBpdCB0byB0aGUgcmVnaXN0cnkgYWxyZWFkeSBidXQKCSAgZmFpbCB0byBsb2FkIGEgZmVhdHVyZSBhcyBnc3RfcmVnaXN0cnlfYWRkX3BsdWdpbigpIHRha2VzIG93bmVyc2hpcAoJICBvZiB0aGUgcGx1Z2luLgoJICBJbXByb3ZlIGRlYnVnZ2luZyBhIGJpdC4KCjIwMDgtMDQtMTYgMDg6MzA6NTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0Lmg6IENsYXJpZnkgc29tZSB0YWcgaXRlbSBkb2NzIGFmdGVyIGRpc2N1c3Npb24gb24gaXJjLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBDbGFyaWZ5IHNvbWUgdGFnIGl0ZW0gZG9jcyBhZnRlciBkaXNjdXNzaW9uIG9uIGlyYy4KCjIwMDgtMDQtMTUgMDY6MjM6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6IFJlbW92ZSBjb21tZW50ZWQgb3V0IHBsdWdpbnMgKHRoZXkgaGF2ZSB0aGVpciBvd24gZG9jcykuIFVwZGF0ZSBjb21tZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgUmVtb3ZlIGNvbW1lbnRlZCBvdXQgcGx1Z2lucyAodGhleSBoYXZlIHRoZWlyIG93biBkb2NzKS4gVXBkYXRlCgkgIGNvbW1lbnRzLgoKMjAwOC0wNC0xNSAwNjoxNjozMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIEdTVF9QQVJBTV9DT05UUk9MTEFCTEUgYW5kIEdTVF9QQVJBTV9VU0VSX1NISUZULiBNb3ZlIHBhcmFtc3BlYyBkb2NzIHRvIG93biBzZWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSAgKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJICBBZGQgR1NUX1BBUkFNX0NPTlRST0xMQUJMRSBhbmQgR1NUX1BBUkFNX1VTRVJfU0hJRlQuIE1vdmUgcGFyYW1zcGVjCgkgIGRvY3MgdG8gb3duIHNlY3Rpb24uCgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIFRoaXMgbm93IG9ubHkgZG9jdW1lbnRzIEdWYWx1ZS4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICBSZW1vdmUgR1NUX1BBUkFNX0NPTlRST0xMQUJMRS4KCjIwMDgtMDQtMTUgMDU6NTQ6MTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvUkVBRE1FOiBDb3JyZWN0IGZpbGUgcGF0aC4gVGVsbCBhYm91dCBob3cgdG8gdXNlIC1vdmVycmlkZXMudHh0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgQ29ycmVjdCBmaWxlIHBhdGguIFRlbGwgYWJvdXQgaG93IHRvIHVzZSAtb3ZlcnJpZGVzLnR4dC4KCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDoKCSAgU21hbGwgZGVzaWduIHVwZGF0ZS4KCjIwMDgtMDQtMTQgMTI6MTI6MjIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBGaXggYSB0eXBvIGluIGEgZGVidWcgbWVzc2FnZSBhbmQgcmV2ZXJ0IGNoYW5nZSBmcm9tIHllc3RlcmRheSBhcyBnc3RfcmVnaXN0cnlfYWRkX3BsdWdpbigpIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pOgoJICBGaXggYSB0eXBvIGluIGEgZGVidWcgbWVzc2FnZSBhbmQgcmV2ZXJ0IGNoYW5nZSBmcm9tIHllc3RlcmRheSBhcwoJICBnc3RfcmVnaXN0cnlfYWRkX3BsdWdpbigpIHdpbGwgb25seSBmYWlsIGlmIHNvbWV0aGluZyBpcyByZWFsbHkgd3JvbmcKCSAgYWxyZWFkeSBhbmQgd2UgY2FuJ3Qgc3Vydml2ZSBpdCBhbnl3YXkuCgoyMDA4LTA0LTE0IDA4OjQ4OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBQcmUtcmVnaXN0ZXIgR3N0R0Vycm9yIEdUeXBlIGZyb20gYSB0aHJlYWQtc2FmZSBjb250ZXh0IChmaXhlcyAjNTI3OTY3KTsgdW5yZWYgZW51bSB0eXBlIGNsYXNzZXMgaW4gZGVpbml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpLCAoZ3N0X2RlaW5pdCk6CgkgIFByZS1yZWdpc3RlciBHc3RHRXJyb3IgR1R5cGUgZnJvbSBhIHRocmVhZC1zYWZlIGNvbnRleHQKCSAgKGZpeGVzICM1Mjc5NjcpOyB1bnJlZiBlbnVtIHR5cGUgY2xhc3NlcyBpbiBkZWluaXQuCgoyMDA4LTA0LTEzIDE5OjU4OjQzICswMDAwICBSZW5lIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBnc3QvZ3N0dGFnc2V0dGVyLmM6IE1lcmdpbmcgYW4gZW1wdHkgbGlzdCB3aXRoIGFub3RoZXIgbGlzdCBpbiBLRUVQX0FMTCBtb2RlIHNob3VsZCB5aWVsZCBhbiBlbXB0eSBsaXN0IGFzIHJlc3VsdCBhbmQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSZW5lIFN0YWRsZXIgPG1haWwgYXQgcmVuZXN0YWRsZXIgZGU+CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOiAoZ3N0X3RhZ19zZXR0ZXJfbWVyZ2VfdGFncyk6CgkgIE1lcmdpbmcgYW4gZW1wdHkgbGlzdCB3aXRoIGFub3RoZXIgbGlzdCBpbiBLRUVQX0FMTCBtb2RlIHNob3VsZAoJICB5aWVsZCBhbiBlbXB0eSBsaXN0IGFzIHJlc3VsdCBhbmQgbm90IHRoZSBzZWNvbmQgbGlzdCAoIzUxMjU3OCkuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0YWcgbWVyZ2UgbW9kZXMgYW5kIHRoZSBhZm9yZW1lbnRpb25lZCBidWcuCgoyMDA4LTA0LTEzIDE4OjUwOjA1ICswMDAwICBSZW5lIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBnc3QvZ3N0dGFnbGlzdC5oOiBGaXggZGVzY3JpcHRpb24gdG8gbWF0Y2ggdGhlIG9yZGVyIGluIHRoZSB0YWJsZSAoIzUxMjU3NykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUmVuZSBTdGFkbGVyIDxtYWlsIGF0IHJlbmVzdGFkbGVyIGRlPgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEZpeCBkZXNjcmlwdGlvbiB0byBtYXRjaCB0aGUgb3JkZXIgaW4gdGhlIHRhYmxlICgjNTEyNTc3KS4KCjIwMDgtMDQtMTMgMTc6NTE6MDIgKzAwMDAgIEt3YW5nIFl1bCBTZW8gPGt3YW5neXVsLnNlby5nbWFpbC5jb20+CgoJICBEZWZpbmUgc29ja2xlbl90IGFzIGludCBpZiBpdCdzIG5vdCBkZWZpbmVkIHlldC4gRml4ZXMgY29tcGlsYXRpb24gd2l0aCBNU1ZDNiBhbmQgb3RoZXIgdmVyc2lvbnMgd2hlcmUgc29ja2xlbl90IGlzIG4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBLd2FuZyBZdWwgU2VvICA8a3dhbmd5dWwuc2VvIGdtYWlsIGNvbT4KCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIERlZmluZSBzb2NrbGVuX3QgYXMgaW50IGlmIGl0J3Mgbm90IGRlZmluZWQgeWV0LiBGaXhlcyBjb21waWxhdGlvbgoJICB3aXRoIE1TVkM2IGFuZCBvdGhlciB2ZXJzaW9ucyB3aGVyZSBzb2NrbGVuX3QgaXMgbm90IGRlZmluZWQgaW4KCSAgdGhlIHdpbmRvd3MgaGVhZGVycyAoIzUxODAyMikuCgoyMDA4LTA0LTEzIDEzOjU0OjU1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogSWYgZ3N0X3JlZ2lzdHJ5X2FkZF9wbHVnaW4oKSBmYWlscyBvdXIgcmVmZXJlbmNlIHRvIHRoZSBwbHVnaW4gaXMgaW52YWxpZCBzbyBkb24ndCB0cnkgdG8gdXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKToKCSAgSWYgZ3N0X3JlZ2lzdHJ5X2FkZF9wbHVnaW4oKSBmYWlscyBvdXIgcmVmZXJlbmNlIHRvIHRoZSBwbHVnaW4gaXMKCSAgaW52YWxpZCBzbyBkb24ndCB0cnkgdG8gdXNlIGl0IGFueW1vcmUgYW5kIGluc3RlYWQgZXJyb3Igb3V0LgoKMjAwOC0wNC0xMiAyMDo1Mjo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IERlLWNydWZ0IGEgYml0LiBJZiBubyBhcmd1bWVudCBpcyBzcGVjaWZpZWQsIHByaW50IGFsbCBlbGVtZW50cyBpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9pbmZvKSwgKG1haW4pOgoJICBEZS1jcnVmdCBhIGJpdC4gSWYgbm8gYXJndW1lbnQgaXMgc3BlY2lmaWVkLCBwcmludCBhbGwgZWxlbWVudHMgaW4KCSAgWE1MIHN5bnRheCByYXRoZXIgdGhhbiBhIGZyZWVzdHlsZSBsaXN0IG9mIGVsZW1lbnRzIGxpa2UgZ3N0LWluc3BlY3QuCgkgIEFsc28sIGRvbid0IHByaW50IFhNTCBoZWFkZXIgY2h1bmsgdW5sZXNzIHdlIGFjdHVhbGx5IGhhdmUgc29tZXRoaW5nCgkgIHRvIHByaW50IChpZS4gZG9uJ3QgcHJpbnQgaXQgYmVmb3JlIGFuIGVycm9yIG1lc3NhZ2UpOyBwcmludCBlcnJvcgoJICBtZXNzYWdlIHRvIHN0ZGVyciBub3Qgc3Rkb3V0LiBSZW1vdmUgc3VwcG9ydCBmb3IgcHJpbnRpbmcgcGx1Z2luCgkgIGluZm8gKGl0IHdvdWxkIGp1c3Qgb3V0cHV0IHNvbWV0aGluZyBmcmVlc3R5bGUgYWxvbmcgdGhlIGxpbmVzIG9mCgkgIGdzdC1pbnNwZWN0IHNvIGZhciksIHdoaWNoIGZpeGVzICM1MTQ1MDcuIEFsc28gYWRkIGxpY2Vuc2UgaGVhZGVyLgoKMjAwOC0wNC0xMSAwOToyNzo0NCArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBNYWMgT1MgWCBsb3ZlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTA0LTExICBKdWxpZW4gTW91dHRlICA8anVsaWVuQGZsdWVuZG8uY29tPgoJICBNYWMgT1MgWCBsb3ZlLi4uCgkgICogY29uZmlndXJlLmFjOiBNZXJnZSBwbGF0Zm9ybSBzcGVjaWZpYyBkZWZpbmVzLCBpbnRyb2R1Y2UgYSBuZXcKCSAgZGVmaW5lIG9uIE9TIFggdG8gcmVtZW1iZXIgdGhhdCBmb3JraW5nIHdoZW4gdXBkYXRpbmcgcmVnaXN0cnkgaXMKCSAgdW5zYWZlLgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogVXBkYXRlZCB0byBpbmNsdWRlIGdzdC1saWJzIGluIHRoZSBiYWQKCSAgbW9kdWxlLgoJICAqIGdzdC9nc3QuYzogRG9uJ3QgZm9yayB3aGVuIHVwZGF0aW5nIHJlZ2lzdHJ5IGlmIEdTVF9IQVZFX1VOU0FGRV9GT1JLCgkgIGlzIGRlZmluZWQuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKTogRml4ZWQgYSBib2d1cwoJICBjb25kaXRpb24gdGhhdCBsZWFkcyB0byBhYnNvbHV0ZWx5IG5vIHBsdWdpbnMgYmVpbmcgcmVnaXN0ZXJlZCBvbgoJICBPUyBYLgoKMjAwOC0wNC0xMCAyMDo0Njo1MSArMDAwMCAgSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXVAc3ZuLmdub21lLm9yZz4KCgkgIEFkZCBnc3RfcGFkX2FkZF8qX3Byb2JlX2Z1bGwoKSBmdW5jdGlvbnMgd2l0aCBhIG5vdGlmeSBjYWxsYmFjayB0aGF0IGxldHMgdGhlIGNhbGxlciBmcmVlIHRoZSBkYXRhIGl0IHBhc3NlcyB0byB0aGUgcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1IGF0IHN2biBkb3QgZ25vbWUgZG90IG9yZz4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYWRfYWRkX2RhdGFfcHJvYmUpLAoJICAoZ3N0X3BhZF9hZGRfZGF0YV9wcm9iZV9mdWxsKSwgKGdzdF9wYWRfYWRkX2V2ZW50X3Byb2JlKSwKCSAgKGdzdF9wYWRfYWRkX2V2ZW50X3Byb2JlX2Z1bGwpLCAoZ3N0X3BhZF9hZGRfYnVmZmVyX3Byb2JlKSwKCSAgKGdzdF9wYWRfYWRkX2J1ZmZlcl9wcm9iZV9mdWxsKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgZ3N0X3BhZF9hZGRfKl9wcm9iZV9mdWxsKCkgZnVuY3Rpb25zIHdpdGggYSBub3RpZnkgY2FsbGJhY2sgdGhhdAoJICBsZXRzIHRoZSBjYWxsZXIgZnJlZSB0aGUgZGF0YSBpdCBwYXNzZXMgdG8gdGhlIHByb2JlIGZ1bmN0aW9ucy4gVGhpcwoJICBpcyB1c2VmdWwgZm9yIGJpbmRpbmdzIHN1Y2ggYXMgZ3N0LXB5dGhvbiBvciBnc3RyZWFtZXJtbSAoIzUyNjgxNCkuCgkgIEFQSTogZ3N0X3BhZF9hZGRfZGF0YV9wcm9iZV9mdWxsCgkgIEFQSTogZ3N0X3BhZF9hZGRfYnVmZmVyX3Byb2JlX2Z1bGwKCSAgQVBJOiBnc3RfcGFkX2FkZF9ldmVudF9wcm9iZV9mdWxsCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIEFkZCBtaW5pbWFsIHVuaXQgdGVzdCB0byBtYWtlIHN1cmUgZnJlZWluZyB0aGUgZGF0YSBhY3R1YWxseSB3b3JrcwoJICBhcyBleHBlY3RlZC4KCSAgKiB0ZXN0cy9iZW5jaG1hcmtzLy5jdnNpZ25vcmU6CgkgIFJhbmRvbSBjdnNpZ25vcmUgYWRkZW5kdW0uCgoyMDA4LTA0LTEwIDE5OjEzOjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuaDogTWVudGlvbiBHc3REZWJ1Z0dyYXBoRGV0YWlscyBlbnVtIHR5cGUgaW4gZG9jIGJsdXJiIHNvIHdlIGdldCBhIGxpbmsgdG8gaXQgaW4gdGhlIGRvY3MgKHNpbmNlIHRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6IChHU1RfREVCVUdfQklOX1RPX0RPVF9GSUxFX1dJVEhfVFMpLAoJICAoR1NUX0RFQlVHX0JJTl9UT19ET1RfRklMRSk6CgkgIE1lbnRpb24gR3N0RGVidWdHcmFwaERldGFpbHMgZW51bSB0eXBlIGluIGRvYyBibHVyYiBzbyB3ZSBnZXQgYSBsaW5rCgkgIHRvIGl0IGluIHRoZSBkb2NzIChzaW5jZSB0aGVzZSBhcmUgbWFjcm9zIHRoZSB0eXBlcyBvZiB0aGUgYXJndW1lbnRzCgkgIHdvbid0IGJlIHNob3duIGluIHRoZSBkb2NzIG90aGVyd2lzZSkuCgoyMDA4LTA0LTEwIDE0OjEwOjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IERvIG5vdCBhYm9ydCBvbiBvdXQgb2YgbWVtb3J5IGZvciBwYWRfYWxsb2NfYnVmZmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIERvIG5vdCBhYm9ydCBvbiBvdXQgb2YgbWVtb3J5IGZvciBwYWRfYWxsb2NfYnVmZmVyLgoKMjAwOC0wNC0xMCAxMzo1OToyNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogUmVtb3ZlIGJsYW5rIGxpbmUgYmV0d2VlbiBzeW1ib2wgbmFtZSBhZCBwYXJhbWV0ZXJzIHRvIGZpeCBndGtkb2Mgd2FybmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgUmVtb3ZlIGJsYW5rIGxpbmUgYmV0d2VlbiBzeW1ib2wgbmFtZSBhZCBwYXJhbWV0ZXJzIHRvIGZpeCBndGtkb2MKCSAgd2FybmluZy4KCjIwMDgtMDQtMDkgMjI6Mzc6MjIgKzAwMDAgIEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1QHN2bi5nbm9tZS5vcmc+CgoJICBFeHBvc2UgZ3N0X3NlZ21lbnRfY29weSgpIHRvIG1ha2UgdGhpbmdzIGVhc2llciBmb3IgdGhlIGMrKyBiaW5kaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiAgSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXUgYXQgc3ZuIGRvdCBnbm9tZSBkb3Qgb3JnPgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBFeHBvc2UgZ3N0X3NlZ21lbnRfY29weSgpIHRvIG1ha2UgdGhpbmdzIGVhc2llciBmb3IgdGhlIGMrKyBiaW5kaW5ncy4KCSAgRml4ZXMgIzUxODkzMi4KCSAgQVBJOiBnc3Rfc2VnbWVudF9jb3B5KCkKCjIwMDgtMDQtMDkgMjE6Mjc6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IEZpeCBjb25zdCBwb3NpdGlvbjsgcmVmIEdUeXBlIGNsYXNzZXMgZm9yIGVudW0gdHlwZXMgdG8gd29yayBhcm91bmQgdGhyZWFkLXNhZmV0eSBpc3N1ZXMgaW4gR0xpYiB2ZXJzaW9ucyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCksIChpbml0X3Bvc3QpOgoJICBGaXggY29uc3QgcG9zaXRpb247IHJlZiBHVHlwZSBjbGFzc2VzIGZvciBlbnVtIHR5cGVzIHRvIHdvcmsKCSAgYXJvdW5kIHRocmVhZC1zYWZldHkgaXNzdWVzIGluIEdMaWIgdmVyc2lvbnMgPCAyLjE2LgoKMjAwOC0wNC0wOSAxODoyNjoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDogRml4IHNvbWUgdHlwb3MgYW5kIHNldCB0aGUgZXN0aW1hdGVkIHRvdGFsIGZvciBwdXNoIG1vZGUgdG8gLTEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgRml4IHNvbWUgdHlwb3MgYW5kIHNldCB0aGUgZXN0aW1hdGVkIHRvdGFsIGZvciBwdXNoIG1vZGUgdG8gLTEuCgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X2J1ZmZlcmluZyk6CgkgIFNldCBidWZmZXJpbmctbGVmdCB0byAwIGFzIHdlJ3JlIG5vdCBidWZmZXJpbmcgYnkgZGVmYXVsdC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KToKCSAgSW1wbGVtZW50IEJVRkZFUklORyBxdWVyeS4KCjIwMDgtMDQtMDkgMTc6MzQ6NTQgKzAwMDAgIE1pbG9zeiBEZXJlenluc2tpIDxpbnRlcm5hbGVycm9yQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlcnJvci4qOiBBZGQgdHdvIG5ldyBlcnJvciBjb2RlcyBmb3IgZW5jcnlwdGVkIGNvbnRlbnQuIEZpeGVzICM1MjQ2NTkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogTWlsb3N6IERlcmV6eW5za2kgPGludGVybmFsZXJyb3IgZ21haWwgY29tPgoJICAqIGdzdC9nc3RlcnJvci5jOiAoX2dzdF9zdHJlYW1fZXJyb3JzX2luaXQpOgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICBBZGQgdHdvIG5ldyBlcnJvciBjb2RlcyBmb3IgZW5jcnlwdGVkIGNvbnRlbnQuIEZpeGVzICM1MjQ2NTkuCgkgIEFQSTogR1NUX1NUUkVBTV9FUlJPUl9ERUNSWVBUCgkgIEFQSTogR1NUX1NUUkVBTV9FUlJPUl9ERUNSWVBUX05PS0VZCgoyMDA4LTA0LTA5IDEzOjE1OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHF1ZXJ5Lmg6IEZpeCB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgRml4IHR5cG8uCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZnVuY3Rpb25zLgoKMjAwOC0wNC0wOSAwODoxOTozNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBGaXggaW1wZXJmZWN0IHRpbWVzdGFtcC9vZmZzZXQgY2hlY2tzIHdoZW4gd2UgZ2V0IGFub3RoZXIgTkVXU0VHTUVOVCBldmVudCBhZnRlciBwcm9jLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9ldmVudCksCgkgIChnc3RfaWRlbnRpdHlfc3RhcnQpOgoJICBGaXggaW1wZXJmZWN0IHRpbWVzdGFtcC9vZmZzZXQgY2hlY2tzIHdoZW4gd2UgZ2V0IGFub3RoZXIgTkVXU0VHTUVOVAoJICBldmVudCBhZnRlciBwcm9jZXNzaW5nIHNvbWUgZGF0YS4gRml4ZXMgYnVnICM1MjYwNDIuCgoyMDA4LTA0LTA4IDIwOjI4OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgUmVuYW1lIF9hdmFpbCAtPiBfcmFuZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9wYXJzZV9sYXRlbmN5KSwKCSAgKGdzdF9xdWVyeV9zZXRfYnVmZmVyaW5nX3BlcmNlbnQpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19wZXJjZW50KSwKCSAgKGdzdF9xdWVyeV9zZXRfYnVmZmVyaW5nX3JhbmdlKSwgKGdzdF9xdWVyeV9wYXJzZV9idWZmZXJpbmdfcmFuZ2UpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBSZW5hbWUgX2F2YWlsIC0+IF9yYW5nZQoJICBBUEk6IGdzdF9xdWVyeV9zZXRfYnVmZmVyaW5nX3JhbmdlCgkgIEFQSTogZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19yYW5nZQoKMjAwOC0wNC0wOCAyMDoxNzo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBidXN5IGZpZWxkIGFuZCBxdWFyayBmb3IgdGhlIGJ1ZmZlcmluZyBxdWVyeSBzbyB0aGF0IHRoZSBhcHAgY2FuIG9ubHkgdXNlIHRoZSBxdWVyeSB0byBzZWUgaWYgYnVmZmVyaW5nIGlzIGluIHByby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgICogZ3N0L2dzdHF1YXJrLmM6CgkgICogZ3N0L2dzdHF1YXJrLmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfcGFyc2VfbGF0ZW5jeSksCgkgIChnc3RfcXVlcnlfbmV3X2J1ZmZlcmluZyksIChnc3RfcXVlcnlfc2V0X2J1ZmZlcmluZ19wZXJjZW50KSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9idWZmZXJpbmdfcGVyY2VudCk6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEFkZCBidXN5IGZpZWxkIGFuZCBxdWFyayBmb3IgdGhlIGJ1ZmZlcmluZyBxdWVyeSBzbyB0aGF0IHRoZSBhcHAgY2FuCgkgIG9ubHkgdXNlIHRoZSBxdWVyeSB0byBzZWUgaWYgYnVmZmVyaW5nIGlzIGluIHByb2dyZXNzLgoKMjAwOC0wNC0wOCAxOTo1OTowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFJlb3JkZXIgdGhlIG1lc3NhZ2UgZG9jcyBhbmQgaGVhZGVycyBmb3IgY2xhcml0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2Vfc2V0X2J1ZmZlcmluZ19zdGF0cyksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9idWZmZXJpbmdfc3RhdHMpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X2xhdGVuY3kpLCAoZ3N0X3F1ZXJ5X3NldF9sYXRlbmN5KSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9sYXRlbmN5KSwgKGdzdF9xdWVyeV9uZXdfYnVmZmVyaW5nKSwKCSAgKGdzdF9xdWVyeV9zZXRfYnVmZmVyaW5nX3BlcmNlbnQpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19wZXJjZW50KSwKCSAgKGdzdF9xdWVyeV9zZXRfYnVmZmVyaW5nX3N0YXRzKSwgKGdzdF9xdWVyeV9wYXJzZV9idWZmZXJpbmdfc3RhdHMpLAoJICAoZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfYXZhaWwpLCAoZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19hdmFpbCk6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIFJlb3JkZXIgdGhlIG1lc3NhZ2UgZG9jcyBhbmQgaGVhZGVycyBmb3IgY2xhcml0eS4KCSAgQWRkIGFkaXRpb25hbCBidWZmZXJpbmcgc3RhdHMgQVBJIGZvciBtZXNzYWdlcy4KCSAgQWRkIGJ1ZmZlcmluZyBxdWVyeS4KCSAgQ29udmVydCBzb21lIGxlZnRvdmVyIHF1ZXJpZXMgdG8gdXNlIEdzdFF1YXJrLgoJICBBUEk6IGdzdF9tZXNzYWdlX3NldF9idWZmZXJpbmdfc3RhdHMKCSAgQVBJOiBnc3RfbWVzc2FnZV9wYXJzZV9idWZmZXJpbmdfc3RhdHMKCSAgQVBJOiBHU1RfUVVFUllfQlVGRkVSSU5HCgkgIEFQSTogR3N0QnVmZmVyaW5nTW9kZQoJICBBUEk6IGdzdF9xdWVyeV9uZXdfYnVmZmVyaW5nCgkgIEFQSTogZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfcGVyY2VudAoJICBBUEk6IGdzdF9xdWVyeV9wYXJzZV9idWZmZXJpbmdfcGVyY2VudAoJICBBUEk6IGdzdF9xdWVyeV9zZXRfYnVmZmVyaW5nX3N0YXRzCgkgIEFQSTogZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19zdGF0cwoJICBBUEk6IGdzdF9xdWVyeV9zZXRfYnVmZmVyaW5nX2F2YWlsCgkgIEFQSTogZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19hdmFpbAoKMjAwOC0wNC0wOCAxOTo1MjoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtZXNzYWdlLmM6IFVzZSBHc3RRdWFyayBmb3IgbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3dhcm5pbmcpLCAoZ3N0X21lc3NhZ2VfbmV3X2luZm8pLAoJICAoZ3N0X21lc3NhZ2VfbmV3X2J1ZmZlcmluZyksIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9uZXdfY2xvY2tfcHJvdmlkZSksIChnc3RfbWVzc2FnZV9uZXdfY2xvY2tfbG9zdCksCgkgIChnc3RfbWVzc2FnZV9uZXdfbmV3X2Nsb2NrKSwgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X2RvbmUpLCAoZ3N0X21lc3NhZ2VfbmV3X2R1cmF0aW9uKSwKCSAgKGdzdF9tZXNzYWdlX25ld19hc3luY19zdGFydCksIChnc3RfbWVzc2FnZV9wYXJzZV9idWZmZXJpbmcpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9jbG9ja19wcm92aWRlKSwgKGdzdF9tZXNzYWdlX3BhcnNlX2Nsb2NrX2xvc3QpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfbmV3X2Nsb2NrKSwgKGdzdF9tZXNzYWdlX3BhcnNlX2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3dhcm5pbmcpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfaW5mbyksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9wYXJzZV9kdXJhdGlvbiksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9hc3luY19zdGFydCk6CgkgIFVzZSBHc3RRdWFyayBmb3IgbWVzc2FnZXMuCgoyMDA4LTA0LTA4IDE5OjM5OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1YXJrLio6IEFkZCBzb21lIG1vcmUgcXVhcmtzIG5lZWRlZCBmb3IgbWVzc2FnZXMgYW5kIHF1ZXJpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWFyay5jOiAoX3ByaXZfZ3N0X3F1YXJrc19pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0cXVhcmsuaDoKCSAgQWRkIHNvbWUgbW9yZSBxdWFya3MgbmVlZGVkIGZvciBtZXNzYWdlcyBhbmQgcXVlcmllcy4KCjIwMDgtMDQtMDggMTk6MTQ6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6IFJlbW92ZSB0aGUgIm5vbmUiIGJ1ZmZlcmluZyBtb2RlLCBTVFJFQU0gaXMgYSBnb29kIGRlZmF1bHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgUmVtb3ZlIHRoZSAibm9uZSIgYnVmZmVyaW5nIG1vZGUsIFNUUkVBTSBpcyBhIGdvb2QgZGVmYXVsdC4KCSAgTW92ZSBlc3RpbWF0ZWQtdGltZSB0byB0aGUgYXZhaWwgcXVlcnksIHRoYXQncyB3aGVuIGl0IHdpbGwgYmUgbmVlZGVkLgoJICBPdGhlciBzbWFsbCB0eXBvIGZpeGVzIGFuZCB1cGRhdGVzLgoKMjAwOC0wNC0wNyAxMzoyNzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmRleC5jOiBEb24ndCBwdXQgZGVzY3JpcHRpb25zIGludG8gdGhlIG5pY2sgZmllbGQgb2YgYSBHRW51bVZhbHVlOiBpdCdzIG5vdCBtZWFudCBmb3IgdGhhdCBhbmQgc29tZSBsYW5ndWFnZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9yZXNvbHZlcl9nZXRfdHlwZSk6CgkgIERvbid0IHB1dCBkZXNjcmlwdGlvbnMgaW50byB0aGUgbmljayBmaWVsZCBvZiBhIEdFbnVtVmFsdWU6IGl0J3Mgbm90CgkgIG1lYW50IGZvciB0aGF0IGFuZCBzb21lIGxhbmd1YWdlIGJpbmRpbmdzIHJlbHkgb24gdGhlIG5pY2sgZmllbGQgdG8KCSAgY29uc3RydWN0IGNvbnN0YW50cyBhbmQgdGhlIGxpa2UuIEZpeGVzICM1MjY3MDUuCgoyMDA4LTA0LTA3IDEwOjQ4OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTWVyZ2Ugb3RoZXIgY2hhbmdlcyBmcm9tIDAuMTAuMTkgcmVsZWFzZSBicmFuY2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE5FV1M6CgkgICogUkVMRUFTRToKCSAgKiBnc3RyZWFtZXIuZG9hcDoKCSAgTWVyZ2Ugb3RoZXIgY2hhbmdlcyBmcm9tIDAuMTAuMTkgcmVsZWFzZSBicmFuY2guCgoyMDA4LTA0LTA2IDA4OjU0OjQ3ICswMDAwICBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuLmxlc3BpYXVAZ21haWwuY29tPgoKCSAgY29uZmlndXJlLmFjOiBBY3R1YWxseSBidWlsZCBkbGxzIHdoZW4gY3Jvc3MtY29tcGlsaW5nIHdpdGggbWluZ3czMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuIGRvdCBsZXNwaWF1IGF0IGdtYWlsIGRvdCBjb20+CgkgICogY29uZmlndXJlLmFjOgoJICBBY3R1YWxseSBidWlsZCBkbGxzIHdoZW4gY3Jvc3MtY29tcGlsaW5nIHdpdGggbWluZ3czMi4KCSAgRml4ZXMgYnVnICM1MjYyNDcuCgoyMDA4LTA0LTA1IDEwOjU4OjExICswMDAwICBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuLmxlc3BpYXVAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBvbGwuYzogRml4IGNvbXBpbGF0aW9uIG9mIEdzdFBvbGwgd2l0aCBtaW5ndzMyLiBGaXhlcyBidWcgIzUyNjIzNi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuIGRvdCBsZXNwaWF1IGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L2dzdHBvbGwuYzoKCSAgRml4IGNvbXBpbGF0aW9uIG9mIEdzdFBvbGwgd2l0aCBtaW5ndzMyLiBGaXhlcyBidWcgIzUyNjIzNi4KCjIwMDgtMDQtMDQgMTM6NDM6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDogRml4IHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OgoJICBGaXggdHlwby4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgIFVwZGF0ZSBkZXNpZ24gZG9jcyB3aXRoIG1vcmUgYnVmZmVyaW5nIGlkZWFzLgoKMjAwOC0wNC0wMyAyMToxNTowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogQnVtcCB2ZXJzaW9uIHRvIDAuMTAuMTkuMSBhZnRlciB0aGUgdW5zY2hlZHVsZWQgMC4xMC4xOSByZWxlYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJ1bXAgdmVyc2lvbiB0byAwLjEwLjE5LjEgYWZ0ZXIgdGhlIHVuc2NoZWR1bGVkIDAuMTAuMTkgcmVsZWFzZS4KCjIwMDgtMDQtMDMgMTY6NDU6MDIgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUgc3BlYyB0byB3b3JrIHdpdGggZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHNwZWMgdG8gd29yayB3aXRoIGRvY3MKCjIwMDgtMDQtMDMgMTQ6NDk6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogUmV2ZXJ0IHBhcnQgdGhhdCBiZWxvbmdzIHRvIHRoZSBwcmVzZXQgcGF0Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUmV2ZXJ0IHBhcnQgdGhhdCBiZWxvbmdzIHRvIHRoZSBwcmVzZXQgcGF0Y2guCgoyMDA4LTA0LTAzIDE0OjI2OjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb25maWd1cmUuYWM6IEFkZCBxb3V0ZXMgdG8gdGhlIGRlZmluZS4gRml4ZXMgIyA1MjU5NjEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQWRkIHFvdXRlcyB0byB0aGUgZGVmaW5lLiBGaXhlcyAjIDUyNTk2MS4KCjIwMDgtMDQtMDMgMDc6NTI6MzEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvaW5kZXhlcnMvOiBVc2UgR1NsaWNlIHdoZW4gcG9zc2libGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6IChfZmlsZV9pbmRleF9pZF9mcmVlKSwKCSAgKGdzdF9maWxlX2luZGV4X2xvYWQpLCAoZ3N0X2ZpbGVfaW5kZXhfYWRkX2lkKSwKCSAgKGdzdF9maWxlX2luZGV4X2dldF9hc3NvY19lbnRyeSk6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOiAoZ3N0X21lbV9pbmRleF9mcmVlX2Zvcm1hdCksCgkgIChnc3RfbWVtX2luZGV4X2ZyZWVfaWQpLCAoZ3N0X21lbV9pbmRleF9hZGRfaWQpLAoJICAoZ3N0X21lbV9pbmRleF9pbmRleF9mb3JtYXQpOgoJICBVc2UgR1NsaWNlIHdoZW4gcG9zc2libGUuCgoyMDA4LTA0LTAyIDE3OjQ1OjA4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6IFVzZSBHU2xpY2UgZm9yIGFsbG9jYXRpbmcgdGhlIGNvbnRyb2wgcG9pbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIChnc3RfY29udHJvbF9wb2ludF9mcmVlKSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX3NldF9pbnRlcm5hbCk6CgkgIFVzZSBHU2xpY2UgZm9yIGFsbG9jYXRpbmcgdGhlIGNvbnRyb2wgcG9pbnRzLgoKMjAwOC0wNC0wMiAxNzoyMTo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lio6IENsZWFudXAgcHJvcGVydGllcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2dldF9wcm9wZXJ0eSksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIENsZWFudXAgcHJvcGVydGllcy4KCSAgRml4IHBhZCBsZWFrIHdoZW4gcGVlciBxdWVyeSBmYWlscy4KCSAgV2UgY2FuIHN0aWxsIHR5cGVmaW5kIHdoZW4gdGhlIHBlZXIgcmV0dXJucyAtMS4KCSAgQWRkIHByb3BlcnR5IHRvIGZvcmNlIGNhcHMgYW5kIGJ5cGFzcyB0eXBlZmluZGluZy4gVGhpcyB3aWxsIGJlIHVzZWQgaW4KCSAgdXJpZGVjb2RlYmluLgoJICBBUEk6OmZvcmNlLWNhcHMKCjIwMDgtMDQtMDEgMTM6NTU6MjAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogUmVxdWlyZSBHTGliIDIuMTIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUmVxdWlyZSBHTGliIDIuMTIuCgkgICogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfbmV3X2VtcHR5KSwgKF9nc3RfY2Fwc19mcmVlKToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19lbnRyeV9uZXcpLCAoX2dzdF9jbG9ja19pZF9mcmVlKToKCSAgVW5jb25kaXRpb25hbGx5IHVzZSBHU2xpY2UgZm9yIGFsbG9jYXRpb24uCgkgICogZ3N0L2dzdHBvbGwuYzogKGdzdF9wb2xsX25ldyksIChnc3RfcG9sbF9mcmVlKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfbmV3KSwgKGdzdF9zZWdtZW50X2ZyZWUpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfaWRfZW1wdHlfbmV3X3dpdGhfc2l6ZSksCgkgIChnc3Rfc3RydWN0dXJlX2ZyZWUpOgoJICBVc2UgR1NsaWNlIGZvciBhbGxvY2F0aW9uLgoKMjAwOC0wNC0wMSAxMzo0ODo1OSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3BhcnNlLzogUmVxdWlyZSBhIG5ldyBlbm91Z2ggZmxleCBhbmQgYmlzb24gYW5kIHJlbW92ZSB0aGUgcGFyc2VyIGhhY2tzIHRvIHVzZSBhIHByZS1yZWdlbmVyYXRlZCB2ZXJzaW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIudGFiLnByZS5jOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnRhYi5wcmUuaDoKCSAgKiBnc3QvcGFyc2UvbGV4Ll9nc3RfcGFyc2VfeXkucHJlLmM6CgkgIFJlcXVpcmUgYSBuZXcgZW5vdWdoIGZsZXggYW5kIGJpc29uIGFuZCByZW1vdmUgdGhlIHBhcnNlciBoYWNrcyB0byB1c2UKCSAgYSBwcmUtcmVnZW5lcmF0ZWQgdmVyc2lvbi4KCjIwMDgtMDQtMDEgMTA6MjU6MzUgKzAwMDAgIEphc29uIFpoYW8gPEUzNDIzQ0Btb3Rvcm9sYS5jb20+CgoJICBjb25maWd1cmUuYWM6IEFkZCBhIGNvbmZpZ3VyZSBzd2l0Y2ggdG8gZGlzYWJsZSBvcHRpb24gcGFyc2luZyBpbiBnc3RfaW5pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMDQtMDEgIEp1bGllbiBNb3V0dGUgIDxqdWxpZW5AZmx1ZW5kby5jb20+CgkgIHBhdGNoIGJ5OiBKYXNvbiBaaGFvIDxFMzQyM0NAbW90b3JvbGEuY29tPgoJICAqIGNvbmZpZ3VyZS5hYzogQWRkIGEgY29uZmlndXJlIHN3aXRjaCB0byBkaXNhYmxlIG9wdGlvbiBwYXJzaW5nCgkgIGluIGdzdF9pbml0LgoJICBGaXhlcyAjNTIyODgyLgoKMjAwOC0wMy0zMSAxMzo0NzoyMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTWFjT1MgaGFzIHBsdWdpbnMgdW5kZXIgLnNvIG9yIHVuZGVyIC5keWxpYi4gQWRkIGRldGVjdGlvbiBmb3IgTWFjT1MgYW5kIGhhbmRsZSB0aGlzIGNhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgTWFjT1MgaGFzIHBsdWdpbnMgdW5kZXIgLnNvIG9yIHVuZGVyIC5keWxpYi4gQWRkIGRldGVjdGlvbiBmb3IgTWFjT1MKCSAgYW5kIGhhbmRsZSB0aGlzIGNhc2UuCgkgICogZ3N0L2dzdC5jOgoJICBBZGQgYSBjb21tZW50IGhlcmUgZGVzY3JpYmluZywgd2h5IHdlIHN0YXQgZWFjaCBwbHVnaW4gYW5kIG5vdCB0cnkgdG8KCSAgYmUgc21hcnQuCgoyMDA4LTAzLTMxIDEwOjIxOjU3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQWxzbyB1bnNldCB0aGUgR0FQIGZsYWcgb24gYnVmZmVycyBpZiB3ZSdyZSB3b3JraW5nIGlucGxhY2UgYnV0IHRoZSBlbGVtZW50IGlzIG5vdCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKToKCSAgQWxzbyB1bnNldCB0aGUgR0FQIGZsYWcgb24gYnVmZmVycyBpZiB3ZSdyZSB3b3JraW5nIGlucGxhY2UgYnV0CgkgIHRoZSBlbGVtZW50IGlzIG5vdCBHQVAtYXdhcmUuCgkgIE1hcmsgYSBjb21tZW50IGFzIEZJWE1FIDAuMTEuCgoyMDA4LTAzLTMxIDA4OjMyOjI2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0LmM6IEZpeCB0eXBlIGluIGxvZyBtZXNzYWdlIGFuZCBhZGQgb25lIHRvIGVhc2Ugc2VlaW5nIGhvdyBsb25nIHJlZ2lzdHJ5IGNhY2hlIHZlcmlmaWNhdGlvbiB0YWtlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBGaXggdHlwZSBpbiBsb2cgbWVzc2FnZSBhbmQgYWRkIG9uZSB0byBlYXNlIHNlZWluZyBob3cgbG9uZyByZWdpc3RyeQoJICBjYWNoZSB2ZXJpZmljYXRpb24gdGFrZXMuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIE9ubHkgdGVzdCBwbHVnaW4gZmlsZW5hbWVzIGFnYWluc3QgR19NT0RVTEVfU1VGRklYLgoKMjAwOC0wMy0zMSAwNzo0OToyNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogSW1wcm92ZSBoYW5kbGluZyBnaG9zdC9wcm94eSBwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBJbXByb3ZlIGhhbmRsaW5nIGdob3N0L3Byb3h5IHBhZHMuCgoyMDA4LTAzLTI3IDE5OjEzOjQ1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBFeHBvc2UgbWFjcm8gdG8gZG9jcyBhbmQgZml4IGxpbmsgdG8gaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgRXhwb3NlIG1hY3JvIHRvIGRvY3MgYW5kIGZpeCBsaW5rIHRvIGl0LgoKMjAwOC0wMy0yNyAxNToyMzo1NSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBXaGVuIGNhbGN1bGF0aW5nIEdEUCBib2R5IENSQywgdXNlIHRoZSBjb3JyZWN0IHBvaW50ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudF8xXzApOgoJICBXaGVuIGNhbGN1bGF0aW5nIEdEUCBib2R5IENSQywgdXNlIHRoZSBjb3JyZWN0IHBvaW50ZXIuCgkgIEZpeGVzIHBhcnQgb2YgIzUyMjQwMS4KCjIwMDgtMDMtMjQgMTY6NTY6MzYgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IElkZW50aXR5IGlzIG5vdCBhbHdheXMgYSBwYXNzdGhyb3VnaCBlbGVtZW50LCBpdCBjYW4gbW9kaWZ5IHRoZSBidWZmZXIgdGltZXN0YW1wcyB3aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgYXQgc2t5bmV0IGJlPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KSwKCSAgKGdzdF9pZGVudGl0eV9pbml0KSwgKGdzdF9pZGVudGl0eV9wcmVwYXJlX291dHB1dF9idWZmZXIpOgoJICBJZGVudGl0eSBpcyBub3QgYWx3YXlzIGEgcGFzc3Rocm91Z2ggZWxlbWVudCwgaXQgY2FuIG1vZGlmeSB0aGUgYnVmZmVyCgkgIHRpbWVzdGFtcHMgd2hlbiBpdCBoYXMgYSBkYXRhcmF0ZSBhbmQgb3BlcmF0ZXMgaW4gc2luZ2xlLXNlZ21lbnQgbW9kZS4KCSAgV2UgdGhlcmVmb3JlIG1ha2UgaXQgYW4gaW5fcGxhY2UgZmlsdGVyIHdpdGggYSBjdXN0b20gYnVmZmVyIHByZXBhcmUKCSAgZnVuY3Rpb24gdGhhdCBjb25kaXRpb25hbGx5IG1ha2VzIHRoZSBpbnB1dCBidWZmZXIgbWV0YWRhdGEgd3JpdGFibGUKCSAgd2hlbiBuZWVkZWQuICBGaXhlcyAjNTIzOTg1LgoKMjAwOC0wMy0yNCAxNjo0NDoyNSArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIFNtYWxsIGRvY3VtZW50YXRpb24gZml4ZXMuIEZpeGVzICM1MjM5NzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3IGF0IHNreW5ldCBiZT4KCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIGZpeGVzLiBGaXhlcyAjNTIzOTc4LgoKMjAwOC0wMy0yNCAxNjozMTozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBBbHNvIHJldHJ5IG91ciBwb2xsX3dhaXQgd2hlbiB3ZSBnZXQgRUFHQUlOLiBGaXhlcyAjNTI0MDQxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfcmVuZGVyKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NyZWF0ZSk6CgkgIEFsc28gcmV0cnkgb3VyIHBvbGxfd2FpdCB3aGVuIHdlIGdldCBFQUdBSU4uIEZpeGVzICM1MjQwNDEuCgoyMDA4LTAzLTI0IDEwOjM4OjMxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IFdoZW4gdHJ5aW5nIHRvIG1ha2Ugcm9vbSBpbiB0aGUgcXVldWUsIGJ1bXAgdGhlIG1heCBhbGxvd2VkIGJ1ZmZlcnMgYmlnZ2VyIHRoYW4gdGhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoc2luZ2xlX3F1ZXVlX292ZXJydW5fY2IpLAoJICAoc2luZ2xlX3F1ZXVlX3VuZGVycnVuX2NiKToKCSAgV2hlbiB0cnlpbmcgdG8gbWFrZSByb29tIGluIHRoZSBxdWV1ZSwgYnVtcCB0aGUgbWF4IGFsbG93ZWQgYnVmZmVycwoJICBiaWdnZXIgdGhhbiB0aGUgY3VycmVudCBhbW91bnQgb2YgYnVmZmVycyBpbiB0aGUgcXVldWUuIHRoaXMgZml4ZXMgc29tZQoJICBuYXN0eSBkZWFkbG9ja3MgaW4gbXVsdGlxdWV1ZSB3aGVuIGR5bmFtaWNhbGx5IGNoYW5naW5nIHRoZSBsaW1pdHMgb2YKCSAgdGhlIHF1ZXVlLgoKMjAwOC0wMy0yNCAxMDozMzo0MSArMDAwMCAgSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXVAc3ZuLmdub21lLm9yZz4KCgkgIGdzdC9nc3RjYXBzLio6IENvbnN0aWZ5IHRoZSBmaWVsZCBnY2hhciAqIHBhcmFtcyBpbiBzZXRfc2ltcGxlIGFuZCBmcmllbmRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6ICBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdSBhdCBzdm4gZG90IGdub21lIGRvdCBvcmc+CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3NldF9zaW1wbGUpLAoJICAoZ3N0X2NhcHNfc2V0X3NpbXBsZV92YWxpc3QpLCAoZ3N0X2NhcHNfaW50ZXJzZWN0KToKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICBDb25zdGlmeSB0aGUgZmllbGQgZ2NoYXIgKiBwYXJhbXMgaW4gc2V0X3NpbXBsZSBhbmQgZnJpZW5kcy4KCSAgRml4ZXMgIzUyMjMyNi4KCjIwMDgtMDMtMjQgMTA6Mjk6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYzogVHJhbnNmb3JtIGEgR3N0T2JqZWN0IHRvIGEgbW9yZSBtZWFuaW5nZnVsbCBzdHJpbmcgdGhhdCBpbmNsdWRlcyB0aGUgb2JqZWN0IHR5cGUgaW4gYWRkaXRpb24gdG8gaXRzIG4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfdHJhbnNmb3JtX29iamVjdF9zdHJpbmcpOgoJICBUcmFuc2Zvcm0gYSBHc3RPYmplY3QgdG8gYSBtb3JlIG1lYW5pbmdmdWxsIHN0cmluZyB0aGF0IGluY2x1ZGVzIHRoZQoJICBvYmplY3QgdHlwZSBpbiBhZGRpdGlvbiB0byBpdHMgbmFtZS4KCjIwMDgtMDMtMjMgMTU6MTc6MjQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIENoYW5nZUxvZzogQ2hhbmdlTG9nIHN1cmdlcnkgdG8gYWRkIGJ1Z251bWJlciB0byBjb21taXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnkgdG8gYWRkIGJ1Z251bWJlciB0byBjb21taXQuCgoyMDA4LTAzLTIzIDE0OjI0OjQ4ICswMDAwICBSZW5lIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRml4IGNvbmZ1c2luZyBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfZ2FwX2F3YXJlKTogRml4IGNvbmZ1c2luZyBkb2N1bWVudGF0aW9uLgoKMjAwOC0wMy0yMyAxMTo0MDo1NCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IFJlbmFtZSBjb25zdGFudCBldmVyeXdoZXJlIGFuZCBkb24ndCBmb3JnZXQgb25lIG9jY3VyZW5jZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlKToKCSAgUmVuYW1lIGNvbnN0YW50IGV2ZXJ5d2hlcmUgYW5kIGRvbid0IGZvcmdldCBvbmUgb2NjdXJlbmNlLgoKMjAwOC0wMy0yMyAxMToyOTo1NCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEFsaWduIG1lbW9yeSB0byB0aGUgcG9pbnRlciBzaXplIGV2ZW4gaWYgdGhlIGFyY2hpdGVjdHVyZSBhbGxvd3MgdW5hbGlnbmVkIG1lbW9yeSBhY2Nlc3MuIFVuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZSk6CgkgIEFsaWduIG1lbW9yeSB0byB0aGUgcG9pbnRlciBzaXplIGV2ZW4gaWYgdGhlIGFyY2hpdGVjdHVyZSBhbGxvd3MKCSAgdW5hbGlnbmVkIG1lbW9yeSBhY2Nlc3MuIFVuYWxpZ25lZCBtZW1vcnkgYWNjZXNzIHVzdWFsbHkgY29tZXMgd2l0aAoJICBwZXJmb3JtYW5jZSBwZW5hbGl0eS4KCjIwMDgtMDMtMjMgMTE6MjM6MzAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBBbGlnbiBtZW1vcnkgdG8gdGhlIHBvaW50ZXIgc2l6ZSBpbnN0ZWFkIG9mIGFsd2F5cyAzMiBiaXQuIEZpeGVzIHVuYWxpZ25lZCBtZW1vcnkgYWNjZXNzZXMgby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9jaGVja19tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pOgoJICBBbGlnbiBtZW1vcnkgdG8gdGhlIHBvaW50ZXIgc2l6ZSBpbnN0ZWFkIG9mIGFsd2F5cyAzMiBiaXQuIEZpeGVzCgkgIHVuYWxpZ25lZCBtZW1vcnkgYWNjZXNzZXMgb24gaWE2NCBhbmQgZnJpZW5kcy4KCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgQnVtcCBiaW5hcnkgcmVnaXN0cnkgZm9ybWF0IHZlcnNpb24gZm9yIHRoaXMgYXMgaXQgY2hhbmdlcyB0aGUKCSAgZm9ybWF0IG9uIHRob3NlIGFyY2hpdGVjdHVyZXMgdGhhdCBkb24ndCBoYXZlIHVuYWxpZ25lZCBhY2Nlc3MKCSAgYW5kIDY0IGJpdCBwb2ludGVycy4KCjIwMDgtMDMtMjIgMTQ6NTY6MTcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIERlZmluZSBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTIGlmIGl0J3MgdW5kZWZpbmVkIChHTGliIDwgMi4xMy4wKSBhbmQgdXNlIGl0IGV2ZXJ5d2hlcmUgZm9yIEdQYXJhbVNwZWNzIHRoYXQgdXNlIHN0YXRpYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1wcm9wcy54bWw6CgkgICogZG9jcy9wd2cvb3RoZXItc291cmNlLnhtbDoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6IChnc3RfZGF0YV9xdWV1ZV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoX2dzdF9jaGVja19mYXVsdF9oYW5kbGVyX3Jlc3RvcmUpLAoJICAoX2dzdF9jaGVja19mYXVsdF9oYW5kbGVyX3NpZ2hhbmRsZXIpLAoJICAoX2dzdF9jaGVja19mYXVsdF9oYW5kbGVyX3NldHVwKSwgKGdzdF9jaGVja19pbml0KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKF9nc3RfY29udHJvbGxlcl9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6IChnc3RfZmlsZV9pbmRleF9jbGFzc19pbml0KToKCSAgRGVmaW5lIEdfUEFSQU1fU1RBVElDX1NUUklOR1MgaWYgaXQncyB1bmRlZmluZWQgKEdMaWIgPCAyLjEzLjApIGFuZAoJICB1c2UgaXQgZXZlcnl3aGVyZSBmb3IgR1BhcmFtU3BlY3MgdGhhdCB1c2Ugc3RhdGljIHN0cmluZ3MgKGkuZS4gYWxsKS4KCSAgVGhpcyBnaXZlcyB1cyBsZXNzIG1lbW9yeSB1c2FnZSwgZmV3ZXIgYWxsb2NhdGlvbnMgYW5kIHRodXMgbGVzcwoJICBtZW1vcnkgZGVmcmFnbWVudGF0aW9uLiBGaXhlcyBidWcgIzUyMzgwNi4KCjIwMDgtMDMtMjIgMTQ6NTE6MTcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFQSTogQWRkIEdTVF9JU19QQVJBTV9TUEVDX01JTklfT0JKRUNULCBHU1RfUEFSQU1fU1BFQ19NSU5JX09CSkVDVAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X3ZhbHVlX2R1cF9taW5pX29iamVjdCksCgkgIChnc3RfcGFyYW1fc3BlY19taW5pX29iamVjdCk6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBUEk6IEFkZCBHU1RfSVNfUEFSQU1fU1BFQ19NSU5JX09CSkVDVCwgR1NUX1BBUkFNX1NQRUNfTUlOSV9PQkpFQ1QKCSAgR1NUX1RZUEVfUEFSQU1fTUlOSV9PQkpFQ1QgYW5kIGdzdF92YWx1ZV9kdXBfbWluaV9vYmplY3QuIEFsc28gbW92ZQoJICBHc3RQYXJhbVNwZWNNaW5pT2JqZWN0IGludG8gYSBwdWJsaWMgaGVhZGVyIGZvciB0aGlzLgoJICBUaGlzIG1ha2UgR3N0TWluaU9iamVjdCBhIGJpdCBtb3JlIGNvbnNpc3RlbnQgd2l0aCBHT2JqZWN0IGFuZCBtYWtlcwoJICBpdCBwb3NzaWJsZSB0byBleHRlbmQgdGhlIHBhcmFtIHNwZWNzLgoJICBnc3RfdmFsdWVfZHVwX21pbmlfb2JqZWN0IGlzIG1haW5seSB1c2VmdWwgZm9yIHNldF9wcm9wZXJ0eSBtZXRob2RzLgoJICBGaXhlcyBidWcgIzUyMzc5OC4KCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBQcmludCBzb21ldGhpbmcgdXNlZnVsIGZvciBHc3RNaW5pT2JqZWN0IHByb3BlcnRpZXMgYW5kIG5vdCBqdXN0CgkgICJ1bmtub3duIHR5cGUiLgoKMjAwOC0wMy0yMSAxNjoxMTo1MSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQ2FsbCB0aGUgdmVyc2lvbiBHU1RfTUFHSUNfQklOQVJZX1ZFUlNJT05fU1RSIHRvIGJlIG1vcmUgY29uc2lzdGVudCBhbmQgYWRkIGl0IHRvIHRoZSAocHJpdmF0ZSBwYXJ0KSBvZiB0aGUgZG9jcyB0byBmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X2luaXRpYWxpemVfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9jaGVja19tYWdpYyk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIENhbGwgdGhlIHZlcnNpb24gR1NUX01BR0lDX0JJTkFSWV9WRVJTSU9OX1NUUiB0byBiZSBtb3JlIGNvbnNpc3RlbnQKCSAgYW5kIGFkZCBpdCB0byB0aGUgKHByaXZhdGUgcGFydCkgb2YgdGhlIGRvY3MgdG8gZml4IHRoZSBidWlsZC4KCjIwMDgtMDMtMjEgMTU6NTI6MTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS4qOiBEb24ndCB1c2UgR1NUX01BSk9STUlOT1IgZm9yIHRoZSBiaW5hcnkgcmVnaXN0cnkgdmVyc2lvbi4gSW5zdGVhZCBoYXJkY29kZSBhIHZhbHVlIHRoYXQgbXVzdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfaW5pdGlhbGl6ZV9tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2NoZWNrX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIERvbid0IHVzZSBHU1RfTUFKT1JNSU5PUiBmb3IgdGhlIGJpbmFyeSByZWdpc3RyeSB2ZXJzaW9uLiBJbnN0ZWFkCgkgIGhhcmRjb2RlIGEgdmFsdWUgdGhhdCBtdXN0IGJlIGNoYW5nZWQgd2hlbmV2ZXIgdGhlIGZvcm1hdCBjaGFuZ2VzCgkgIGluIGFuIGluY29tcGF0aWJsZSB3YXkuCgkgIEFsc28gZG9uJ3QgR1NUX0VSUk9SIHdoZW4gdGhlcmUgaXMgYSB2ZXJzaW9uIG1pc21hdGNoLCBqdXN0CgkgIHJlZ2VuZXJhdGUgdGhlIHJlZ2lzdHJ5IHNpbGVudGx5LgoKMjAwOC0wMy0yMSAwMDozNToxMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gZGV2ZWxvcG1lbnQgLSAwLjEwLjE4LjEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50IC0gMC4xMC4xOC4xCgo9PT0gcmVsZWFzZSAwLjEwLjE4ID09PQoKMjAwOC0wMy0yMSAwMDoyMDo1OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMTgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4xOAoKMjAwOC0wMy0yMCAyMzoyNjowNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOC0wMy0xOCAxMjoxNzo1OCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICAwLjEwLjE3LjQgcHJlLXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgMC4xMC4xNy40IHByZS1yZWxlYXNlCgoyMDA4LTAzLTE4IDEwOjU0OjUyICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgQWRkIG5ldyBmdW5jdGlvbiBnc3RfcG9sbF9mZF9pZ25vcmVkKCkgZm9yIGltcHJvdmVkIFdpbmRvd3MgY29tcGF0aWJpbGl0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMKCSAgPG9sZSBkb3QgYW5kcmUgZG90IHJhdm5hcyBhdCB0YW5kYmVyZyBkb3QgY29tPgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHBvbGwuYzogKGdzdF9wb2xsX3dpbnNvY2tfZXJyb3JfdG9fZXJybm8pLAoJICAoZ3N0X3BvbGxfdXBkYXRlX3dpbnNvY2tfZXZlbnRfbWFzayksCgkgIChnc3RfcG9sbF9wcmVwYXJlX3dpbnNvY2tfYWN0aXZlX3NldHMpLAoJICAoZ3N0X3BvbGxfY29sbGVjdF93aW5zb2NrX2V2ZW50cyksIChnc3RfcG9sbF9uZXcpLCAoZ3N0X3BvbGxfZnJlZSksCgkgIChnc3RfcG9sbF9hZGRfZmRfdW5sb2NrZWQpLCAoZ3N0X3BvbGxfZmRfY3RsX3dyaXRlKSwKCSAgKGdzdF9wb2xsX2ZkX2N0bF9yZWFkX3VubG9ja2VkKSwgKGdzdF9wb2xsX2ZkX2lnbm9yZWQpLAoJICAoZ3N0X3BvbGxfZmRfaGFzX2Vycm9yKSwgKGdzdF9wb2xsX2ZkX2Nhbl9yZWFkX3VubG9ja2VkKSwKCSAgKGdzdF9wb2xsX2NoZWNrX2N0cmxfY29tbWFuZHMpLCAoZ3N0X3BvbGxfd2FpdCk6CgkgICogZ3N0L2dzdHBvbGwuaDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBmdW5jdGlvbiBnc3RfcG9sbF9mZF9pZ25vcmVkKCkgZm9yIGltcHJvdmVkIFdpbmRvd3MKCSAgY29tcGF0aWJpbGl0eS4KCSAgVmFyaW91cyBtaW5vciBmaXhlcyBhbmQgY2xlYW51cHMuIFNlZSAjNTIwODA4LgoKMjAwOC0wMy0xNyAxMDoyMTo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmRleC4qOiBEb24ndCBmcmVlIGtleSBzdHJpbmdzIHdoaWNoIHdlIGRvbid0IG93bi4gRml4ZXMgY3Jhc2ggaW4gZ3N0X2luZGV4X2VudHJ5X2ZyZWUoKSAoIzUyMjc0MSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2VudHJ5X2ZyZWUpOgoJICAqIGdzdC9nc3RpbmRleC5oOgoJICBEb24ndCBmcmVlIGtleSBzdHJpbmdzIHdoaWNoIHdlIGRvbid0IG93bi4gRml4ZXMgY3Jhc2ggaW4KCSAgZ3N0X2luZGV4X2VudHJ5X2ZyZWUoKSAoIzUyMjc0MSkuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGluZGV4LmM6ICh0ZXN0X2luZGV4X2VudHJpZXMpLAoJICAoZ3N0X2luZGV4X3N1aXRlKSwgKGdzdF9pbmRleCk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoZSBhYm92ZS4KCjIwMDgtMDMtMTEgMTQ6MDk6NDYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBSZW1vdmUgc3ltYm9scyB0aGF0IHdlcmUgcmVtb3ZlZCByZWNlbnRseS4gRml4ZXMgYnVnICM1MjE3NDAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBSZW1vdmUgc3ltYm9scyB0aGF0IHdlcmUgcmVtb3ZlZCByZWNlbnRseS4gRml4ZXMgYnVnICM1MjE3NDAuCgoyMDA4LTAzLTExIDAwOjI0OjE4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIDAuMTAuMTcuMyBwcmUtcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAwLjEwLjE3LjMgcHJlLXJlbGVhc2UKCjIwMDgtMDMtMTEgMDA6MjM6MDIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBSZWxlYXNlIDAuMTAuMTcuMwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFJlbGVhc2UgMC4xMC4xNy4zCgoyMDA4LTAzLTA3IDE1OjM5OjQ1ICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgUmVtb3ZlIEdzdFBvbGxNb2RlIGZyb20gdGhlIEFQSSwgaXQgZG9lcyBub3QgbWFrZSBzZW5zZSB0byBsZXQgdGhlIGFwcGxpY2F0aW9uIGNvbnRyb2wgdGhpcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMKCSAgPG9sZSBkb3QgYW5kcmUgZG90IHJhdm5hcyBhdCB0YW5kYmVyZyBkb3QgY29tPgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHBvbGwuYzogKGZpbmRfaW5kZXgpLCAoZ3N0X3BvbGxfZnJlZV93aW5zb2NrX2V2ZW50KSwKCSAgKGdzdF9wb2xsX3VwZGF0ZV93aW5zb2NrX2V2ZW50X21hc2spLCAoZ3N0X3BvbGxfbmV3KSwKCSAgKGdzdF9wb2xsX2ZyZWUpLCAoZ3N0X3BvbGxfZmRfaW5pdCksIChnc3RfcG9sbF9hZGRfZmRfdW5sb2NrZWQpLAoJICAoZ3N0X3BvbGxfcmVtb3ZlX2ZkKSwgKGdzdF9wb2xsX2ZkX2N0bF93cml0ZSksCgkgIChnc3RfcG9sbF9mZF9jdGxfcmVhZF91bmxvY2tlZCksIChnc3RfcG9sbF9mZF9oYXNfY2xvc2VkKSwKCSAgKGdzdF9wb2xsX2ZkX2hhc19lcnJvciksIChnc3RfcG9sbF9mZF9jYW5fcmVhZF91bmxvY2tlZCksCgkgIChnc3RfcG9sbF9mZF9jYW5fd3JpdGUpLCAoZ3N0X3BvbGxfd2FpdCksCgkgIChnc3RfcG9sbF9zZXRfY29udHJvbGxhYmxlKSwgKGdzdF9wb2xsX3Jlc3RhcnQpLAoJICAoZ3N0X3BvbGxfc2V0X2ZsdXNoaW5nKToKCSAgKiBnc3QvZ3N0cG9sbC5oOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfc3RhcnQpLAoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX25ldyk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3N0YXJ0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX3N0YXJ0KToKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzogKG1haW4pOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwb2xsLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfcG9sbF9zdWl0ZSk6CgkgIFJlbW92ZSBHc3RQb2xsTW9kZSBmcm9tIHRoZSBBUEksIGl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgdG8gbGV0IHRoZQoJICBhcHBsaWNhdGlvbiBjb250cm9sIHRoaXMuCgkgIEFkZCBzdXBwb3J0IGZvciBXaW4zMi4KCSAgRml4IHRoZSB0ZXN0c3VpdGUuIEZpeGVzICM1MjA2NzEuCgoyMDA4LTAzLTA3IDEzOjE5OjEyICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEluY2x1ZGUgaW8uaCBmb3Igd3JpdGUoKSBhbmQgY2xvc2UoKSB3aGVuIGJ1aWxkaW5nIHdpdGggTVNWQy4gRml4ZXMgYnVnICM1MjA4NzcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzCgkgIDxvbGUgZG90IGFuZHJlIGRvdCByYXZuYXMgYXQgdGFuZGJlcmcgZG90IGNvbT4KCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgSW5jbHVkZSBpby5oIGZvciB3cml0ZSgpIGFuZCBjbG9zZSgpIHdoZW4gYnVpbGRpbmcgd2l0aCBNU1ZDLiBGaXhlcwoJICBidWcgIzUyMDg3Ny4KCjIwMDgtMDMtMDcgMTE6MTI6NTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIE1vdmUgcmVnaXN0cnkgYmFja2VuZCBBUEkgdG8gcHJpdmF0ZSBoZWFkZXJzIHdoZXJlIHdlIGNhbi4gQWRkIGZpeG1lLTAuMTEgY29tbWVudHMgZm9yIHRoZSBvdGhlcnMuIEFkZCBzdHVicyBmb3IgdGhlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICAqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSAgTW92ZSByZWdpc3RyeSBiYWNrZW5kIEFQSSB0byBwcml2YXRlIGhlYWRlcnMgd2hlcmUgd2UgY2FuLiBBZGQKCSAgZml4bWUtMC4xMSBjb21tZW50cyBmb3IgdGhlIG90aGVycy4gQWRkIHN0dWJzIGZvciB0aGUgeG1sIGJhY2tlbmQgd2hlbgoJICB1c2luZyB0aGUgYmluYXJ5IHRvIGVuc3VyZSB0aGV5IGZ1bmN0aW9ucyBleGlzdHMgKHRoZXkgc2hvdWxkIG5vdCBiZQoJICB1c2VkIHRob3VnaCkuIEZpeGVzICM1MjA3NTYuCgoyMDA4LTAzLTA0IDAwOjE0OjUyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIDAuMTAuMTcuMiBwcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAwLjEwLjE3LjIgcHJlbGVhc2UKCjIwMDgtMDMtMDMgMTg6NDI6MDQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBTd2l0Y2ggdG8gdXNpbmcgcG9ydGFibCBnc2l6ZS9nc3NpemUgaW5zdGVhZCBvZiBzaXplX3Qvc3NpemVfdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGdzdF9yZWdpc3RyeV9zYXZlKToKCSAgKiBnc3QvZ3N0dXJpLmM6ICh1bmVzY2FwZV9zdHJpbmcpLCAoZ3N0X3VyaV9oYXNfcHJvdG9jb2wpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3Npbmtfb3Blbl9maWxlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19tYXBfcmVnaW9uKSwKCSAgKGdzdF9maWxlX3NyY19tYXBfc21hbGxfcmVnaW9uKSwgKGdzdF9maWxlX3NyY19jcmVhdGVfbW1hcCk6CgkgIFN3aXRjaCB0byB1c2luZyBwb3J0YWJsIGdzaXplL2dzc2l6ZSBpbnN0ZWFkIG9mIHNpemVfdC9zc2l6ZV90CgkgIEZpeGVzICM1MjAxNTIKCjIwMDgtMDMtMDMgMTg6MTQ6MzMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBJbXBvcnQgZ3N0X3ByaXZhdGUuaCBiZWZvcmUgYW55IG90aGVyIGhlYWRlciB0aGF0IG1pZ2h0IGluY2x1ZGUgb3RoZXIgZ2xpYiBoZWFkZXJzLiBUaGlzIGZpeGVzIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgSW1wb3J0IGdzdF9wcml2YXRlLmggYmVmb3JlIGFueSBvdGhlciBoZWFkZXIgdGhhdCBtaWdodCBpbmNsdWRlIG90aGVyCgkgIGdsaWIgaGVhZGVycy4gVGhpcyBmaXhlcyB0aGUgYnVpbGQgb24gd2luZG93cyB1c2luZyBuYXRpdmUgY29tcGlsZXJzLgoKMjAwOC0wMy0wMyAxNDo0ODo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDogQWRkIGhlcmUgdG9vLCBqdXN0IGZvciBjb21wbGV0ZW5lc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSAgQWRkIGhlcmUgdG9vLCBqdXN0IGZvciBjb21wbGV0ZW5lc3MuCgoyMDA4LTAzLTAzIDE0OjQzOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgRml4IGJyb2tlbiB1c2Ugb2YgY29uZmlnLmgtZGVmaW5lZCBwcmVwcm9jZXNzb3IgZGlyZWN0aXZlIGluIGEgcHVibGljIGhlYWRlciBmaWxlLiBBZGQgYSBjb3JyZXNwb25kaW5nIGRlZmluZSB0byBnc3RjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIEZpeCBicm9rZW4gdXNlIG9mIGNvbmZpZy5oLWRlZmluZWQgcHJlcHJvY2Vzc29yIGRpcmVjdGl2ZSBpbiBhIHB1YmxpYwoJICBoZWFkZXIgZmlsZS4gQWRkIGEgY29ycmVzcG9uZGluZyBkZWZpbmUgdG8gZ3N0Y29uZmlnLmgsIHNpbmNlIHdlIGNhbid0CgkgIHJlYWxseSByZW1vdmUgdGhvc2UgZnVuY3Rpb24gZGVjbGFyYXRpb25zIGZyb20gdGhlIGhlYWRlciBmaWxlIG5vdwoJICAob3IgY2FuIHdlPyBhbmQgd2h5IGFyZSB0aGV5IHRoZXJlIGluIHRoZSBmaXJzdCBwbGFjZT8pLgoKMjAwOC0wMy0wMyAxMDowNzoyMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jIChHU1RfU1RBUlRfVEVTVCk6IEFkZCBhIGNoZWNrIGZvciB0aGUgbmV3IHdhcm5pbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTAzLTAzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYyAoR1NUX1NUQVJUX1RFU1QpOiBBZGQgYSBjaGVjayBmb3IKCSAgdGhlIG5ldyB3YXJuaW5nLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYyAoZ3N0X3N0cnVjdHVyZV9mcm9tX3N0cmluZyk6IFdhcm4gaWYKCSAgc3RydWN0dXJlX2Zyb21fc3RyaW5nIGRpZG4ndCBjb25zdW1lIHRoZSB3aG9sZSBzdHJpbmcsIGJ1dCB0aGUKCSAgY2FsbGVyIGRpZCBub3QgcHJvdmlkZSBhbiBlbmQgcG9pbnRlci4KCjIwMDgtMDMtMDEgMTE6MjE6MzAgKzAwMDAgIEZhYnJpemlvIEdlbm5hcmkgPGZhYnJpemlvLmdlQHRpc2NhbGkuaXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogU3RyaW5ncyBhbGxvY2F0ZWQgYnkgbGlieG1sMiBzaG91bGQgYmUgZnJlZWQgd2l0aCB4bWxGcmVlKCksIG5vdCB3aXRoIGdfZnJlZSgpLiBGaXhlcyBpc3N1ZXMgb24uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBGYWJyaXppbyBHZW5uYXJpIDxmYWJyaXppby5nZSBhdCB0aXNjYWxpIGl0PgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAocmVhZF9zdHJpbmcpLCAobG9hZF9mZWF0dXJlKToKCSAgU3RyaW5ncyBhbGxvY2F0ZWQgYnkgbGlieG1sMiBzaG91bGQgYmUgZnJlZWQgd2l0aCB4bWxGcmVlKCksIG5vdAoJICB3aXRoIGdfZnJlZSgpLiBGaXhlcyBpc3N1ZXMgb24gd2luZG93cyBpbiBjZXJ0YWluIGNvbnRleHRzICgjNTE5Njk4KS4KCjIwMDgtMDItMjkgMTg6Mzg6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW50ZXJmYWNlLmM6IERvbid0IGNyYXNoIGlmIHRoZSBlbGVtZW50IHN1cHBvcnRzIHRoZSBpbnRlcmZhY2UgcXVlcmllZCwgYnV0IGRvZXMgbm90IGltcGxlbWVudCBHc3RJbXBsZW1lbnRzSW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGludGVyZmFjZS5jOiAoZ3N0X2VsZW1lbnRfaW1wbGVtZW50c19pbnRlcmZhY2UpOgoJICBEb24ndCBjcmFzaCBpZiB0aGUgZWxlbWVudCBzdXBwb3J0cyB0aGUgaW50ZXJmYWNlIHF1ZXJpZWQsIGJ1dCBkb2VzCgkgIG5vdCBpbXBsZW1lbnQgR3N0SW1wbGVtZW50c0ludGVyZmFjZS4gRml4ZXMgIzUxOTU4NC4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW50ZXJmYWNlLmM6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoZSBhYm92ZS4KCjIwMDgtMDItMjkgMTU6Mzk6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNtYWxsIGRvYyB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCk6CgkgIFNtYWxsIGRvYyB1cGRhdGUuCgoyMDA4LTAyLTI5IDE1OjIyOjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogSW1wcm92ZSBzb21lIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfc2VlayksCgkgIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSk6CgkgIEltcHJvdmUgc29tZSBjb21tZW50LgoJICBVcGRhdGUgdmFyaWFibGVzIHdoZXJlIGl0IG1ha2VzIG1vcmUgc2Vuc2UuCgoyMDA4LTAyLTI5IDE0OjIzOjE3ICswMDAwICBSZW5lIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBnc3QvZ3N0dXJpLmM6IFVzZSB0aGUgZ2V0X3Byb3RvY29sc19mdWxsIHZmdW5jIGlmIGdldF9wcm90b2NvbHMgaXMgTlVMTC4gIEZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF91cmlfaGFuZGxlcl9nZXRfcHJvdG9jb2xzKToKCSAgVXNlIHRoZSBnZXRfcHJvdG9jb2xzX2Z1bGwgdmZ1bmMgaWYgZ2V0X3Byb3RvY29scyBpcyBOVUxMLiAgRml4ZXMKCSAgVVJJSGFuZGxlcnMgaW1wbGVtZW50ZWQgdXNpbmcgbGFuZ3VhZ2UgYmluZGluZ3MuCgoyMDA4LTAyLTI5IDEzOjU5OjI0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBbmQgY29ycmVjdCBldmVuIG1vcmUgdmFsaWQgc3BhcnNlIHdhcm5pbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzogKHNldHVwX2Zha2VzcmMpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6IChzZXR1cF9mZHNyYyk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzogKHNldHVwX2ZpbGVzaW5rKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IChzZXR1cF9maWxlc3JjKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOiAoc2V0dXBfaWRlbnRpdHkpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOiAoc2V0dXApLCAodGVhcmRvd24pOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzogKHB1bGxfbWVzc2FnZXMpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6IChteV9mb29faW5pdCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOiAodGhyZWFkX25hbWVfb2JqZWN0KSwKCSAgKGdzdF9vYmplY3Rfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzogKGNyZWF0ZV9hbmRfZmlsbF9hZGFwdGVyKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2hwcGEuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9pMzg2Lmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjMzIuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGM2NC5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3g4Nl82NC5oOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc3RyZXNzLmM6CgkgIEFuZCBjb3JyZWN0IGV2ZW4gbW9yZSB2YWxpZCBzcGFyc2Ugd2FybmluZ3MuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBnc3RfcG9sbF9mZF9pbml0IHRvIHRoZSBsaXN0IG9mIHN5bWJvbHMuCgoyMDA4LTAyLTI5IDEyOjQxOjMzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBDb3JyZWN0IGFsbCByZWxldmFudCB3YXJuaW5ncyBmb3VuZCBieSB0aGUgc3BhcnNlIHNlbWFudGljIGNvZGUgYW5hbHl6ZXIuIFRoaXMgaW5jbHVkZSBtYXJraW5nIHNldmVyYWwgc3ltYm9scyBzdGF0aWMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfcmVhZF9idWZmZXIpOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfbG9nX21lc3NhZ2VfZnVuYyksCgkgIChnc3RfY2hlY2tfbG9nX2NyaXRpY2FsX2Z1bmMpLCAoZ3N0X2NoZWNrX2Ryb3BfYnVmZmVycyksCgkgIChnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcl9saXN0KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX2dldCksCgkgIChnc3RfY29udHJvbGxlcl9nZXRfdHlwZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzogKGdzdF9vYmplY3RfY29udHJvbF9wcm9wZXJ0aWVzKSwKCSAgKGdzdF9vYmplY3RfZ2V0X2NvbnRyb2xsZXIpLCAoZ3N0X29iamVjdF9nZXRfY29udHJvbF9zb3VyY2UpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX25ldyk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX25ldyk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX2V2ZW50X2Zyb21fcGFja2V0XzBfMik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOiAoX2ZpbGVfaW5kZXhfaWRfc2F2ZV94bWwpLAoJICAoZ3N0X2ZpbGVfaW5kZXhfYWRkX2Fzc29jaWF0aW9uKToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgICogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6IChtZXNzX3NvbWVfbW9yZSk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzogKHNldHVwX3F1ZXVlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6IChzZXR1cCksICh0ZWFyZG93biksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N1aXRlKToKCSAgKiB0ZXN0cy9leGFtcGxlcy9hZGFwdGVyL2FkYXB0ZXJfdGVzdC5jOgoJICAqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzogKG1ha2VfcGlwZWxpbmUpOgoJICAqIHRlc3RzL2V4YW1wbGVzL3htbC9jcmVhdGV4bWwuYzoKCSAgKiB0ZXN0cy9leGFtcGxlcy94bWwvcnVueG1sLmM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgKiB0b29scy9nc3QtcnVuLmM6CgkgIENvcnJlY3QgYWxsIHJlbGV2YW50IHdhcm5pbmdzIGZvdW5kIGJ5IHRoZSBzcGFyc2Ugc2VtYW50aWMgY29kZQoJICBhbmFseXplci4gVGhpcyBpbmNsdWRlIG1hcmtpbmcgc2V2ZXJhbCBzeW1ib2xzIHN0YXRpYywgdXNpbmcKCSAgTlVMTCBpbnN0ZWFkIG9mIDAgZm9yIHBvaW50ZXJzLCBub3QgdXNpbmcgdmFyaWFibGUgc2l6ZWQgYXJyYXlzCgkgIG9uIHRoZSBzdGFjaywgbW92aW5nIHZhcmlhYmxlIGRlY2xhcmF0aW9ucyB0byB0aGUgYmVnaW5uaW5nIG9mCgkgIGEgYmxvY2sgYW5kIHVzaW5nICJmb28gKHZvaWQpIiBpbnN0ZWFkIG9mICJmb28gKCkiIGZvciBkZWNsYXJhdGlvbnMuCgoyMDA4LTAyLTI5IDEyOjA1OjU1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogRG9uJ3QgcmVzZXQgR3N0UG9sbEZEcywgdGhpcyBpcyBub3QgbmVjZXNzYXJ5IGF0IGFsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3VwZGF0ZV9mZCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY191cGRhdGVfZmQpOgoJICBEb24ndCByZXNldCBHc3RQb2xsRkRzLCB0aGlzIGlzIG5vdCBuZWNlc3NhcnkgYXQgYWxsLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwb2xsLmM6ICh0ZXN0X3BvbGxfd2FpdCksIChHU1RfU1RBUlRfVEVTVCksCgkgIChkZWxheWVkX3Jlc3RhcnQpLCAoZGVsYXllZF9jb250cm9sKToKCSAgVXNlIEdTVF9QT0xMX0ZEX0lOSVQuCgoyMDA4LTAyLTI5IDExOjU3OjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBvbGwuKjogQWRkZWQgU2luY2UgdGFncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBvbGwuYzogKGdzdF9wb2xsX2ZkX2luaXQpOgoJICAqIGdzdC9nc3Rwb2xsLmg6CgkgIEFkZGVkIFNpbmNlIHRhZ3MuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3VwZGF0ZV9mZCk6CgkgIFVzZSBzb21lIG1vcmUgaW5pdCBtYWNyb3MuCgoyMDA4LTAyLTI5IDExOjIwOjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFVzZSBpbml0IG1hY3JvcyBhbmQgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3Npbmtfc3RhcnQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfdXBkYXRlX2ZkKToKCSAgVXNlIGluaXQgbWFjcm9zIGFuZCBmdW5jdGlvbnMuCgoyMDA4LTAyLTI5IDExOjAwOjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIElOSVQgbWFjcm8gYW5kIF9pbml0IG1ldGhvZCBmb3IgaW5pdGlhbGl6aW5nIHRoZSBHc3RQb2xsRkQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHBvbGwuYzogKGdzdF9wb2xsX2ZkX2luaXQpOgoJICAqIGdzdC9nc3Rwb2xsLmg6CgkgIEFkZCBJTklUIG1hY3JvIGFuZCBfaW5pdCBtZXRob2QgZm9yIGluaXRpYWxpemluZyB0aGUgR3N0UG9sbEZELgoKMjAwOC0wMi0yOCAxOTo1ODoyNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgSW5pdGlhbGl6ZSBzb21lIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGFzIHNwb3R0ZWQgYnkgdmFsZ3JpbmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19zdGFydCksCgkgIChnc3RfZmRfc2lua191cGRhdGVfZmQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfdXBkYXRlX2ZkKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOiAodGVzdF9wb2xsX3dhaXQpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZGVsYXllZF9yZXN0YXJ0KSwgKGRlbGF5ZWRfY29udHJvbCk6CgkgIEluaXRpYWxpemUgc29tZSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcyBhcyBzcG90dGVkIGJ5IHZhbGdyaW5kLgoKMjAwOC0wMi0yOCAxNToyNTo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2JlbmNobWFya3MvOiBBZGQgcG9sbCBzdHJlc3MgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzogKG1lc3Nfc29tZV9tb3JlKSwgKHJ1bl90ZXN0KSwKCSAgKG1haW4pOgoJICBBZGQgcG9sbCBzdHJlc3MgdGVzdC4KCjIwMDgtMDItMjggMTA6MTg6MDIgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFBvcnQgdG8gR3N0UG9sbC4gU2VlICM1MDU0MTcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXQgYXhpcyBkb3QgY29tPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19yZW5kZXIpLAoJICAoZ3N0X2ZkX3Npbmtfc3RhcnQpLCAoZ3N0X2ZkX3Npbmtfc3RvcCksIChnc3RfZmRfc2lua191bmxvY2spLAoJICAoZ3N0X2ZkX3NpbmtfdW5sb2NrX3N0b3ApLCAoZ3N0X2ZkX3NpbmtfdXBkYXRlX2ZkKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfdXBkYXRlX2ZkKSwKCSAgKGdzdF9mZF9zcmNfc3RhcnQpLCAoZ3N0X2ZkX3NyY19zdG9wKSwgKGdzdF9mZF9zcmNfdW5sb2NrKSwKCSAgKGdzdF9mZF9zcmNfdW5sb2NrX3N0b3ApLCAoZ3N0X2ZkX3NyY19jcmVhdGUpLAoJICAoZ3N0X2ZkX3NyY191cmlfc2V0X3VyaSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICBQb3J0IHRvIEdzdFBvbGwuIFNlZSAjNTA1NDE3LgoKMjAwOC0wMi0yNyAyMToxODozMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogQWRkIG5ldyBnc3RfcG9sbF8gc3ltYm9scyB0byB3aW4zMiBkZWZzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBnc3RfcG9sbF8gc3ltYm9scyB0byB3aW4zMiBkZWZzLgoKMjAwOC0wMi0yNyAxOTowMToxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFVzZSBhIHByaXZhdGUgc3R1Y3QgdG8gbm90IGJyZWFrIEFCSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2NsYXNzX2luaXQpLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfaW5pdCksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19maW5hbGl6ZSksIChnc3RfbmV0X2NsaWVudF9jbG9ja19kb19zZWxlY3QpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfdGhyZWFkKSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3N0YXJ0KSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3N0b3ApLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfY2xhc3NfaW5pdCksIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfaW5pdCksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfZmluYWxpemUpLCAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3RocmVhZCksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfc3RhcnQpLCAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3N0b3ApLAoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX25ldyk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJICBVc2UgYSBwcml2YXRlIHN0dWN0IHRvIG5vdCBicmVhayBBQkkuCgoyMDA4LTAyLTI3IDE4OjI3OjU5ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGxpYnMvZ3N0L25ldC86IE1hc3NpdmUgY29kZSByZW1vdmFsIGFuZCBjbGVhbnVwcyBiZWNhdXNlIG9mIEdzdFBvbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXQgYXhpcyBkb3QgY29tPgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfaW5pdCksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19maW5hbGl6ZSksIChnc3RfbmV0X2NsaWVudF9jbG9ja19kb19zZWxlY3QpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfdGhyZWFkKSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3N0YXJ0KSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3N0b3ApLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfaW5pdCksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfZmluYWxpemUpLCAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3RocmVhZCksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfc3RhcnQpLCAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3N0b3ApLAoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX25ldyk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJICBNYXNzaXZlIGNvZGUgcmVtb3ZhbCBhbmQgY2xlYW51cHMgYmVjYXVzZSBvZiBHc3RQb2xsLgoJICBGaXhlcyAjNTA1NDE3LgoKMjAwOC0wMi0yNyAxODowMDowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQWRkIGNoZWNrcyBmb3IgcG9sbCwgcHBvbGwgYW5kIHBzZWxlY3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQWRkIGNoZWNrcyBmb3IgcG9sbCwgcHBvbGwgYW5kIHBzZWxlY3QuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgZG9jcyBmb3IgR3N0UG9sbC4KCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3Rwb2xsLmM6IChmaW5kX2luZGV4KSwgKHNlbGVjdGFibGVfZmRzKSwKCSAgKHBvbGxhYmxlX3RpbWVvdXQpLCAoY2hvb3NlX21vZGUpLCAocG9sbGZkX3RvX2ZkX3NldCksCgkgIChmZF9zZXRfdG9fcG9sbGZkKSwgKGdzdF9wb2xsX25ldyksIChnc3RfcG9sbF9mcmVlKSwKCSAgKGdzdF9wb2xsX3NldF9tb2RlKSwgKGdzdF9wb2xsX2dldF9tb2RlKSwKCSAgKGdzdF9wb2xsX2FkZF9mZF91bmxvY2tlZCksIChnc3RfcG9sbF9hZGRfZmQpLAoJICAoZ3N0X3BvbGxfcmVtb3ZlX2ZkKSwgKGdzdF9wb2xsX2ZkX2N0bF93cml0ZSksCgkgIChnc3RfcG9sbF9mZF9jdGxfcmVhZF91bmxvY2tlZCksIChnc3RfcG9sbF9mZF9jdGxfcmVhZCksCgkgIChnc3RfcG9sbF9mZF9oYXNfY2xvc2VkKSwgKGdzdF9wb2xsX2ZkX2hhc19lcnJvciksCgkgIChnc3RfcG9sbF9mZF9jYW5fcmVhZF91bmxvY2tlZCksIChnc3RfcG9sbF9mZF9jYW5fcmVhZCksCgkgIChnc3RfcG9sbF9mZF9jYW5fd3JpdGUpLCAoZ3N0X3BvbGxfd2FpdCksCgkgIChnc3RfcG9sbF9zZXRfY29udHJvbGxhYmxlKSwgKGdzdF9wb2xsX3Jlc3RhcnQpLAoJICAoZ3N0X3BvbGxfc2V0X2ZsdXNoaW5nKToKCSAgKiBnc3QvZ3N0cG9sbC5oOgoJICBBZGQgZ2VuZXJpYyBwb2xsIGFic3RyYWN0aW9uLiBXZSBpZGVhbGx5IGRvbid0IHdhbnQgdG8gaGF2ZSB0aGlzIGluIGNvcmUKCSAgaGVyZSBidXQgaW4gZ2xpYiBpbnRlYWQuLi4KCSAgVGhpcyBjb2RlIHdpbGwgYmUgdXNlZCBpbiB2YXJpb3VzIG5ldHdvcmsgZWxlbWVudHMgYW5kIHVsdGltYXRlbHkgZm9yCgkgIHRoZSBuYW5vc2Vjb25kIHByZWNpc2lvbiBtb25vdG9uaWMgY2xvY2sgKHRoYXQncyB3aHkgaXQncyBoZXJlIGluIGNvcmUpLgoJICBJdCdsbCBhbGxvdyB1cyB0byBpbXBsZW1lbnQgY2FuY2VsYWJsZSBzb2NrZXQgb3BlcmF0aW9ucyBmb3Igd2luZG93cyB0b28uCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzogKHRlc3RfcG9sbF93YWl0KSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGRlbGF5ZWRfc3RvcCksIChkZWxheWVkX3Jlc3RhcnQpLCAoZGVsYXllZF9mbHVzaCksCgkgIChkZWxheWVkX2NvbnRyb2wpLCAoZ3N0X3BvbGxfc3VpdGUpOgoJICBBZGQgR3N0UG9sbCB1bml0IHRlc3QuCgoyMDA4LTAyLTI1IDE1OjM3OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGZpbHRlci5jOiBJbXByb3ZlIGRvY3VtZW50YXRpb24gb2YgZ3N0X2ZpbHRlcl9ydW4oKS4gRml4ZXMgIzUxODYyNy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGZpbHRlci5jOgoJICBJbXByb3ZlIGRvY3VtZW50YXRpb24gb2YgZ3N0X2ZpbHRlcl9ydW4oKS4gRml4ZXMgIzUxODYyNy4KCjIwMDgtMDItMjMgMTY6MDM6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL1JFQURNRTogQWRkIGEgZmV3IGxpbmVzIGFib3V0IHRoZSBuZXcgJ2NoZWNrLWluc3BlY3RlZC12ZXJzaW9ucycgdGFyZ2V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgQWRkIGEgZmV3IGxpbmVzIGFib3V0IHRoZSBuZXcgJ2NoZWNrLWluc3BlY3RlZC12ZXJzaW9ucycgdGFyZ2V0LgoKMjAwOC0wMi0yMSAxMDozMDo1MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6IEFkZCBxb3MgdG8gdGhlIGV2ZW50IHRlc3QuIFJlbmFtZSB0Y2FzZS90c3VpdGU7IGlzIG5vdCBvbmx5IGFib3V0IGN1c3RvbSBldmVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICBBZGQgcW9zIHRvIHRoZSBldmVudCB0ZXN0LiBSZW5hbWUgdGNhc2UvdHN1aXRlOyBpcyBub3Qgb25seSBhYm91dAoJICBjdXN0b20gZXZlbnRzLgoKMjAwOC0wMi0yMSAxMDoyMjozNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBFbnN1cmUgdGhhdCBidWZmZXIgbWV0YWRhdGEgaXMgd3JpdGVhYmxlLCBiZWZvcmUgbW9kaWZ5aW5nLiBTcG90dGVkIGJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgRW5zdXJlIHRoYXQgYnVmZmVyIG1ldGFkYXRhIGlzIHdyaXRlYWJsZSwgYmVmb3JlIG1vZGlmeWluZy4gU3BvdHRlZCBieQoJICBNaWtlLgoKMjAwOC0wMi0yMCAxNTo0NDozMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS4qOiBXaGVuIGRyb3BwaW5nIGJ1ZmZlcnMgaW4gbGVha3kgbW9kZXMsIG1hcmsgbmV4dCBidWZmZXJzIHdlIHNlbnQgYXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgV2hlbiBkcm9wcGluZyBidWZmZXJzIGluIGxlYWt5IG1vZGVzLCBtYXJrIG5leHQgYnVmZmVycyB3ZSBzZW50IGFzCgkgIERJU0NPTlQuCgoyMDA4LTAyLTIwIDEyOjMxOjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IEFsc28sIGlmIG1tYXAoKSBmYWlscyB0aGF0IHdvdWxkIGJlIGEgUkVBRCBlcnJvciwgbm90IE9QRU5fUkVBRC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfbWFwX3JlZ2lvbik6CgkgIEFsc28sIGlmIG1tYXAoKSBmYWlscyB0aGF0IHdvdWxkIGJlIGEgUkVBRCBlcnJvciwgbm90IE9QRU5fUkVBRC4KCjIwMDgtMDItMjAgMTI6MjY6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogUmVtb3ZlIEdzdEJ1ZmZlclN0b3JlLCBubyBpZGVhIHdoeSB3ZSB3ZXJlIHN0aWxsIGJ1aWxkaW5nIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgUmVtb3ZlIEdzdEJ1ZmZlclN0b3JlLCBubyBpZGVhIHdoeSB3ZSB3ZXJlIHN0aWxsIGJ1aWxkaW5nIGl0LgoJICBJdCdzIG5vdCB1c2VkIGFueXdoZXJlIGFuZCBzdXBlcnNlZGVkIGJ5IEdzdEFkYXB0ZXIuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfbWFwX3JlZ2lvbiksCgkgIChnc3RfZmlsZV9zcmNfY3JlYXRlX21tYXApOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6IChnc3RfZmlsZV9pbmRleF9hZGRfYXNzb2NpYXRpb24pOgoJICBQcmludGYgZm9ybWF0IGZpeGVzIGZvciA2NC1iaXQgaW50ZWdlcnMuCgoyMDA4LTAyLTE5IDEzOjAwOjE0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBjb25maWd1cmUuYWM6IERvbid0IHNldCBHU1RfQ0FDSEVfRElSIGFuZCBhbGxvdyB0byBzZXQgaXQgYnkgYSBjb25maWd1cmUgcGFyYW1ldGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIERvbid0IHNldCBHU1RfQ0FDSEVfRElSIGFuZCBhbGxvdyB0byBzZXQgaXQgYnkgYSBjb25maWd1cmUgcGFyYW1ldGVyLgoJICBXZSdyZSBub3QgaW4gMC44IHRpbWVzIGFueW1vcmUuCgoyMDA4LTAyLTE5IDEyOjU2OjI4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLio6IE1ha2UgdGhlIGRlY2xhcmF0aW9uIGluIHRoZSBoZWFkZXIgZm9yIGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QgbWF0Y2ggdGhlIGltcGxlbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX2Ryb3BfYnVmZmVycyksCgkgIChnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcl9saXN0KToKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBNYWtlIHRoZSBkZWNsYXJhdGlvbiBpbiB0aGUgaGVhZGVyIGZvcgoJICBnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcl9saXN0IG1hdGNoIHRoZSBpbXBsZW1lbnRhdGlvbi4KCSAgRml4IHVwIHNwZWxsaW5nLCBncmFtbWFyIGFuZCB3b3JkaW5nIG9mIHRoZSBkb2N1bWVudGF0aW9uIGluIGEgZmV3CgkgIHBsYWNlcywgYW5kIGFkZCB0aGUgU2luY2Uga2V5d29yZCB0byBuZXcgQVBJIGZ1bmN0aW9ucy4KCSAgVXNlIGdfbGlzdF9kZWxldGVfbGluayBpbnN0ZWFkIG9mIGdfbGlzdF9yZW1vdmUgaW4KCSAgZ3N0X2NoZWNrX2Ryb3BfYnVmZmVycywgc2luY2UgaXQncyBpbW1lYXN1cmFibHkgbW9yZSBlZmZpY2llbnQuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVc2UgbmV3IGdzdF9jaGVja19kcm9wX2J1ZmZlcnMgZnVuY3Rpb24gd2hlcmUgYXBwcm9wcmlhdGUuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IHN5bWJvbHMgZ3N0X2NvbGxlY3RfcGFkc190YWtlX2J1ZmZlciwKCSAgZ3N0X2NvbGxlY3RfcGFkc19yZWFkX2J1ZmZlciwgZ3N0X2luZGV4X3NldF9yZXNvbHZlcl9mdWxsIHRvIHRoZQoJICBleHBvcnRzCgkgIENoYW5nZWxvZyBzdXJnZXJ5IHRvIGFkZCBBUEkga2V5d29yZCB0byBuZXcgZ3N0X2NoZWNrIEFQSS4KCjIwMDgtMDItMTkgMDg6MDU6MTUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9wYXJzZS9sZXguX2dzdF9wYXJzZV95eS5wcmUuYzogVXBkYXRlIHByZS1nZW5lcmF0ZWQgZmxleCBmaWxlcyB3aXRoIGZsZXggMi4zLjM0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvbGV4Ll9nc3RfcGFyc2VfeXkucHJlLmM6ICh5eV9nZXRfbmV4dF9idWZmZXIpLAoJICAoX2dzdF9wYXJzZV95eWVuc3VyZV9idWZmZXJfc3RhY2spLCAoX2dzdF9wYXJzZV95eWxleF9pbml0X2V4dHJhKToKCSAgVXBkYXRlIHByZS1nZW5lcmF0ZWQgZmxleCBmaWxlcyB3aXRoIGZsZXggMi4zLjM0LgoKMjAwOC0wMi0xOSAwNTo0OTozMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogQWRkIEZJWE1FIGZvciAwLjExIHRvIG1ha2UgR3N0TWluaU9iamVjdENsYXNzOjpjb3B5KCkgYSBiaXQgbW9yZSBmcmllbmRseSB0byBzdWJjbGFzc2VzIGFuZCBub3QgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIEFkZCBGSVhNRSBmb3IgMC4xMSB0byBtYWtlIEdzdE1pbmlPYmplY3RDbGFzczo6Y29weSgpIGEgYml0IG1vcmUKCSAgZnJpZW5kbHkgdG8gc3ViY2xhc3NlcyBhbmQgbm90IHJlcXVpcmUgdGhlbSB0byBrbm93IGFsbCBpbnRlcm5hbHMKCSAgb2YgdGhlaXIgcGFyZW50IGNsYXNzLgoKMjAwOC0wMi0xNSAxMzoxNToxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIHN1Yi1idWZmZXIgZnVuY3Rpb25zIHRvIGNvbGxlY3RwYWRzLiBGaXhlcyAjNTE2MTg3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIEFkZCBzdWItYnVmZmVyIGZ1bmN0aW9ucyB0byBjb2xsZWN0cGFkcy4gRml4ZXMgIzUxNjE4Ny4KCSAgQVBJOiBnc3RfY29sbGVjdF9wYWRzX3Rha2VfYnVmZmVyKCksIGdzdF9jb2xsZWN0X3BhZHNfcmVhZF9idWZmZXIoKQoKMjAwOC0wMi0xNSAxMjozMzowMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBDb3B5IHNlbGVjdGVkIGJ1ZmZlci1mbGFncyB3aGVuIGNyZWF0aW5nIHN1YmJ1ZmZlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgQ29weSBzZWxlY3RlZCBidWZmZXItZmxhZ3Mgd2hlbiBjcmVhdGluZyBzdWJidWZmZXJzLgoJICBGaXhlcyAjNTE2Mzk1LgoKMjAwOC0wMi0xMiAxMjowNDo0MyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgUHJvcGVybHkgY2hhaW4gdXAgZmluYWxpemUgZnVuY3Rpb25zIHRvIHRoZSBwYXJlbnQgY2xhc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfY2xhc3NfaW5pdCksIChnc3RfYnVmZmVyX2ZpbmFsaXplKToKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9jbGFzc19pbml0KSwgKGdzdF9ldmVudF9maW5hbGl6ZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX2NsYXNzX2luaXQpLAoJICAoZ3N0X21lc3NhZ2VfZmluYWxpemUpOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X2NsYXNzX2luaXQpLCAoZ3N0X3F1ZXJ5X2ZpbmFsaXplKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9tbWFwX2J1ZmZlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9tbWFwX2J1ZmZlcl9maW5hbGl6ZSk6CgkgIFByb3Blcmx5IGNoYWluIHVwIGZpbmFsaXplIGZ1bmN0aW9ucyB0byB0aGUgcGFyZW50IGNsYXNzLgoKMjAwOC0wMi0xMSAxNzo1Mzo1NyArMDAwMCAgU2lhdmFzaCBTYWZpIDxzaWF2YXNoLnNhZmlAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGluZGV4Lio6IEFkZCBuZXcgZnVuY3Rpb24gd2l0aCBvcHRpb24gdG8gZGlzcG9zZSBvZiB1c2VyX2RhdGEgaW4gcmVzb2x2ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2lhdmFzaCBTYWZpIDxzaWF2YXNoIGRvdCBzYWZpIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfZmluYWxpemUpLCAoZ3N0X2luZGV4X3NldF9yZXNvbHZlciksCgkgIChnc3RfaW5kZXhfc2V0X3Jlc29sdmVyX2Z1bGwpOgoJICAqIGdzdC9nc3RpbmRleC5oOgoJICBBZGQgbmV3IGZ1bmN0aW9uIHdpdGggb3B0aW9uIHRvIGRpc3Bvc2Ugb2YgdXNlcl9kYXRhIGluIHJlc29sdmVyLgoJICBBY3R1YWxseSBjYWxsIHRoZSBkaXNwb3NlIGZ1bmN0aW9uIHdoZW4gZmluYWxpemluZyB0aGUgb2JqZWN0IGFuZCBub3QKCSAganVzdCB3aGVuIGNoYW5naW5nIHRoZSByZXNvbHZlci9maWx0ZXIuCgkgIEFQSTogR3N0SW5kZXg6OmdzdF9pbmRleF9zZXRfcmVzb2x2ZXJfZnVsbCgpCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIG5ldyBmdW5jdGlvbiB0byBkb2NzLiBGaXhlcyAjNTE1NDY5LgoKMjAwOC0wMi0xMSAwODo1MzowNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdGluZGV4LmM6IENoYWluIHVwIGZpbmFsaXplIHRvIHRoZSBwYXJlbnQgY2xhc3MuIEZpeGVzIGxlYWtpbmcgdGhlIEdzdE9iamVjdCBuYW1lIGFuZCBvdGhlciB0aGluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2ZpbmFsaXplKToKCSAgQ2hhaW4gdXAgZmluYWxpemUgdG8gdGhlIHBhcmVudCBjbGFzcy4gRml4ZXMgbGVha2luZyB0aGUgR3N0T2JqZWN0CgkgIG5hbWUgYW5kIG90aGVyIHRoaW5ncy4KCjIwMDgtMDItMTAgMTk6NDg6MDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBGaXggSm9zZXAncyBzdXJuYW1lIGluIHByZXZpb3VzIGNvbW1pdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBGaXggSm9zZXAncyBzdXJuYW1lIGluIHByZXZpb3VzIGNvbW1pdHMKCjIwMDgtMDItMDggMDA6NTQ6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBNYWtlIERJU0FCTEVfREVQUkVDQVRFRCBkZWZpbmVkICpvbmx5KiBkdXJpbmcgQ1ZTLCBub3QgZHVyaW5nIHByZS1yZWxlYXNlcyBvciByZWxlYXNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBNYWtlIERJU0FCTEVfREVQUkVDQVRFRCBkZWZpbmVkICpvbmx5KiBkdXJpbmcgQ1ZTLCBub3QgZHVyaW5nCgkgIHByZS1yZWxlYXNlcyBvciByZWxlYXNlcy4KCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIEFkZCBnc3QtcGx1Z2lucy1nbAoJICAqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIENoYW5nZSBvbmUgb2YgdGhlIHN0ZXBzIC0gd2Ugb25seSB1cGxvYWQgY29yZSAmIGJhc2UgdG8gR25vbWUgRlRQCgoyMDA4LTAyLTA2IDEyOjIxOjA1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0Y29uZmlnLmguaW46IEFkZCAnaWQnIGZvciBleGFtcGxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIEFkZCAnaWQnIGZvciBleGFtcGxlLgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBMaW5rIHRvIHNpZ25hbHMuIERvYyBhbmQgY29tbWVudCBmaXhlcy4KCjIwMDgtMDItMDUgMjE6MjI6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBTb21lIG1pbm9yIGRvY3MgZml4ZXM6IGZpeCB0eXBvLCBtZW50aW9uIHRoYXQgR1NUX0ZMT1dfUkVTRU5EIGlzIHVudXNlZCBhbmQgdW5pbXBsZW1lbnRlZDsgZmluYWxseSwgaXQgaXMgcGx1Z2kuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5oOiAoR1NUX1BBRF9MSU5LX1NVQ0NFU1NGVUwpOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6IChHc3RQbHVnaW5GZWF0dXJlQ2xhc3MpOgoJICBTb21lIG1pbm9yIGRvY3MgZml4ZXM6IGZpeCB0eXBvLCBtZW50aW9uIHRoYXQgR1NUX0ZMT1dfUkVTRU5EIGlzCgkgIHVudXNlZCBhbmQgdW5pbXBsZW1lbnRlZDsgZmluYWxseSwgaXQgaXMgcGx1Z2luIGZlYXR1cmVzLCBub3QKCSAgcGx1Z2lucywgdGhhdCBoYXZlIHJhbmtzLgoKMjAwOC0wMi0wNSAxOTo0MjozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDogQ2xhcmlmeSBHc3RSYW5rIHJhbmdlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgIENsYXJpZnkgR3N0UmFuayByYW5nZSBkb2NzLgoKMjAwOC0wMi0wNSAxODozNzowOCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0LmM6IEFkZCBhIHNlcGFyYXRlIGdzdF9kZWluaXRpYWxpemVkIHRoYXQgcHJldmVudHMgZ3N0X2luaXQoKSBmcm9tIGJlaW5nIGNhbGxlZCBhZnRlciBnc3RfZGVpbml0KCkuICBGaXhlcyAjNTAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiBBZGQgYSBzZXBhcmF0ZSBnc3RfZGVpbml0aWFsaXplZCB0aGF0IHByZXZlbnRzCgkgIGdzdF9pbml0KCkgZnJvbSBiZWluZyBjYWxsZWQgYWZ0ZXIgZ3N0X2RlaW5pdCgpLiAgRml4ZXMgIzUwOTU1OQoKMjAwOC0wMi0wNSAxNDoxNToxNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZXMgdG8gdGhlIGJlaGF2aW91ciBvZiBHc3RQYWRUZW1wbGF0ZXMsIGV0YyBhbmQgdGhlIHBvc3NpYmxpdHkgdG8gY2FsbCB0aGVtIGluIGNsYXNzX2luaXQgYXMgaXQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZ2V0X3R5cGUpLCAoZ3N0X2Jpbl9iYXNlX2luaXQpLAoJICAoZ3N0X2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfYmFzZV9jbGFzc19pbml0KSwKCSAgKGdzdF9lbGVtZW50X2NsYXNzX2FkZF9wYWRfdGVtcGxhdGUpOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiAoZ3N0X3BhZF90ZW1wbGF0ZV9pbml0KToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9nZXRfdHlwZSksCgkgIChnc3RfcGlwZWxpbmVfYmFzZV9pbml0KSwgKGdzdF9waXBlbGluZV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3R5cGUpLAoJICAoZ3N0X2Jhc2Vfc3JjX2Jhc2VfaW5pdCksIChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9iYXNlX2luaXQpLAoJICAoZ3N0X2NhcHNmaWx0ZXJfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19iYXNlX2luaXQpLAoJICAoZ3N0X2Zha2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19iYXNlX2luaXQpLAoJICAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19iYXNlX2luaXQpLAoJICAoZ3N0X2ZkX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19iYXNlX2luaXQpLAoJICAoZ3N0X2ZkX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfZmlsZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2Jhc2VfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfYmFzZV9pbml0KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfYmFzZV9pbml0KSwKCSAgKGdzdF9xdWV1ZV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9iYXNlX2luaXQpLAoJICAoZ3N0X3RlZV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2Jhc2VfaW5pdCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3N1aXRlKToKCSAgUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZXMgdG8gdGhlIGJlaGF2aW91ciBvZiBHc3RQYWRUZW1wbGF0ZXMsIGV0YwoJICBhbmQgdGhlIHBvc3NpYmxpdHkgdG8gY2FsbCB0aGVtIGluIGNsYXNzX2luaXQgYXMgaXQgYnJlYWtzIHRvbwoJICBtYW55IGVsZW1lbnRzLiBSZW9wZW5zIGJ1ZyAjNDkxNTAxLgoJICBTaG91bGQgYmUgYXBwbGllZCBhZ2FpbiBmb3IgMC4xMSwgdGh1cyBhZGRlZCBhIGZldyBGSVhNRSAwLjExIGF0CgkgIHNldmVyYWwgcGxhY2VzLgoKMjAwOC0wMi0wNSAwOToyNDoxOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBEdW1wIG9uZSBncmFwaCBwZXIgcGlwZWxpbmUgc3RhdGUtY2hhbmdlIGFuZCBzdGF0ZSBjaGFuZ2UgbmFtZSAoaWYgR1NUX0RFQlVHX0RVTVBfRE9UX0RJUiBpcyBzZXQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIER1bXAgb25lIGdyYXBoIHBlciBwaXBlbGluZSBzdGF0ZS1jaGFuZ2UgYW5kIHN0YXRlIGNoYW5nZSBuYW1lCgkgIChpZiBHU1RfREVCVUdfRFVNUF9ET1RfRElSIGlzIHNldCkuCgoyMDA4LTAyLTA0IDE0OjE0OjQyICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgQmUgc3VyZSB0aGF0IHdlIGhhdmUgYSBuZXcgY29weSBvZiB0aGUgY2FwcyBhbmQgbm90IHJlZmZlZCBjYXBzIGZyb20gYSB0ZW1wbGF0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBCZSBzdXJlIHRoYXQgd2UgaGF2ZSBhIG5ldyBjb3B5IG9mIHRoZSBjYXBzIGFuZCBub3QKCSAgcmVmZmVkIGNhcHMgZnJvbSBhIHRlbXBsYXRlCgoyMDA4LTAyLTAzIDEyOjA0OjM3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBEb24ndCB1c2UgYmFzZV9pbml0IHdoZXJlIG5vdCBhYnNvbHV0ZWx5IG5lY2Vzc2FyeS4gRm9yIGV4YW1wbGUgaXQncyBub3QgbmVjZXNzYXJ5IGFueW1vcmUgZm9yIGFkZGluZyBwYWQgdGVtcGxhdGVzIG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9nZXRfdHlwZSksIChnc3RfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2dldF90eXBlKSwKCSAgKGdzdF9waXBlbGluZV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF90eXBlKSwKCSAgKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3R5cGUpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF90eXBlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2Jhc2VfaW5pdCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6IChnc3RfZGF0YV9xdWV1ZV9nZXRfdHlwZSk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2Jhc2VfaW5pdCksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9iYXNlX2luaXQpLAoJICAoZ3N0X2NhcHNmaWx0ZXJfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19iYXNlX2luaXQpLAoJICAoZ3N0X2Zha2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19iYXNlX2luaXQpLAoJICAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19iYXNlX2luaXQpLAoJICAoZ3N0X2ZkX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19iYXNlX2luaXQpLAoJICAoZ3N0X2ZkX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfZmlsZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2Jhc2VfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfYmFzZV9pbml0KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfYmFzZV9pbml0KSwKCSAgKGdzdF9xdWV1ZV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9iYXNlX2luaXQpLAoJICAoZ3N0X3RlZV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2Jhc2VfaW5pdCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgIERvbid0IHVzZSBiYXNlX2luaXQgd2hlcmUgbm90IGFic29sdXRlbHkgbmVjZXNzYXJ5LiBGb3IgZXhhbXBsZSBpdCdzCgkgIG5vdCBuZWNlc3NhcnkgYW55bW9yZSBmb3IgYWRkaW5nIHBhZCB0ZW1wbGF0ZXMgb3Igc2V0dGluZyBlbGVtZW50CgkgIGRldGFpbHMuCgkgIExlYXZlIGVtcHR5IGJhc2VfaW5pdCBmdW5jdGlvbnMgaW4gc2V2ZXJhbCBwbGFjZXMgYXMgR1NUX0JPSUxFUlBMQVRFCgkgIHN0aWxsIGRlZmluZXMgYW5kIHVzZXMgdGhlbS4KCjIwMDgtMDItMDMgMTA6NDg6MDEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC86IE1ha2UgaXQgcG9zc2libGUgKGFuZCByZWNvbW1lbmRlZCkgdG8gc2V0IGVsZW1lbnQgZGV0YWlscyBhbmQgYWRkIHBhZCB0ZW1wbGF0ZXMgaW4gdGhlIGNsYXNzX2luaXQgZnVuY3Rpb25zIGJ5IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfYmFzZV9jbGFzc19pbml0KSwKCSAgKGdzdF9lbGVtZW50X2NsYXNzX2FkZF9wYWRfdGVtcGxhdGUpOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBNYWtlIGl0IHBvc3NpYmxlIChhbmQgcmVjb21tZW5kZWQpIHRvIHNldCBlbGVtZW50IGRldGFpbHMgYW5kIGFkZAoJICBwYWQgdGVtcGxhdGVzIGluIHRoZSBjbGFzc19pbml0IGZ1bmN0aW9ucyBieSBjb3B5aW5nIHRoZSBkZXRhaWxzL3BhZAoJICB0ZW1wbGF0ZXMgaW4gR3N0RWxlbWVudCdzIGJhc2VfaW5pdC4KCSAgQWxzbyBtYWtlIGl0IHBvc3NpYmxlIHRvIHJlcGxhY2UgZXhpc3RpbmcgcGFkIHRlbXBsYXRlcyBieSBhZGRpbmcKCSAgYSBuZXcgb25lIHdpdGggdGhlIHNhbWUgbmFtZS4gVGhpcyB3YXMgZG9uZSBpbiBhIGhhY2tpc2ggZmFzaGlvbgoJICBpbiBzYW1lIGVsZW1lbnRzIGJlZm9yZSBhbHJlYWR5LgoJICBEb24ndCByZWZlcmVuY2UgcGFkIHRlbXBsYXRlcyB0aGF0IGFyZSBhZGRlZCBhIHNlY29uZCB0aW1lLiBBCgkgIG5ldyBwYWQgdGVtcGxhdGUgaGFzIGEgcmVmY291bnQgb2Ygb25lIGFuZCBpcyBub3QgZmxvYXRpbmcgYW55bW9yZQoJICBhbmQgdG8gYmUgb3duZWQgYnkgdGhlIGVsZW1lbnQncyBjbGFzcy4gTWFrZSB0aGlzIG1vcmUgZXhwbGljaXQgYnkKCSAgbWVudGlvbmluZyBpdCBpbiB0aGUgZG9jcyBvZiBnc3RfZWxlbWVudF9jbGFzc19hZGRfcGFkX3RlbXBsYXRlKCkuCgkgIFRoZXNlIGNoYW5nZXMgYXJlIGJhY2t3YXJkcyBjb21wYXRpYmxlLiBGaXhlcyBidWcgIzQ5MTUwMS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJICBBZGQgdW5pdCB0ZXN0IGZvciBzZXR0aW5nIGVsZW1lbnQgZGV0YWlscywgYWRkaW5nIHBhZCB0ZW1wbGF0ZXMgYW5kCgkgIHJlcGxhY2luZyB0aGVtIGluIGEgc3ViY2xhc3MuCgoyMDA4LTAyLTAyIDA2OjQ4OjM3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBGaXggYSBmZXcgbWVtb3J5IGxlYWtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfaW50ZXJmYWNlcyksCgkgIChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyksIChwcmludF9wYWRfaW5mbyksCgkgIChwcmludF9zaWduYWxfaW5mbyksIChwcmludF9lbGVtZW50X2luZm8pOgoJICBGaXggYSBmZXcgbWVtb3J5IGxlYWtzLgoKMjAwOC0wMi0wMSAxNzoxNjoyNiArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIEFkZCBtb3JlIGZ1bmN0aW9ucyBmb3IgdW5pdCB0ZXN0aW5nOiBnc3RfY2hlY2tfZHJvcF9idWZmZXJzLCBnc3RfY2hlY2tfY2Fwc19lcXVhbCwgZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXJfbGlzdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgQWRkIG1vcmUgZnVuY3Rpb25zIGZvciB1bml0IHRlc3Rpbmc6IGdzdF9jaGVja19kcm9wX2J1ZmZlcnMsCgkgIGdzdF9jaGVja19jYXBzX2VxdWFsLCBnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcl9saXN0LAoJICBnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcgoKMjAwOC0wMi0wMSAxNjozNzoyMiArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgR1NUX0NIRUNLX1ZFUlNJT04gdG8gdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMDItMDEgIEp1bGllbiBNb3V0dGUgIDxqdWxpZW5AZmx1ZW5kby5jb20+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIEdTVF9DSEVDS19WRVJTSU9OIHRvIHRoZQoJICBkb2NzCgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfY2xhc3NfaW5pdCksCgkgIChnc3RfaW5kZXhfZnJlZV93cml0ZXIpLAoJICAoZ3N0X2luZGV4X2ZpbmFsaXplKSwgKGdzdF9pbmRleF9lbnRyeV9mcmVlKSwKCSAgKGdzdF9pbmRleF9hZGRfYXNzb2NpYXRpb24pOiBGaXggbWVtb3J5IGxlYWtzLgoJICAqIGdzdC9nc3R2ZXJzaW9uLmguaW46IEFkZCBHU1RfQ0hFQ0tfVkVSU0lPTiBtYWNyby4KCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6IChnc3RfbWVtX2luZGV4X2NsYXNzX2luaXQpLAoJICAoZ3N0X21lbV9pbmRleF9mcmVlX2Zvcm1hdCksIChnc3RfbWVtX2luZGV4X2ZyZWVfaWQpLAoJICAoZ3N0X21lbV9pbmRleF9maW5hbGl6ZSk6IEZpeCBtZW1vcnkgbGVha3MuCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOiBVcGRhdGVkIHRvIENWUyBIRUFELgoKMjAwOC0wMi0wMSAxMjoyNToxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9SRUFETUU6IFNvbWUgbW9yZSBkZXRhaWxzIGFib3V0IGhvdyB0aGUgcGx1Z2luIGRvY3Mgd29ya3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICBTb21lIG1vcmUgZGV0YWlscyBhYm91dCBob3cgdGhlIHBsdWdpbiBkb2NzIHdvcmtzLgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgIFdoaXRlc3BhY2UgY2xlYW51cC4KCjIwMDgtMDItMDEgMTI6MTA6MTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9wYXJzZS86IEFkZCBkZWxheWVkIHNldC1wcm9wZXJ0eS4gVGhpcyBhbGxvd3MgdG8gc2V0IHByb3BlcnRpZXMgb24gZHluYW1pY2FseSBjcmVhdGVkIG9iamVjdHMgKHBhZHMgaW4gdmlkZW9teGVyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIudGFiLnByZS5jOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnRhYi5wcmUuaDoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIGdzdC9wYXJzZS9sZXguX2dzdF9wYXJzZV95eS5wcmUuYzoKCSAgQWRkIGRlbGF5ZWQgc2V0LXByb3BlcnR5LiBUaGlzIGFsbG93cyB0byBzZXQgcHJvcGVydGllcyBvbiBkeW5hbWljYWx5CgkgIGNyZWF0ZWQgb2JqZWN0cyAocGFkcyBpbiB2aWRlb214ZXIpLgoKMjAwOC0wMi0wMSAxMToyNzozMiArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBDaGVjayBpZiBjYXBzIGFyZSBub3QgTlVMTCAoZml4IGJ1ZyAjNTEwMTk0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgQ2hlY2sgaWYgY2FwcyBhcmUgbm90IE5VTEwgKGZpeCBidWcgIzUxMDE5NCkKCjIwMDgtMDItMDEgMTA6Mjc6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEFkZCBmaXhtZSByZWdhcmRpbmcgRU9TIGluIHB1bGwgbW9kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19sb29wKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX3BhdXNlZCk6CgkgIEFkZCBmaXhtZSByZWdhcmRpbmcgRU9TIGluIHB1bGwgbW9kZS4KCSAgRml4IHBvc2l0aW9uIHJlcG9ydGluZyBpbiBQQVVTRUQgZm9yIG5lZ2F0aXZlIHJhdGVzLgoKMjAwOC0wMi0wMSAxMDoyMzo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IFdoZW4gcmVwbGFjaW5nIGEgbWluaW9iamVjdCwgZG8gYSBxdWljayBlcXVhbGl0eSBjaGVjayBmaXJzdCBzbyB0aGF0IHdlIGNhbiBhdm9pZCBhIHJlZi91bnJlZiBwYWlyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X3JlcGxhY2UpOgoJICBXaGVuIHJlcGxhY2luZyBhIG1pbmlvYmplY3QsIGRvIGEgcXVpY2sgZXF1YWxpdHkgY2hlY2sgZmlyc3Qgc28gdGhhdCB3ZQoJICBjYW4gYXZvaWQgYSByZWYvdW5yZWYgcGFpci4KCjIwMDgtMDItMDEgMTA6MTc6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6IFVwZGF0ZSBzb21lIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSAgVXBkYXRlIHNvbWUgZG9jcy4KCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBBZGQgbXVsdGlxdWV1ZSB0byB0aGUgZG9jcy4KCjIwMDgtMDEtMzAgMTQ6Mzg6NDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gQ1ZTCgo9PT0gcmVsZWFzZSAwLjEwLjE3ID09PQoKMjAwOC0wMS0zMCAxNDowNTo0NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMTcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4xNwoKMjAwOC0wMS0zMCAxMzoxMzo0OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIGFkZCBDaGFuZ2VMb2cgZW50cnkgZm9yIHByZXZpb3VzIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIENoYW5nZUxvZyBlbnRyeSBmb3IgcHJldmlvdXMgY29tbWl0CgoyMDA4LTAxLTMwIDEzOjEyOjI0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBDaGVjayBpZiBjYXBzIGFyZSBub3QgTlVMTCAoZml4IGJ1ZyAjNTEwMTk0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgQ2hlY2sgaWYgY2FwcyBhcmUgbm90IE5VTEwgKGZpeCBidWcgIzUxMDE5NCkKCjIwMDgtMDEtMzAgMTI6NTU6NDIgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogQ2hlY2sgaWYgY2FwcyBhcmUgbm90IE5VTEwgKGZpeCBidWcgIzUxMDE5NCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIENoZWNrIGlmIGNhcHMgYXJlIG5vdCBOVUxMIChmaXggYnVnICM1MTAxOTQpCgoyMDA4LTAxLTMwIDEyOjQ0OjEzICswMDAwICBDeWd3aW4gUG9ydHMgbWFpbnRhaW5lciA8eXNlbGtvd2l0ekB1c2Vycy5zb3VyY2Vmb3JnZT4KCgkgIGdzdC9nc3R1dGlscy5jOiBGaXggY29tcGlsYXRpb24gb24gc3lzdGVtcyB0aGF0IGhhdmUgcG9zaXggdGltZXJzIGJ1dCBubyBtb25vdG9uaWMgY2xvY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBGaXggY29tcGlsYXRpb24gb24gc3lzdGVtcyB0aGF0IGhhdmUgcG9zaXggdGltZXJzIGJ1dCBubwoJICBtb25vdG9uaWMgY2xvY2suCgkgIEZpeGVzOiAjNTEyNzE1CgkgIFBhdGNoIEJ5OiBDeWd3aW4gUG9ydHMgbWFpbnRhaW5lciA8eXNlbGtvd2l0eiBhdCB1c2VycyBkb3Qgc291cmNlZm9yZ2UKCSAgZG90IG5ldD4KCjIwMDgtMDEtMzAgMTI6Mzk6NTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogUmV2ZXJ0IHByZXZpb3VzIGNvbW1pdCBpbiBwcmVwYXJhdGlvbiBmb3IgYW4gaW1wcm9tcHR1IDAuMTAuMTcgcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBSZXZlcnQgcHJldmlvdXMgY29tbWl0IGluIHByZXBhcmF0aW9uIGZvciBhbiBpbXByb21wdHUgMC4xMC4xNyByZWxlYXNlCgoyMDA4LTAxLTI5IDA5OjQzOjExICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBGaXggYSBmZXcgbWVtb3J5IGxlYWtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfaW50ZXJmYWNlcyksCgkgIChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyksIChwcmludF9wYWRfaW5mbyksCgkgIChwcmludF9zaWduYWxfaW5mbyksIChwcmludF9lbGVtZW50X2luZm8pOgoJICBGaXggYSBmZXcgbWVtb3J5IGxlYWtzLgoKMjAwOC0wMS0yOCAyMzozMDo0NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBDVlMKCj09PSByZWxlYXNlIDAuMTAuMTYgPT09CgoyMDA4LTAxLTI4IDIzOjI3OjEzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmludGVyZmFjZXM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHBvL0xJTkdVQVM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjE2CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuMTYKCjIwMDgtMDEtMjggMjE6MjA6MTYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDgtMDEtMjQgMjM6Mjg6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjb25maWd1cmUuYWM6IFVzZSBBQ19UUllfQ09NUElMRSBpbnN0ZWFkIG9mIEFDX1RSWV9SVU4gdG8gY2hlY2sgZm9yIF9QT1NJWF9USU1FUiwgX1BPU0lYX01PTk9UT05JQ19DTE9DSywgZXRjLiBNYWtlcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBVc2UgQUNfVFJZX0NPTVBJTEUgaW5zdGVhZCBvZiBBQ19UUllfUlVOIHRvIGNoZWNrIGZvcgoJICBfUE9TSVhfVElNRVIsIF9QT1NJWF9NT05PVE9OSUNfQ0xPQ0ssIGV0Yy4gTWFrZXMgY29uZmlndXJlCgkgIG5vdCBmYWlsIHdoZW4gdHJ5aW5nIHRvIGNyb3NzY29tcGlsZSBvbiBPcGVuRW1iZWRkZWQgKCM1MTE3NTApLgoKMjAwOC0wMS0yMCAxNzowODo1NCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZG9jcy9tYW51YWxzLm1hazogVXNlICQoTUFLRSkgaW5zdGVhZCBvZiBtYWtlIHRvIGZpeCB0aGUgYnVpbGQgaWYgR05VIG1ha2UgaXMgY2FsbGVkIGRpZmZlcmVudC4gRml4ZXMgYnVnICM1MTA3NDcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFscy5tYWs6CgkgIFVzZSAkKE1BS0UpIGluc3RlYWQgb2YgbWFrZSB0byBmaXggdGhlIGJ1aWxkIGlmIEdOVSBtYWtlIGlzCgkgIGNhbGxlZCBkaWZmZXJlbnQuIEZpeGVzIGJ1ZyAjNTEwNzQ3LgoKMjAwOC0wMS0yMCAxNTowNDozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW4uYzogRml4IG9sZC1zdHlsZSBzdGF0aWMgcGx1Z2lucyB2aWEgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDIGFnYWluLCB3aGljaCBJIGJyb2tlIHR3byBjb21taXRzIGFnbyB3aGVuIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChfZ3N0X3BsdWdpbl9pbml0aWFsaXplKToKCSAgRml4IG9sZC1zdHlsZSBzdGF0aWMgcGx1Z2lucyB2aWEgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDCgkgIGFnYWluLCB3aGljaCBJIGJyb2tlIHR3byBjb21taXRzIGFnbyB3aGVuIGNoYW5naW5nIHRoZSBBUEkKCSAgb2YgZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMoKTogdGhlIGdfbGlzdF9mb3JlYWNoKCkgaW4KCSAgX2dzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljIHN0aWxsIGFzc3VtZWQgdGhlIG9sZCBmdW5jdGlvbgoJICBzaWduYXR1cmUgYW5kIHdvdWxkIHRoZXJlZm9yZSBmYWlsIChyZS1maXhlcyAjNTEwMTg3KS4KCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChfbnVtX3N0YXRpY19wbHVnaW5zKSwgKF9zdGF0aWNfcGx1Z2lucyksCgkgIChfZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMpLCAoZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMpOgoJICBSZXZlcnQgdGhlICh0ZWNobmljYWxseSBjb3JyZWN0KSBjaGFuZ2UgdG8gY2FsbCBnX3RocmVhZF9pbml0KCkgZnJvbQoJICB0aGUgcHJlLW1haW4oKSBjb25zdHJ1Y3Rvci4gVGhpcyB3aWxsIGJyZWFrIHByb2dyYW1zIHdoaWNoIGNhbGwKCSAgZ190aHJlYWRfaW5pdCgpIHdpdGhvdXQgYW4gaWYgKCFnX3RocmVhZF9zdXBwb3J0ZWQoKSkgZ3VhcmQgaW4gdGhlaXIKCSAgbWFpbiBmdW5jdGlvbi4gV2UgY291bGQganVzdCBibGFtZSBpdCBvbiBHTGliIG9yIHRoZSBhcHBsaWNhdGlvbiwgYnV0CgkgIGl0J3MgcHJvYmFibHkgYmVzdCB0byBqdXN0IGF2b2lkIHRoaXMgYWx0b2dldGhlciBhbmQgc2ltcGx5IG5vdCB1c2UKCSAgYW55IEdMaWIgZnVuY3Rpb25zIGhlcmUgYW5kIHVzZSBwbGFpbiBvbGQgbWFsbG9jKCkgd2l0aCBhIHNpbXBsZQoJICBhcnJheSB0byBzdG9yZSB0aGUgcGx1Z2lucyB0byByZWdpc3RlciBsYXRlciB3aGVuIGdzdF9pbml0KCkgaXMKCSAgZmluYWxseSBjYWxsZWQgKHJlLWZpeGVzICM1MTAxODcpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzogKEdTVF9HTlVDX0NPTlNUUlVDVE9SX0RFRklORUQpLAoJICAoR1NUX0dOVUNfQ09OU1RSVUNUT1JfREVGSU5FRCksIChwbHVnaW5faW5pdF9jb3VudGVyKSwKCSAgKHBsdWdpbjFfaW5pdCksIChwbHVnaW4yX2luaXQpLCAocGx1Z2luM19pbml0KSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9wbHVnaW5fc3VpdGUpOgoJICBEdW1iIHVuaXQgdGVzdCB0byBtYWtlIHN1cmUgdGhlIG9sZCBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMgc3RpbGwKCSAgd29ya3MuCgoyMDA4LTAxLTE3IDIyOjIyOjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbi5oOiBSZW1vdmUgZGVwcmVjYXRpb24gZ3VhcmRzIGFyb3VuZCBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uaDogKEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQyk6CgkgIFJlbW92ZSBkZXByZWNhdGlvbiBndWFyZHMgYXJvdW5kIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQy4KCSAgVGhpcyBtYWtlcyBndGstZG9jIGNvbXBsYWluLCBidXQgcmVzdWx0cyBpbiBzbGlnaHRseSBiZXR0ZXIKCSAgY29tcGlsZXIgZXJyb3JzLiBUaGUgb2xkIF9nc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYygpIGlzCgkgIHN0aWxsIGd1YXJkZWQsIHNvIHRoZXJlJ2xsIGJlIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCB0aGF0CgkgIGluc3RlYWQuIEZpeGVzICM1MTAxODcgdG9vLgoKMjAwOC0wMS0xNyAyMjoxNzoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IENoYW5nZSBBUEkgb2YgZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMoKSB0byBub3QgdGFrZSBhIEdzdFBsdWdpbkRlc2MsIGJ1dCByYXRoZXIganVzdCB0YWtlIGFsbCB0aGUgYXJndW1lbnRzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKF9nc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYyksCgkgIChnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYyksIChfZ3N0X3BsdWdpbl9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6IChHc3RQbHVnaW5GaWx0ZXIpOgoJICBDaGFuZ2UgQVBJIG9mIGdzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKCkgdG8gbm90IHRha2UKCSAgYSBHc3RQbHVnaW5EZXNjLCBidXQgcmF0aGVyIGp1c3QgdGFrZSBhbGwgdGhlIGFyZ3VtZW50cwoJICBpbiBhIEdzdFBsdWdpbkRlc2MgZGlyZWN0bHkuIFRoaXMgaXMgbW9yZSBpbnR1aXRpdmUgYW5kCgkgIGF2b2lkcyBjZXJ0YWluIG1pc3Rha2VzIHdoZW4gcG9ydGluZyBjb2RlIGZyb20KCSAgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDIHRvIGdzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKCkuCgkgIEZpeGVzICM1MTAxODcuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICBGaXggdXAgZm9yIGNoYW5nZWQgQVBJLgoKMjAwOC0wMS0xNyAxODo1MDozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2ZhcS9sZWdhbC54bWw6IFVwZGF0ZSBGQVEsIFRvdGVtIGFjdHVhbGx5IGhhcyBhbiBleGNlcHRpb24gdGhlc2UgZGF5cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvbGVnYWwueG1sOgoJICBVcGRhdGUgRkFRLCBUb3RlbSBhY3R1YWxseSBoYXMgYW4gZXhjZXB0aW9uIHRoZXNlIGRheXMuCgoyMDA4LTAxLTE0IDIyOjIwOjQ0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBBZGQgbmV3IEFQSSBkZWNsYXJhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgQVBJIGRlY2xhcmF0aW9ucwoKMjAwOC0wMS0xNCAxMzoxODozNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogU3BlbGxpbmcgZml4ZXMgZm9yIHRoZSBBUEkgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgU3BlbGxpbmcgZml4ZXMgZm9yIHRoZSBBUEkgZG9jcy4KCjIwMDgtMDEtMTQgMTE6NDc6MzIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBBZGQgQVBJIGtleXdvcmQgZm9yIGdzdF91dGlsX2dldF90aW1lc3RhbXAsIGFuZCByZW1vdmUgdGhlIHRhZyBmb3IgR1NUX0dFVF9USU1FU1RNQVAgd2hpY2ggZGlkbid0IHN1cnZpdmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGQgQVBJIGtleXdvcmQgZm9yIGdzdF91dGlsX2dldF90aW1lc3RhbXAsIGFuZCByZW1vdmUgdGhlIHRhZyBmb3IgR1NUX0dFVF9USU1FU1RNQVAgd2hpY2ggZGlkbid0IHN1cnZpdmUuCgoyMDA4LTAxLTE0IDExOjQwOjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRml4IGxvbmcgcHJvcGVydHkgZGVzY3JpcHRpb24gZm9yIFFvUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIEZpeCBsb25nIHByb3BlcnR5IGRlc2NyaXB0aW9uIGZvciBRb1MuCgoyMDA4LTAxLTEyIDIwOjIyOjMwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3QuYzogX2dzdF90cmFjZV9vbiBpcyBhbHJlYWR5IHByb3ZpZGVkIGJ5IGdzdHRyYWNlLmgsIG5vIG5lZWQgdG8gZGVjbGFyZSBpdCBvdXJzZWx2ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgX2dzdF90cmFjZV9vbiBpcyBhbHJlYWR5IHByb3ZpZGVkIGJ5IGdzdHRyYWNlLmgsIG5vIG5lZWQgdG8gZGVjbGFyZQoJICBpdCBvdXJzZWx2ZXMuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkICdidWZmZXJzJywgJ2NoZWNrX2NvbmQnIGFuZCAnY2hlY2tfbXV0ZXgnIGZyb20gbGliZ3N0Y2hlY2sKCSAgYW5kIHJlbW92ZSBzdHJhbmdlIHRjYXNlX2FkZF90ZXN0IHdoaWNoIGlzIG91dHB1dHRpbmcgYSB3YXJuaW5nLgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgUHJvcGVybHkgZGVjbGFyZSAnYnVmZmVycycsICdjaGVja19jb25kJywgJ2NoZWNrX211dGV4JyBleHRlcm4KCSAgYW5kIGRlZmluZSB0aGVtIGluIGdzdGNoZWNrLmMgaW5zdGVhZCBvZiBoYXZpbmcgZXZlcnkgLmMgZmlsZSB3aGNpaAoJICBpbmNsdWRlcyBnc3RjaGVjay5oIGJlIGRlZmluaW5nIGl0cyBvd24gY29weSBhbmQgcmVseWluZyBvbiBzeW1ib2wKCSAgaW50ZXJwb3NpbmcgdG8gbWFycnkgdGhlbSBhbGwsIHdoaWNoIGRvZXNuJ3Qgd29yayBvbiBTb2xhcmlzLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIERvbid0IGRlZmluZSAnYnVmZmVycycgbG9jYWxseSwgaXQgY29tZXMgZnJvbSBsaWJnc3RjaGVjay4KCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChzZW5kX2J1ZmZlcik6CgkgIEZpeCB0eXBlIG9mIHZhcmlhYmxlIChHc3RGbG93UmV0dXJuLCBub3QgR3N0U3RhdGVDaGFuZ2VSZXR1cm4pCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgYSBidW5jaCBvZiBjYXN0cyB0byBtYWtlIHZhcmlvdXMgY29uc3RhbnRzIGZpdCB0aGUgdHlwZXMKCSAgdGhleSdyZSBiZWluZyBhc3NpZ25lZCB0by4KCjIwMDgtMDEtMTAgMjE6MDY6NTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RjaGlsZHByb3h5LmM6IEltcHJvdmUgZG9jcyBhbmQgYWRkIHNvbWUgaWRlYXMgZm9yIG1ha2luZyB0aGlzIG1vcmUgZ2VuZXJhbC1wdXJwb3NlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBJbXByb3ZlIGRvY3MgYW5kIGFkZCBzb21lIGlkZWFzIGZvciBtYWtpbmcgdGhpcyBtb3JlIGdlbmVyYWwtcHVycG9zZS4KCjIwMDgtMDEtMTAgMTU6NTU6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0X3ByaXZhdGUuaDogQWRkIEdTVF9DQVRfVFlQRVMsIGZvciBjb25zaXN0ZW5jeSwgYW5kIHNvIHRoYXQgdGhlIG90aGVyIGRlYnVnIGNhdGVnb3JpZXMgZG9uJ3QgbWFrZSBmdW4gb2YgaXQuIFMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6IChHU1RfQ0FUX1RZUEVTKToKCSAgQWRkIEdTVF9DQVRfVFlQRVMsIGZvciBjb25zaXN0ZW5jeSwgYW5kIHNvIHRoYXQgdGhlIG90aGVyCgkgIGRlYnVnIGNhdGVnb3JpZXMgZG9uJ3QgbWFrZSBmdW4gb2YgaXQuIFNwb3R0ZWQgYnkgU2F1ciBvbiBJUkMuCgoyMDA4LTAxLTEwIDEzOjAzOjM1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvTWFrZWZpbGUuYW06IE1vdmUgdHlwZXMuaCBmcm9tIEVYVFJBX0RJU1QgdG8gbm9pbnN0X0hFQURFUlMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgTW92ZSB0eXBlcy5oIGZyb20gRVhUUkFfRElTVCB0byBub2luc3RfSEVBREVSUy4KCjIwMDgtMDEtMTAgMTI6MTQ6MDQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGF1dG9nZW4uc2g6IEFkZCAtV25vLXBvcnRhYmlsaXR5IHRvIHRoZSBhdXRvbWFrZSBwYXJhbWV0ZXJzIHRvIHN0b3Agd2FybmluZ3MgYWJvdXQgR05VIG1ha2UgZXh0ZW5zaW9ucyBiZWluZyB1c2VkLiBXZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBhdXRvZ2VuLnNoOgoJICBBZGQgLVduby1wb3J0YWJpbGl0eSB0byB0aGUgYXV0b21ha2UgcGFyYW1ldGVycyB0byBzdG9wIHdhcm5pbmdzCgkgIGFib3V0IEdOVSBtYWtlIGV4dGVuc2lvbnMgYmVpbmcgdXNlZC4gV2UgcmVxdWlyZSBHTlUgbWFrZSBpbiBhbG1vc3QKCSAgZXZlcnkgTWFrZWZpbGUgYW55d2F5LgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgVXNlIEFNX1BST0dfQ0NfQ19PIGFzIGEgY29tcGlsZXIgdGhhdCBhY2NlcHRzIGJvdGggLWMgYW5kIC1vCgkgIGF0IHRoZSBzYW1lIHRpbWUgaXMgcmVxdWlyZWQgZm9yIHBlciB0YXJnZXQgZmxhZ3MuCgoyMDA4LTAxLTA5IDE4OjIzOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMoKSBhbmQgZGVwcmVjYXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChfZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMpLAoJICAoZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMpLCAoX2dzdF9wbHVnaW5faW5pdGlhbGl6ZSksCgkgIChnc3RfcGx1Z2luX3JlZ2lzdGVyX2Z1bmMpOgoJICAqIGdzdC9nc3RwbHVnaW4uaDogKEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQyk6CgkgIEFQSTogYWRkIGdzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKCkgYW5kIGRlcHJlY2F0ZQoJICBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMsIHNpbmNlIGl0J3Mgbm90IHBvcnRhYmxlCgkgICgjNDk4OTI0KS4KCSAgQWxzbywgaW4gX2dzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKCksIG1ha2Ugc3VyZSB0byBjYWxsCgkgIGdfdGhyZWFkX2luaXQoKSBiZWZvcmUgY2FsbGluZyBHTGliIGZ1bmN0aW9ucyBzdWNoIGFzCgkgIGdfbGlzdF9hcHBlbmQoKSBpZiB3ZSdyZSBub3QgaW5pdGlhbGlzZWQgeWV0LCBzaW5jZSB0aGF0CgkgIG1heSBsZWFkIHRvIHJhbmRvbSBjcmFzaGVzIHdpdGggb2xkZXIgR1NsaWNlL0dMaWIgdmVyc2lvbnMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICBBZGFwdCB1bml0IHRlc3QgdG8gYWJvdmUgY2hhbmdlcy4KCjIwMDgtMDEtMDkgMTY6MzY6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBZZXQgYW5vdGhlciBncmF0dWl0b3VzIEdTdHJpbmcgbWljcm8tb3B0aW1pc2F0aW9uOiBhZGQgYSAocHJpdmF0ZSkgZnVuY3Rpb24gdGhhdCBzZXJpYWxpc2VzIGEgc3RydWN0dXJlIGFwcGVuZGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6IChTVFJVQ1RVUkVfRVNUSU1BVEVEX1NUUklOR19MRU4pOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc190b19zdHJpbmcpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9BU0NJSV9JU19TVFJJTkcpLAoJICAocHJpdl9nc3Rfc3RydWN0dXJlX2FwcGVuZF90b19nc3RyaW5nKSwgKGdzdF9zdHJ1Y3R1cmVfdG9fc3RyaW5nKToKCSAgWWV0IGFub3RoZXIgZ3JhdHVpdG91cyBHU3RyaW5nIG1pY3JvLW9wdGltaXNhdGlvbjogYWRkIGEgKHByaXZhdGUpCgkgIGZ1bmN0aW9uIHRoYXQgc2VyaWFsaXNlcyBhIHN0cnVjdHVyZSBhcHBlbmRpbmcgdG8gYW4gZXhpc3RpbmcKCSAgR1N0cmluZywgc28gdGhhdCB3aGVuIHdlIHNlcmlhbGlzZSBjYXBzIHdlIGRvbid0IG5lZWQgdG8gYWxsb2MrZnJlZQoJICBhIHRocm93YXdheSBHU3RyaW5nIGZvciBlYWNoIHN0cnVjdHVyZSAoZWFjaCBvZiB3aGljaCBhbHNvIGVudGFpbGluZwoJICBtdWx0aXBsZSByZWFsbG9jcyBvbiB0aGUgd2F5KTsgYWxzbyB1c2UgZ19zdHJpbmdfc2l6ZWRfbmV3KCkgaW4KCSAgdmFyaW91cyBwbGFjZXMgd2l0aCBhbiBhcHByb3hpbWF0ZSBzdHJpbmcgbGVuZ3RoIHRvIGF2b2lkIHJlYWxsb2NzCgkgIHdpdGhpbiBHU3RyaW5nLiBTZWUgIzUwMDE0My4KCjIwMDgtMDEtMDkgMTU6MDU6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IEFsd2F5cyBjaGVjayBVVEYtOCBjb25mb3JtYW5jZSBvZiBzdHJ1Y3R1cmUgc3RyaW5ncyBhbmQgbm90IG9ubHkgaWYgdGhlIGRlYnVnZ2luZyBzeXN0ZW0gaXMgZW5hYmwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9pZF9zZXRfdmFsdWUpOgoJICBBbHdheXMgY2hlY2sgVVRGLTggY29uZm9ybWFuY2Ugb2Ygc3RydWN0dXJlIHN0cmluZ3MgYW5kIG5vdCBvbmx5CgkgIGlmIHRoZSBkZWJ1Z2dpbmcgc3lzdGVtIGlzIGVuYWJsZWQ7IHJlYXNvbmluZzogdGhlIGJlaGF2aW91ciBvZgoJICB0aGUgYWN0dWFsIGNvZGUgc2hvdWxkbid0IHJlYWxseSBjaGFuZ2UgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlCgkgIGRlYnVnZ2luZyBzeXN0ZW0gaXMgZW5hYmxlZCBvciBub3QgKCM1MDgyOTEpLgoKMjAwOC0wMS0wOSAxMzo0ODowMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTWFrZWZpbGUuYW06IFJlbW92ZSBvbGQgY292ZXJhZ2UgdGFyZ2V0IGluIGZhdm91ciBvZiAibWFrZSBsY292Ii4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgIFJlbW92ZSBvbGQgY292ZXJhZ2UgdGFyZ2V0IGluIGZhdm91ciBvZiAibWFrZSBsY292Ii4KCjIwMDgtMDEtMDkgMTI6MjU6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogVGhlIHN0YXJ0IHNlZ21lbnQgZm9yIHJldmVyc2UgcGxheWJhY2sgZ29lcyBmcm9tIHN0YXJ0IHRvIGxhc3Rfc3RvcC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKToKCSAgVGhlIHN0YXJ0IHNlZ21lbnQgZm9yIHJldmVyc2UgcGxheWJhY2sgZ29lcyBmcm9tIHN0YXJ0IHRvIGxhc3Rfc3RvcC4KCjIwMDgtMDEtMDkgMTI6MjI6MjIgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgZ3N0L2dzdGNsb2NrLmg6IENhc3QgdGhlIHJlc3VsdHMgZnJvbSB0aGUgdGltZXZhbC9zcGVjX3RvX3RpbWUgbWFjcm9zIHRvIHdoYXQgdGhlIGRvY3Mgc2F5IGl0IGNhc3RzIHRvLCBhIEdzdENsb2NrVGltLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXhpcyBjb20+CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIENhc3QgdGhlIHJlc3VsdHMgZnJvbSB0aGUgdGltZXZhbC9zcGVjX3RvX3RpbWUgbWFjcm9zIHRvIHdoYXQgdGhlCgkgIGRvY3Mgc2F5IGl0IGNhc3RzIHRvLCBhIEdzdENsb2NrVGltZS4gZml4ZXMgIzUwODE3NS4KCjIwMDgtMDEtMDkgMTI6MTk6MzEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IFVwZGF0ZSBzb21lIGNvbW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIFVwZGF0ZSBzb21lIGNvbW1lbnRzLgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIEltcHJvdmUgcHJpbnRpbmcgb2YgZmxhZ3MuCgoyMDA4LTAxLTA4IDIxOjEzOjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFByaW50IGVsZW1lbnQgbmFtZSB3aXRoIGdfd2FybmluZygpIGlmIHRoZXJlJ3MgYSBwcm9ibGVtIHdpdGggdGhlIHVuaXQgc2l6ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX3NpemUpOgoJICBQcmludCBlbGVtZW50IG5hbWUgd2l0aCBnX3dhcm5pbmcoKSBpZiB0aGVyZSdzIGEgcHJvYmxlbQoJICB3aXRoIHRoZSB1bml0IHNpemUuCgoyMDA4LTAxLTA4IDAyOjA3OjM4ICswMDAwICBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuLmxlc3BpYXVAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvOiBGaXggZW1wdHkgcHJvdG90eXBlcy4gIEZpeGVzIGJ1ZyAjNTA3OTU3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IERhbWllbiBMZXNwaWF1IDxkYW1pZW4ubGVzcGlhdUBnbWFpbC5jb20+CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sc291cmNlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgRml4IGVtcHR5IHByb3RvdHlwZXMuICBGaXhlcyBidWcgIzUwNzk1Ny4KCjIwMDgtMDEtMDggMDI6MDE6MzQgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZG9jcy9mYXEvZGVwZW5kZW5jaWVzLnhtbDogRml4IHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2RlcGVuZGVuY2llcy54bWw6IEZpeCB0eXBvLgoKMjAwOC0wMS0wNyAxMToyMzowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBEb24ndCB1cGRhdGUgdGhlIGxhc3Rfc3RvcCBwb3NpdGlvbiBpbiBkb19zZWVrLCB0aGF0J3MgdGhlIHBvc2l0aW9uIHdlIGRpZCBhIHNlZWsgdG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfZG9fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIERvbid0IHVwZGF0ZSB0aGUgbGFzdF9zdG9wIHBvc2l0aW9uIGluIGRvX3NlZWssIHRoYXQncyB0aGUgcG9zaXRpb24gd2UKCSAgZGlkIGEgc2VlayB0by4KCSAgUmVhZCBiYWNrd2FyZHMgd2hlbiB3ZSBoYXZlIGEgbmVnYXRpdmUgcmF0ZS4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IChldmVudF9mdW5jKSwgKHdhaXRfZW9zKSwKCSAgKHNldHVwX2ZpbGVzcmMpLCAoY2xlYW51cF9maWxlc3JjKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGZpbGVzcmNfc3VpdGUpOgoJICBBZGQgY2hlY2sgZm9yIHJldmVyc2UgcmVhZGluZy4KCjIwMDgtMDEtMDcgMDk6NDc6NDkgKzAwMDAgIEFsZXhpcyBCYWxsaWVyIDxhYmFsbGllckBnZW50b28ub3JnPgoKCSAgdGVzdHMvY2hlY2svOiBEZWNpZGUgd2hpY2ggaGVhZGVyIHRvIGluY2x1ZGUgYmFzZWQgb24gdGhlIHVzZXJsYW5kIEFCSSB0YXJnZXQgYW5kIG5vdCB0aGUga2VybmVsL2NwdS4gRml4IHVwIHN0cnVjdHVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQWxleGlzIEJhbGxpZXIgPGFiYWxsaWVyIGF0IGdlbnRvbyBvcmc+CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGM2NC5oOgoJICBEZWNpZGUgd2hpY2ggaGVhZGVyIHRvIGluY2x1ZGUgYmFzZWQgb24gdGhlIHVzZXJsYW5kIEFCSSB0YXJnZXQKCSAgYW5kIG5vdCB0aGUga2VybmVsL2NwdS4gRml4IHVwIHN0cnVjdHVyZSBzaXplcyBvZiBwcGM2NCBoZWFkZXIKCSAgZm9yIDY0LWJpdCB1c2VybGFuZCAoIzUwMzU5MCkuICBNaWdodCBuZWVkIHNvbWV0aGluZyBzaW1pbGFyIGZvcgoJICB4ODYgdG9vLgoKMjAwOC0wMS0wNSAxMzo0NToyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IExvZyB0aGUgcmVhc29uIHdoeSBmb3BlbiBmYWlscyBpbiBhZGRpdGlvbiB0byB0aGUgZmFjdCB0aGF0IGl0IGZhaWxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzogKF9nc3RfZGVidWdfYmluX3RvX2RvdF9maWxlKToKCSAgTG9nIHRoZSByZWFzb24gd2h5IGZvcGVuIGZhaWxzIGluIGFkZGl0aW9uIHRvIHRoZSBmYWN0IHRoYXQgaXQgZmFpbGVkLgoKMjAwOC0wMS0wNCAxODo0NDowMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3BhcnNlL3BhcnNlLmw6IFVzZSAiJW9wdGlvbiBuZXZlci1pbnRlcmFjdGl2ZSIgdG8gcHJldmVudCB1c2VsZXNzIGNhbGxzIHRvIGlzYXR0eSgpIG9uIGV2ZXJ5IGlucHV0IHdoZW4gcGFyc2luZy4gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9wYXJzZS5sOgoJICBVc2UgIiVvcHRpb24gbmV2ZXItaW50ZXJhY3RpdmUiIHRvIHByZXZlbnQgdXNlbGVzcyBjYWxscyB0byBpc2F0dHkoKQoJICBvbiBldmVyeSBpbnB1dCB3aGVuIHBhcnNpbmcuIEFsc28gdXNlICIlb3B0aW9uIG5vaW5wdXQiIHRvIG5vdCBkZWZpbmUKCSAgdGhlIHN0YXRpYyBpbnB1dC95eWlucHV0IGZ1bmN0aW9ucyB3aGljaCB3ZSBkb24ndCB1c2UgYW55d2F5LiBUaGlzCgkgIHJlbW92ZXMgYSBjb21waWxlciB3YXJuaW5nIHdpdGggZ2NjIDQuMyBhbmQgc2F2ZXMgc29tZSBieXRlcyBpbiB0aGUKCSAgbGlicmFyeS4KCSAgKiBnc3QvcGFyc2UvbGV4Ll9nc3RfcGFyc2VfeXkucHJlLmM6CgkgIFJlZ2VuZXJhdGVkIGZvciB0aGUgYWJvdmUgY2hhbmdlLgoKMjAwOC0wMS0wNCAxODozOToxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRG9uJ3QgY3Jhc2ggd2hlbiB0cnlpbmcgdG8gZml4YXRlIGFuZCBlbXB0eSBsaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChmaXhhdGVfdmFsdWUpOgoJICBEb24ndCBjcmFzaCB3aGVuIHRyeWluZyB0byBmaXhhdGUgYW5kIGVtcHR5IGxpc3QuCgkgIEZpeGVzICM1MDY2NDMuCgoyMDA4LTAxLTAzIDA5OjQzOjQxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IENsYXJpZnkgdGhlIGNvbW1lbnRzIHRvIG1ha2UgdGhlIHVzYWdlIG9mIHRoaXMgc2NyaXB0IGFuZCB3aGF0IGl0IGRvZXMgZWFzaWVyIHRvIHVuZGVyc3RhbmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgQ2xhcmlmeSB0aGUgY29tbWVudHMgdG8gbWFrZSB0aGUgdXNhZ2Ugb2YgdGhpcyBzY3JpcHQgYW5kIHdoYXQgaXQKCSAgZG9lcyBlYXNpZXIgdG8gdW5kZXJzdGFuZC4KCjIwMDgtMDEtMDEgMTc6MTA6MzIgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weTogQWRkIG1vcmUgb3B0aW9ucyB0byBnc3QtcGxvdC10aW1lbGluZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weToKCSAgQWRkIG1vcmUgb3B0aW9ucyB0byBnc3QtcGxvdC10aW1lbGluZQoKMjAwNy0xMi0zMSAxOToxMTozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDogU29tZSBtb3JlIGluZm8gb24gaG93IHRoZSBzdHJlYW1fdGltZSBpbiBHc3RCYXNlU2luayBpcyBkb25lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIFNvbWUgbW9yZSBpbmZvIG9uIGhvdyB0aGUgc3RyZWFtX3RpbWUgaW4gR3N0QmFzZVNpbmsgaXMgZG9uZS4KCjIwMDctMTItMzAgMTM6MzY6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiByZW1vdmUgYm9ndXMgY2hhbmdlbG9nIGVudHJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogcmVtb3ZlIGJvZ3VzIGNoYW5nZWxvZyBlbnRyeQoKMjAwNy0xMi0zMCAxMzozMToxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogUHV0IGJhY2sgdGhlIHRjYXNlX3NldF90aW1lb3V0KCksIGFwcGFyZW50bHkgaXQncyBuZWVkZWQgYWZ0ZXIgYWxsOyBmaXggaXQgdXAgaW4gYSB3YXkgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChnc3Rfc2lua3Nfc3VpdGUpOgoJICBQdXQgYmFjayB0aGUgdGNhc2Vfc2V0X3RpbWVvdXQoKSwgYXBwYXJlbnRseSBpdCdzIG5lZWRlZCBhZnRlcgoJICBhbGw7IGZpeCBpdCB1cCBpbiBhIHdheSB0aGF0IG1ha2VzIHRoaW5ncyB3b3JrIHdpdGggdmFsZ3JpbmQgdG9vLgoKMjAwNy0xMi0zMCAxMjoyMjo0OSArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IGFkZCB3YXJuaW5nIHdoZW4gZmFpbGVkIHRvIG9wZW4gZmlsZSBmb3Igd3JpdGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBhZGQgd2FybmluZyB3aGVuIGZhaWxlZCB0byBvcGVuIGZpbGUgZm9yIHdyaXRpbmcKCjIwMDctMTItMjggMTQ6MzQ6MzQgKzAwMDAgIExhdXJlbnQgR2xheWFsIDxzcGdsZWdsZUB5YWhvby5mcj4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBPcHRpbWlzYXRpb246IGJhaWwgb3V0IG9mIHRoZSBsb29wIGFzIGVhcmx5IGFzIHBvc3NpYmxlICgjNTAwMTQzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBMYXVyZW50IEdsYXlhbCAgPHNwZ2xlZ2xlIHlhaG9vIGZyPgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2lzX2ZpeGVkKToKCSAgT3B0aW1pc2F0aW9uOiBiYWlsIG91dCBvZiB0aGUgbG9vcCBhcyBlYXJseSBhcyBwb3NzaWJsZSAoIzUwMDE0MykuCgoyMDA3LTEyLTI4IDE0OjE1OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogQnVuY2ggb2YgZ3JhdHVpdG91cyBuYW5vLW9wdGltaXNhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc190b19zdHJpbmcpOgoJICAqIGdzdC9nc3RpbmZvLmM6IChnc3RfZGVidWdfY29uc3RydWN0X3Rlcm1fY29sb3IpOgoJICAqIGdzdC9nc3RwYXJzZS5jOiAoZ3N0X3BhcnNlX2xhdW5jaHYpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfZHVtcF9tZW0pOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9hbnlfbGlzdCksCgkgIChnc3RfdmFsdWVfdHJhbnNmb3JtX2FueV9saXN0X3N0cmluZyk6CgkgIEJ1bmNoIG9mIGdyYXR1aXRvdXMgbmFuby1vcHRpbWlzYXRpb25zLgoKMjAwNy0xMi0yOCAxMzo1NzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogRml4IGxlYWsgaW4gdW5pdCB0ZXN0IChidXMgc3luYyBoYW5kbGVyIG11c3QgdW5yZWYgdGhlIG1lc3NhZ2UgaWYgaXQgcmV0dXJucyBHU1RfQlVTX0RSTy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChhc3luY19kb25lX2Z1bmMpLAoJICAoYXN5bmNfZG9uZV9lb3NfZnVuYyk6CgkgIEZpeCBsZWFrIGluIHVuaXQgdGVzdCAoYnVzIHN5bmMgaGFuZGxlciBtdXN0IHVucmVmIHRoZSBtZXNzYWdlCgkgIGlmIGl0IHJldHVybnMgR1NUX0JVU19EUk9QKS4gRG9uJ3QgZmlkZGxlIHdpdGggdGhlIGRlZmF1bHQgdGVzdAoJICB0aW1lb3V0LCB0aGlzIGlzIHNtYWxsZXIgdGhhbiB0aGUgY3VycmVudCBwcmVjb25maWd1cmVkIHZhbHVlCgkgIHZpYSBDS19ERUZBVUxUX1RJTUVPVVQsIGFuZCBhbHNvIGJyZWFrcyB0aGluZ3Mgd2l0aCB2YWxncmluZAoJICBiZWNhdXNlIGl0IG92ZXJyaWRlcyB0aGUgdmFsdWUgc3BlY2lmaWVkIGluIENLX0RFRkFVTFRfVElNRU9VVC4KCjIwMDctMTItMjQgMTk6MjE6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEFkZCBidWcgdGhhdCB3YXMgZml4ZWQgd2l0aCBsYXN0IGNvbW1pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZCBidWcgdGhhdCB3YXMgZml4ZWQgd2l0aCBsYXN0IGNvbW1pdC4KCjIwMDctMTItMjQgMTk6MTE6MjkgKzAwMDAgIExhdXJlbnQgR2xheWFsIDxzcGdsZWdsZUB5YWhvby5mcj4KCgkgIGNvbmZpZ3VyZS5hYzogQ2hlY2sgZm9yIHN0ZGlvX2V4dC5oIGZvciB0aGUgZmlsZXNpbmsgY2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIFBhdGNoIGJ5OiBMYXVyZW50IEdsYXlhbCA8c3BnbGVnbGUgYXQgeWFob28gZG90IGZyPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQ2hlY2sgZm9yIHN0ZGlvX2V4dC5oIGZvciB0aGUgZmlsZXNpbmsgY2hhbmdlcy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChidWZmZXJfbW9kZV9nZXRfdHlwZSksCgkgIChnc3RfZmlsZV9zaW5rX2NsYXNzX2luaXQpLCAoZ3N0X2ZpbGVfc2lua19pbml0KSwKCSAgKGdzdF9maWxlX3NpbmtfZGlzcG9zZSksIChnc3RfZmlsZV9zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmlsZV9zaW5rX2dldF9wcm9wZXJ0eSksIChnc3RfZmlsZV9zaW5rX29wZW5fZmlsZSksCgkgIChnc3RfZmlsZV9zaW5rX2Nsb3NlX2ZpbGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSAgQWRkIHR3byBwcm9wZXJ0aWVzIHRvIGNvbnRyb2wgdGhlIGJ1ZmZlcmluZyBtb2RlIGFuZCBzaXplLgoJICBBUEk6IEdzdEZpbGVTaW5rOjpidWZmZXItbW9kZQoJICBBUEk6IEdzdEZpbGVTaW5rOjpidWZmZXItc2l6ZQoKMjAwNy0xMi0yNCAxNDozNToyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiBBZGQgc29tZSBtb3JlIGRvY3MgdG8gZXhwbGFpbiB3aHkgYSBGSVhNRSB3YXMgd3JvbmdseSBhZGRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfaml0dGVyX3VubG9ja2VkKToKCSAgQWRkIHNvbWUgbW9yZSBkb2NzIHRvIGV4cGxhaW4gd2h5IGEgRklYTUUgd2FzIHdyb25nbHkgYWRkZWQuCgoyMDA3LTEyLTIyIDEyOjQ4OjI2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IEZpeCB0eXBvIGluIHRoZSBnc3Rfb2JqZWN0X3tyZWYsdW5yZWZ9IGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzoKCSAgRml4IHR5cG8gaW4gdGhlIGdzdF9vYmplY3Rfe3JlZix1bnJlZn0gZG9jdW1lbnRhdGlvbi4KCjIwMDctMTItMjEgMjE6MTc6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay86IERvbid0IHVzZSBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMsIGl0IGlzIG5vdCBwb3J0YWJsZSBhbmQgaXMgZ29pbmcgdG8gYmUgZGVwcmVjYXRlZCAoc2VlICM0OTg5MjQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBEb24ndCB1c2UgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDLCBpdCBpcyBub3QgcG9ydGFibGUgYW5kIGlzCgkgIGdvaW5nIHRvIGJlIGRlcHJlY2F0ZWQgKHNlZSAjNDk4OTI0KS4KCjIwMDctMTItMjEgMjA6NTg6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dHlwZWZpbmQuYzogTWFrZSBnc3RfdHlwZV9maW5kX3JlZ2lzdGVyIHdvcmsgZm9yIHN0YXRpYyB0eXBlZmluZCBmdW5jdGlvbnMsIGllLiBhbGxvdyBwYXNzaW5nIHBsdWdpbiA9PSBOVUxMICguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6IChnc3RfdHlwZV9maW5kX3JlZ2lzdGVyKToKCSAgTWFrZSBnc3RfdHlwZV9maW5kX3JlZ2lzdGVyIHdvcmsgZm9yIHN0YXRpYyB0eXBlZmluZCBmdW5jdGlvbnMsCgkgIGllLiBhbGxvdyBwYXNzaW5nIHBsdWdpbiA9PSBOVUxMIChwcmVyZXF1aXNpdGUgZm9yICM0OTg5MjQpLgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfcmVnaXN0ZXIpOgoJICBTbWFsbCBkb2NzIGFkZGl0aW9uLgoKMjAwNy0xMi0yMSAxMzo1NDowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogUmVhbGx5IHVubGluayB0aGUgcGVlciBwYWQgaW5zdGVhZCBvZiBzZXR0aW5nIHRoZSBwZWVyIHBvaW50ZXIgdG8gTlVMTCB3aGVuIHdlIGRpc3Bvc2UgdGhlIHBhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9kaXNwb3NlKToKCSAgUmVhbGx5IHVubGluayB0aGUgcGVlciBwYWQgaW5zdGVhZCBvZiBzZXR0aW5nIHRoZSBwZWVyIHBvaW50ZXIgdG8gTlVMTAoJICB3aGVuIHdlIGRpc3Bvc2UgdGhlIHBhZC4KCSAgVGhpcyBjb3JyZWN0bHkgY2FsbHMgdGhlIHVubGluayBmdW5jdGlvbnMgYW5kIG1ha2VzIHN1cmUgdGhhdCB0aGUgcGVlcgoJICBkb2VzIG5vdCBoYXZlIGEgaGFuZGxlIHRvIGludmFsaWQgbWVtb3J5LiBTZWUgIzUwNDY3MS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfcGFkX3N1aXRlKToKCSAgQWRkIHRlc3RzdWl0ZSBmb3IgYWJvdmUgY2FzZS4KCjIwMDctMTItMjAgMDk6MjA6MjcgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDogRml4IGRldGVjdGlvbiBvZiB0aGUgY2hlY2sgdmVyc2lvbiB3ZSdyZSBjb21waWxpbmcgYWdhaW5zdCAod291bGQgb3RoZXJ3aXNlIGJyZWFrIGlmIGNoZWNrLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXhpcyBjb20+CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgRml4IGRldGVjdGlvbiBvZiB0aGUgY2hlY2sgdmVyc2lvbiB3ZSdyZSBjb21waWxpbmcgYWdhaW5zdCAod291bGQKCSAgb3RoZXJ3aXNlIGJyZWFrIGlmIGNoZWNrIGdvZXMgdjAuMTAuMCk7IGNvcnJlY3RseSByZXBvcnQgdGhlCgkgIG5hbWUgb2YgdGhlIGZhaWxlZCB0ZXN0IGFnYWluIGluIGNhc2Ugb2YgZmFpbHVyZSwgaW5zdGVhZCBvZgoJICBqdXN0ICd0ZicgKGZpeGVzICM1MDQ0OTkpLgoKMjAwNy0xMi0xOSAxNzo0OTozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBBbGxvdyBzZW5kaW5nIEVPUyB0byB0aGUgc291cmNlIHRvIG1ha2UgaXQgc2VuZCBvdXQgYW4gRU9TIGV2ZW50IGZyb20gdGhlIHN0cmVhbWluZyB0aHJlYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfcGFkX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfc2V0X2ZsdXNoaW5nKSwKCSAgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBBbGxvdyBzZW5kaW5nIEVPUyB0byB0aGUgc291cmNlIHRvIG1ha2UgaXQgc2VuZCBvdXQgYW4gRU9TIGV2ZW50IGZyb20KCSAgdGhlIHN0cmVhbWluZyB0aHJlYWQuCgkgIFVwZGF0ZSBkb2NzIGFuZCBkZXByZWNhdGUgdGhlIG9sZCBOVUxML1JFQURZIHNodXRkb3duIG1ldGhvZC4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9iYXNlc3JjX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgY29udHJvbGxlZCBzaHV0ZG93bi4KCjIwMDctMTItMTkgMTI6NDg6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6IFNtYWxsIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSAgU21hbGwgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLAoJICAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnRfZnVsbCksIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksCgkgIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpOgoJICBUaGUgc2VlayBmb3JtYXQgY2FuIGJlIGRpZmZlcmVudCBmcm9tIHRoZSBzZWdtZW50IGZvcm1hdCB3aGVuIHRoZSBzdGFydAoJICBhbmQgc3RvcCB2YWx1ZXMgYXJlIG5vdCB0byBiZSB1cGRhdGVkLCB3aGVuIHdlIG9ubHkgZG8gYSByYXRlIGNoYW5nZSBmb3IKCSAgZXhhbXBsZS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3NlZ21lbnRfc3VpdGUpOgoJICBBZGQgYSB0ZXN0Y2FzZSBmb3IgdGhlIHJhdGUtb25seSBzZWVrcywgY2hlY2tpbmcgdGhhdCB0aGUgZm9ybWF0IGlzCgkgIGNvcnJlY3RseSBpZ25vcmVkIHdoZW4gc3RhcnQgYW5kIHN0b3AgYXJlIG5vdCB1cGRhdGVkLgoKMjAwNy0xMi0xOCAxMzozODozMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeSwgZ3N0ZW51bXR5cGVzLmMgY2hhbmdlcyB3ZXJlIG5vdCBjb21taXR0ZWQgYmVjYXVzZSB0aGVyZSB3ZXJlIG5vbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ2hhbmdlTG9nIHN1cmdlcnksIGdzdGVudW10eXBlcy5jIGNoYW5nZXMgd2VyZSBub3QgY29tbWl0dGVkIGJlY2F1c2UgdGhlcmUgd2VyZSBub25lCgoyMDA3LTEyLTE4IDEzOjE4OjM1ICswMDAwICBNYXR0aGlhcyBCb2x0ZSA8cGhvdG9uQG1haWwudXBiLmRlPgoKCSAgd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOiBTb21lIGluZGVudGlvbiBmaXhlcyBieSBnc3QtaW5kZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6IChyZWdpc3Rlcl9nc3RfYnVmZmVyX2ZsYWcpLAoJICAocmVnaXN0ZXJfZ3N0X2J1ZmZlcl9jb3B5X2ZsYWdzKSwgKHJlZ2lzdGVyX2dzdF9jbG9ja19mbGFncyksCgkgIChyZWdpc3Rlcl9nc3RfZGVidWdfZ3JhcGhfZGV0YWlscyksCgkgIChyZWdpc3Rlcl9nc3Rfc3RhdGVfY2hhbmdlX3JldHVybiksIChyZWdpc3Rlcl9nc3Rfc3RhdGVfY2hhbmdlKSwKCSAgKHJlZ2lzdGVyX2dzdF9lbGVtZW50X2ZsYWdzKSwgKHJlZ2lzdGVyX2dzdF9jb3JlX2Vycm9yKSwKCSAgKHJlZ2lzdGVyX2dzdF9saWJyYXJ5X2Vycm9yKSwgKHJlZ2lzdGVyX2dzdF9yZXNvdXJjZV9lcnJvciksCgkgIChyZWdpc3Rlcl9nc3Rfc3RyZWFtX2Vycm9yKSwgKHJlZ2lzdGVyX2dzdF9ldmVudF90eXBlX2ZsYWdzKSwKCSAgKHJlZ2lzdGVyX2dzdF9ldmVudF90eXBlKSwgKHJlZ2lzdGVyX2dzdF9pbmRleF9lbnRyeV90eXBlKSwKCSAgKHJlZ2lzdGVyX2dzdF9hc3NvY19mbGFncyksIChyZWdpc3Rlcl9nc3RfbWVzc2FnZV90eXBlKSwKCSAgKHJlZ2lzdGVyX2dzdF9taW5pX29iamVjdF9mbGFncyksIChyZWdpc3Rlcl9nc3RfcGFkX2xpbmtfcmV0dXJuKSwKCSAgKHJlZ2lzdGVyX2dzdF9mbG93X3JldHVybiksIChyZWdpc3Rlcl9nc3RfcGFkX3RlbXBsYXRlX2ZsYWdzKSwKCSAgKHJlZ2lzdGVyX2dzdF9waXBlbGluZV9mbGFncyksIChyZWdpc3Rlcl9nc3RfcGx1Z2luX2Vycm9yKSwKCSAgKHJlZ2lzdGVyX2dzdF90YWdfbWVyZ2VfbW9kZSksIChyZWdpc3Rlcl9nc3RfYWxsb2NfdHJhY2VfZmxhZ3MpLAoJICAocmVnaXN0ZXJfZ3N0X3R5cGVfZmluZF9wcm9iYWJpbGl0eSksIChyZWdpc3Rlcl9nc3RfcGFyc2VfZXJyb3IpOgoJICBTb21lIGluZGVudGlvbiBmaXhlcyBieSBnc3QtaW5kZW50LgoJICBQYXRjaCBieTogTWF0dGhpYXMgQm9sdGUgPHBob3RvbiBhdCBtYWlsIGRvdCB1cGIgZG90IGRlPgoJICAqIHdpbjMyL3ZzOC9ncmFtbWFyLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0Y29udHJvbGxlci52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdHJlYW1lci52Y3Byb2o6CgkgIEZpeCBjb21waWxhdGlvbiB3aXRoIFZTOCBhbmQgaW5jbHVkZSBzb21lIG1pc3NpbmcgZmlsZXMuCgoyMDA3LTEyLTE4IDEyOjAzOjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogU21hbGwgZG9jcyBhZGRpdGlvbjogbWVudGlvbiB0aGF0IHRoZSBzdHJpbmdzIHJldHVybmVkIGJ5IGdzdF90YWdfbGlzdF9nZXRfc3RyaW5nKigpIGFyZSBpbiBVVEYtOCBlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIFNtYWxsIGRvY3MgYWRkaXRpb246IG1lbnRpb24gdGhhdCB0aGUgc3RyaW5ncyByZXR1cm5lZCBieQoJICBnc3RfdGFnX2xpc3RfZ2V0X3N0cmluZyooKSBhcmUgaW4gVVRGLTggZW5jb2RpbmcuCgoyMDA3LTEyLTE3IDE5OjU5OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTWFrZWZpbGUuYW06IFRoZSBjaGVjay1leHBvcnRzIHN0dWZmIG1vdmVkIHRvIGNvbW1vbi93aW4zMi5tYWssIHNvIGluY2x1ZGUgdGhhdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgIFRoZSBjaGVjay1leHBvcnRzIHN0dWZmIG1vdmVkIHRvIGNvbW1vbi93aW4zMi5tYWssIHNvIGluY2x1ZGUgdGhhdC4KCjIwMDctMTItMTcgMTY6Mzg6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogTWFrZSBfd2FpdF9wbGF5aW5nKCkgbm90IGNoZWNrIGFueSB2YXJpYWJsZXMgc28gdGhhdCB3ZSBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uIGZyb20gc3ViY2wuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfd2FpdF9wbGF5aW5nKSwKCSAgKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfc2V0X3BsYXlpbmcpLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIE1ha2UgX3dhaXRfcGxheWluZygpIG5vdCBjaGVjayBhbnkgdmFyaWFibGVzIHNvIHRoYXQgd2UgY2FuIGNhbGwgdGhpcwoJICBmdW5jdGlvbiBmcm9tIHN1YmNsYXNzZXMuIE1vdmUgdGhlIGNoZWNrcyBlbHNld2hlcmUgc2ltaWxhciB0bwoJICBfd2FpdF9wcmVyb2xsKCkgaW4gYmFzZXNpbmsuCgkgIEFkZCBzb21lIGRlYnVnZ2luZy4KCSAgT25seSBzaWduYWwgdGhlIExJVkUgY29uZCB3aGVuIHdlIGFyZSBnb2luZyBiYWNrIHRvIFBMQVlJTkcuCgoyMDA3LTEyLTE2IDE4OjI5OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IFVzZSBnX3JlbW92ZSgpIGFuZCBnX3JlbmFtZSgpLiBDaGVjayByZXN1bHQgb2YgZ19yZW5hbWUoKSwgYW5kIGRvbid0IGxlYWsgdGhlIG9wZW4gZmlsZSBkZXNjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZV9jYWNoZSk6CgkgIFVzZSBnX3JlbW92ZSgpIGFuZCBnX3JlbmFtZSgpLiBDaGVjayByZXN1bHQgb2YgZ19yZW5hbWUoKSwgYW5kCgkgIGRvbid0IGxlYWsgdGhlIG9wZW4gZmlsZSBkZXNjcmlwdG9yIGlmIHdlIGVycm9yIG91dCB3aGVuIHdyaXRpbmcuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX3BsdWdpbiksIChnc3RfcmVnaXN0cnlfeG1sX3dyaXRlX2NhY2hlKToKCSAgTXVzdCBjaGVjayB0aGUgcmV0dXJuIHZhbHVlIG9mIGNsb3NlKCkgYWZ0ZXIgd3JpdGluZyBvdXQgdGhlIG5ldwoJICByZWdpc3RyeSBmaWxlLiAgU29tZXRpbWVzIHdyaXRlIHByb2JsZW1zIHN1Y2ggYXMgb3V0LW9mLWRpc2tzcGFjZQoJICBhcmUgb25seSByZXBvcnRlZCB3aGVuIHRoZSBmaWxlIGlzIGNsb3NlZCBhbmQgbm90IGFscmVhZHkgZHVyaW5nCgkgIHRoZSB3cml0ZS4gIFRoaXMgbWF5IGhhdmUgY2F1c2VkIHBhcnRpYWwvYnJva2VuIHJlZ2lzdHJ5IGZpbGVzIGluCgkgIHNvbWUgcmFyZSBjaXJjdW1zdGFuY2VzLiBTaG91bGQgZml4ICM1MDM2NzUuCgoyMDA3LTEyLTE2IDE3OjM3OjExICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZG9jcy86IElnbm9yZSBmaWxlcyBnZW5lcmF0ZWQgYnkgbmV3IGNvbW1vbi8qIG1vZGlmaWNhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2xpYnMvLmN2c2lnbm9yZToKCSAgKiBkb2NzL3BsdWdpbnMvLmN2c2lnbm9yZToKCSAgSWdub3JlIGZpbGVzIGdlbmVyYXRlZCBieSBuZXcgY29tbW9uLyogbW9kaWZpY2F0aW9ucwoKMjAwNy0xMi0xNSAxNToxOTozMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOiBZZXMsIHlvdSBjYW4gYWxzbyBoYXZlIGEgPFRBQj4gaWYgeW91IHdhbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgWWVzLCB5b3UgY2FuIGFsc28gaGF2ZSBhIDxUQUI+IGlmIHlvdSB3YW50LgoKMjAwNy0xMi0xNSAxNDo1ODo1OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOiBBZGQgbmV3IGJhc2V0cmFuc2Zvcm0gQVBJIHRvIHdpbiBleHBvcnQgZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBZGQgbmV3IGJhc2V0cmFuc2Zvcm0gQVBJIHRvIHdpbiBleHBvcnQgZmlsZS4KCjIwMDctMTItMTUgMTQ6NDI6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogQWRqdXN0IHRoZSB0ZXN0IHRvIHRoZSByZWZjb3VudCBjaGFuZ2UgdHdvIGRheXMgYWdvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIEFkanVzdCB0aGUgdGVzdCB0byB0aGUgcmVmY291bnQgY2hhbmdlIHR3byBkYXlzIGFnby4KCjIwMDctMTItMTQgMjE6MzY6NTAgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZG9jcy9mYXEvZ2V0dGluZy54bWw6IEZpeCB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nZXR0aW5nLnhtbDogRml4IHR5cG8uCgoyMDA3LTEyLTE0IDE2OjUyOjM4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBUEk6IEFkZCBnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X2dhcF9hd2FyZSgpIHRvIGNvbnRyb2wgd2hldGhlciB0aGUgZWxlbWVudCBjb3JyZWN0bHkgaGFuZGxlcyBHU1RfQlVGRkVSX0ZMQUdfR0FQIG9yIHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9nYXBfYXdhcmUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBBUEk6IEFkZCBnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X2dhcF9hd2FyZSgpIHRvIGNvbnRyb2wgd2hldGhlcgoJICB0aGUgZWxlbWVudCBjb3JyZWN0bHkgaGFuZGxlcyBHU1RfQlVGRkVSX0ZMQUdfR0FQIG9yIHNob3VsZG4ndAoJICBnZXQgYnVmZmVycyB3aXRoIHRoaXMgZmxhZyBhdCBhbGwuIEZpeGVzICM1MDMyMzEuCgoyMDA3LTEyLTEzIDE2OjQ5OjU0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlLzogUmVwbGFjZSBnc3RfcGFkX2dldF9wYXJlbnQgYnkgR1NUX09CSkVDVF9QQVJFTlQgaW5zaWRlIHN0cmVhbWluZyB0aHJlYWQuIENvcnJlY3QgbG9nIG1lc3NhZ2UgaW4gZ3N0YmEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBSZXBsYWNlIGdzdF9wYWRfZ2V0X3BhcmVudCBieSBHU1RfT0JKRUNUX1BBUkVOVCBpbnNpZGUgc3RyZWFtaW5nCgkgIHRocmVhZC4gQ29ycmVjdCBsb2cgbWVzc2FnZSBpbiBnc3RiYXNlc3JjLmMuCgoyMDA3LTEyLTEzIDEzOjU5OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEZpeCBwb3NzaWJsZSBjb21waWxlciB3YXJuaW5nICgjNTAzNDE3KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChlbGVtZW50X2ZpbmRfdW5jb25uZWN0ZWRfcGFkKToKCSAgRml4IHBvc3NpYmxlIGNvbXBpbGVyIHdhcm5pbmcgKCM1MDM0MTcpLgoKMjAwNy0xMi0xMyAxMTo0MTowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RvYmplY3QuYzogRG9uJ3QgdXNlIEdTVF9DQVRfRVZFTlQgaGVyZSBmb3IgbG9nZ2luZywgaXQgbWFrZXMgbm8gc2Vuc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfZGlzcGF0Y2hfcHJvcGVydGllc19jaGFuZ2VkKToKCSAgRG9uJ3QgdXNlIEdTVF9DQVRfRVZFTlQgaGVyZSBmb3IgbG9nZ2luZywgaXQgbWFrZXMgbm8gc2Vuc2UuCgoyMDA3LTEyLTEzIDEwOjMxOjMzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBBZGQgc3VwcG9ydCBmb3IgR3N0RnJhY3Rpb24gcHJvcGVydGllcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgQWRkIHN1cHBvcnQgZm9yIEdzdEZyYWN0aW9uIHByb3BlcnRpZXMuCgoyMDA3LTEyLTEyIDIzOjIwOjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTWFrZWZpbGUuYW06IEFkZCBjaGVjay1leHBvcnRzIHRhcmdldCBhbmQgcnVuIGl0IGFzIHBhcnQgb2YgJ21ha2UgY2hlY2snIChzZWUgIzQ5OTE0MCBhbmQgIzQ5Mzk4MykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICBBZGQgY2hlY2stZXhwb3J0cyB0YXJnZXQgYW5kIHJ1biBpdCBhcyBwYXJ0IG9mICdtYWtlIGNoZWNrJwoJICAoc2VlICM0OTkxNDAgYW5kICM0OTM5ODMpLgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX3ByaXZfZ3N0X2luX3ZhbGdyaW5kKSwgKF9nc3RfZGVidWdfaW5pdCksCgkgIChfcHJpdl9nc3RfaW5fdmFsZ3JpbmQpOgoJICAqIGdzdC9nc3RpbmZvLmg6IChHc3RMb2dGdW5jdGlvbik6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6ICh0eXBlX2ZpbmRfZGVidWcpLCAoR1NUX0NBVF9ERUZBVUxUKSwKCSAgKGdzdF90eXBlX2ZpbmRfcmVnaXN0ZXIpOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzogKHR5cGVfZmluZF9kZWJ1ZyksIChHU1RfQ0FUX0RFRkFVTFQpLAoJICAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2dldF90eXBlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKEdTVF9DQVRfREVGQVVMVCksCgkgIChHU1RfQ0FUX0RFRkFVTFQpLCAocGFyZW50X2NsYXNzKSwgKHByaXZfZ3N0X2NvbnRyb2xsZXJfa2V5KSwKCSAgKGdzdF9jb250cm9sbGVyX25ld192YWxpc3QpLCAoZ3N0X2NvbnRyb2xsZXJfbmV3X2xpc3QpLAoJICAoX2dzdF9jb250cm9sbGVyX2Rpc3Bvc2UpLCAoX2dzdF9jb250cm9sbGVyX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbHNvdXJjZS5jOiAoR1NUX0NBVF9ERUZBVUxUKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOiAoR1NUX0NBVF9ERUZBVUxUKSwKCSAgKEdTVF9DQVRfREVGQVVMVCksIChnc3Rfb2JqZWN0X3VuY29udHJvbF9wcm9wZXJ0aWVzKSwKCSAgKGdzdF9vYmplY3RfZ2V0X2NvbnRyb2xsZXIpLCAoZ3N0X29iamVjdF9zZXRfY29udHJvbGxlciksCgkgIChnc3Rfb2JqZWN0X3N1Z2dlc3RfbmV4dF9zeW5jKSwgKGdzdF9vYmplY3Rfc3luY192YWx1ZXMpLAoJICAoZ3N0X29iamVjdF9zZXRfY29udHJvbF9zb3VyY2UpLCAoZ3N0X29iamVjdF9nZXRfY29udHJvbF9zb3VyY2UpLAoJICAoZ3N0X29iamVjdF9nZXRfdmFsdWVfYXJyYXlzKSwgKGdzdF9vYmplY3RfZ2V0X3ZhbHVlX2FycmF5KSwKCSAgKGdzdF9vYmplY3RfZ2V0X2NvbnRyb2xfcmF0ZSksIChnc3Rfb2JqZWN0X3NldF9jb250cm9sX3JhdGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOiAoR1NUX0NBVF9ERUZBVUxUKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2xpYi5jOiAoR1NUX0NBVF9ERUZBVUxUKToKCSAgTWFrZSBzb21lIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBzdGF0aWMgc3RhdGljOyByZW5hbWUgc29tZQoJICBwcml2YXRlIHN5bWJvbHMgc28gdGhhdCB0aGV5IGRvbid0IGdldCBleHBvcnRlZDsgYWRkIHNvbWUgRklYTUUKCSAgY29tbWVudHMgc28gd2UgY2FuIG1vdmUgYWNjaWRlbnRhbGx5IGV4cG9ydGVkIGZ1bmN0aW9ucyBpbnRvCgkgIG91ciBwcml2YXRlIHNlY3Rpb24gaW4gMC4xMS4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIGdzdF91dGlsc19nZXRfdGltZXN0YW1wKCkuCgoyMDA3LTEyLTEyIDE0OjA0OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuKjogQWRkIG1vcmUgbWlzc2luZyAiU2luY2U6IiB0YWdzIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBBZGQgbW9yZSBtaXNzaW5nICJTaW5jZToiIHRhZ3MgdG8gZG9jcy4KCjIwMDctMTItMTIgMDY6NTg6NTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5jOiBBZGQgbWlzaW5nICJTaW5jZToiIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBBZGQgbWlzaW5nICJTaW5jZToiIHRvIGRvY3MuCgoyMDA3LTEyLTExIDIyOjAzOjU4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IEluY2x1ZGUgImdsaWItY29tcGF0LXByaXZhdGUuaCIgdG8gZml4IHRoZSBidWlsZCBvbiBzeXN0ZW0gd2l0aCBnbGliIDwgMi4xMC4gRml4ZXMgIzUwMzEzMS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICBJbmNsdWRlICJnbGliLWNvbXBhdC1wcml2YXRlLmgiIHRvIGZpeCB0aGUgYnVpbGQgb24gc3lzdGVtIHdpdGgKCSAgZ2xpYiA8IDIuMTAuIEZpeGVzICM1MDMxMzEuCgoyMDA3LTEyLTExIDIwOjMyOjI5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuKjogQWN0dWFsbHkgaXRzIG5vdCBQVVJFIGFzIGl0IGdldHMgdGhlIHRpbWUgZnJvbSBlbHNld2hlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBY3R1YWxseSBpdHMgbm90IFBVUkUgYXMgaXQgZ2V0cyB0aGUgdGltZSBmcm9tIGVsc2V3aGVyZS4KCjIwMDctMTItMTEgMjA6MjM6NTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIENoYW5nZSBHU1RfR0VUX1RJTUVTVEFNUCBpbnRvIGdzdF91dGlsX2dldF90aW1lc3RhbXAgYW5kIHJlcGxhY2UgYWxsIHVzZXMgYXMgd2UgZG9uJ3QgaGF2ZSBIQVZFX1BPU0lYX1RJTUVSUyBpbiBwdWJsaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBDaGFuZ2UgR1NUX0dFVF9USU1FU1RBTVAgaW50byBnc3RfdXRpbF9nZXRfdGltZXN0YW1wIGFuZCByZXBsYWNlIGFsbAoJICB1c2VzIGFzIHdlIGRvbid0IGhhdmUgSEFWRV9QT1NJWF9USU1FUlMgaW4gcHVibGljIGhlYWRlcnMuCgkgIFRoYW5rcyBUaW0gZm9yIHNwb3R0aW5nLgoKMjAwNy0xMi0xMSAxNToyOToyNiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSBzcGVjIGZpbGUgYnkgbWlycm9yaW5nIGxhdGVzdCBGZWRvcmEgb25lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgc3BlYyBmaWxlIGJ5IG1pcnJvcmluZyBsYXRlc3QgRmVkb3JhIG9uZQoKMjAwNy0xMi0wOSAwNDoyODowMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgY29uZmlndXJlLmFjOiBEb24ndCBkZWZpbmUgR1NUX0RJU0FCTEVfREVQUkVDQVRFRCBmb3IgcmVsZWFzZXMuIEZpeGVzICM0OTgxODEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRG9uJ3QgZGVmaW5lIEdTVF9ESVNBQkxFX0RFUFJFQ0FURUQgZm9yIHJlbGVhc2VzLiBGaXhlcyAjNDk4MTgxLgoKMjAwNy0xMi0wOCAxMjo1NDo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogRG9uJ3QgY3Jhc2ggaW4gX2Zyb21fc3RyaW5nKCkgaWYgdGhlIHN0cnVjdHVyZSBuYW1lIGlzIG5vdCB2YWxpZCAoZml4ZXMgIzUwMTU2MCkuICBBbGxvdyBzdHJ1Y3R1ci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3ZhbGlkYXRlX25hbWUpLAoJICAoZ3N0X3N0cnVjdHVyZV9uZXdfdmFsaXN0KSwgKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfdmFsdWUpLAoJICAoZ3N0X3N0cnVjdHVyZV9mcm9tX3N0cmluZyk6CgkgIERvbid0IGNyYXNoIGluIF9mcm9tX3N0cmluZygpIGlmIHRoZSBzdHJ1Y3R1cmUgbmFtZSBpcyBub3QgdmFsaWQKCSAgKGZpeGVzICM1MDE1NjApLiAgQWxsb3cgc3RydWN0dXJlIG5hbWVzIHRvIHN0YXJ0IHdpdGggYSBudW1iZXIKCSAgYWdhaW4gKHRoaXMgYXBwYXJlbnRseSBicm9rZSB0aGUgdWJ1bnR1IGNvZGVjIGluc3RhbGxlcikuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgY3Jhc2g7IHVwZGF0ZSB1bml0IHRlc3RzIGZvciBuZXcgYmVoYXZpb3VyLgoKMjAwNy0xMi0wMyAxMTowNDowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBDbGFyaWZ5IGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZCgpIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBDbGFyaWZ5IGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZCgpIGRvY3VtZW50YXRpb24uCgkgIEZpeGVzICM1MDA5MTkuCgoyMDA3LTEyLTAyIDIwOjMzOjQ5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbTogRG9uJ3QgZm9yZ2V0IHRvIGRpc3Qge2dzdCxsaWJzfS9zdHJ1Y3RfaHBwYS5oLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgRG9uJ3QgZm9yZ2V0IHRvIGRpc3Qge2dzdCxsaWJzfS9zdHJ1Y3RfaHBwYS5oLgoKMjAwNy0xMS0yOCAxMzowMjozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBVc2UgbmV3IEFQSSB0byBnZXQgZWxhcHNlZCB0aW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIFVzZSBuZXcgQVBJIHRvIGdldCBlbGFwc2VkIHRpbWUuCgoyMDA3LTExLTI4IDEyOjUyOjQyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBGaXggd3Jvbmcgb3JkZXIgb2YgYXJncyBpbiBHU1RfQ0xPQ0tfRElGRigpIHVzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIEZpeCB3cm9uZyBvcmRlciBvZiBhcmdzIGluIEdTVF9DTE9DS19ESUZGKCkgdXNhZ2UuCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBVc2UgbmV3IEFQSSB0byBnZXQgZWxhcHNlZCB0aW1lLgoKMjAwNy0xMS0yOCAxMjozNToxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgUmVuYW1lIG5ldyBBUEkgKyBDaGFuZ2VMb2cgc3VyZ2VyeSB0byByZW1vdmUgb2xkIG5hbWUgZnJvbSBsYXN0IGVudHJ5Li4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIFJlbmFtZSBuZXcgQVBJICsgQ2hhbmdlTG9nIHN1cmdlcnkgdG8gcmVtb3ZlIG9sZCBuYW1lIGZyb20gbGFzdCBlbnRyeS4uCgkgIEFQSTogR1NUX0dFVF9USU1FU1RBTVAKCjIwMDctMTEtMjggMTI6MTE6NTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIE5vdyBoaWRlIHRoZSBkaWZmZXJlbnQgY2xvY2sgc3R1ZmYgYmVoaW5kIGEgbWFjcm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBOb3cgaGlkZSB0aGUgZGlmZmVyZW50IGNsb2NrIHN0dWZmIGJlaGluZCBhIG1hY3JvLgoJICBBUEk6IEdTVF9HRVRfQ1VSUkVOVF9USU1FCgoyMDA3LTExLTI4IDExOjM5OjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBcHBseSB0aGUgcG9zaXgtdGltZXIgY2hlY2sgZnJvbSAjMzYxMTU1LiBDb25kaXRpb25hbGx5IHVzZSB0aGUgcG9zaXggdGltZXIgZm9yIGxvZ2dpbmcuIFRoaXMgZ2l2ZXMgYmV0dGVyIHRpbWVzdGFtcCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgQXBwbHkgdGhlIHBvc2l4LXRpbWVyIGNoZWNrIGZyb20gIzM2MTE1NS4gQ29uZGl0aW9uYWxseSB1c2UgdGhlIHBvc2l4CgkgIHRpbWVyIGZvciBsb2dnaW5nLiBUaGlzIGdpdmVzIGJldHRlciB0aW1lc3RhbXAgcHJlY2lzc2lvbiwgbGVzcwoJICBvdmVyaGVhZCBhbmQgbm8gbnRwIGppdHRlci4KCjIwMDctMTEtMjggMTE6MTE6NTggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IFNvbWUgY2xlYW51cCBhbmQgY2hlY2tpbmcgYWdhaW5zdCBpbnZhbGlkIGZ1bmN0aW9uIHBhcmFtZXRlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfZ2V0X3R5cGUpLAoJICAoZ3N0X21pbmlfb2JqZWN0X2NsYXNzX2luaXQpLCAoZ3N0X21pbmlfb2JqZWN0X2NvcHlfZGVmYXVsdCksCgkgIChnc3RfbWluaV9vYmplY3RfZmluYWxpemUpLCAoZ3N0X21pbmlfb2JqZWN0X2NvcHkpLAoJICAoZ3N0X21pbmlfb2JqZWN0X2lzX3dyaXRhYmxlKSwgKGdzdF9taW5pX29iamVjdF9tYWtlX3dyaXRhYmxlKSwKCSAgKGdzdF9taW5pX29iamVjdF9yZXBsYWNlKSwgKHBhcmFtX21pbmlfb2JqZWN0X3ZhbGlkYXRlKSwKCSAgKGdzdF9wYXJhbV9zcGVjX21pbmlfb2JqZWN0X2dldF90eXBlKToKCSAgU29tZSBjbGVhbnVwIGFuZCBjaGVja2luZyBhZ2FpbnN0IGludmFsaWQgZnVuY3Rpb24gcGFyYW1ldGVycy4KCjIwMDctMTEtMjggMTA6NTg6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTdGFydCBtZXJnaW5nIGluIHRoZSBlYXN5IGJpdHMgb2YgIzM2MTE1NSwgdGhlIG1vbm90b25pYyBjbG9jayBwYXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zeXN0ZW1jbG9ja19zdWl0ZSk6CgkgIFN0YXJ0IG1lcmdpbmcgaW4gdGhlIGVhc3kgYml0cyBvZiAjMzYxMTU1LCB0aGUgbW9ub3RvbmljIGNsb2NrIHBhdGNoLgoJICBUaGlzIG9uZSBhZGRzIGEgZmV3IGhhbmR5IG1hY3JvcyB3aXRoIGRvY3MgYW5kIGEgdGVzdHN1aXRlLgoKMjAwNy0xMS0yNyAxODo0NTozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogQmUgYSBiaXQgc21hcnRlciB3aGVuIHNlZWtpbmcsIGxpa2UsIGRvbid0IHRyeSB0byBkbyBhIHNlZWsgd2hlbiBpdCdzIG5vdCBuZWVkZWQuIFRoaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2V2ZW50KToKCSAgQmUgYSBiaXQgc21hcnRlciB3aGVuIHNlZWtpbmcsIGxpa2UsIGRvbid0IHRyeSB0byBkbyBhIHNlZWsgd2hlbiBpdCdzCgkgIG5vdCBuZWVkZWQuIFRoaXMgYXZvaWRzIGVycm9ycyB3aGVuIHRoZSBmaWxlIGlzIG5vdCBzZWVrYWJsZS4KCSAgRml4ZXMgIzQ5OTc3MS4KCjIwMDctMTEtMjYgMTM6MTY6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIER1ZSB0byBwb3B1bGFyIHJlcXVlc3QgcmVtb3ZlIHByZXNldCBpbnRlcmZhY2UgYWdhaW4uIDotKC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgKiBnc3QvZ3N0cHJlc2V0Lmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBEdWUgdG8gcG9wdWxhciByZXF1ZXN0IHJlbW92ZSBwcmVzZXQgaW50ZXJmYWNlIGFnYWluLiA6LSguCgoyMDA3LTExLTIyIDIxOjMyOjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBQcmludCAnZGVmYXVsdCB2YWx1ZScgZm9yIGVudW1zIGFuZCBmbGFncyB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIFByaW50ICdkZWZhdWx0IHZhbHVlJyBmb3IgZW51bXMgYW5kIGZsYWdzIHRvby4KCjIwMDctMTEtMjIgMTU6NTk6MDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDogTW9yZSBpZGVhcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJICBNb3JlIGlkZWFzLgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgRml4IHR5cG8gYW5kIGdpdmUgYmV0dGVyIGxvZyBvdXRwdXQuCgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJICBNb3JlIGlkZWFzLCBtYWtlIGdyYXBocyBhIGJpdCBzbWFsbGVyIGFuZCBmaXggcGFyYW0gbmFtZSBpbiBtYWNyby4KCjIwMDctMTEtMjIgMTM6NTY6MjQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogVHJ5IGhhcmRlciB0byB1c2UgdGhlIHJldHVybiB2YWx1ZSBmcm9tIGZnZXRzKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgVHJ5IGhhcmRlciB0byB1c2UgdGhlIHJldHVybiB2YWx1ZSBmcm9tIGZnZXRzKCkuCgoyMDA3LTExLTIxIDE2OjA4OjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cHJlc2V0LmM6IEZvciB0aGVzZXMgdHdvIGZnZXRzIHdlIGhhbmRsZSB0aGUgZXJyb3IgYmVsb3cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgRm9yIHRoZXNlcyB0d28gZmdldHMgd2UgaGFuZGxlIHRoZSBlcnJvciBiZWxvdy4KCjIwMDctMTEtMjEgMTM6NDc6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IE9ubHkgc2VuZCB1cHN0cmVhbSBldmVudHMgdXBzdHJlYW0uIEZpeGVzICM0OTg3NDYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfc2VuZF9ldmVudCk6CgkgIE9ubHkgc2VuZCB1cHN0cmVhbSBldmVudHMgdXBzdHJlYW0uIEZpeGVzICM0OTg3NDYuCgoyMDA3LTExLTIxIDEzOjI3OjUwICswMDAwICBMYXVyZW50IEdsYXlhbCA8c3BnbGVnbGVAeWFob28uZnI+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lio6IEFkZCBwcm9wZXJ0eSB0byBkaXNhYmxlIGhhbmRvZmYgc2lnbmFsIGVtaXNzaW9uLiBGaXhlcyAjNDk4Njk0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IExhdXJlbnQgR2xheWFsIDxzcGdsZWdsZSBhdCB5YWhvbyBkb3QgZnI+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X2luaXQpLCAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCksCgkgIChnc3RfaWRlbnRpdHlfc2V0X3Byb3BlcnR5KSwgKGdzdF9pZGVudGl0eV9nZXRfcHJvcGVydHkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgQWRkIHByb3BlcnR5IHRvIGRpc2FibGUgaGFuZG9mZiBzaWduYWwgZW1pc3Npb24uIEZpeGVzICM0OTg2OTQuCgkgIEFQSTogR3N0SWRlbnRpdHk6OnNpZ25hbC1oYW5kb2ZmcwoKMjAwNy0xMS0yMSAwOTo0Njo1MCArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IFlldCBhbm90aGVyIG1pc3NpbmcgbGlicmFyeSBmb3IgdGhlIHVuaW5zdGFsbGVkIHNjcmlwdCAoZmZ0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0xMS0yMSAgSnVsaWVuIE1vdXR0ZSAgPGp1bGllbkBmbHVlbmRvLmNvbT4KCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IFlldCBhbm90aGVyIG1pc3NpbmcgbGlicmFyeSBmb3IgdGhlCgkgIHVuaW5zdGFsbGVkIHNjcmlwdCAoZmZ0KQoKMjAwNy0xMS0yMSAwMDoyNDowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDogQWRkIGEgcXVlc3Rpb24gYWJvdXQgaG93IHRvIHN1Ym1pdCBuZXcgdHJhbnNsYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSAgQWRkIGEgcXVlc3Rpb24gYWJvdXQgaG93IHRvIHN1Ym1pdCBuZXcgdHJhbnNsYXRpb25zLgoJICAqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIFVwZGF0ZSB0aGUgY29udGFjdCBlbWFpbCBhZGRyZXNzIGZvciB0aGUgVHJhbnNsYXRpb24gUHJvamVjdAoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgVGhlIHBhcmVudF9jbGFzcyBmb3IgZmRzcmMgaXMgcHVzaHNyYywgbm90IEdzdEVsZW1lbnQuCgoyMDA3LTExLTIwIDE2OjM0OjM4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cHJlc2V0LmM6IFBsdWcgYSBsZWFrIGFuZCBmaXggc2F2aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIFBsdWcgYSBsZWFrIGFuZCBmaXggc2F2aW5nLgoKMjAwNy0xMS0yMCAxNjoxMDoyMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIG5ldyBnc3RfcHJlc2V0X19nZXRfcHJvcGVydHlfbmFtZXMoKSBmdW5jdGlvbiB0byB0aGUgZG9jcyB0byBmaXggdGhlIGJ1aWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IGdzdF9wcmVzZXRfX2dldF9wcm9wZXJ0eV9uYW1lcygpIGZ1bmN0aW9uIHRvIHRoZSBkb2NzCgkgIHRvIGZpeCB0aGUgYnVpbGQuCgoyMDA3LTExLTIwIDE1OjQ2OjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cHJlc2V0Lio6IENoYW5nZSBfZ2V0X3ByZXNldF9uYW1lcyBBUEkgdG8gcmV0dXJuIGEgc3RydiB3aXRoIGNvcGllcy4gQWRkIF9nZXRfcHJvcGVydHlfbmFtZXMgdG8gYWxsb3cgaW1wbGVtZW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICAqIGdzdC9nc3RwcmVzZXQuaDoKCSAgQ2hhbmdlIF9nZXRfcHJlc2V0X25hbWVzIEFQSSB0byByZXR1cm4gYSBzdHJ2IHdpdGggY29waWVzLiBBZGQKCSAgX2dldF9wcm9wZXJ0eV9uYW1lcyB0byBhbGxvdyBpbXBsZW1lbnRhdGlvbnMgdG8gZmlsdGVyIGFuZCBwcm92aWRlCgkgIGdvb2QgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KCjIwMDctMTEtMjAgMTE6NDY6MzUgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBBZGQgYW5vdGhlciBsaWJyYXJ5IHRvIHRoZSB1bmluc3RhbGxlZCBzY3JpcHQgKHNkcCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTExLTIwICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBBZGQgYW5vdGhlciBsaWJyYXJ5IHRvIHRoZSB1bmluc3RhbGxlZAoJICBzY3JpcHQgKHNkcCkuCgoyMDA3LTExLTE5IDE1OjIzOjQ0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cHJlc2V0LmM6IE1vcmUgY2xlYW51cHMsIGRvY3MsIGFuZCBUT0RPcyBmcm9tIGNvbW1lbnRzIHRoYXQgbm93IHNsb3dseSBjb21lIGluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIE1vcmUgY2xlYW51cHMsIGRvY3MsIGFuZCBUT0RPcyBmcm9tIGNvbW1lbnRzIHRoYXQgbm93IHNsb3dseSBjb21lIGluLgoKMjAwNy0xMS0xOSAxNDozODo0OSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IEFkZCBuZXcgYmFzZSBsaWJyYXJpZXMgaW4gdGhlIExEIHNlYXJjaCBwYXRoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0xMS0xOSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogQWRkIG5ldyBiYXNlIGxpYnJhcmllcyBpbiB0aGUgTEQKCSAgc2VhcmNoIHBhdGguCgoyMDA3LTExLTE5IDExOjU0OjEzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cHJlc2V0LmM6IEZpeCBib2d1cyB3YXJuaW5nIGFuZCBtYWtlIHRoZSBwcm9wZXJ0eSB0eXBlIHNwZWNpZmljIGNvZGUgbW9yZSBzaW1pbGFyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIEZpeCBib2d1cyB3YXJuaW5nIGFuZCBtYWtlIHRoZSBwcm9wZXJ0eSB0eXBlIHNwZWNpZmljIGNvZGUgbW9yZQoJICBzaW1pbGFyLgoKMjAwNy0xMS0xOSAwOTozMzowNSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0cHJlc2V0LmM6IE1ha2UgaXQgYnVpbGQgb24gT1MgWC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMTEtMTkgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0cHJlc2V0LmM6IChnc3RfcHJlc2V0X2RlZmF1bHRfY3JlYXRlX3ByZXNldCk6IE1ha2UKCSAgaXQgYnVpbGQgb24gT1MgWC4KCjIwMDctMTEtMTkgMDg6NTA6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IENoYW5nZSBlbWFpbCwgY2xlYW51cHMgYWRkIHNvbWUgbW9yZSBkZWJ1ZyBhbmQgY29tbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX2luaXQpLAoJICAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLCAoZ3N0X2Jpbl9jb250aW51ZV9mdW5jKToKCSAgQ2hhbmdlIGVtYWlsLCBjbGVhbnVwcyBhZGQgc29tZSBtb3JlIGRlYnVnIGFuZCBjb21tZW50cy4KCSAgQWxzbyBzZXQgYnVzIGFuZCBjbG9jayBvbiBuZXcgZWxlbWVudHMgd2hlbiB0aGUgcGlwZWxpbmUgd2FzIGluIGVycm9yLgoKMjAwNy0xMS0xOCAxOTozMDoxMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogRml4IGJ1aWxkIHdpdGggLS1kaXNhYmxlLWdzdC1kZWJ1Zy4gRml4ZXMgIzQ5Nzg1OS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIEZpeCBidWlsZCB3aXRoIC0tZGlzYWJsZS1nc3QtZGVidWcuIEZpeGVzICM0OTc4NTkuCgkgIFNwb3R0ZWQgYnkgU2FtZWVyIE5haWsuCgoyMDA3LTExLTE3IDE3OjUwOjIxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZXZlbnQuYzogTGl0dGxlIGRvY3VtZW50YXRpb24gaW1wcm92bWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgIExpdHRsZSBkb2N1bWVudGF0aW9uIGltcHJvdm1lbnQuCgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBNb3JlIFRPRE8gY2xlYW51cHMuIFJlbW92ZSBjKysgY29tbWVudHMuCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIEFkZCBUT0RPIGFuZCB1c2UgcXVhcmsgZnJvbSBzdGF0aWMgc3RyaW5nLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBVc2UgcXVhcmsgZnJvbSBzdGF0aWMgc3RyaW5nLgoKMjAwNy0xMS0xNyAxNzoyNDo1MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHByZXNldC5jOiBBZGQgc29tZSBjb21tZW50cyBhbmQgVE9ET3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgQWRkIHNvbWUgY29tbWVudHMgYW5kIFRPRE9zLgoJICAqIGdzdC9nc3RwcmVzZXQuaDoKCSAgQWRkIHBhZGRpbmcgZm9yIGZ1dHVyZSBjaGFuZ2VzLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgSW1wbGVtZW50IHRoZSBpZmFjZS4KCjIwMDctMTEtMTcgMTY6NDM6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCB0aGUgcHJlc2V0IGludGVyZmFjZSAoRml4ZXMgIzM5Njc3OSkuIERvIHNvbWUgZG9jIGNsZWFudXBzIGFsb25nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICAqIGdzdC9nc3RwcmVzZXQuaDoKCSAgQWRkIHRoZSBwcmVzZXQgaW50ZXJmYWNlIChGaXhlcyAjMzk2Nzc5KS4gRG8gc29tZSBkb2MgY2xlYW51cHMgYWxvbmcuCgoyMDA3LTExLTE2IDAwOjIzOjE4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQmFjayB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIENWUwoKPT09IHJlbGVhc2UgMC4xMC4xNSA9PT0KCjIwMDctMTEtMTYgMDA6MDc6NTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiByZWxlYXNpbmcgMC4xMC4xNSwgIk9jdG9iZXIiCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICA9PT0gcmVsZWFzZSAwLjEwLjE1ID09PQoJICAyMDA3LTExLTE1ICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIHJlbGVhc2luZyAwLjEwLjE1LCAiT2N0b2JlciIKCjIwMDctMTEtMTUgMjM6MzE6MTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDctMTEtMTQgMTI6MjQ6MDkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6IENvbnZlcnQgbGluZSBlbmRpbmdzIGJhY2sgdG8gRE9TLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSAgQ29udmVydCBsaW5lIGVuZGluZ3MgYmFjayB0byBET1MuCgoyMDA3LTExLTEzIDExOjMwOjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogVXBkYXRlIGZhc3QgdGFncmVhZGluZyBkcmFmdCBhbmQgcGVyZm9ybWFuY2UgcHJvZmlsaW5nIGlkZWFzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkgIFVwZGF0ZSBmYXN0IHRhZ3JlYWRpbmcgZHJhZnQgYW5kIHBlcmZvcm1hbmNlIHByb2ZpbGluZyBpZGVhcy4KCjIwMDctMTEtMDkgMTQ6MDU6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IGhvbGQgdGhlIG9iamVjdCBsb2NrIHdoZW4gdW5yZWZmaW5nIGEgYnVmZmVyIGJlY2F1c2UgaXQgY291bGQgY2F1c2UgYSBkZWFkbG9jayB3aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19zZXRfbGFzdF9idWZmZXIpOgoJICBEb24ndCBob2xkIHRoZSBvYmplY3QgbG9jayB3aGVuIHVucmVmZmluZyBhIGJ1ZmZlciBiZWNhdXNlIGl0IGNvdWxkCgkgIGNhdXNlIGEgZGVhZGxvY2sgd2hlbiB0aGUgZmluYWxpemUgZnVuY3Rpb24gd2FudHMgdG8gZ3JhYiB0aGUgb2JqZWN0CgkgIGxvY2sgdG9vLiBGaXhlcyAjNDk1MTMzLgoKMjAwNy0xMS0wOSAxMTo1Njo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IEFsc28gYWNjdW11bGF0ZSB0aW1lIGNvcnJlY3RseSB3aGVuIGRvaW5nIHJldmVyc2UgcGxheWJhY2suIEZpeGVzICM0ODgyMDEsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudF9mdWxsKSwKCSAgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSk6CgkgIEFsc28gYWNjdW11bGF0ZSB0aW1lIGNvcnJlY3RseSB3aGVuIGRvaW5nIHJldmVyc2UgcGxheWJhY2suIEZpeGVzCgkgICM0ODgyMDEsCgkgIFdoZW4gY29udmVydGluZyB0byBydW5uaW5nIGFuZCBzdHJlYW0gdGltZSwgdXNlIGRlZmF1bHQgdmFsdWVzIGZvcgoJICBzdGFydC9zdG9wL3RpbWUvYWNjdW0gd2hlbiBjb21wYXJpbmcgZGlmZmVyZW50IGZvcm1hdHMuIEZpeGVzICM0OTQyNDUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyk6CgkgIERvIHJ1bm5pbmcvc3RyZWFtIHRpbWUgaW4gVElNRSBmb3JtYXQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zZWdtZW50X3N1aXRlKToKCSAgMiBuZXcgdW5pdCB0ZXN0cyBmb3Igc2VnbWVudCBhY2N1bXVsYXRpb24uCgoyMDA3LTExLTA3IDE1OjUzOjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogTW92ZSBnZXRlbnYoKSBiYWNrIGludG8gZ3N0X2luaXQsIHNvIGV2ZXJ5b25lIGNhbiBsaXZlIGhhcHBpbHkgZXZlciBhZnRlci4gTWFrZSBzdXJlIHRoZSBzeW1ib2wgaXNuJ3QgZXhwb3J0ZWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcHJlKToKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOiAocHJpdl9nc3RfZHVtcF9kb3RfZGlyKSwgKGRlYnVnX2R1bXBfZWxlbWVudCksCgkgIChfZ3N0X2RlYnVnX2Jpbl90b19kb3RfZmlsZSk6CgkgIE1vdmUgZ2V0ZW52KCkgYmFjayBpbnRvIGdzdF9pbml0LCBzbyBldmVyeW9uZSBjYW4gbGl2ZSBoYXBwaWx5CgkgIGV2ZXIgYWZ0ZXIuIE1ha2Ugc3VyZSB0aGUgc3ltYm9sIGlzbid0IGV4cG9ydGVkIHRob3VnaC4KCjIwMDctMTEtMDYgMjM6MTc6MDkgKzAwMDAgIFNlYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy4qOiBVcGRhdGUgZW51bSB0eXBlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpZW4gTW91dHRlICA8c2ViYXN0aWVuIG1vdXR0ZSBuZXQ+CgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSAgVXBkYXRlIGVudW0gdHlwZXMuCgkgICogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgIFVwZGF0ZSB2czYgcHJvamVjdCBmaWxlcyAoIzQ5NDM0MykuCgoyMDA3LTExLTA2IDE3OjE4OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFVuaWZ5IGZsdXNoaW5nIGNvZGUsIHJlbW92ZSBzb21lIG9sZCB1bmxvY2sgY29kZSB0aGF0IGlzIG5vIGxvbmdlciB1c2VkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9mbHVzaGluZyksIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVsbCk6CgkgIFVuaWZ5IGZsdXNoaW5nIGNvZGUsIHJlbW92ZSBzb21lIG9sZCB1bmxvY2sgY29kZSB0aGF0IGlzIG5vIGxvbmdlciB1c2VkLgoJICBUYWtlIHRoZSBzdHJlYW1pbmcgbG9jayB3aGVuIHNlZWtpbmcgdG8gYXZvaWQgcmFjZXMuIEZpeGVzICM0OTI3MjkuCgkgIEFkZGVkIHNvbWUgbW9yZSBjb21tZW50cy4KCjIwMDctMTEtMDYgMTU6MTA6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IE1ha2UgIF9nc3RfZGlzYWJsZV9zZWd0cmFwIHN0YXRpYywgaXQncyBvbmx5IHVzZWQgaW4gZ3N0cGx1Z2luLmMgYW5kIHdlIGNhbiB1c2UgZ3N0X3NlZ3RyYXBfaXNfZW5hYmxlZCgpIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoX2dzdF9kaXNhYmxlX3NlZ3RyYXApOgoJICBNYWtlICBfZ3N0X2Rpc2FibGVfc2VndHJhcCBzdGF0aWMsIGl0J3Mgb25seSB1c2VkIGluIGdzdHBsdWdpbi5jIGFuZAoJICB3ZSBjYW4gdXNlIGdzdF9zZWd0cmFwX2lzX2VuYWJsZWQoKSB0aGVyZSBub3cgdGhhdCB3ZSBoYXZlIHRoYXQgQVBJLgoJICBNb3ZlIF9nc3RfZGVidWdfZHVtcF9kb3RfZGlyIGludG8gZ3N0ZGVidWd1dGlscy5jLCB0aGVyZSdzIG5vIHJlYXNvbgoJICB0byBkbyB0aGUgZ2V0ZW52IGhlcmUgKGFuZCBleHBvcnQgdGhlIHZhcmlhYmxlKS4KCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOiAoZGVidWdfZHVtcF9lbGVtZW50KSwKCSAgKF9nc3RfZGVidWdfYmluX3RvX2RvdF9maWxlKSwgKF9nc3RfZGVidWdfYmluX3RvX2RvdF9maWxlX3dpdGhfdHMpOgoJICBEb24ndCB1c2UgVkxBcyB3aGljaCBpcyBhIEM5OWlzbSBhbmQgdGhyb3dzIG9mZiBNU1ZDICgjNDkzOTgzKS4KCSAgKiBnc3QvZ3N0aW5mby5jOiAoX3ByaXZfZ3N0X2luZm9fc3RhcnRfdGltZSksIChfZ3N0X2RlYnVnX2luaXQpLAoJICAoZ3N0X2RlYnVnX2xvZ19kZWZhdWx0KToKCSAgUmVuYW1lIF9nc3RfaW5mb19zdGFydF90aW1lIHRvIHByaXZfZ3N0X2luZm9fc3RhcnRfdGltZSBzbyBpdAoJICBkb2Vzbid0IGdldCBleHBvcnRlZCAod2FzIG5ldmVyIGluIGFueSBoZWFkZXIpLgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKF9nc3RfcGx1Z2luX2ZhdWx0X2hhbmRsZXJfc2V0dXApLAoJICAoZ3N0X3BsdWdpbl9sb2FkaW5nX211dGV4KToKCSAgTWFrZSBzdGF0aWMgbXV0ZXggZ3N0X3BsdWdpbl9sb2FkaW5nX211dGV4IHJlYWxseSBzdGF0aWMgKHdhcyBuZXZlcgoJICBpbiBhbnkgaGVhZGVyKSwgYW5kIHVzZSBnc3Rfc2VndHJhcF9pc19lbmFibGVkKCkgaW5zdGVhZCBvZgoJICBfZ3N0X2Rpc2FibGVfc2VndHJhcC4KCSAgKiBnc3QvZ3N0dHJhY2UuYzogKF9nc3RfdHJhY2VfZGVmYXVsdCk6CgkgIE1ha2UgbG9jYWwgX2dzdF90cmFjZV9kZWZhdWx0IHN0YXRpYyAod2FzIG5ldmVyIGluIGFueSBoZWFkZXIpLgoKMjAwNy0xMS0wNiAxNDo0MzoxNCArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIHdpbjMyL2NvbW1vbi86IEFkZCBtb3JlIG1pc3Npbmcgc3ltYm9scywgcmVtb3ZlIHNvbWUgZHVwbGljYXRlcywgYW5kIHNvcnQgYXMgdGhlICdzb3J0JyBjb21tYW5kIHNvcnRzIGl0IChwYXJ0aWFsbHkgZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyAgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGRhdGFwcm90b2NvbC5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBtb3JlIG1pc3Npbmcgc3ltYm9scywgcmVtb3ZlIHNvbWUgZHVwbGljYXRlcywgYW5kIHNvcnQKCSAgYXMgdGhlICdzb3J0JyBjb21tYW5kIHNvcnRzIGl0IChwYXJ0aWFsbHkgZml4ZXMgIzQ5Mzk4MykuCgoyMDA3LTExLTA2IDEyOjI4OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogT25seSBjaGFuZ2UgdGhlIHN0YXRlIGNvb2tpZSBpZiBhIGRpZmZlcmVudCBzdGF0ZSB3YXMgc2V0IG9uIHRoZSBlbGVtZW50LiBTZWUgIzQ5MjcyOS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKToKCSAgT25seSBjaGFuZ2UgdGhlIHN0YXRlIGNvb2tpZSBpZiBhIGRpZmZlcmVudCBzdGF0ZSB3YXMgc2V0IG9uIHRoZQoJICBlbGVtZW50LiBTZWUgIzQ5MjcyOS4KCjIwMDctMTEtMDYgMTE6NDE6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogUmVtb3ZlIHVudXNlZCBhbmQgdW5pbml0aWFsaXNlZCB0eXBlIHZhcmlhYmxlcyB0aGF0IHdlcmUgc3RpbGwgZXhwb3J0ZWQgZm9yIHNvbWUgcmVhc29uICh0aGV5IHdlcmUgbmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIFJlbW92ZSB1bnVzZWQgYW5kIHVuaW5pdGlhbGlzZWQgdHlwZSB2YXJpYWJsZXMgdGhhdCB3ZXJlIHN0aWxsCgkgIGV4cG9ydGVkIGZvciBzb21lIHJlYXNvbiAodGhleSB3ZXJlIG5ldmVyIGluIGFueSBoZWFkZXIgZmlsZXMKCSAgdGhvdWdoKS4KCjIwMDctMTEtMDYgMTA6MzM6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IHRyeSB0byByZXBvcnQgYSAwIHBvc2l0aW9uIHdoZW4gd2UgZG9uJ3Qga25vdywgcmV0dXJuIC0xIGFuZCBGQUxTRSBpbnN0ZWFkLiBUaGlzIG0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX2xhc3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fcGF1c2VkKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgRG9uJ3QgdHJ5IHRvIHJlcG9ydCBhIDAgcG9zaXRpb24gd2hlbiB3ZSBkb24ndCBrbm93LCByZXR1cm4gLTEgYW5kIEZBTFNFCgkgIGluc3RlYWQuIFRoaXMgbW9zdGx5IGhhcHBlbnMgd2hlbiB3ZSBhcmUgcHJlcm9sbGluZy4KCSAgTWFrZSBzdXJlIHdlIGNhbiByZXBvcnQgdGhlIHJpZ2h0IHBvc2l0aW9uIGJlZm9yZSB3ZSBwb3N0IHRoZSBBU1lOQ19ET05FCgkgIG1lc3NhZ2Ugc28gdGhhdCBhIG1lc3NhZ2UgaGFuZGxlciBjYW4gcXVlcnkgcG9zaXRpb24gd2l0aG91dCByYWNlcy4KCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChzZW5kX2VvcyksIChHU1RfU1RBUlRfVEVTVCksCgkgIChhc3luY19kb25lX2hhbmRvZmYpLCAoYXN5bmNfZG9uZV9mdW5jKSwgKHNlbmRfYnVmZmVyKSwKCSAgKGFzeW5jX2RvbmVfZW9zX2Z1bmMpLCAoZ3N0X3NpbmtzX3N1aXRlKToKCSAgQWRkIHR3byB0ZXN0cyBmb3IgdGhlIGFib3ZlLgoKMjAwNy0xMS0wNiAxMDoyMTowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIE1BSU5UQUlORVJTOiBVcGRhdGUgd2l0aCBuZXcgZW1haWwgYWRkcmVzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTUFJTlRBSU5FUlM6CgkgIFVwZGF0ZSB3aXRoIG5ldyBlbWFpbCBhZGRyZXNzLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIEFkZCBzb21lIG1vcmUgaW5mbyBhYm91dCBmdXR1cmUgcGFkLWJsb2NrIGFuZCBuZWdvdGlhdGlvbiBjaGFuZ2VzLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgQWRkIHNvbWUgaWRlYXMgYWJvdXQgYnVmZmVyaW5nIHJlcG9ydGluZy4KCjIwMDctMTEtMDYgMTA6MDE6MDcgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjb21tb246CgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUgU1BFQyBmaWxlIHdpdGggbGF0ZXN0IGNoYW5nZXMsIGFsc28gYWRkIE1BSU5UQUlORVJTIGZpbGUgdG8gRVhUUkFfRElTVCwgdGhlIG9tbWlzc2lvbiBvZiB0aGlzIGNhdXNlIGEgd2VpcmQgUlAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBTUEVDIGZpbGUgd2l0aCBsYXRlc3QgY2hhbmdlcywgYWxzbyBhZGQgTUFJTlRBSU5FUlMgZmlsZSB0byBFWFRSQV9ESVNULCB0aGUgb21taXNzaW9uIG9mIHRoaXMgY2F1c2UgYSB3ZWlyZCBSUE0gYnVpbGQgZXJyb3Igb24gRkM4CgoyMDA3LTExLTA2IDAwOjU5OjU0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzogRGlzYWJsZSBzaWxseSByYWN5IHRlc3QgdGhhdCBhbHdheXMgZmFpbHMgb24gdGhpcyBjb21iaW5hdGlvbiBvZiBDUFUgYW5kIGtlcm5lbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBEaXNhYmxlIHNpbGx5IHJhY3kgdGVzdCB0aGF0IGFsd2F5cyBmYWlscyBvbiB0aGlzIGNvbWJpbmF0aW9uIG9mIENQVQoJICBhbmQga2VybmVsLgoKMjAwNy0xMS0wNCAxMDoxNjozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IG1lbnRpb24gYnVnIG51bWJlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IG1lbnRpb24gYnVnIG51bWJlcgoKMjAwNy0xMS0wNCAxMDoxMzozMyArMDAwMCAgTXVycmF5IEN1bW1pbmcgPG11cnJheWNAbXVycmF5Yy5jb20+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IENvcnJlY3RlZCB0aGUgcmVnaXN0cmF0aW9uIG9mIHRoZSBwYXJlbnQtc2V0IGFuZCBwYXJlbnQtdW5zZXQgc2lnbmFsczogVGhlIHBhcmFtZXRlciBpcyBhIEdzdE9iamVjdCwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNdXJyYXkgQ3VtbWluZyAgPG11cnJheWNAbXVycmF5Yy5jb20+CgkgICogZ3N0L2dzdG9iamVjdC5jOgoJICBDb3JyZWN0ZWQgdGhlIHJlZ2lzdHJhdGlvbiBvZiB0aGUgcGFyZW50LXNldCBhbmQgcGFyZW50LXVuc2V0CgkgIHNpZ25hbHM6IFRoZSBwYXJhbWV0ZXIgaXMgYSBHc3RPYmplY3QsIG5vdCBhIEdPYmplY3QuCgoyMDA3LTExLTAyIDE4OjM1OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogTW92ZSBkZWNsYXJhdGlvbiBvZiBwcml2YXRlIF9nc3RfZm9vX2luaXRpYWxpemUoKSBmdW5jdGlvbnMgaW50byBvdXIgcHJpdmF0ZSBoZWFkZXIgZmlsZSB3aGVyZSB0aGV5IHNob3VsZCBoYXZlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgTW92ZSBkZWNsYXJhdGlvbiBvZiBwcml2YXRlIF9nc3RfZm9vX2luaXRpYWxpemUoKSBmdW5jdGlvbnMgaW50bwoJICBvdXIgcHJpdmF0ZSBoZWFkZXIgZmlsZSB3aGVyZSB0aGV5IHNob3VsZCBoYXZlIGJlZW4gYWxsIGFsb25nLgoKMjAwNy0xMS0wMiAxNzo0MzoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGd0ay1kb2MgZml4ZXM7IHRyYWlsaW5nLWNvbW1hLWluLWVudW0gZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkgICogZ3N0L2dzdHhtbC5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgZ3RrLWRvYyBmaXhlczsgdHJhaWxpbmctY29tbWEtaW4tZW51bSBmaXguCgoyMDA3LTExLTAyIDE2OjI3OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBDbGVhbiB1cCBvbiBkZWluaXQgKG5vdCB0aGUgZXh0ZXJuYWwgb25lcyB0aG91Z2gsIGRvZXNuJ3Qgc2VlbSB0byBiZSBuZWVkZWQgZm9yIHNvbWUgcmVhc29uKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2RlaW5pdCk6CgkgIENsZWFuIHVwIG9uIGRlaW5pdCAobm90IHRoZSBleHRlcm5hbCBvbmVzIHRob3VnaCwgZG9lc24ndCBzZWVtIHRvIGJlCgkgIG5lZWRlZCBmb3Igc29tZSByZWFzb24pLgoKMjAwNy0xMS0wMSAyMzo1MTo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmg6IFJlbW92ZSBfX2RlY2xzcGVjKGRsbGltcG9ydCkgZm9yIE1TVkMgdGhhdCB3YXMgY29waWVkIG92ZXIgaW50byBjb3JlIGZyb20gYSBwbHVnaW4sIG9idmlvdXNseSB3aXRob3V0IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oOiAoR1NUX0RFQlVHX0NBVEVHT1JZX0VYVEVSTik6CgkgIFJlbW92ZSBfX2RlY2xzcGVjKGRsbGltcG9ydCkgZm9yIE1TVkMgdGhhdCB3YXMgY29waWVkIG92ZXIgaW50byBjb3JlCgkgIGZyb20gYSBwbHVnaW4sIG9idmlvdXNseSB3aXRob3V0IGV2ZXIgaGF2aW5nIGJlZW4gdGVzdGVkIChub3RlIHRoZQoJICBzaW5nbGUgdW5kZXJzY29yZSBpbiBfZGVjbHNwZWMgaW4gdGhlIGluaXRpYWwgY29tbWl0KSwgYW5kIHRoYXQgZG9lc24ndAoJICByZWFsbHkgbWFrZSBzZW5zZS4gIFNlZSAjNDkyMDc3LgoKMjAwNy0xMS0wMSAyMTo1MDowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdfdHlwZV9jbGFzc19yZWYoKSBvdGhlciB0eXBlcyBhcyB3ZWxsLCBzZWUgIzM0OTQxMCBhbmQgIzY0NzY0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICAqIGdzdC9nc3RldmVudC5jOiAoX2dzdF9ldmVudF9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKF9nc3RfcXVlcnlfaW5pdGlhbGl6ZSk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jIChnc3RfZHBfaW5pdCk6CgkgIGdfdHlwZV9jbGFzc19yZWYoKSBvdGhlciB0eXBlcyBhcyB3ZWxsLCBzZWUgIzM0OTQxMCBhbmQgIzY0NzY0LgoJICAqIGdzdC9nc3RidWZmZXIuYzogKF9nc3RfYnVmZmVyX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChfZ3N0X21lc3NhZ2VfaW5pdGlhbGl6ZSk6CgkgIFNpbXBsaWZ5IGV4aXN0aW5nIGdfdHlwZV9jbGFzc19yZWYoKS4KCjIwMDctMTEtMDEgMjA6MTA6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0Zm9ybWF0LmM6IGdfdHlwZV9jbGFzc19yZWYoKSBvdXIgR3N0Rm9ybWF0IHR5cGUgdG8gbWFrZSBzdXJlIHdlIGF2b2lkIHRoZSB0aHJlYWQtdW5zYWZlIGJpdHMgb2YgdGhlIEdPYmplY3QvR1QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGZvcm1hdC5jOiAoX2dzdF9mb3JtYXRfaW5pdGlhbGl6ZSk6CgkgIGdfdHlwZV9jbGFzc19yZWYoKSBvdXIgR3N0Rm9ybWF0IHR5cGUgdG8gbWFrZSBzdXJlIHdlIGF2b2lkIHRoZQoJICB0aHJlYWQtdW5zYWZlIGJpdHMgb2YgdGhlIEdPYmplY3QvR1R5cGUgc3lzdGVtLCBpZS4gYnVnICMzNDk0MTAgYW5kCgkgIGJ1ZyAjNjQ3NjQuIFNob3VsZCBmaXggaW50ZXJtaXR0ZW50IHRlZSB1bml0IHRlc3QgZmFpbHVyZXMgKCM0NzQ4MjMpLgoKMjAwNy0xMS0wMSAxOToxOToxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOiBTaW1wbGlmeSwgc2ltcGxpZnksIHNpbXBsaWZ5IC0gb3Igbm90LiAgUmV3cml0ZSB1bml0IHRlc3Qgbm90IHRvIHVzZSBnc3RfcGFyc2VfbGF1bmNoKCk7IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzogKHRlc3RfbnVtX2J1ZmZlcnMpOgoJICBTaW1wbGlmeSwgc2ltcGxpZnksIHNpbXBsaWZ5IC0gb3Igbm90LiAgUmV3cml0ZSB1bml0IHRlc3QKCSAgbm90IHRvIHVzZSBnc3RfcGFyc2VfbGF1bmNoKCk7IGFsbG93IE4gc3ViLXN0cmVhbXMuIEluY3JlYXNpbmcKCSAgdGhlIG51bWJlciBvZiBzdWItc3RyZWFtcyBzZWVtcyB0byByZXByb2R1Y2UgIzQ3NDgyMyBtb3JlIGVhc2lseS4KCjIwMDctMTAtMzEgMjI6MDE6MDMgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBGaXggYSBjb3VwbGUgb2YgbWlzc2luZyBpbmNsdWRlcyBmb3IgTVNWQzIwMDUgYW5kIGEgQzk5IGlzc3VlLiBBbHNvLCBzdGFydGluZyB3aXRoIDIuMTQuMCwgR0xpYiB3b24ndCBwcm92aWRlIGEgcGlwZSguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCSAgKiBnc3QvZ3N0dHJhY2UuYzoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldyk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzogKGdzdF9uZXRfdGltZV9wYWNrZXRfc2VuZCk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX25ldyk6CgkgIEZpeCBhIGNvdXBsZSBvZiBtaXNzaW5nIGluY2x1ZGVzIGZvciBNU1ZDMjAwNSBhbmQgYSBDOTkgaXNzdWUuIEFsc28sCgkgIHN0YXJ0aW5nIHdpdGggMi4xNC4wLCBHTGliIHdvbid0IHByb3ZpZGUgYSBwaXBlKCkgbWFjcm8gYW55IGxvbmdlciwKCSAgc28gdXNlIF9waXBlKCkgZGlyZWN0bHkgKCM0OTIwNzcpLgoJICAqIHdpbjMyL2NvbW1vbi9kaXJlbnQuYzogKF90cmVhZGRpcik6CgkgIEFkZCBhIGNvdXBsZSBvZiBjYXN0cyB0byBtYWtlIGl0IGJ1aWxkIHdpdGhvdXQgd2FybmluZ3Mgd2l0aCBNU1ZDLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgc29tZSBtb3JlIHN5bWJvbHMgdGhhdCBuZWVkIHRvIGJlIGV4cG9ydGVkLgoKMjAwNy0xMC0zMSAxODowODoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzogVXNlIF9LRUVQIGFzIG1lcmdlIG1vZGUgcmF0aGVyIHRoYW4gX0tFRVBfQUxMLCBzbyB0YWdzIGFycml2aW5nIGluIGEgc2Vjb25kIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6IChtZXNzYWdlX2xvb3ApOgoJICBVc2UgX0tFRVAgYXMgbWVyZ2UgbW9kZSByYXRoZXIgdGhhbiBfS0VFUF9BTEwsIHNvIHRhZ3MKCSAgYXJyaXZpbmcgaW4gYSBzZWNvbmQgb3IgdGhpcmQgdGFnIG1lc3NhZ2UgYXJlIGFkZGVkIHRvCgkgIHRoZSB0YWcgbGlzdCBhcyB3ZWxsLgoKMjAwNy0xMC0zMSAxMzowMTozNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEl0cyAiU2luY2U6IiBhbmQgbm90ICJAU2luY2U6Ii4gQW5kIHJlbW92ZSBhbiBzdXBlcmZsb3VzIGNhc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBJdHMgIlNpbmNlOiIgYW5kIG5vdCAiQFNpbmNlOiIuIEFuZCByZW1vdmUgYW4gc3VwZXJmbG91cyBjYXN0LgoKMjAwNy0xMC0zMCAxODozMDoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBhIG5ldyBsYXN0LWJ1ZmZlciBwcm9wZXJ0eSB0aGF0IGNvbnRhaW5zIHRoZSBsYXN0IGJ1ZmZlciB1c2VkIGluIGJhc2VzaW5rIGZvciBwcmVyb2xsIG9yIHJlbmRlcmluZy4gdXNlZnVsIGZvciBtYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9sYXN0X2J1ZmZlciksIChnc3RfYmFzZV9zaW5rX3NldF9sYXN0X2J1ZmZlciksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdF91bmxvY2tlZCksIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZCBhIG5ldyBsYXN0LWJ1ZmZlciBwcm9wZXJ0eSB0aGF0IGNvbnRhaW5zIHRoZSBsYXN0IGJ1ZmZlciB1c2VkIGluCgkgIGJhc2VzaW5rIGZvciBwcmVyb2xsIG9yIHJlbmRlcmluZy4gdXNlZnVsIGZvciBtYWtpbmcgc25hcHNob3RzLgoJICBBUEk6IGdzdF9iYXNlX3NpbmtfZ2V0X2xhc3RfYnVmZmVyKCkKCSAgQVBJOiBHc3RCYXNlU2luazo6bGFzdC1idWZmZXIKCjIwMDctMTAtMjkgMTM6NDY6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEltcHJvdmUgYmluIGdyYXBoIGR1bXBpbmcsIGJ5IHVzaW5nIHRoZSBlbnZ2YXIgdG8gc3BlY2lmeSBhIHBhdGguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBJbXByb3ZlIGJpbiBncmFwaCBkdW1waW5nLCBieSB1c2luZyB0aGUgZW52dmFyIHRvIHNwZWNpZnkgYSBwYXRoLgoJICBSZW5hbWUgdGhlIGVudnZhciB0byBHU1RfREVCVUdfRFVNUF9ET1RfRElSLgoKMjAwNy0xMC0yOSAxMzoxMDowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IFBvc3Qgc3BlY2lhbCBlcnJvciBtZXNzYWdlIGlmIHdlIGNhbid0IGRldGVybWluZSB0aGUgdHlwZSBvZiBhIHN0cmVhbSBiZWNhdXNlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICBQb3N0IHNwZWNpYWwgZXJyb3IgbWVzc2FnZSBpZiB3ZSBjYW4ndCBkZXRlcm1pbmUgdGhlIHR5cGUgb2YgYSBzdHJlYW0KCSAgYmVjYXVzZSBpdCdzIGVtcHR5LgoKMjAwNy0xMC0yOSAxMDowNTo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRG9jdW1lbnQgbmV3IGVudi12YXIuIEFkZCBvbmUgbG9nLWxpbmUgYWZ0ZXIgZHVtcG5nIGEgZ3JhcGguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIERvY3VtZW50IG5ldyBlbnYtdmFyLiBBZGQgb25lIGxvZy1saW5lIGFmdGVyIGR1bXBuZyBhIGdyYXBoLgoKMjAwNy0xMC0yNiAxODozOTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogVWdseSBoYWNrIHRvIHB1dCB0aGUgKHJlY2VudGx5IHJlbW92ZWQgYW5kIG5vbi1wb3J0YWJsZSwgYXBwYXJlbnRseSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBVZ2x5IGhhY2sgdG8gcHV0IHRoZSAocmVjZW50bHkgcmVtb3ZlZCBhbmQgbm9uLXBvcnRhYmxlLCBhcHBhcmVudGx5KQoJICAtV2wsLS1leHBvcnQtZHluYW1pYyBiYWNrIGludG8gbGliZ3N0Y2hlY2sncyBMREZMQUdTIHdoZW4gd2UncmUgdXNpbmcKCSAgR05VIGxkLCBiZWNhdXNlIHdpdGhvdXQgdGhhdCAnbWFrZSBjaGVjaycgZmFpbHMgbWlzZXJhYmx5IG9uIG15IGRlYmlhbgoJICBzdGFibGUgYm94LiAgU29tZW9uZSB3aXRoIG1vcmUga25vd2xlZGdlIG9mIGxpbmtlciBpbnRyaWNhY2llcyBhbmQKCSAgcG9ydGFiaWxpdHkgaXNzdWVzIHRoYW4gbWUgZml4IHRoaXMgcHJvcGVybHkgcGxlYXNlLgoKMjAwNy0xMC0yNSAxNzoyMDo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmVzZXQgbGFzdCBzZWVuIHBvc2l0aW9uIGFmdGVyIGZsdXNoaW5nIHNvIHRoYXQgd2UgZG9uJ3QgcmVwb3J0IHRoZSBvbGQgcG9zaXRpb24gYW55bW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19ldmVudCk6CgkgIFJlc2V0IGxhc3Qgc2VlbiBwb3NpdGlvbiBhZnRlciBmbHVzaGluZyBzbyB0aGF0IHdlIGRvbid0IHJlcG9ydCB0aGUgb2xkCgkgIHBvc2l0aW9uIGFueW1vcmUuCgoyMDA3LTEwLTI1IDE2OjE5OjA1ICswMDAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyb0BubnZhLm9yZz4KCgkgIGdzdC86IFBhdGNoIGZyb20gQWxlc3NhbmRybyBEZWNpbmEgYWRkaW5nIGdldF90eXBlX2Z1bGwgYW5kIGdldF9wcm90b2NvbHNfZnVsbCBwcml2YXRlIHZmdW5jcyB0byB0aGUgVVJJSGFuZGxlciBpbnRlci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X3JlZ2lzdGVyKToKCSAgKiBnc3QvZ3N0dXJpLmg6CgkgIFBhdGNoIGZyb20gQWxlc3NhbmRybyBEZWNpbmEgYWRkaW5nIGdldF90eXBlX2Z1bGwgYW5kCgkgIGdldF9wcm90b2NvbHNfZnVsbCBwcml2YXRlIHZmdW5jcyB0byB0aGUgVVJJSGFuZGxlciBpbnRlcmZhY2UKCSAgdG8gYWxsb3cgYmluZGluZ3MgdG8gc3VwcG9ydCBjcmVhdGluZyBVUkkgaGFuZGxlcnMuCgkgIFBhcnRpYWxseSBmaXhlczogIzMzOTI3OQoJICBBUEk6IEdzdFVSSUhhbmRsZXJJbnRlcmZhY2U6OmdldF90eXBlX2Z1bGwKCSAgQVBJOiBHc3RVUklIYW5kbGVySW50ZXJmYWNlOjpnZXRfcHJvdG9jb2xzX2Z1bGwKCjIwMDctMTAtMjUgMTU6MTQ6MDIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IE1ha2UgaXQgc28gdGhhdCBwYWRzIGFyZSBjb25zaWRlcmVkIGxpbmtlZCB1bnRpbCBhIGJ1ZmZlciBpcyBwdXNoZWQgYW5kIGRpc2NvdmVyZWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfbXVsdGlfcXVldWVfcmVxdWVzdF9uZXdfcGFkKSwgKGdzdF9zaW5nbGVfcXVldWVfZmx1c2gpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2xvb3ApLCAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCk6CgkgIE1ha2UgaXQgc28gdGhhdCBwYWRzIGFyZSBjb25zaWRlcmVkIGxpbmtlZCB1bnRpbCBhIGJ1ZmZlciBpcyBwdXNoZWQKCSAgYW5kIGRpc2NvdmVyZWQgb3RoZXJ3aXNlLiBUaGlzIGF2b2lkcyBwcm9ibGVtcyB3aXRoIGRlY29kZWJpbjIgaGFuZ2luZwoJICBhZnRlciBhIHNlZWsgaW4gdGhlIGZpbGVzcmMgISBkZWNvZGViaW4yIG5hbWU9ZCAhIGZha2VzaW5rIGQuICEgZmFrZXNpbmsKCSAgY2FzZS4KCSAgTWFrZSBzdXJlIHdlIGxvY2sgdGhlIG11bHRpcXVldWUgd2hlbiB1cGRhdGluZyB0aGUgbWF4LXNpemUgcHJvcGVydGllcy4KCSAgRml4IGEgY3Jhc2ggb24gU29sYXJpcyBpbiBhIGRlYnVnIHN0YXRlbWVudCBpbiBnZXRfcmVxdWVzdF9wYWQgdGhhdAoJICBwYXNzZXMgYSBOVUxMIHN0cmluZyB0byBHU1RfREVCVUcuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOiAobXFfZHVtbXlwYWRfY2hhaW4pLAoJICAocnVuX291dHB1dF9vcmRlcl90ZXN0KToKCSAgRml4IHRoZSB0ZXN0IHRvIGFsbG93IHRoZSBmaXJzdCBidWZmZXIgb24gbm90LWxpbmtlZCBwYWRzIHRvIGNvbWUgb3V0CgkgIG9mIHNlcXVlbmNlIHdoaWxlIG11bHRpcXVldWUgZGlzY292ZXJzIHRoYXQgdGhleSBhcmUgbm90LWxpbmtlZC4KCjIwMDctMTAtMjUgMTQ6NTA6NDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgVXNlIGEgY3VzdG9tIGV4cG9ydCBzeW1ib2wgcmVnZXggZm9yIGxpYmdzdGNoZWNrLCBhcyBpdCBuZWVkcyB0byBleHBvcnQgc3ltYm9scyB0aGF0IGRvbid0IG1hdGNoIHRoZSBzdGFuZGFyZCBHU3RyZWFtLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgVXNlIGEgY3VzdG9tIGV4cG9ydCBzeW1ib2wgcmVnZXggZm9yIGxpYmdzdGNoZWNrLCBhcyBpdCBuZWVkcwoJICB0byBleHBvcnQgc3ltYm9scyB0aGF0IGRvbid0IG1hdGNoIHRoZSBzdGFuZGFyZCBHU3RyZWFtZXIgZ3N0XyoKCSAgcGF0dGVybiwgYW5kICAtLWV4cG9ydC1keW5hbWljIGlzIG5vdCBwb3J0YWJsZSAob25seSB3b3JrcyBvbgoJICBHTlUgbGQpCgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19zZXR1cF9zcmNfcGFkKSwKCSAgKGdzdF9jaGVja19zZXR1cF9zaW5rX3BhZCk6CgkgIE1ha2Ugc3VyZSB0byBwYXNzIGEgbWVzc2FnZSBwYXJhbWV0ZXIgdG8gdGhlIGZhaWxfKiBtYWNyb3MuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IHNvbWUgY29tcGlsZXIgd2FybmluZ3MuCgoyMDA3LTEwLTI1IDE0OjQxOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiBEaXNhYmxlIHRlc3QgdGhhdCBjaGVja3MgdGhhdCB3aGl0ZSBzcGFjZXMgYXJlIG5vdCBhbGxvd2VkIGluIHN0cnVjdHVyZSBuYW1lcyBvciBmaWVsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKHRlc3RfdG9fc3RyaW5nKToKCSAgRGlzYWJsZSB0ZXN0IHRoYXQgY2hlY2tzIHRoYXQgd2hpdGUgc3BhY2VzIGFyZSBub3QgYWxsb3dlZAoJICBpbiBzdHJ1Y3R1cmUgbmFtZXMgb3IgZmllbGQgbmFtZXMsIHNpbmNlIHdlIG5lZWQgdG8KCSAgc3VwcG9ydCB0aGF0IGZvciBub3cgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHJlYXNvbnMuCgoyMDA3LTEwLTI0IDEzOjEzOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgR1NUX1RBR19BUlRJU1RfU09SVE5BTUUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFQSTogYWRkIEdTVF9UQUdfQVJUSVNUX1NPUlROQU1FCgkgIEFQSTogYWRkIEdTVF9UQUdfQUxCVU1fU09SVE5BTUUKCSAgQVBJOiBhZGQgR1NUX1RBR19USVRMRV9TT1JUTkFNRQoJICBBZGQgdGFnIHZhcmlhbnRzIGZvciBzb3J0aW5nICgjNDE0NTM5KS4KCjIwMDctMTAtMjQgMTM6MDA6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IEFsc28gYWxsb3cgd2hpdGUgc3BhY2UgZm9yIG5hbWVzIHNvIHdlIGRvbid0IGJyZWFrIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIEFsc28gYWxsb3cgd2hpdGUgc3BhY2UgZm9yIG5hbWVzIHNvIHdlIGRvbid0IGJyZWFrCgkgIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgoKMjAwNy0xMC0yMiAxNTozNzo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogU21hbGwgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJICBTbWFsbCB1cGRhdGVzLgoKMjAwNy0xMC0yMiAxMTozMjoxNCArMDAwMCAgRWRnYXJkIExpbWEgPGVkZ2FyZC5saW1hQGluZHQub3JnLmJyPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogRml4ZWQgZG9jdW1lbnRhdGlvbiBmcm9tIG15IHByZXZpb3VzIGNvbW1pdCAoYWRkZWQgbmV3IEFQSSBhZGQgZ3N0X3ZhbHVlX3NldF9zdHJ1Y3R1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEZpeGVkIGRvY3VtZW50YXRpb24gZnJvbSBteSBwcmV2aW91cyBjb21taXQgKGFkZGVkIG5ldyBBUEkgYWRkCgkgIGdzdF92YWx1ZV9zZXRfc3RydWN0dXJlKCksIGFkZCBnc3RfdmFsdWVfZ2V0X3N0cnVjdHVyZSgpIGFuZAoJICBHU1RfVkFMVUVfSE9MRFNfU1RSVUNUVVJFKS4KCjIwMDctMTAtMjIgMTE6MTA6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IFJlZmxvdyBjb2RlIHRvIGZpeCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHdhcm5pbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIFJlZmxvdyBjb2RlIHRvIGZpeCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHdhcm5pbmcuCgoyMDA3LTEwLTIyIDA4OjUzOjI2ICswMDAwICBFZGdhcmQgTGltYSA8ZWRnYXJkLmxpbWFAaW5kdC5vcmcuYnI+CgoJICBBZGRlZCBHc3RTdHJ1Y3R1cmUgdG8gZ3N0X3ZhbHVlX3RhYmxlIGFuZCBpdHMgcmVsYXRlZCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc190b19zdHJpbmcpLAoJICAoZ3N0X2NhcHNfZnJvbV9zdHJpbmdfaW5wbGFjZSk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9nZXRfYWJicnMpLAoJICAoZ3N0X3N0cnVjdHVyZV90b19zdHJpbmcpLCAoZ3N0X3N0cnVjdHVyZV9mcm9tX3N0cmluZyk6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2V0X3N0cnVjdHVyZSksCgkgIChnc3RfdmFsdWVfZ2V0X3N0cnVjdHVyZSksIChnc3RfdmFsdWVfc2VyaWFsaXplX3N0cnVjdHVyZSksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfc3RydWN0dXJlKSwgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3N0cnVjdHVyZV9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZGVkIEdzdFN0cnVjdHVyZSB0byBnc3RfdmFsdWVfdGFibGUgYW5kIGl0cyByZWxhdGVkIGZ1bmN0aW9ucy4KCSAgQ2hhbmdlZCBnc3Rfc3RydWN0dXJlX3RvX3N0cmluZyB0byBwcmludCAnOycgaW4gdGhlIGVuZC4KCSAgQ2hhbmdlZCBnc3RfY2Fwc190b19zdHJpbmcgdG8gbm90IHByaW50ICc7JyBiZXRld2VlbiBpdHMKCSAgZmllbGRzIChzdHJ1Y3R1cmVzKSBhbnltb3JlIGFuZCByZW1vdmUgdGhlIGxhc3RlcyAnOycgZnJvbSBsYXRlc3QKCSAgc3RydWN0dXJlLiBOb3cgaXQgaXMgcG9zc2libGUgdG8gaGF2ZSBuZXN0ZWQgc3RydWN0dXJlcy4KCSAgSW4gYWRkaXRpb24sIGJhY2t3YXJkIGNvbXBhdGliaWx0eSBpcyBhc3N1cmVkIGJ5IGFjY2VwdGluZyAnXDAnIGFzCgkgIGVuZCBkZWxpbWl0ZXIuIEZpeGVzOiAjNDg3OTY5LgoJICBBUEk6IGFkZCBnc3RfdmFsdWVfc2V0X3N0cnVjdHVyZSgpCgkgIEFQSTogYWRkIGdzdF92YWx1ZV9nZXRfc3RydWN0dXJlKCkKCjIwMDctMTAtMTkgMDk6NDg6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IFdoZW4gbm8gR1NvdXJjZSBjYWxsYmFjayBoYXMgYmVlbiBzZXQgdXAsIHRlbGwgZGV2ZWxvcGVyIHRvIHVzZSBhIGZ1bmN0aW9uIHRoYXQgYWN0dWFsbHkgZXhpc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIFdoZW4gbm8gR1NvdXJjZSBjYWxsYmFjayBoYXMgYmVlbiBzZXQgdXAsIHRlbGwgZGV2ZWxvcGVyCgkgIHRvIHVzZSBhIGZ1bmN0aW9uIHRoYXQgYWN0dWFsbHkgZXhpc3RzLgoKMjAwNy0xMC0xNyAxMjo1ODoyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWxsb3cgZHVtcGluZyBwaXBlbGluZXMgYXMgZG90IGdyYXBocy4gRml4ZXMgIzQ1NjU3My4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgQWxsb3cgZHVtcGluZyBwaXBlbGluZXMgYXMgZG90IGdyYXBocy4gRml4ZXMgIzQ1NjU3My4KCjIwMDctMTAtMTYgMjE6NDg6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IEFsbG93ICcrJyBhcyB3ZWxsLCBpdCBjYW4gYmUgcGFydCBvZiBtZWRpYSBvciBtaW1lIHR5cGVzIHN1Y2ggYXMgaW1hZ2Uvc3ZnK3htbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBBbGxvdyAnKycgYXMgd2VsbCwgaXQgY2FuIGJlIHBhcnQgb2YgbWVkaWEgb3IgbWltZSB0eXBlcwoJICBzdWNoIGFzIGltYWdlL3N2Zyt4bWwuCgoyMDA3LTEwLTE2IDIwOjMwOjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgZ3N0X2J1c19wb3BfZmlsdGVyZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICBBUEk6IGFkZCBnc3RfYnVzX3BvcF9maWx0ZXJlZAoJICBBUEk6IGFkZCBnc3RfYnVzX3RpbWVkX3BvcF9maWx0ZXJlZAoJICBUd28gbmV3IGZ1bmN0aW9ucyBmb3Igd2FpdGluZyBmb3Igc3BlY2lmaWMgbWVzc2FnZSB0eXBlcyBvbiB0aGUKCSAgYnVzIGZvciBhIHNwZWNpZmllZCBhbW91bnQgb2YgdGltZSB3aXRob3V0IGl0ZXJhdGluZyBhbnkgbWFpbgoJICBsb29wcyBvciBtYWluIGNvbnRleHRzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgU29tZSB0ZXN0cyBmb3IgdGhlIG5ldyBmdW5jdGlvbnMuCgoyMDA3LTEwLTE2IDE3OjIxOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogTWFrZSBndGstZG9jIGlnbm9yZSBzdHVmZiBpdCBzaG91bGQgaWdub3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBNYWtlIGd0ay1kb2MgaWdub3JlIHN0dWZmIGl0IHNob3VsZCBpZ25vcmUuCgoyMDA3LTEwLTE2IDE2OjEyOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suKjogQWxsb3cgcnVudGltZSBzZWxlY3Rpb24gb2YgdW5pdCB0ZXN0cyB0byBydW4gdmlhIHRoZSBHU1RfQ0hFQ0tTIGVudmlyb25tZW50IHZhcmlhYmxlICh0ZXN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgQWxsb3cgcnVudGltZSBzZWxlY3Rpb24gb2YgdW5pdCB0ZXN0cyB0byBydW4gdmlhIHRoZSBHU1RfQ0hFQ0tTCgkgIGVudmlyb25tZW50IHZhcmlhYmxlICh0ZXN0IGNhc2UgZnVuY3Rpb24gbmFtZXMsIGNvbW1hLXNlcGFyYXRlZCkuCgoyMDA3LTEwLTE2IDEzOjU4OjQzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBSZXZlcnQgc2VyaWFsaXNhdGlvbiBjaGFuZ2UgYW5kIGNvbnN0cmFpbiBzdHJ1Y3R1cmUtbmFtZXMgYWZ0ZXIgY29uc2Vuc3VzIG9uIGlyYy4gVXBkYXRlIGFwaSBkb2N1bWVudGF0aW9uIHRvIHJlZmxlY3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgUmV2ZXJ0IHNlcmlhbGlzYXRpb24gY2hhbmdlIGFuZCBjb25zdHJhaW4gc3RydWN0dXJlLW5hbWVzIGFmdGVyCgkgIGNvbnNlbnN1cyBvbiBpcmMuIFVwZGF0ZSBhcGkgZG9jdW1lbnRhdGlvbiB0byByZWZsZWN0IHRoZSBjaGFuZ2UuCgoyMDA3LTEwLTE2IDA2OjMyOjA3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IEltcHJvdmUgc2VyaWFsaXphdGlvbiBhbmQgZml4IHRlc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIEltcHJvdmUgc2VyaWFsaXphdGlvbiBhbmQgZml4IHRlc3RzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgQWRkIGFub3RoZXIgdGVzdCB0aGF0IGNvdmVycyB3aHkgSSBhY3R1YWxseSBkaWQgdGhlIHByZXZpb3VzIHN0cnVjdHVyZQoJICBjaGFuZ2UuCgoyMDA3LTEwLTE1IDE0OjMzOjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogRG9uJ3QgY3Jhc2ggd2hlbiBpbnNwZWN0aW5nIGFuIGVsZW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X2luZm8pOgoJICBEb24ndCBjcmFzaCB3aGVuIGluc3BlY3RpbmcgYW4gZWxlbWVudC4KCjIwMDctMTAtMTUgMTE6NTg6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IEFkZCB1bml0IHRlc3QgZm9yIGVzY2FwaW5nIG9mIHN0cnVjdHVyZSBuYW1lIHdoZW4gc2VyaWFsaXNpbmcgYW5kIGRlc2VyaWFsaXNpbmcgdG8vZnIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBBZGQgdW5pdCB0ZXN0IGZvciBlc2NhcGluZyBvZiBzdHJ1Y3R1cmUgbmFtZSB3aGVuIHNlcmlhbGlzaW5nCgkgIGFuZCBkZXNlcmlhbGlzaW5nIHRvL2Zyb20gc3RyaW5ncy4KCjIwMDctMTAtMTUgMTE6MzY6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogRml4IHF1ZXVlIG5lZ290aWF0aW9uLiBJZiBhY2NlcHRjYXBzIHVuY29uZGl0aW9uYWxseSByZXR1cm5zIFRSVUUsIHVwc3RyZWFtIGlzIHRyaWNrZWQgaW50byB0aGlua2kuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3Rfc2luZ2xlX3F1ZXVlX3B1c2hfb25lKSwKCSAgKGdzdF9zaW5nbGVfcXVldWVfbmV3KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCksCgkgIChnc3RfcXVldWVfcHVzaF9vbmUpOgoJICBGaXggcXVldWUgbmVnb3RpYXRpb24uIElmIGFjY2VwdGNhcHMgdW5jb25kaXRpb25hbGx5IHJldHVybnMgVFJVRSwKCSAgdXBzdHJlYW0gaXMgdHJpY2tlZCBpbnRvIHRoaW5raW5nIGl0IGNhbiBzdWdnZXN0IGEgZm9ybWF0IGRvd25zdHJlYW0KCSAgd2hpbGUgZG93bnN0cmVhbSBkb2VzIG5vdCBzdXBwb3J0IHRoYXQgZm9ybWF0LiBUaGUgcmVhbCBwcm9ibGVtIGlzIHRoYXQKCSAgY29yZSBjYWxscyBhY2NlcHRjYXBzIHdoZW4gcHVzaGluZyBhIGJ1ZmZlciB3aXRoIG5ldyBjYXBzLCBmb3Igd2hpY2ggd2UKCSAgZG8gYSBsaXR0bGUgd29ya2Fyb3VuZCBieSBzZXR0aW5nIHRoZSBjYXBzIG9uIHRoZSBzcmNwYWQgb3Vyc2VsdmVzCgkgIGJlZm9yZSBwdXNoaW5nIHRoZSBidWZmZXIgKHVudGlsIHRoaXMgaXMgZmlndXJlZCBvdXQpLiBGaXhlcyAjNDg2NzU4LgoKMjAwNy0xMC0xNSAxMToxOTozNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogQWRkIHNvbWUgbW9yZSBjb21tZW50cyBhbmQgZGVidWcgb3V0cHV0LiBRdW90ZSBzdHJ1Y3R1cmUgbmFtZSB0byBmaXggZGVzZXJpYWxpc2F0aW9uIG9mIHNvbWUgc3RyaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBBZGQgc29tZSBtb3JlIGNvbW1lbnRzIGFuZCBkZWJ1ZyBvdXRwdXQuIFF1b3RlIHN0cnVjdHVyZSBuYW1lIHRvIGZpeAoJICBkZXNlcmlhbGlzYXRpb24gb2Ygc29tZSBzdHJpbmdzLgoKMjAwNy0xMC0xNSAwNzozNzozNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGJ1ZmZlci5oOiBEZWZpbmUgR1NUX0JVRkZFUl9GTEFHX0dBUCBtb3JlIHN0cmljdGx5IHRvIGVuYWJsZSBvcHRpbWl6YXRpb25zIGJhc2VkIG9uIGl0LiBGaXggZG9jcyBmb3IgR1NUX0JVRkZFLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgRGVmaW5lIEdTVF9CVUZGRVJfRkxBR19HQVAgbW9yZSBzdHJpY3RseSB0byBlbmFibGUgb3B0aW1pemF0aW9ucyBiYXNlZAoJICBvbiBpdC4gRml4IGRvY3MgZm9yIEdTVF9CVUZGRVJfTUFMTE9DREFUQSBhbmQgR3N0QnVmZmVyLm1hbGxvY19kYXRhLgoKMjAwNy0xMC0xNSAwNzoxMTowNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogU2F2ZSBhcHByb3guIDQwMCAxIGJ5dGUgYWxsb2NzIHdoZW4gcHJpbnRpbmcuIFVzZSBBUEkgdG8gYWNjZXMgZWxlbWVudCBkZXRhaWxzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBTYXZlIGFwcHJveC4gNDAwIDEgYnl0ZSBhbGxvY3Mgd2hlbiBwcmludGluZy4gVXNlIEFQSSB0byBhY2NlcyBlbGVtZW50CgkgIGRldGFpbHMuCgkgICogdG9vbHMvZ3N0LXJ1bi5jOgoJICBBdm9pZCBhIHN0cmR1cC4KCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBVc2UgQVBJIHRvIGFjY2VzIGVsZW1lbnQgZGV0YWlscy4KCjIwMDctMTAtMTUgMDY6NTI6MDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmM6IEZpeCBzb21lIHNwZWxsaW5nIGVycm9ycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgRml4IHNvbWUgc3BlbGxpbmcgZXJyb3JzLgoKMjAwNy0xMC0xNCAxNTo1NDowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQ29ycmVjdGx5IHNldCB0aGUgbmV4dCBzdGF0ZSBpZiBhbGwgb2Ygb3VyIGFzeW5jIGNoaWxkcmVuIGNvbW1pdGVkIHRoZWlyIHN0YXRlLiBUaGlzIG1ha2VzIHN1cmUgd2UgY2FuIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5faGFuZGxlX2FzeW5jX2RvbmUpOgoJICBDb3JyZWN0bHkgc2V0IHRoZSBuZXh0IHN0YXRlIGlmIGFsbCBvZiBvdXIgYXN5bmMgY2hpbGRyZW4gY29tbWl0ZWQgdGhlaXIKCSAgc3RhdGUuIFRoaXMgbWFrZXMgc3VyZSB3ZSBjYW4gYWN0dWFsbHkgY2FuY2VsIHRoZSBzdGF0ZSBjaGFuZ2UgaW4KCSAgcHJvZ3Jlc3MuIEZpeGVzIGEgcmVncmVzc2lvbiBpbiBSaHl0aG1ib3ggd2hlbiBzZWVraW5nLgoKMjAwNy0xMC0xMyAxNzo0MzoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogRG9uJ3Qgc2hhZG93IGxvY2FsIHZhcmlhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6CgkgIERvbid0IHNoYWRvdyBsb2NhbCB2YXJpYWJsZS4KCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBEb24ndCBzaGFkb3cgZ2xvYmFsIGZ1bmN0aW9uIG5hbWUuCgoyMDA3LTEwLTEzIDE3OjIwOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogVXNlIGFscmVhZHktaW50ZXJuZWQgc3RyaW5nIGZvciB0aGUgcHJpdmF0ZSBHc3RQbHVnaW5GZWF0dXJlIHBsdWdpbl9uYW1lIGZpZWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgIFVzZSBhbHJlYWR5LWludGVybmVkIHN0cmluZyBmb3IgdGhlIHByaXZhdGUgR3N0UGx1Z2luRmVhdHVyZQoJICBwbHVnaW5fbmFtZSBmaWVsZC4KCjIwMDctMTAtMTAgMjI6NDM6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBZGQgbmV3IEFQSSB0byBkb2NzOyBmaXhlcyB0aGUgYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZCBuZXcgQVBJIHRvIGRvY3M7IGZpeGVzIHRoZSBidWlsZC4KCjIwMDctMTAtMTAgMTU6MTg6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLio6IEFkZCBmdW5jdGlvbiB0byB3YWl0IGZvciBFT1MsIHN1YmNsYXNzZXMgY2FuIHVzZSB0aGlzIHRvIGNvcnJlY3RseSB3YWl0IGZvciBkZXZpY2VzIHRvIGQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGluc3BpcmVkIGJ5OiBCZW5vaXQgRm91ZXQgPGJlbm9pdCBkb3QgZm91ZXQgYXQgcHVycGxlbGFicyBkb3QgY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfd2FpdF9lb3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBZGQgZnVuY3Rpb24gdG8gd2FpdCBmb3IgRU9TLCBzdWJjbGFzc2VzIGNhbiB1c2UgdGhpcyB0byBjb3JyZWN0bHkgd2FpdAoJICBmb3IgZGV2aWNlcyB0byBkcmFpbiBiZWZvcmUgcGVyZm9ybWluZyB0aGUgRU9TIGxvZ2ljLiBGaXhlcyAjNDg1MzQzLgoJICBBUEk6IGdzdF9iYXNlX3Npbmtfd2FpdF9lb3MoKQoKMjAwNy0xMC0xMCAxMDo1MzozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW4uaDogQ2FzdCBkZXNjcmlwdGlvbiBzdHJpbmcgY29uc3RhbnRzIGluIEdTVF9QTFVHSU5fREVGSU5FIG1hY3JvcyB0byBhIChnY2hhciopIHRvIG1ha2UgQysrIGNvZGUgdXNpbmcgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIENhc3QgZGVzY3JpcHRpb24gc3RyaW5nIGNvbnN0YW50cyBpbiBHU1RfUExVR0lOX0RFRklORSBtYWNyb3MKCSAgdG8gYSAoZ2NoYXIqKSB0byBtYWtlIEMrKyBjb2RlIHVzaW5nIHRoZXNlIG1hY3JvcyBjb21waWxlCgkgIHdpdGhvdXQgd2FybmluZyB3aXRoIGcrKy00LjIgKHNlZSAjNDYyNzM3KS4gIEV2ZW4gaWYgc2xpZ2h0bHkKCSAgdWdseSwgdGhpcyBzZWVtcyBwcmVmZXJhYmxlIHRvIHB1dHRpbmcgdGhlIGRlc2NyaXB0aW9uIHN0cmluZ3MKCSAgaW50byB0aGUgR0xpYiBxdWFyayB0YWJsZSBvciBtYWtpbmcgdGhlIHN0cnVjdHVyZSBtZW1iZXIgYQoJICBjb25zdCBnY2hhciAqIGFuZCBkb2luZyBjYXN0cyBpbiBjb3JlIGNvZGUgdGhhdCBhbGxvY3MgYW5kCgkgIGZyZWVzIHRoZXNlIHN0cmluZ3MsIG9yIHJlcXVpcmluZyBhIGNhc3QgaW4gdGhlIEMrKyBjb2RlLgoKMjAwNy0xMC0wOSAyMDo0NToxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmg6IFVzZSBfX0ZVTkNUSU9OX18gaW5zdGVhZCBvZiBfX1BSRVRUWV9GVU5DVElPTl9fLCBpdCdzIHNpbGx5IHRvIHByaW50IHRoZSBlbnRpcmUgY2xhc3MvZnVuY3Rpb24gc2lnbmF0dS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBVc2UgX19GVU5DVElPTl9fIGluc3RlYWQgb2YgX19QUkVUVFlfRlVOQ1RJT05fXywgaXQncyBzaWxseQoJICB0byBwcmludCB0aGUgZW50aXJlIGNsYXNzL2Z1bmN0aW9uIHNpZ25hdHVyZSBpbnRvIHRoZSBsb2cKCSAgZmlsZSBmb3IgQysrIGNvZGUuICBUaGlzIG9ubHkgYWZmZWN0cyBDKysgY29kZSwgZm9yIEMgY29kZQoJICBldmVyeXRoaW5nIHJlbWFpbnMgdGhlIHNhbWUuCgoyMDA3LTEwLTA5IDE2OjIwOjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBXb3JrIGFyb3VuZCBhIHByb2JsZW0gd2l0aCBwaXBlbGluZXMgY29udGFpbmluZyAoc2VtaSlsb29wcyB1bnRpbCBhIHByb3BlciwgbW9yZSBjb21wbGljYXRlZCBzb2x1dGlvbiBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKHJlbW92ZV9mcm9tX3F1ZXVlKToKCSAgV29yayBhcm91bmQgYSBwcm9ibGVtIHdpdGggcGlwZWxpbmVzIGNvbnRhaW5pbmcgKHNlbWkpbG9vcHMgdW50aWwgYQoJICBwcm9wZXIsIG1vcmUgY29tcGxpY2F0ZWQgc29sdXRpb24gaXMgcmVhZHkuIFNlZSAjNDc1NDU1LgoKMjAwNy0xMC0wOSAxNDoxODozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IFB1dCBtb3JlIHN0cmluZ3MgaW50byB0aGUgR0xpYiBxdWFyayB0YWJsZS4gTm8gbmVlZCB0byBrZWVwIGEgaHVuZHJlZC1zb21ldGhpbmcgY29waWVzIG9mIGlkZW50aWNhbCB2ZXJzaW9uIHN0ci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICBQdXQgbW9yZSBzdHJpbmdzIGludG8gdGhlIEdMaWIgcXVhcmsgdGFibGUuIE5vIG5lZWQgdG8ga2VlcAoJICBhIGh1bmRyZWQtc29tZXRoaW5nIGNvcGllcyBvZiBpZGVudGljYWwgdmVyc2lvbiBzdHJpbmdzLAoJICBsaWNlbnNlIHN0cmluZ3MsIHBhY2thZ2UgbmFtZSBzdHJpbmdzIGFuZCBwYWNrYWdlIG9yaWdpbgoJICBzdHJpbmdzIGFyb3VuZC4KCjIwMDctMTAtMDkgMTA6NDE6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDogRG9uJ3QgaW1wbHkgdGhhdCBpdCdzIG9rYXkgdG8gdW5jb25kaXRpb25hbGx5IGNoYW5nZSBidWZmZXIgZGF0YSBvciBidWZmZXIgbWV0YWQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIERvbid0IGltcGx5IHRoYXQgaXQncyBva2F5IHRvIHVuY29uZGl0aW9uYWxseSBjaGFuZ2UKCSAgYnVmZmVyIGRhdGEgb3IgYnVmZmVyIG1ldGFkYXRhIGluIGEgcGFkIHByb2JlIGNhbGxiYWNrLAoJICBhbmQgYSBidW5jaCBvZiBvdGhlciBjb21tZW50cy4gRml4ZXMgIzQzMDAzMS4KCjIwMDctMTAtMDggMjA6NDU6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9jb21tb24vOiBVcGRhdGUgZ2VuZXJhdGVkIGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJICAqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFVwZGF0ZSBnZW5lcmF0ZWQgZmlsZXMuCgoyMDA3LTEwLTA4IDE3OjU5OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDogUHJlZml4IHNlY3Rpb24gd2l0aCBicm9rZW4gY29kZSB3aXRoIGEgd2FybmluZyAoc2VlICMzNDI0MzIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICBQcmVmaXggc2VjdGlvbiB3aXRoIGJyb2tlbiBjb2RlIHdpdGggYSB3YXJuaW5nIChzZWUgIzM0MjQzMikuCgoyMDA3LTEwLTA4IDE3OjI2OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvOiBDYWxsIGdfdGhyZWFkX2luaXQoKSBiZWZvcmUgZ19vcHRpb25fY29udGV4dF9uZXcoKSB0byBhdm9pZCB3YXJuaW5ncy4gU3BvdHRlZCBieSBSaXRlc2ggS2hhZGdhcmF5LiBGaXhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaW5pdC54bWw6CgkgIENhbGwgZ190aHJlYWRfaW5pdCgpIGJlZm9yZSBnX29wdGlvbl9jb250ZXh0X25ldygpIHRvCgkgIGF2b2lkIHdhcm5pbmdzLiBTcG90dGVkIGJ5IFJpdGVzaCBLaGFkZ2FyYXkuIEZpeGVzICM0ODQyMjUuCgoyMDA3LTEwLTA4IDE3OjA1OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBXaGVuIHdlIHJlY2VpdmVkIEVPUyBhbmQgYXJlIHdhaXRpbmcgZm9yIHdoZW4gdG8gcG9zdCB0aGUgRU9TIG1lc3NhZ2UsIG91ciBzdGF0ZSBpcyBwcmVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdF91bmxvY2tlZCksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfbmVlZHNfcHJlcm9sbCksIChnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKToKCSAgV2hlbiB3ZSByZWNlaXZlZCBFT1MgYW5kIGFyZSB3YWl0aW5nIGZvciB3aGVuIHRvIHBvc3QgdGhlIEVPUyBtZXNzYWdlLAoJICBvdXIgc3RhdGUgaXMgcHJlcm9sbGVkIGFuZCB3ZSBzaG91bGQgbm90IHJldHVybiBBU1lOQy4KCSAgUmVvcmdhbml6ZSBzb21lIGNvZGUgcGF0aHMgdG8gaW1wbGVtZW50IHRoaXMgYmVoYXZpb3IuCgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoc2VuZF9lb3MpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3NpbmtzX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdCB0byB2ZXJpZnkgYWJvdmUgRU9TIGZpeC4KCjIwMDctMTAtMDggMTA6Mjg6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBNb3ZlIGRldGVjdGluZyB0aGUgaW5wdXQgY2FwcyBvZiB0aGUgc2lua3BhZCB0byB0aGUgc2V0Y2FwcyBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYXZlX3R5cGUpLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2luaXQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NldGNhcHMpLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKToKCSAgTW92ZSBkZXRlY3RpbmcgdGhlIGlucHV0IGNhcHMgb2YgdGhlIHNpbmtwYWQgdG8gdGhlIHNldGNhcHMgZnVuY3Rpb24uCgkgIFRoaXMgYWxsb3dzIHVzIHRvIHVwZGF0ZSB0aGUgb3V0cHV0IGNhcHMgd2hlbiB3ZSByZWNlaXZlIG5ldyBpbnB1dCBjYXBzCgkgIGluc3RlYWQgb2YgYWx3YXlzIHVzaW5nIHRoZSBmaXJzdCBkZXRlY3RlZCBjYXBzLgoKMjAwNy0xMC0wOCAxMDoyMToxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgdHJ5IHRvIHByZXJvbGwgbm9uLWFzeW5jIGVsZW1lbnRzIGFmdGVyIGEgZmx1c2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBEb24ndCB0cnkgdG8gcHJlcm9sbCBub24tYXN5bmMgZWxlbWVudHMgYWZ0ZXIgYSBmbHVzaC4KCSAgU3VidHJhY3QgbGF0ZW5jeSBmb3JtIGNsb2NrIHRpbWVzIHdoZW4gcmVwb3J0aW5nIHBvc2l0aW9uLgoKMjAwNy0xMC0wNSAxNDo0NDoxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFNtYWxsIGNvbW1lbnQgYW5kIGRvY3VtZW50YXRpb24gdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3BhdXNlX3Rhc2spOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBTbWFsbCBjb21tZW50IGFuZCBkb2N1bWVudGF0aW9uIHVwZGF0ZS4KCjIwMDctMTAtMDUgMTQ6NDA6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogUmV3b3JrIHRoZSBsb2NraW5nIG9mIGJhc2VzcmMgaW4gYSBzaW1pbGFyIGZhc2hpb24gdG8gYmFzZXNpbmsuIFdlIGJhc2ljYWxseSBoYXZlIG9uZSBsb2MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfd2FpdF9wbGF5aW5nKSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfbGl2ZSksIChnc3RfYmFzZV9zcmNfaXNfbGl2ZSksCgkgIChnc3RfYmFzZV9zcmNfcXVlcnlfbGF0ZW5jeSksIChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X2V2ZW50KSwgKGdzdF9iYXNlX3NyY193YWl0KSwKCSAgKGdzdF9iYXNlX3NyY19kb19zeW5jKSwgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX3BhZF9nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX3VubG9jayksIChnc3RfYmFzZV9zcmNfdW5sb2NrX3N0b3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9mbHVzaGluZyksIChnc3RfYmFzZV9zcmNfc2V0X3BsYXlpbmcpLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIFJld29yayB0aGUgbG9ja2luZyBvZiBiYXNlc3JjIGluIGEgc2ltaWxhciBmYXNoaW9uIHRvIGJhc2VzaW5rLiBXZQoJICBiYXNpY2FsbHkgaGF2ZSBvbmUgbG9jayAoTElWRV9MT0NLKSBwcm90ZWN0aW5nIHRoZSBkYXRhZmxvdy4gVGhpcyBhbGxvd3MKCSAgdXMgdG8gaGFuZGxlIGxpdmUgc291cmNlcyBhbmQgc2VtaSBsaXZlIG9uZXMgbXVjaCBiZXR0ZXIuCgkgIFNpbXBsaWZ5IGZsdXNoaW5nLgoJICBGaXggdW5sb2NraW5nIHdoZW4gc2Vla2luZywgc2h1dHRpbmcgZG93biBhbmQgcGF1c2luZyBpbiBsaXZlIHNvdXJjZXMuCgoyMDA3LTEwLTA1IDExOjUyOjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzogRml4IGNvbXBpbGF0aW9uIGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOiAocnVuX3BpcGVsaW5lKToKCSAgRml4IGNvbXBpbGF0aW9uIGFnYWluLgoKMjAwNy0xMC0wMyAxNToyNzoyNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogVXNlIG1lYW5pbmdmdWwgY2F0ZWdvcmllcyBmb3IgdGhlIGxvZ3MgdG8gY2xlYW4gdGhlIGRlZmF1bHQgb25lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBVc2UgbWVhbmluZ2Z1bCBjYXRlZ29yaWVzIGZvciB0aGUgbG9ncyB0byBjbGVhbiB0aGUgZGVmYXVsdCBvbmUuCgoyMDA3LTEwLTAzIDE1OjA1OjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOiBQcmludCBtZXNzYWdlIG5hbWUgYW5kIG5vdCBqdXN0IG51bWJlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSAgUHJpbnQgbWVzc2FnZSBuYW1lIGFuZCBub3QganVzdCBudW1iZXIuCgoyMDA3LTEwLTAzIDE1OjAyOjQzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDogQWRkIHNvbWUgbW9yZSB0aG91Z2h0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtdGFncmVhZGluZy50eHQ6CgkgIEFkZCBzb21lIG1vcmUgdGhvdWdodHMuCgoyMDA3LTEwLTAzIDE0OjUxOjAzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOiBQcmludCBtZXNzYWdlIG5hbWUgYW5kIG5vdCBqdXN0IG51bWJlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgUHJpbnQgbWVzc2FnZSBuYW1lIGFuZCBub3QganVzdCBudW1iZXIuCgoyMDA3LTEwLTAzIDEyOjA1OjE3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IFNwZWVkdXAgdHlwZWZpbmRpbmcuIFRoaXMgaXMgd29yayBpbiBwcm9ncmVzcyAoc2VlICM0NTk4NjIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIFNwZWVkdXAgdHlwZWZpbmRpbmcuIFRoaXMgaXMgd29yayBpbiBwcm9ncmVzcyAoc2VlICM0NTk4NjIpLgoKMjAwNy0xMC0wMyAxMTozNjoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBGaXggZG9jcyB0aGF0IG1lbnRpb24gJ3BsdWdpbl9kZXNjJyBpbnN0ZWFkIG9mICdnc3RfcGx1Z2luX2Rlc2MnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIEZpeCBkb2NzIHRoYXQgbWVudGlvbiAncGx1Z2luX2Rlc2MnIGluc3RlYWQgb2YgJ2dzdF9wbHVnaW5fZGVzYycuCgkgIFNwb3R0ZWQgYnkgSm9zZXAgVG9ycmEgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4uCgoyMDA3LTEwLTAzIDExOjE2OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGNsb2NrLmg6IEZpeCB1cCBicm9rZW4gR1NUX0NMT0NLX0ZMQUdTIG1hY3JvIGFuZCBHc3RDbG9jayBkb2NzLiBUaGUgZmxhZ3MgZmllbGQgaGFzIG1vdmVkIHRvIEdzdE9iamVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIEZpeCB1cCBicm9rZW4gR1NUX0NMT0NLX0ZMQUdTIG1hY3JvIGFuZCBHc3RDbG9jayBkb2NzLiBUaGUgZmxhZ3MKCSAgZmllbGQgaGFzIG1vdmVkIHRvIEdzdE9iamVjdC4KCjIwMDctMTAtMDIgMTU6MjA6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogQ2FsbCB1bmxvY2sgZm9yIGxpdmUgc291cmNlcyBzbyB0aGF0IHRoZXkgY2FuJ3QgZ2V0IHN0dWNrIGluIF9jcmVhdGUgYW5kIHByb2R1Y2UgYSBidWZmZXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBDYWxsIHVubG9jayBmb3IgbGl2ZSBzb3VyY2VzIHNvIHRoYXQgdGhleSBjYW4ndCBnZXQgc3R1Y2sgaW4gX2NyZWF0ZSBhbmQKCSAgcHJvZHVjZSBhIGJ1ZmZlciBiZWZvcmUgdGhleSBhcmUgc2V0IGJhY2sgdG8gUExBWUlORy4KCjIwMDctMTAtMDIgMDk6MjE6NDggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IENvbW1lbnQgdGhlIHNlZ21lbnQtcmVsYXRlZCBjb2RlLi4uIGluIHRoZSBQUk9QRVIgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSksCgkgIChnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUpOgoJICBDb21tZW50IHRoZSBzZWdtZW50LXJlbGF0ZWQgY29kZS4uLiBpbiB0aGUgUFJPUEVSIGZ1bmN0aW9uLgoJICBTZWUgIzQ4MjE0NyBhbmQgbXkgY29tbWl0IGZyb20geWVzdGVyZGF5LgoKMjAwNy0xMC0wMSAxNzo1OToyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBBbHNvIGluaXRpYWxpemUgdGhlIGNvdW50ZXIgdGhhdCBjYWxjdWxhdGVzIHRoZSBmaXJzdCB0aW1lc3RhbXAgb24gYSBidWZmZXIgY29ycmVjdGx5IGZvci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBBbHNvIGluaXRpYWxpemUgdGhlIGNvdW50ZXIgdGhhdCBjYWxjdWxhdGVzIHRoZSBmaXJzdCB0aW1lc3RhbXAgb24gYQoJICBidWZmZXIgY29ycmVjdGx5IGZvciBub24tbGl2ZSBzb3VyY2VzLgoKMjAwNy0xMC0wMSAxMjozMToyOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogRGlzYWJsZSBjb2RlIHRoYXQncyBicmVha2luZyB0aGUgY3VycmVudC10aW1lLWxldmVsIHJlcG9ydGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlKToKCSAgRGlzYWJsZSBjb2RlIHRoYXQncyBicmVha2luZyB0aGUgY3VycmVudC10aW1lLWxldmVsIHJlcG9ydGluZy4KCSAgU2VlICM0ODIxNDcKCjIwMDctMDktMzAgMTg6MTY6MzQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBNX1BJIGFuZCBJTVBPUlRfU1lNQk9MIHRvIHRoZSBwcml2YXRlIHBhcnQgb2YgdGhlIEdzdEluZm8gc2VjdGlvbiBhcyB0aGV5IHNob3VsZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgTV9QSSBhbmQgSU1QT1JUX1NZTUJPTCB0byB0aGUgcHJpdmF0ZSBwYXJ0IG9mIHRoZSBHc3RJbmZvIHNlY3Rpb24KCSAgYXMgdGhleSBzaG91bGRuJ3Qgc2hvdyB1cC4gRml4ZXMgdGhlIGRvY3MgYnVpbGQuCgoyMDA3LTA5LTI5IDExOjQ2OjMxICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0aW5mby5oOiBBZGQgYW4gZXhwbGljaXQgdmFyaWFibGUgaW1wb3J0YXRpb24gbmVlZGVkIG9uIFZTNiAob25seSBmb3IgTVNDX1ZFUikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgQWRkIGFuIGV4cGxpY2l0IHZhcmlhYmxlIGltcG9ydGF0aW9uIG5lZWRlZCBvbiBWUzYgKG9ubHkgZm9yIE1TQ19WRVIpCgkgIERlZmluZSBNX1BJIHdoaWNoIGlzIHVzZWQgaW4gZmlsZXMgd2hpY2ggYXJlIGluY2x1ZGluZyBnc3RpbmZvLmguCgkgIFZTNiBpbmNsdWRlcyBkb2Vzbid0IGRlZmluZSBpdC4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucyBhbmQgdmFyaWFibGVzLgoJICAqIHdpbjMyL3ZzNi9saWJnc3Rjb250cm9sbGVyLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSAgVXBkYXRlIHRoZSBsaXN0IG9mIGZpbGVzIHRvIGJ1aWxkLgoKMjAwNy0wOS0yOCAxMDoyMjo0MCArMDAwMCAgRmVsaXBlIENvbnRyZXJhcyA8ZmVsaXBlLmNvbnRyZXJhc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IEltcHJvdmUgZGVidWdnaW5nLiBGaXhlcyAjNDgwODU4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEZlbGlwZSBDb250cmVyYXMgPGZlbGlwZSBkb3QgY29udHJlcmFzIGF0IGdtYWlsIGRvdCBjb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAodXBkYXRlX3RpbWVfbGV2ZWwpLCAoYXBwbHlfYnVmZmVyKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSksIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9sb29wKSwgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgIEltcHJvdmUgZGVidWdnaW5nLiBGaXhlcyAjNDgwODU4LgoKMjAwNy0wOS0yOCAxMDoxNToyMyArMDAwMCAgRmVsaXBlIENvbnRyZXJhcyA8ZmVsaXBlLmNvbnRyZXJhc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IEZpcnN0IHBhdGNoIG9mIGNvZGUgY2xlYW51cHMsIHVzZSB0aGUgbWFjcm9zIGFuZCByaWdodCBhcmd1bWVudHMgaW4gdGhlIG1hY3JvcyB0byBzaWduYWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBGZWxpcGUgQ29udHJlcmFzIDxmZWxpcGUgZG90IGNvbnRyZXJhcyBhdCBnbWFpbCBkb3QgY29tPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCk6CgkgIEZpcnN0IHBhdGNoIG9mIGNvZGUgY2xlYW51cHMsIHVzZSB0aGUgbWFjcm9zIGFuZCByaWdodCBhcmd1bWVudHMgaW4gdGhlCgkgIG1hY3JvcyB0byBzaWduYWwgYW5kIGxvY2sgdGhlIHF1ZXVlLiBTZWUgIzQ4MDg1OC4KCjIwMDctMDktMjYgMTg6MDY6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IEltcHJvdmUgZGVidWdnaW5nIHdoZW4gZGVhbGluZyB3aXRoIF9wb2xsKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKHBvbGxfZnVuYyk6CgkgIEltcHJvdmUgZGVidWdnaW5nIHdoZW4gZGVhbGluZyB3aXRoIF9wb2xsKCkuCgoyMDA3LTA5LTI2IDE4OjA0OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IEZpeCBtZW1vcnkgbGVhayBJIGludHJvZHVjZWQgYSBmZXcgZGF5cyBhZ28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICBGaXggbWVtb3J5IGxlYWsgSSBpbnRyb2R1Y2VkIGEgZmV3IGRheXMgYWdvLgoKMjAwNy0wOS0yNiAxNzowMDoyMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBNYWtlIGl0IG9uY2UgYWdhaW4gcG9zc2libGUgdG8gZnJlZSBHc3RCdWZmZXJzIGluIHRoZSBkZWZhdWx0IGJ1aWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2ZpbmFsaXplKToKCSAgTWFrZSBpdCBvbmNlIGFnYWluIHBvc3NpYmxlIHRvIGZyZWUgR3N0QnVmZmVycyBpbiB0aGUgZGVmYXVsdAoJICBidWlsZC4KCSAgVGhlIHBvaXNvbmluZyBzY3JpYmJsZXMgb24gcGFydHMgb2YgdGhlIG1pbmlvYmplY3Qgd2UgbmVlZCBpbgoJICBvcmRlciB0byBmcmVlIGl0LgoJICBGaXhlcyAjNDgwMzQxCgoyMDA3LTA5LTI1IDE4OjM1OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgR1NUX1RBR19DT01QT1NFUiwgZml4ZXMgIzQ1OTgwOS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFQSTogYWRkIEdTVF9UQUdfQ09NUE9TRVIsIGZpeGVzICM0NTk4MDkuCgoyMDA3LTA5LTI0IDE3OjQxOjI1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLio6IEFkZCB0aGUgMy1jbGF1c2UgQlNEIGxpY2Vuc2UgYW5kIHRoZSBNSVQvWDExIGxpY2Vuc2UgdG8gdGhlIGxpY2Vuc2UgbGlzdC4gRml4ZXMgIzQ3OTc4NC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgQWRkIHRoZSAzLWNsYXVzZSBCU0QgbGljZW5zZSBhbmQgdGhlIE1JVC9YMTEgbGljZW5zZSB0byB0aGUgbGljZW5zZQoJICBsaXN0LiBGaXhlcyAjNDc5Nzg0LgoKMjAwNy0wOS0yNCAxNzoyMjoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZmFxL2dldHRpbmcueG1sOiBBZGQgUStBIGFib3V0IGRpZmZlcmVudCBHU3RyZWFtZXIgdmVyc2lvbnMgKCMzNjQwNTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nZXR0aW5nLnhtbDoKCSAgQWRkIFErQSBhYm91dCBkaWZmZXJlbnQgR1N0cmVhbWVyIHZlcnNpb25zICgjMzY0MDU2KS4KCjIwMDctMDktMjQgMTI6NDY6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFJldHVybiBjb3JyZWN0IGdib29sZWFuIGZyb20gcXVlcnkgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgUmV0dXJuIGNvcnJlY3QgZ2Jvb2xlYW4gZnJvbSBxdWVyeSBmdW5jdGlvbi4KCjIwMDctMDktMjQgMTI6Mjk6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNpbXBsaWZ5IGxhdGVuY3kgcXVlcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBTaW1wbGlmeSBsYXRlbmN5IHF1ZXJ5LgoJICBXaGVuIG5vdCBzeW5jaHJvbml6aW5nLCB3ZSBjYW4gcmVwb3J0IGxhdGVuY3kgd2l0aG91dCBxdWVyeWluZyB0aGUgcGVlcgoJICBlbGVtZW50LgoKMjAwNy0wOS0yNCAxMTo0NjozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEZpeCBzbWFsbCB0eXBvcyBpbiB0aGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBGaXggc21hbGwgdHlwb3MgaW4gdGhlIGRvY3MuCgoyMDA3LTA5LTI0IDExOjIyOjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBEb2N1bWVudGF0aW9uIHVwZGF0ZXMgYW5kIHR5cG8gZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtdGFncmVhZGluZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1hY3RpdmF0aW9uLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc291cmNlLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0ZWxlbWVudC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RvYmplY3QudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1wdXNoLXB1bGwudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXF1ZXJ5LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMgYW5kIHR5cG8gZml4ZXMuCgoyMDA3LTA5LTIzIDEwOjE2OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOiBBZGQgc29tZSBkZWJ1ZyB0ZXh0IHRvIGVycm9yIG1lc3NhZ2UgdG8gaW5kaWNhdGUgdGhhdCB3ZSBlcnJvcmVkIG91dCBvbiByZXF1ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIEFkZCBzb21lIGRlYnVnIHRleHQgdG8gZXJyb3IgbWVzc2FnZSB0byBpbmRpY2F0ZSB0aGF0CgkgIHdlIGVycm9yZWQgb3V0IG9uIHJlcXVlc3QuCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBXaGVuIHRoZSBzdGF0ZSBjaGFuZ2UgdG8gUExBWUlORyBmYWlscywgY2hlY2sgZm9yIGFuCgkgIGVycm9yIG1lc3NhZ2Ugb24gdGhlIGJ1cyBhbmQgcHJpbnQgaXQuCgoyMDA3LTA5LTIyIDE3OjIyOjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2NzLnBvOgoJKiBwby9odS5wbzoKCSogcG8vdWsucG86CgkgIHVwZGF0ZWQgdHJhbnNsYXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGVkIHRyYW5zbGF0aW9ucwoKMjAwNy0wOS0yMiAxNzoxODo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IEFkZGVkIFNwYW5pc2ggdHJhbnNsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmFuc2xhdGVkIGJ5OiBKb3JnZSBHb256w6FsZXogR29uesOhbGV6IDxhbG9yaWVsQGdtYWlsLmNvbT4KCSAgKiBwby9MSU5HVUFTOgoJICAqIHBvL2VzLnBvOgoJICBBZGRlZCBTcGFuaXNoIHRyYW5zbGF0aW9uLgoKMjAwNy0wOS0yMSAxNDozNzozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogRml4IHByaW50ZiBhcmd1bWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9wdXNoX29uZSk6CgkgIEZpeCBwcmludGYgYXJndW1lbnRzLgoKMjAwNy0wOS0yMCAxMDozNjoyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogSW1wcm92ZWQgc3RhdGUgY2hhbmdlIHVuaXQgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSAgSW1wcm92ZWQgc3RhdGUgY2hhbmdlIHVuaXQgdGVzdC4KCjIwMDctMDktMjAgMDc6NDI6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RiaW4uaDogTW92ZSBwcml2IHRvIHRoZSByaWdodCBwbGFjZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBNb3ZlIHByaXYgdG8gdGhlIHJpZ2h0IHBsYWNlLgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBBZGQgRklYTUU6IGFuZCBpbXByb3ZlIGxvZy4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIFdvcmsgd2l0aCBhbGwgdHlwZXMgb2YgcmVnaXN0cmllcy4KCjIwMDctMDktMTkgMjA6Mzk6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogRG9uJ3QgdW5yZWYgdGhlIGV2ZW50IGFmdGVyIHB1c2hpbmcgaXQuIEZpeGVzICM0Nzg0MDEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpOgoJICBEb24ndCB1bnJlZiB0aGUgZXZlbnQgYWZ0ZXIgcHVzaGluZyBpdC4gRml4ZXMgIzQ3ODQwMS4KCjIwMDctMDktMTkgMTg6MDc6MTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIElnbm9yZSByZWdpc3RyaWVzIGluIGFueSBmb3JtYXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIC5jdnNpZ25vcmU6CgkgICogdGVzdHMvZXhhbXBsZXMvbWFudWFsLy5jdnNpZ25vcmU6CgkgIElnbm9yZSByZWdpc3RyaWVzIGluIGFueSBmb3JtYXQuCgoyMDA3LTA5LTE5IDEzOjI4OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDogQWRkIGNvbXBhdGliaWxpdHkgbWFjcm8gZm9yIGdfaW50ZXJuX3N0cmluZygpIGZvcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJICBBZGQgY29tcGF0aWJpbGl0eSBtYWNybyBmb3IgZ19pbnRlcm5fc3RyaW5nKCkgZm9yCgkgIEdMaWItMi44IChhbnkgcmVhc29uIHdlIGNhbid0IGp1c3QgYnVtcCB0aGUKCSAgcmVxdWlyZW1lbnQgdG8gYXQgbGVhc3QgMi4xMD8pCgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIE1ha2UgR3N0U3RhdGljUGFkVGVtcGxhdGUncyB0ZW1wbF9uYW1lIGZpZWxkIGEgY29uc3QgZ2NoYXIgKiBhbmQgZml4CgkgIHVwIHRoZSBpbnRlcm5hbCBjb2RlIGFjY29yZGluZ2x5LiAgVGhpcyBzaG91bGRuJ3QgYmUgYSBwcm9ibGVtLCBzaW5jZQoJICB0aGVyZSBpcyBubyByZWFzb24gZXh0ZXJuYWwgY29kZSBjb3VsZCBldmVyIGFzc3VtZSB0aGUgc3RyaW5nIGluIHN1Y2gKCSAgYSBzdHJ1Y3R1cmUgaXMgZHluYW1pY2FsbHkgYWxsb2NhdGVkIHVubGVzcyBpdCBkaWQgdGhhdCBpdHNlbGY7ICB0aGUKCSAgdXNlIG9mIGdfc3RyZHVwKCkgaXMgcHJpdmF0ZSB0byBlbGVtZW50IGZhY3Rvcmllcy4gIFRoZSBuZXcgY29kZSBhbHNvCgkgIHNhdmVzIHNvbWUgbWVtb3J5IGJ5IHB1dHRpbmcgcGFkIHRlbXBsYXRlIG5hbWUgc3RyaW5ncyBpbnRvIHRoZSBHTGliCgkgIHF1YXJrIHRhYmxlIGluc3RlYWQgb2YgYWxsb2NhdGluZyB0aGVtIGR5bmFtaWNhbGx5LgoJICBEZWNsYXJpbmcgdGhpcyBmaWVsZCBjb25zdGFudCBmaXhlcyB3YXJuaW5ncyB3aXRoIGcrKy00LjIgd2hlbiB1c2luZwoJICB0aGUgR1NUX1NUQVRJQ19QQURfVEVNUExBVEUgbWFjcm8gaW4gYysrIGNvZGUgKCM0NzgwOTIpLgoKMjAwNy0wOS0xOSAxMjozMToxNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IFJlbGVhc2Ugc3RhdGljIGNhcHMuIEZpeGVzICM0NzU3MjMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBSZWxlYXNlIHN0YXRpYyBjYXBzLiBGaXhlcyAjNDc1NzIzLgoKMjAwNy0wOS0xOCAyMjoxMzo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLio6IE1ha2Ugc29tZSBpbnRlcm5hbCBBUEkgdGFrZSBjb25zdCBnY2hhciAqIGluc3RlYWQgb2YganVzdCBnY2hhciAqIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmdzIHdpdGggZysrLS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIE1ha2Ugc29tZSBpbnRlcm5hbCBBUEkgdGFrZSBjb25zdCBnY2hhciAqIGluc3RlYWQgb2YganVzdAoJICBnY2hhciAqIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmdzIHdpdGggZysrLTQuMi4yIHdoZW4KCSAgcGFzc2luZyBzdHJpbmcgY29uc3RhbnRzIChwYXJ0aWFsbHkgZml4ZXMgIzQ3ODA5MikuCgoyMDA3LTA5LTE3IDIwOjU1OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBBIGxhdGVuY3kgcXVlcnkgZmFpbHMgd2hlbiBvbmUgb2YgdGhlIHNpbmtzIGZhaWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9xdWVyeV9sYXRlbmN5X2ZvbGQpLCAoZ3N0X2Jpbl9xdWVyeSk6CgkgIEEgbGF0ZW5jeSBxdWVyeSBmYWlscyB3aGVuIG9uZSBvZiB0aGUgc2lua3MgZmFpbC4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X2Jhc2VfdGltZSk6CgkgIEltcHJvdmUgZGVidWdnaW5nLgoKMjAwNy0wOS0xNyAxNzoxNzoyOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBGaXggbWlub3IgY29tcGlsYXRpb24gd2FybmluZ3Mgc2hvd24gd2l0aCBGb3J0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jb250aW51ZV9mdW5jKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kb19zeW5jKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWRfZnVsbCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfbG9vcCk6CgkgIEZpeCBtaW5vciBjb21waWxhdGlvbiB3YXJuaW5ncyBzaG93biB3aXRoIEZvcnRlLgoKMjAwNy0wOS0xNyAwNjowMTo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogTWVhc3VyZSBxdWV1ZSBsZXZlbCBiYXNlZCBvbiB0aGUgZGlmZiBiZXR3ZWVuIGhlYWQgYW5kIHRhaWwgdGltZXN0YW1wcyBldmVuIHdoZW4gcHVzaGluZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChhcHBseV9idWZmZXIpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSk6CgkgIE1lYXN1cmUgcXVldWUgbGV2ZWwgYmFzZWQgb24gdGhlIGRpZmYgYmV0d2VlbiBoZWFkIGFuZCB0YWlsIHRpbWVzdGFtcHMKCSAgZXZlbiB3aGVuIHB1c2hpbmcgdGhlIGZpcnN0IGJ1ZmZlci4KCjIwMDctMDktMTQgMjM6MDY6MzEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNpbmtzIHRoYXQgZG9uJ3QgcHJlcm9sbCBjYW4gYWx3YXlzIGJlIHF1ZXJpZWQgZm9yIHRoZSBsYXRlbmN5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFNpbmtzIHRoYXQgZG9uJ3QgcHJlcm9sbCBjYW4gYWx3YXlzIGJlIHF1ZXJpZWQgZm9yIHRoZSBsYXRlbmN5LgoJICBEb24ndCBwb3N0IEFTWU5DIHN0YXJ0IHdoZW4gd2UgYXJlIG5vdCBhc3luYy4KCjIwMDctMDktMTQgMjA6MjQ6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLio6IFdoZW4gZG93bnN0cmVhbSByZXR1cm5zIFVORVhQRUNURUQgZnJvbSBwdXNoaW5nIGEgYnVmZmVyLCBkb24ndCB0cnkgdG8gcHVzaCBtb3JlIGJ1ZmZlcnMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX3B1c2hfb25lKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIFdoZW4gZG93bnN0cmVhbSByZXR1cm5zIFVORVhQRUNURUQgZnJvbSBwdXNoaW5nIGEgYnVmZmVyLCBkb24ndCB0cnkgdG8KCSAgcHVzaCBtb3JlIGJ1ZmZlcnMgYnV0IGFsbG93IHB1c2hpbmcgb2YgRU9TIGFuZCBORVdTRUdNRU5ULgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8gaGVyZSBhbmQgdGhlcmUuIEZpeGVzICM0NzY1MTQuCgoyMDA3LTA5LTE0IDE1OjUyOjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBMYXRlbmN5IHF1ZXJ5IGlzIGFsbG93ZWQgYWZ0ZXIgd2UgYXJlIHByZXJvbGxlZC4gSW50cm9kdWNlIGEgbmV3IGZsYWcgZm9yIHRoaXMgYW5kIHN0b3AgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLCAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X3ByZXJvbGwpLCAoZ3N0X2Jhc2Vfc2lua19uZWVkc19wcmVyb2xsKSwKCSAgKGdzdF9iYXNlX3Npbmtfc2V0X2ZsdXNoaW5nKSwgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBMYXRlbmN5IHF1ZXJ5IGlzIGFsbG93ZWQgYWZ0ZXIgd2UgYXJlIHByZXJvbGxlZC4gSW50cm9kdWNlIGEgbmV3IGZsYWcKCSAgZm9yIHRoaXMgYW5kIHN0b3AgYWJ1c2luZyBvdGhlciB2YXJpYWJsZXMuCgoyMDA3LTA5LTEzIDIzOjUzOjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFB1c2ggT09CIGV2ZW50cyBkb3duc3RyZWFtIHdoZW4gd2UgZ2V0IHRoZW0gaW4gc2VuZF9ldmVudC4gVGhpcyBhbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpOgoJICBQdXNoIE9PQiBldmVudHMgZG93bnN0cmVhbSB3aGVuIHdlIGdldCB0aGVtIGluIHNlbmRfZXZlbnQuIFRoaXMgYWxsb3dzCgkgIHRoZSBhcHBsaWNhdGlvbiB0byBpbnNlcnQgZXZlbnRzIGluIHRoZSBwaXBlbGluZS4KCSAgQWRkIHNvbWUgbW9yZSBjb21tZW50cy4KCjIwMDctMDktMTMgMjE6Mjc6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBNb3ZlIGxhdGVuY3kgcXVlcnkgZnJvbSBHc3RQaXBlbGluZSB0byBHc3RCaW4gc28gdGhhdCB3ZSBjYW4gYWxzbyB1c2UgaXQgd2hlbiBhc3luYy1oYW5kbGluZyBpcyBlbmFibGVkIG9uIGJpbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChjbGVhcl9xdWV1ZSksCgkgIChkb19iaW5fbGF0ZW5jeSksIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICBNb3ZlIGxhdGVuY3kgcXVlcnkgZnJvbSBHc3RQaXBlbGluZSB0byBHc3RCaW4gc28gdGhhdCB3ZSBjYW4gYWxzbwoJICB1c2UgaXQgd2hlbiBhc3luYy1oYW5kbGluZyBpcyBlbmFibGVkIG9uIGJpbnMuCgoyMDA3LTA5LTEzIDIxOjE5OjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFVwZGF0ZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3NyY19kb19zeW5jKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBVcGRhdGUgZG9jcy4KCSAgQ2xlYW4gdXAgdGhlIHRpbWVzdGFtcGluZyBhbmQgc3luY2luZyBjb2RlIGZvciBwc2V1ZG8gbGl2ZSBzb3VyY2VzLgoKMjAwNy0wOS0xMyAxOToyNzo1MyArMDAwMCAgU3RldmUgRmluayA8c3BoaW5rQGdtYWlsLmNvbT4KCgkgIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6IE1lbnRpb24gbGVzcyAtUiBzd2l0Y2ggaW4gdGhlIHNlY3Rpb24gYWJvdXQgZGVidWcgb3V0cHV0ICgjNDc0MDU1KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTdGV2ZSBGaW5rICA8c3BoaW5rIGdtYWlsIGNvbT4KCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJICBNZW50aW9uIGxlc3MgLVIgc3dpdGNoIGluIHRoZSBzZWN0aW9uIGFib3V0IGRlYnVnIG91dHB1dCAoIzQ3NDA1NSkuCgoyMDA3LTA5LTEzIDE3OjE1OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBRdWV1ZSBjYW4gbGF0ZW5jeSB0byB0aGUgcGlwZWxpbmUgdXAgdG8gdGhlIGNvbmZpZ3VyZWQgbWF4IHNpemUgaW4gdGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpOgoJICBRdWV1ZSBjYW4gbGF0ZW5jeSB0byB0aGUgcGlwZWxpbmUgdXAgdG8gdGhlIGNvbmZpZ3VyZWQgbWF4IHNpemUgaW4gdGltZS4KCSAgUmVwb3J0IHRoaXMgZmFjdCBpbiB0aGUgbGF0ZW5jeSBxdWVyeS4KCjIwMDctMDktMTMgMDk6MDg6MjMgKzAwMDAgIFNlYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IFVzZSBnc3RfZ3VpbnQ2NF90b19nZG91YmxlKCkgd2hlbiBjb252ZXJ0aW5nIGZyb20gYSB1aW50NjQgb3IKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW4gYXQgbW91dHRlIGRvdCBuZXQ+CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIFVzZSBnc3RfZ3VpbnQ2NF90b19nZG91YmxlKCkgd2hlbiBjb252ZXJ0aW5nIGZyb20gYSB1aW50NjQgb3IKCSAgR3N0Q2xvY2tUaW1lIHRvIGRvdWJsZSB0byBmaXggdGhlIGJ1aWxkIG9uIHdpbjMyLiBGaXhlcyAjNDc0MzcxLgoKMjAwNy0wOS0xMyAwODo0Mjo1NSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBJbXBsZW1lbnQgcG9pc29uaW5nIGZvciBHc3RCdWZmZXIgaWYgLS1lbmFibGUtcG9pc29uaW5nIGlzIHNwZWNpZmllZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9maW5hbGl6ZSk6CgkgIEltcGxlbWVudCBwb2lzb25pbmcgZm9yIEdzdEJ1ZmZlciBpZiAtLWVuYWJsZS1wb2lzb25pbmcgaXMgc3BlY2lmaWVkLgoJICBXaGVuIGZpbmFsaXppbmcgYSBidWZmZXIgdGhlIGNvbXBsZXRlIHN0cnVjdCBpcyBmaWxsZWQgd2l0aCAweGZmLAoJICB0aHVzIG1ha2luZyBhIHVzZSBvZiB0aGUgYnVmZmVyIGFmdGVyIHRoZSBmaW5hbCB1bnJlZiBpbXBvc3NpYmxlLgoKMjAwNy0wOS0xMyAwODozNjozNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IFVzZSBmYWlsX3VubGVzc19lcXVhbHNfaW50KGEsIGIpIGluc3RlYWQgb2YgZmFpbF91bmxlc3NfZXF1YWxzIChhID09IGIpIHRvIGdldCBiZXR0ZXIgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVc2UgZmFpbF91bmxlc3NfZXF1YWxzX2ludChhLCBiKSBpbnN0ZWFkIG9mCgkgIGZhaWxfdW5sZXNzX2VxdWFscyAoYSA9PSBiKSB0byBnZXQgYmV0dGVyIG91dHB1dCBvbiBmYWlsdXJlcy4KCjIwMDctMDktMTIgMTY6MzU6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6IEFsc28gY2hlY2sgZm9yIHRoZSBvdGhlciBmaWxlIFVSSSB2YXJpYW50IG9uIHdpbjMyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkgIEFsc28gY2hlY2sgZm9yIHRoZSBvdGhlciBmaWxlIFVSSSB2YXJpYW50IG9uIHdpbjMyLgoKMjAwNy0wOS0xMiAxMjozNjo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1cmkuYzogSWYgdGhlcmUncyBubyBob3N0bmFtZSwgd2Ugd2FudCB0byByZXR1cm4gJ2M6L2Zvby9iYXIudHh0JyBhbmQgbm90ICcvYzovZm9vL2Jhci50eHQnIG9uIFdpbmRvd3MuIEZpeGVzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXJpLmM6IChnc3RfdXJpX2dldF9sb2NhdGlvbik6CgkgIElmIHRoZXJlJ3Mgbm8gaG9zdG5hbWUsIHdlIHdhbnQgdG8gcmV0dXJuICdjOi9mb28vYmFyLnR4dCcKCSAgYW5kIG5vdCAnL2M6L2Zvby9iYXIudHh0JyBvbiBXaW5kb3dzLiBGaXhlcyAjNDY5NDAyLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgVW5pdCB0ZXN0IGZvciB0aGUgYWJvdmUgYW5kIGEgZmV3IG1vcmUgdGhpbmdzLgoKMjAwNy0wOS0xMSAyMzoyNzo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OiBBZGQgZG9jcyBvbiBob3cgbGl2ZSBzb3VyY2VzIHNob3VsZCB0aW1lc3RhbXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OgoJICBBZGQgZG9jcyBvbiBob3cgbGl2ZSBzb3VyY2VzIHNob3VsZCB0aW1lc3RhbXAuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZG9fc3luYyk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgRm9yIHN1YmNsYXNzZXMgdGhhdCBhcmUgbGl2ZSBhbmQgbGlrZSB0byBzeW5jLCBhZGQgYWRpdGlvbmFsIHN0YXJ0dXAKCSAgbGF0ZW5jeSB0byBzeW5jIHRpbWUgYW5kIHRpbWVzdGFtcHMgc28gdGhhdCB3ZSB0aW1zdGFtcCBhY2NvcmRpbmcgdG8gdGhlCgkgIGRlc2lnbiBkb2MuCgoyMDA3LTA5LTExIDE4OjU5OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBBbHNvIGRvIGEgZ190eXBlX2NsYXNzX3JlZigpIGZvciB0aGUgc3ViYnVmZmVyIHR5cGUgaW4gdGhlIGluaXQgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgQWxzbyBkbyBhIGdfdHlwZV9jbGFzc19yZWYoKSBmb3IgdGhlIHN1YmJ1ZmZlciB0eXBlIGluCgkgIHRoZSBpbml0IGZ1bmN0aW9uLgoKMjAwNy0wOS0xMSAxNTo1NTo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBmdW5jdGlvbiB0byBwZXJmb3JtIGEgcXVlcnkgb24gdGhlIHBlZXIgb2YgYSBwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9wZWVyX3F1ZXJ5KToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEFkZCBmdW5jdGlvbiB0byBwZXJmb3JtIGEgcXVlcnkgb24gdGhlIHBlZXIgb2YgYSBwYWQuCgkgIEFQSTogZ3N0X3BhZF9wZWVyX3F1ZXJ5KCkKCjIwMDctMDktMTEgMTM6NDM6NTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiBDbGVhbnVwIHRoZSB0ZXN0IGEgbGl0dGxlICh1c2UgZ3N0LWxvZ2dpbmcgYW5kIG5vdCBnX21lc3NhZ2UpLiBJbXByb3ZlIHRlc3QgdG8gY2hlYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgQ2xlYW51cCB0aGUgdGVzdCBhIGxpdHRsZSAodXNlIGdzdC1sb2dnaW5nIGFuZCBub3QgZ19tZXNzYWdlKS4gSW1wcm92ZQoJICB0ZXN0IHRvIGNoZWNrIGlmIGEgd2FpdCByZWFjaGVkIHRoZSB0YXJnZXQuCgoyMDA3LTA5LTExIDEwOjMzOjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQWRkIG5ldyBBUEkgdG8gZG9jcyBhbmQgZml4IHRoZSBidWlsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkIG5ldyBBUEkgdG8gZG9jcyBhbmQgZml4IHRoZSBidWlsZC4KCjIwMDctMDktMTAgMTY6NTA6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuKjogQWRkIHByb3BlcnR5IHRvIG1ha2UgdGhlIGJhc2VzcmMgdGltZXN0YW1wIGJ1ZmZlcnMgYmFzZWQgb24gdGhlIGN1cnJlbnQgcnVubmluZyB0aW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19pbml0KSwgKGdzdF9iYXNlX3NyY19zZXRfZG9fdGltZXN0YW1wKSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfZG9fdGltZXN0YW1wKSwgKGdzdF9iYXNlX3NyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zcmNfZG9fc3luYyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIEFkZCBwcm9wZXJ0eSB0byBtYWtlIHRoZSBiYXNlc3JjIHRpbWVzdGFtcCBidWZmZXJzIGJhc2VkIG9uIHRoZSBjdXJyZW50CgkgIHJ1bm5pbmcgdGltZS4KCSAgQVBJOiBHc3RCYXNlU3JjOjpkby10aW1lc3RhbXAKCSAgQVBJOiBnc3RfYmFzZV9zcmNfc2V0X2RvX3RpbWVzdGFtcCgpCgkgIEFQSTogZ3N0X2Jhc2Vfc3JjX2dldF9kb190aW1lc3RhbXAoKQoKMjAwNy0wOS0wOCAyMDoyNTo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcmFuZG9tL3JlbGVhc2U6IFJlYWxseSBtYWtlIHN1cmUgdHJhbnNsYXRpb25zIGFyZSB1cC10by1kYXRlIGJlZm9yZSBhIHJlbGVhc2UgKCM0NjUwMTApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBSZWFsbHkgbWFrZSBzdXJlIHRyYW5zbGF0aW9ucyBhcmUgdXAtdG8tZGF0ZSBiZWZvcmUKCSAgYSByZWxlYXNlICgjNDY1MDEwKS4KCjIwMDctMDktMDcgMTQ6NDY6NTIgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBhZGQgbGF0ZXN0IGhlYWRlciBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGxhdGVzdCBoZWFkZXIgZmlsZXMKCjIwMDctMDktMDcgMDQ6NTA6MjMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBBbHdheXMgZGVzdHJveSB0aGUgdGltZXIsIGFsc28gaW4gZXJyb3IgY2FzZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgQWx3YXlzIGRlc3Ryb3kgdGhlIHRpbWVyLCBhbHNvIGluIGVycm9yIGNhc2VzLgoKMjAwNy0wOS0wNSAyMjoyOTo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC14bWwueG1sOiBGaXggWE1MIGV4YW1wbGUgY29kZS4gRml4ZXMgIzQ3MjcxNC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLXhtbC54bWw6CgkgIEZpeCBYTUwgZXhhbXBsZSBjb2RlLiBGaXhlcyAjNDcyNzE0LgoKMjAwNy0wOS0wNSAyMjoxMjo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUHJvdGVjdCBlb3MgYW5kIGhhdmVfcHJlcm9sbCB3aXRoIHRoZSBPQkpFQ1QgbG9jayBzbyB3ZSBkb24ndCBuZWVkIHRvIHRha2UgdGhlIFBSRVJPTEwgbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X3ByZXJvbGwpLCAoZ3N0X2Jhc2Vfc2lua19uZWVkc19wcmVyb2xsKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpOgoJICBQcm90ZWN0IGVvcyBhbmQgaGF2ZV9wcmVyb2xsIHdpdGggdGhlIE9CSkVDVCBsb2NrIHNvIHdlIGRvbid0IG5lZWQgdG8KCSAgdGFrZSB0aGUgUFJFUk9MTCBsb2NrIHdoZW4gcXVlcnlpbmcgdGhlIGxhdGVuY3kuIEZpeGVzICM0NzM4NDYuCgoyMDA3LTA5LTA1IDEzOjI0OjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBHaXZlIHNvbWUgbG9nLW1lc3NhZ2VzIGEgY2F0ZWdvcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgIEdpdmUgc29tZSBsb2ctbWVzc2FnZXMgYSBjYXRlZ29yeS4KCjIwMDctMDktMDUgMDE6MDA6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IEZpeCBmcmFjdGlvbiBsaXN0IGZpeGF0aW9uIGNvZGUuIFRha2UgdGhlIGZyYWN0aW9uIHdpdGggdGhlIHNtYWxsZXN0IGRpZmZlcmVuY2Ugd2l0aCB0aGUgdGFyZ2V0IGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAoZ3N0X3N0cnVjdHVyZV9maXhhdGVfZmllbGRfbmVhcmVzdF9mcmFjdGlvbik6CgkgIEZpeCBmcmFjdGlvbiBsaXN0IGZpeGF0aW9uIGNvZGUuIFRha2UgdGhlIGZyYWN0aW9uIHdpdGggdGhlIHNtYWxsZXN0CgkgIGRpZmZlcmVuY2Ugd2l0aCB0aGUgdGFyZ2V0IGluc3RlYWQgb2YgdGhlIGZpcnN0IG9uZSBpbiB0aGUgbGlzdC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc3RydWN0dXJlX3N1aXRlKToKCSAgQWRkZWQgdGVzdCB0byB2ZXJpZnkgY29ycmVjdCBmcmFjdGlvbiBsaXN0IGZpeGF0aW9uIGJlaGF2aW91ci4KCjIwMDctMDktMDIgMjA6MzA6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogRXhwb3J0IGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaCB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBFeHBvcnQgZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoIHRvby4KCjIwMDctMDgtMzAgMTc6NTA6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBZGQgbmV3IG1ldGhvZHMgdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkIG5ldyBtZXRob2RzIHRvIGRvY3MuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfaW5pdCksIChnc3RfYmFzZV9zaW5rX3NldF90c19vZmZzZXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfdHNfb2Zmc2V0KSwgKGdzdF9iYXNlX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBZGQgdHMtb2Zmc2V0IHByb3BlcnR5IHRvIGZpbmUtdHVuZSB0aGUgc3luY2hyb25pc2F0aW9uLgoJICBBUEk6IEdzdEJhc2VTaW5rOjp0cy1vZmZzZXQgcHJvcGVydHkKCSAgQVBJOiBnc3RfYmFzZV9zaW5rX3NldF90c19vZmZzZXQoKQoJICBBUEk6IGdzdF9iYXNlX3NpbmtfZ2V0X3RzX29mZnNldCgpCgoyMDA3LTA4LTI5IDIwOjU3OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay4qOiBBZGQgYXN5bmMgcHJvcGVydHkgdG8gaW5zdHJ1Y3QgdGhlIHNpbmsgbmV2ZXIgdG8gaW5mb3JtIHRoZSBwYXJlbnQgYWJvdXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfaW5pdCksIChnc3RfYmFzZV9zaW5rX3NldF9zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfbWF4X2xhdGVuZXNzKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X21heF9sYXRlbmVzcyksIChnc3RfYmFzZV9zaW5rX3NldF9xb3NfZW5hYmxlZCksCgkgIChnc3RfYmFzZV9zaW5rX2lzX3Fvc19lbmFibGVkKSwgKGdzdF9iYXNlX3Npbmtfc2V0X2FzeW5jX2VuYWJsZWQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pc19hc3luY19lbmFibGVkKSwgKGdzdF9iYXNlX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZCBhc3luYyBwcm9wZXJ0eSB0byBpbnN0cnVjdCB0aGUgc2luayBuZXZlciB0byBpbmZvcm0gdGhlIHBhcmVudCBhYm91dAoJICBBU1lOQyBzdGF0ZSBjaGFuZ2VzLCB1cGRhdGUgZG9jcy4KCSAgQ2hlY2sgYXJndW1lbnQgd2l0aCBnX3JldHVybl8qIGZvciB0aGUgcHVibGljIGZ1bmN0aW9ucy4KCSAgQVBJOiBHc3RCYXNlU2luazo6YXN5bmMgcHJvcGVydHkKCSAgQVBJOiBnc3RfYmFzZV9zaW5rX3NldF9hc3luY19lbmFibGVkKCkKCSAgQVBJOiBnc3RfYmFzZV9zaW5rX2lzX2FzeW5jX2VuYWJsZWQoKQoKMjAwNy0wOC0yOCAxNTowMjoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfbG9vcCk6CgkgIEltcHJvdmUgZGVidWdnaW5nLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpLCAoZ3N0X2Jhc2Vfc3JjX3dhaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIFJlYXJyYW5nZSBzb21lIGNvZGUgc28gdGhhdCB3ZSBjYW4gYWRkIHN1cHBvcnQgZm9yIG1lYXN1cmluZyB0aGUKCSAgc3RhcnR1cCBsYXRlbmN5LgoKMjAwNy0wOC0yNyAyMDowMDozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9keW5saW5rLnR4dDogTW9yZSB0aG91Z2hzIG9uIHRoaXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHlubGluay50eHQ6CgkgIE1vcmUgdGhvdWdocyBvbiB0aGlzLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBBZGQgYnVnemlsbGEgdGlja2V0IG51bWJlciB0byBGSVhNRSBjb21tZW50LgoKMjAwNy0wOC0yNiAxODozMDo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNQUlOVEFJTkVSUzoKCSAgcmVtb3ZlIHRlbXAgZmlsZXMgYWdhaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSB0ZW1wIGZpbGVzIGFnYWluCgoyMDA3LTA4LTI2IDE2OjQyOjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIE1BSU5UQUlORVJTOgoJICB0ZXN0IGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVzdCBjb21taXQKCjIwMDctMDgtMjYgMTU6NTg6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQVVUSE9SUzoKCSogTUFJTlRBSU5FUlM6CgkgIHRlc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXN0IGNvbW1pdAoKMjAwNy0wOC0yNCAyMTo1MzozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogVXBkYXRlIHNvbWUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSAgVXBkYXRlIHNvbWUgZG9jcy4KCjIwMDctMDgtMjQgMTY6Mzk6MDYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBSZXZlcnQgcGF0Y2ggd2hpY2ggdXNlcyAkKGdzdF9oZWFkZXJzKSBpbnN0ZWFkIG9mICReIGJlY2F1c2UgaXQgYnJlYWtzIG1ha2UgZGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICBSZXZlcnQgcGF0Y2ggd2hpY2ggdXNlcyAkKGdzdF9oZWFkZXJzKSBpbnN0ZWFkIG9mICReIGJlY2F1c2UgaXQKCSAgYnJlYWtzIG1ha2UgZGlzdC4KCjIwMDctMDgtMjQgMTQ6NTU6NDYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiBGaXggbGVha3MgaW4gdGhlIG5ldyB1bml0IHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IGxlYWtzIGluIHRoZSBuZXcgdW5pdCB0ZXN0LgoKMjAwNy0wOC0yMyAyMDo0MTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogRG9uJ3QgdXNlIEdTVF9JTkZPIGJlZm9yZSB0aGUgZGVidWcgc3lzdGVtIGlzIGFjdHVhbGx5IGluaXRpYWxpc2VkIChzaG91bGRuJ3QgZG8gYW55IGhhcm0sIGJ1dCB3b24ndCBwcmludC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIERvbid0IHVzZSBHU1RfSU5GTyBiZWZvcmUgdGhlIGRlYnVnIHN5c3RlbSBpcyBhY3R1YWxseSBpbml0aWFsaXNlZAoJICAoc2hvdWxkbid0IGRvIGFueSBoYXJtLCBidXQgd29uJ3QgcHJpbnQgYW55dGhpbmcgZWl0aGVyLCBzbyB3ZSBjYW4KCSAganVzdCBhcyB3ZWxsIHJlbW92ZSBpdCkuCgkgICogZ3N0L2dzdGluZm8uaDoKCSAgR1NUX0NBVF9MRVZFTF9MT0dfdmFsaXN0KCksIHdoaWNoIGlzIG91ciBpbmxpbmUgaGVscGVyIGZ1bmN0aW9uIGZvcgoJICBjb21waWxlcnMgdGhhdCBkb24ndCBzdXBwb3J0IHZhcmlhZGljIG1hY3JvcyAoc3VjaCBhcyBNU1ZDKSwgc2hvdWxkCgkgIGNoZWNrIGZvciBkZWJ1Z19sZXZlbCA8PSBfX2dzdF9kZWJ1Z19taW4gYXMgd2VsbCwgc2luY2UgdGhhdCdzIHRoZQoJICBmdW5jdGlvbiBjYWxsZWQgZnJvbSBhbGwgdGhlIGxldmVsLXNwZWNpZmljIEdTVF9DQVRfKl9MT0dfT0JKRUNUKCkKCSAgaW5saW5lIGhlbHBlciBmdW5jdGlvbnMuIFNob3VsZCBpbXByb3ZlIHBlcmZvcm1hbmNlIGEgYml0LCBidXQgYWxzbwoJICBtYWtlcyBzdXJlIHVzZXMgb2YgR1NUX0lORk8gZXQuYWwgYXJlIGlnbm9yZWQgaWYgdGhlIGRlYnVnZ2luZwoJICBzeXN0ZW0gaXNuJ3QgaW5pdGlhbGlzZWQgeWV0IChpbnN0ZWFkIG9mIHByaW50aW5nIGFuIGFzc2VydGlvbgoJICBmYWlsdXJlKS4KCjIwMDctMDgtMjMgMDc6MTA6MzMgKzAwMDAgIERhdmlkIE5lxI1hcyA8eWV0aUBwaHlzaWNzLm11bmkuY3o+CgoJICBnc3QvTWFrZWZpbGUuYW06IFJlcGxhY2Ugc29tZSBub24gcG9ydGFibGUgbWFrZWZpbGUgY29uc3RydWN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBEYXZpZCBOZcSNYXMgPHlldGlAcGh5c2ljcy5tdW5pLmN6PgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgUmVwbGFjZSBzb21lIG5vbiBwb3J0YWJsZSBtYWtlZmlsZSBjb25zdHJ1Y3RzLgoKMjAwNy0wOC0yMSAxNDoxMDowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29tbW9uL2d0ay1kb2MtcGx1Z2lucy5tYWs6IEdycnJyci4gRG9uJ3QgcmVtb3ZlIHRoZSB0eXBlcyBmaWxlIG9uIG1ha2UgY2xlYW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9ndGstZG9jLXBsdWdpbnMubWFrOgoJICBHcnJycnIuIERvbid0IHJlbW92ZSB0aGUgdHlwZXMgZmlsZSBvbiBtYWtlIGNsZWFuLgoKMjAwNy0wOC0yMCAxNzo1MTozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guMS5pbjogQWRkIGNvbG9yc3BhY2UgdG8gZXhhbXBsZSBwaXBlbGluZS4gRml4ZXMgIzQ1ODI3NC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBBZGQgY29sb3JzcGFjZSB0byBleGFtcGxlIHBpcGVsaW5lLiBGaXhlcyAjNDU4Mjc0LgoKMjAwNy0wOC0yMCAxMjozMTo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcmFuZG9tL3JlbGVhc2U6IFRoZSByZWxlYXNlIG1hbmFnZXIgc2hvdWxkIHJ1biAnbWFrZSBkb3dubG9hZC1wbycgYmVmb3JlIG1ha2luZyBhIHJlbGVhc2UgdG8gbWFrZSBzdXJlIHRyYW5zbGF0aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBUaGUgcmVsZWFzZSBtYW5hZ2VyIHNob3VsZCBydW4gJ21ha2UgZG93bmxvYWQtcG8nIGJlZm9yZSBtYWtpbmcgYQoJICByZWxlYXNlIHRvIG1ha2Ugc3VyZSB0cmFuc2xhdGlvbnMgYXJlIHVwLXRvLWRhdGUuCgkgICogcG8vTElOR1VBUzoKCSAgKiBwby9iZS5wbzoKCSAgKiBwby9wbC5wbzoKCSAgKiBwby9ydy5wbzoKCSAgQWRkIHNvbWUgbmV3IHRyYW5zbGF0aW9ucy4KCjIwMDctMDgtMTcgMTM6NDg6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IERvbsK0dCB0cnkgdG8gZG8gYW55IHN0YXRlIG1hbmFnZW1lbnQgd2hlbiBhIGxpdmUgcGlwZWxpbmUgcG9zdHMgYnVmZmVyaW5nIG1lc3NhZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKSwgKG1haW4pOgoJICBEb27CtHQgdHJ5IHRvIGRvIGFueSBzdGF0ZSBtYW5hZ2VtZW50IHdoZW4gYSBsaXZlIHBpcGVsaW5lIHBvc3RzCgkgIGJ1ZmZlcmluZyBtZXNzYWdlcy4KCSAgQWxzbyBtYWtlIHRoZSBidWZmZXJpbmcgc3RyaW5nIHRyYW5zbGF0YWJsZS4KCjIwMDctMDgtMTYgMTE6MDQ6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEltcHJvdmUgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChpc19lb3MpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChiaW5faGFuZGxlX2FzeW5jX3N0YXJ0KSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIEltcHJvdmUgZGVidWdnaW5nLgoJICBXaGVuIGFkZGluZyBlbGVtZW50cywgaW5zZXJ0IG1lc3NhZ2VzIGludG8gdGhlIGJ1cyBvZiB0aGUgbmV3bHkgYWRkZWQKCSAgZWxlbWVudCBhbmQgbWFrZSBzdXJlIHRoZSBlbGVtZW50IGlzIHRoZSBzb3VyY2Ugb2YgdGhlIG1lc3NhZ2UuIFRoaXMKCSAgYWxsb3dzIHRoZSBwYXJlbnQgYmluIHRvIGludGVyY2VwdCB0aGUgbWVzc2FnZSBhbmQgZG8gdGhlCgkgIHJpZ2h0IHRoaW5nLiBJdCBhbHNvIGF2b2lkcyB1cyBwb3N0aW5nIEFTWU5DX1NUQVJUIGFuZCBDTE9DS19QUk9WSURFCgkgIG1lc3NhZ2VzIHRvIHRoZSBhcHAgKHdoaWNoIGlzIG5vdCBhbGxvd2VkKS4KCSAgVXBkYXRlIHNvbWUgZG9jcy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IHRlc3RzdWl0ZSBzbyB0aGF0IGlzIGRvZXMgbm90IHdvcmsgYXJvdW5kIG1lc3NhZ2VzIHRoYXQgc2hvdWxkIG5vdAoJICBoYXZlIGJlZW4gcG9zdGVkIGluIHRoZSBmaXJzdCBwbGFjZS4KCjIwMDctMDgtMTYgMTA6Mjc6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEZpeCBhbm5veWluZyBidWcgaW4gdGhlIHNvcnRlZCBpdGVyYXRvciB3aGVyZSBhIHNpbmsgdGhhdCBpcyBub3QgcmVhbGx5IGEgc2luayAod2hlbiBpdCBoYXMgZG93bnN0cmVhbSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYWRkX3RvX3F1ZXVlKSwgKHJlbW92ZV9mcm9tX3F1ZXVlKSwgKGNsZWFyX3F1ZXVlKSwKCSAgKHVwZGF0ZV9kZWdyZWUpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpOgoJICBGaXggYW5ub3lpbmcgYnVnIGluIHRoZSBzb3J0ZWQgaXRlcmF0b3Igd2hlcmUgYSBzaW5rIHRoYXQgaXMgbm90IHJlYWxseQoJICBhIHNpbmsgKHdoZW4gaXQgaGFzIGRvd25zdHJlYW0gbGlua3MpIHNjcmV3ZWQgdXAgdGhlIGl0ZXJhdG9yLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9iaW5fc3VpdGUpOgoJICBVbml0IHRlc3QgdG8gdmVyaWZ5IHRoZSBmaXguCgoyMDA3LTA4LTE2IDEwOjA3OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuaDogQWRkIHNvbWUgbW9yZSBkb2NzIGZvciB0aGUgbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFkZCBzb21lIG1vcmUgZG9jcyBmb3IgdGhlIG1lc3NhZ2VzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpOgoJICBBZGQgc29tZSBtb3JlIGRlYnVnZ2luZy4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgV2hlbiBpbnRlcnJ1cHRpbmcsIGRvbid0IHRyeSB0byBzZXQgcGlwZWxpbmUgdG8gUEFVU0VEIHR3aWNlLgoKMjAwNy0wOC0xNCAxNDoxMDozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogTW92ZSBBU1lOQ19TVEFSVCBtZXNzYWdlIHBvc3RpbmcgdG8gd2hlcmUgaXQgYmVsb25ncywgc2ltaWxhciB0byBhc3luY19kb25lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoYmluX2hhbmRsZV9hc3luY19zdGFydCksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBNb3ZlIEFTWU5DX1NUQVJUIG1lc3NhZ2UgcG9zdGluZyB0byB3aGVyZSBpdCBiZWxvbmdzLCBzaW1pbGFyIHRvCgkgIGFzeW5jX2RvbmUuCgkgIERvbid0IHBvc3QgQVNZTkNfU1RBUlQgd2hlbiB3ZSBhcmUgaW4gZXJyb3IuCgkgIFBvc3QgQVNZTkNfU1RBUlQgd2hlbiB3ZSBhZGRlZCBhbiBhc3luYyBlbGVtZW50IHRvIGEgYmluLgoKMjAwNy0wOC0xNCAxMzo0Mzo0NCArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0aW5kZXguYzogRml4IGluZGV4IGVudHJ5IGdlbmVyYXRpb24gZnJvbSB2YXJncy4gRml4ZXMgIzQ2NjU5NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDgtMTQgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9hZGRfYXNzb2NpYXRpb24pOiBGaXggaW5kZXggZW50cnkKCSAgZ2VuZXJhdGlvbiBmcm9tIHZhcmdzLiBGaXhlcyAjNDY2NTk1LgoKMjAwNy0wOC0xNCAxMzozNzoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQWx3YXlzIGNoYW5nZSB0aGUgc3RhdGUgb2YgYSBOT19QUkVST0xMIGVsZW1lbnQgZXZlbiBpZiBpdCBoYXMgQVNZTkMgZWxlbWVudHMgaW5zaWRlIChpbiBjYXNlIG9mIGEgYmluKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIEFsd2F5cyBjaGFuZ2UgdGhlIHN0YXRlIG9mIGEgTk9fUFJFUk9MTCBlbGVtZW50IGV2ZW4gaWYgaXQgaGFzIEFTWU5DCgkgIGVsZW1lbnRzIGluc2lkZSAoaW4gY2FzZSBvZiBhIGJpbikuCgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3NpbmtzX3N1aXRlKToKCSAgVW5pdCB0ZXN0IGZvciB0aGlzIGNhc2UuCgoyMDA3LTA4LTEzIDEzOjMzOjA3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgbW9yZSBtaXNzaW5nIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3LmM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xzb3VyY2UuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgQWRkIG1vcmUgbWlzc2luZyBkb2NzLgoKMjAwNy0wOC0xMiAxNjo0NDowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogQWRkIFNpbmNlIHRhZyB0byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIEFkZCBTaW5jZSB0YWcgdG8gZG9jcy4KCjIwMDctMDgtMTIgMTY6NDA6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgZnVuY3Rpb24gdG8gZ2V0IHVpbnQgZnJvbSBhIHN0cnVjdHVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2dldF91aW50KToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIEFkZCBmdW5jdGlvbiB0byBnZXQgdWludCBmcm9tIGEgc3RydWN0dXJlLgoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfZ2V0X3VpbnQoKQoKMjAwNy0wOC0xMiAxNjozODo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IEZpeCBwcm9wZXIgY2hlY2sgZm9yIHNpbXBsZSBjYXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfc2V0X3NpbXBsZV92YWxpc3QpLAoJICAoZ3N0X2NhcHNfaW50ZXJzZWN0KToKCSAgRml4IHByb3BlciBjaGVjayBmb3Igc2ltcGxlIGNhcHMuCgoyMDA3LTA4LTEwIDE3OjM1OjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogUmVtb3ZlIGNydWZ0IGFuZCBkbyBzb21lIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIFJlbW92ZSBjcnVmdCBhbmQgZG8gc29tZSBjbGVhbnVwcy4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgIFByZXBhcmUgZm9yIGNvbW1pbmcgZ3RrZG9jIGZlYXR1cmVzIChyZWJhc2UgYWdhaW5zdCBvbmxpbmUgZG9jcykuCgoyMDA3LTA4LTEwIDE0OjUyOjQxICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgZ3N0X3JlZ2lzdHJ5X2FkZF9wYXRoIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBnc3RfcmVnaXN0cnlfYWRkX3BhdGggdG8gZG9jcy4KCSAgQWxzbyBmaXggZm9ybWF0dGluZyBvZiBhbiBvbGRlciBjaGFuZ2Vsb2cgZW50cnkKCjIwMDctMDgtMTAgMTQ6NDA6MjYgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeS5oOiBBZGQgZ3N0X3JlZ2lzdHJ5X2FkZF9wYXRoLCB3aGljaCB3YXMgbWlzc2luZyBmcm9tIHRoaXMgaGVhZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgQWRkIGdzdF9yZWdpc3RyeV9hZGRfcGF0aCwgd2hpY2ggd2FzIG1pc3NpbmcgZnJvbSB0aGlzIGhlYWRlci4KCjIwMDctMDgtMTAgMTA6MzA6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzogUHJpbnRmIGZvcm1hdCBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBQcmludGYgZm9ybWF0IGZpeC4KCjIwMDctMDgtMDkgMjE6NTA6MTkgKzAwMDAgIFBoaWxpcHBlIEthbGFmIDxwaGlsaXBwZS5rYWxhZkBjb2xsYWJvcmEuY28udWs+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IHNlbmQgYW4gYXN5bmNfc3RhcnQgbWVzc2FnZSBkdXJpbmcgZG93bndhcmRzIHN0YXRlIGNoYW5nZSBpZiB0YXJnZXQgc3RhdGUgaXMgbGVzcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBEb24ndCBzZW5kIGFuIGFzeW5jX3N0YXJ0IG1lc3NhZ2UgZHVyaW5nIGRvd253YXJkcyBzdGF0ZSBjaGFuZ2UgaWYgdGFyZ2V0CgkgIHN0YXRlIGlzIGxlc3MgdGhhbiBSRUFEWQoKMjAwNy0wOC0wOSAxMDo1MDoyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IEFkZGVkIEh1bmdhcmlhbiB0cmFuc2xhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyYW5zbGF0ZWQgYnk6IEdhYm9yIEtlbGVtZW4gPGtlbGVtZW5nQGdub21lLmh1PgoJICAqIHBvL0xJTkdVQVM6CgkgICogcG8vaHUucG86CgkgIEFkZGVkIEh1bmdhcmlhbiB0cmFuc2xhdGlvbi4KCjIwMDctMDgtMDkgMTA6NDg6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vOiBVcGRhdGVkIHRyYW5zbGF0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vZmkucG86CgkgICogcG8vaXQucG86CgkgICogcG8vbmwucG86CgkgICogcG8vc3YucG86CgkgICogcG8vdWsucG86CgkgIFVwZGF0ZWQgdHJhbnNsYXRpb25zLgoKMjAwNy0wOC0wNyAxNjowNjo0NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOiBEaXN0IGdzdGxmb2NvbnRyb2xzb3VyY2Vwcml2YXRlLmgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgRGlzdCBnc3RsZm9jb250cm9sc291cmNlcHJpdmF0ZS5oCgoyMDA3LTA4LTA3IDE1OjE1OjQwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczogRG9uJ3QgcmVnaXN0ZXIgdGhlIGVudW0gdHlwZSBnc3RfbGZvX3dhdmVmb3JtX2dldF90eXBlKCkgaW4gdGhlIC50eXBlcyBmaWxlIC0gb25seSBHTy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkgIERvbid0IHJlZ2lzdGVyIHRoZSBlbnVtIHR5cGUgZ3N0X2xmb193YXZlZm9ybV9nZXRfdHlwZSgpIGluIHRoZQoJICAudHlwZXMgZmlsZSAtIG9ubHkgR09iamVjdCBkZXJpdmVkIHR5cGVzIGJlbG9uZy4KCjIwMDctMDgtMDcgMTQ6MDQ6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmg6IFJlbW92ZSBjb21tYSBmcm9tIGxhc3QgZWxlbWVudCBpbiBlbnVtIHRvIGF2b2lkIGNvbXBpbGUgZXJyb3JzIHdoZW4gdXNpbmcgLXBlbmRhbnRpYy4gRml4ZXMgIzQ2NDM2Ni4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiA8YXJlbmV2aWVyIGF0IGZkbiBkb3QgZnI+CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBSZW1vdmUgY29tbWEgZnJvbSBsYXN0IGVsZW1lbnQgaW4gZW51bSB0byBhdm9pZCBjb21waWxlIGVycm9ycyB3aGVuCgkgIHVzaW5nIC1wZW5kYW50aWMuIEZpeGVzICM0NjQzNjYuCgoyMDA3LTA4LTA3IDA5OjU2OjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogQWRkIHNvbWUgbW9yZSBUT0RPIGl0ZW1zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIEFkZCBzb21lIG1vcmUgVE9ETyBpdGVtcwoJICAqIGdzdC9nc3RiaW4uYzogKGZpbmRfbWVzc2FnZSksIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2ludGVyc2VjdCk6CgkgIE9wdGltaXplIHRyaXZpYWwgaW50ZXJzZWN0aW9uIGNhc2UgYmV0d2VlbiBpZGVudGljYWwgY2FwcyBwb2ludGVycy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgRml4IHNwZWxsaW5nIGFuZCBncmFtbWFyIG1pc3Rha2VzLgoKMjAwNy0wOC0wNSAxNDo0ODowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcG8vUE9URklMRVMuKjogVXBkYXRlIFBPVEZJTEVTLiBGaXhlcyAjNDYxNTk5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9QT1RGSUxFUy5pbjoKCSAgKiBwby9QT1RGSUxFUy5za2lwOgoJICBVcGRhdGUgUE9URklMRVMuIEZpeGVzICM0NjE1OTkuCgoyMDA3LTA4LTAzIDE5OjI1OjQ1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0LmM6IEZpeCBjb25mdXNpbmcgdHlwbyBpbiBkZWJ1ZyBvdXRwdXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgRml4IGNvbmZ1c2luZyB0eXBvIGluIGRlYnVnIG91dHB1dC4KCjIwMDctMDgtMDMgMTU6NDc6MTcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBBUEk6IEFkZCBHc3RMRk9Db250cm9sU291cmNlLCBhIGNvbnRyb2wgc291cmNlIHRoYXQgZ2l2ZXMgdmFsdWVzIGZvciBzcGVjaWZpYyB0aW1lc3RhbXBzIGJhc2VkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2aWV3ZWQgYnk6IFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOiAoX2NhbGN1bGF0ZV9wb3MpLAoJICAoZ3N0X2xmb193YXZlZm9ybV9nZXRfdHlwZSksIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX3Jlc2V0KSwKCSAgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfbmV3KSwKCSAgKGdzdF9sZm9fY29udHJvbF9zb3VyY2Vfc2V0X3dhdmVmb3JtKSwKCSAgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfYmluZCksIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX2luaXQpLAoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9maW5hbGl6ZSksCgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX2Rpc3Bvc2UpLAoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2Vwcml2YXRlLmg6CgkgIEFQSTogQWRkIEdzdExGT0NvbnRyb2xTb3VyY2UsIGEgY29udHJvbCBzb3VyY2UgdGhhdCBnaXZlcyB2YWx1ZXMKCSAgZm9yIHNwZWNpZmljIHRpbWVzdGFtcHMgYmFzZWQgb24gc2V2ZXJhbCBwZXJpb2RpYyB3YXZlZm9ybXMuCgkgIEZpeGVzICM0NTk3MTcuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSAgQWRkIGRvY3VtZW50YXRpb24gYW5kIHVuaXQgdGVzdHMgZm9yIEdzdExGT0NvbnRyb2xTb3VyY2UuCgoyMDA3LTA4LTAzIDE0OjQwOjIyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQmFjayB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIENWUwoKPT09IHJlbGVhc2UgMC4xMC4xNCA9PT0KCjIwMDctMDgtMDMgMTQ6Mzk6MTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4xNAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVsZWFzZSAwLjEwLjE0CgoyMDA3LTA4LTAzIDEzOjIwOjUwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA3LTA4LTAyIDExOjUxOjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuKjogTWFrZSBzdHJpbmdzIHBhc3NlZCB0byBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUoKSBjb25zdGFudCwgYXMgdGhleSBzaG91bGQgYmUgKCM0NjI3NTIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBNYWtlIHN0cmluZ3MgcGFzc2VkIHRvIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSgpCgkgIGNvbnN0YW50LCBhcyB0aGV5IHNob3VsZCBiZSAoIzQ2Mjc1MikuCgoyMDA3LTA4LTAyIDExOjE1OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBEb24ndCBmb3JnZXQgYWJvdXQgdGhlIGZhY3QgdGhhdCBzb21lIGVsZW1lbnQgd2VudCBBU1lOQyBldmVuIGFmdGVyIGEgcmVzeW5jLiBUaGlzIG1ha2VzIHVzIHBvc3QgdGhlIEFTLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLAoJICAoYmluX2hhbmRsZV9hc3luY19kb25lKSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIERvbid0IGZvcmdldCBhYm91dCB0aGUgZmFjdCB0aGF0IHNvbWUgZWxlbWVudCB3ZW50IEFTWU5DIGV2ZW4gYWZ0ZXIgYQoJICByZXN5bmMuIFRoaXMgbWFrZXMgdXMgcG9zdCB0aGUgQVNZTkNfRE9ORSBtZXNzYWdlIGNvcnJlY3RseS4KCSAgRml4ZXMgIzQ2MjU1OC4KCjIwMDctMDctMzEgMTE6NTE6MzggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IFdoZW4gcmVwbGFjaW5nIGFuIGV4aXN0aW5nIGZlYXR1cmUgaW4gdGhlIHJlZ2lzdHJ5LCBtYWtlIHN1cmUgdG8gY29udGludWUgaG9sZGluZyBhIHJlZmVyZW5jZSB1bnRpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2FkZF9mZWF0dXJlKToKCSAgV2hlbiByZXBsYWNpbmcgYW4gZXhpc3RpbmcgZmVhdHVyZSBpbiB0aGUgcmVnaXN0cnksIG1ha2Ugc3VyZSB0bwoJICBjb250aW51ZSBob2xkaW5nIGEgcmVmZXJlbmNlIHVudGlsIHdlJ3ZlIHJlcGxhY2VkIHRoZSBuYW1lIHN0cmluZwoJICB3aXRoaW4gb3VyIGZlYXR1cmUgaGFzaCB0YWJsZS4gTWFrZSBzdXJlIHRvIHVzZSBnX2hhc2hfdGFibGVfcmVwbGFjZQoJICBpbnN0ZWFkIG9mIGdfaGFzaF90YWJsZV9pbnNlcnQgdG8gZW5zdXJlIHRoZSBuZXcgbmFtZSBzdHJpbmcgaXMgdXNlZAoJICBhcyBhIGtleSBpbnN0ZWFkIG9mIHRoZSBvbGQgb25lIHRoYXQgd2UncmUgYWJvdXQgdG8gZnJlZS4KCSAgRml4ZXM6ICM0NjIwODUKCjIwMDctMDctMzEgMTA6MTA6MjcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogUmV2ZXJ0IHBhdGNoIGZyb20gIzQ1OTQ2NiB1bnRpbCBhZnRlciB0aGUgcmVsZWFzZSBhbmQgd2UgY2FuIHdvcmsgb3V0IGV4YWN0bHkgd2hhdCB0aGUgcHJvYmxlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfZmluYWxpemUpLAoJICAoZ3N0X3BsdWdpbl9mZWF0dXJlX3NldF9uYW1lKToKCSAgUmV2ZXJ0IHBhdGNoIGZyb20gIzQ1OTQ2NiB1bnRpbCBhZnRlciB0aGUgcmVsZWFzZSBhbmQgd2UgY2FuIHdvcmsKCSAgb3V0IGV4YWN0bHkgd2hhdCB0aGUgcHJvYmxlbSBpcyAoaWYgYW55KS4KCjIwMDctMDctMjYgMTU6NDg6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBHU1RfVEFHX0xJQ0VOU0VfVVJJIGFuZCBHU1RfVEFHX0NPUFlSSUdIVF9VUkkgKCM0NTE5MzkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQVBJOiBhZGQgR1NUX1RBR19MSUNFTlNFX1VSSSBhbmQgR1NUX1RBR19DT1BZUklHSFRfVVJJICgjNDUxOTM5KS4KCjIwMDctMDctMjYgMTQ6MDU6MjMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9saWJzL01ha2VmaWxlLmFtOiBJbmNsdWRlIG91ciBidWlsZC1wcmVmaXggbGlicyBhbmQgaW5jbHVkZXMgYmVmb3JlIHRoZSBnZW5lcmljIG9uZXMgdG8gYXZvaWQgbGlua2luZyBhZ2FpbnN0IHRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgSW5jbHVkZSBvdXIgYnVpbGQtcHJlZml4IGxpYnMgYW5kIGluY2x1ZGVzIGJlZm9yZSB0aGUgZ2VuZXJpYyBvbmVzIHRvCgkgIGF2b2lkIGxpbmtpbmcgYWdhaW5zdCB0aGUgaW5zdGFsbGVkIGxpYnMgd2hlbiB3ZSB3YW50IHRoZSBidWlsZC10cmVlCgkgIG9uZXMuCgoyMDA3LTA3LTI2IDA4OjQ2OjQ2ICswMDAwICBTdGV2ZSBGaW5rIDxzcGhpbmtAZ21haWwuY29tPgoKCSAgZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6IE1lbnRpb24gdGhhdCBHU1RfUExVR0lOX1BBVEggb3IgLS1nc3QtcGx1Z2luLXBhdGggbWlnaHQgYmUgbmVlZGVkIGlmIHBlb3BsZSB0cnkgdG8gYnVpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU3RldmUgRmluayAgPHNwaGluayBnbWFpbCBjb20+CgkgICogZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6CgkgIE1lbnRpb24gdGhhdCBHU1RfUExVR0lOX1BBVEggb3IgLS1nc3QtcGx1Z2luLXBhdGggbWlnaHQgYmUgbmVlZGVkCgkgIGlmIHBlb3BsZSB0cnkgdG8gYnVpbGQgb3IgaW5zdGFsbCB0aGUgZXhhbXBsZSBmcm9tIHRoZSBwbHVnaW4KCSAgdGVtcGxhdGUgYWdhaW5zdCBhIEdTdHJlYW1lciBmcm9tIHBhY2thZ2UgdXNpbmcgdGhlIGNvbmZpZ3VyZQoJICBkZWZhdWx0cy4KCjIwMDctMDctMjUgMjI6Mjk6NTcgKzAwMDAgIFN0ZXZlIEZpbmsgPHNwaGlua0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC4xLmluOiBEb2N1bWVudCAtLXByaW50LWFsbCBhbmQgLS1wcmludC1wbHVnaW4tYXV0by1pbnN0YWxsLWluZm8gY29tbWFuZCBsaW5lIG9wdGlvbnMgaW4gbWFuIHBhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU3RldmUgRmluayAgPHNwaGluayBnbWFpbCBjb20+CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuMS5pbjoKCSAgRG9jdW1lbnQgLS1wcmludC1hbGwgYW5kIC0tcHJpbnQtcGx1Z2luLWF1dG8taW5zdGFsbC1pbmZvIGNvbW1hbmQKCSAgbGluZSBvcHRpb25zIGluIG1hbiBwYWdlLgoKMjAwNy0wNy0yNSAxODo0Njo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBkb2NzIGZvciBuZXcgYXBpIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgZG9jcyBmb3IgbmV3IGFwaSBmdW5jdGlvbi4KCjIwMDctMDctMjUgMTg6Mzc6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuKjogQVBJOiBnc3RfZWxlbWVudF9mYWN0b3J5X2hhc19pbnRlcmZhY2UoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfaGFzX2ludGVyZmFjZSk6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIEFQSTogZ3N0X2VsZW1lbnRfZmFjdG9yeV9oYXNfaW50ZXJmYWNlKCkKCSAgQWRkZWQgbWV0aG9kIHRvIGNoZWNrIGlmIGFuIGVsZW1lbnQgZmFjdG9yeSBpbXBsZW1lbnRzIGEgbmFtZWQKCSAgaW50ZXJmYWNlLgoKMjAwNy0wNy0yNSAxMzowMDoyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQW5vdGhlciBjb25kaXRpb25hbCBkb2MgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgIEFub3RoZXIgY29uZGl0aW9uYWwgZG9jIGNoZWNrLgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgICogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogZ3N0L2dzdHhtbC5oOgoJICBBUEktZG9jIGZpeGVzLgoKMjAwNy0wNy0yNCAxMzo0NDowNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IFByaW50IGVycm9yIGp1c3Qgb25jZSBhbmQgd2l0aCBhZGRpdGlvbmFsIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9jaGVja19tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgIFByaW50IGVycm9yIGp1c3Qgb25jZSBhbmQgd2l0aCBhZGRpdGlvbmFsIGluZm8uCgoyMDA3LTA3LTI0IDEzOjM4OjIxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IENsZWFudXAgdGhlIHR5cGVmaW5kaGVscGVyIGNvZGUgYW5kIGFkZCBwcml2YXRlIGRvYyBjb21tZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayksCgkgIChoZWxwZXJfZmluZF9zdWdnZXN0KSwgKGhlbHBlcl9maW5kX2dldF9sZW5ndGgpLAoJICAoZ3N0X3R5cGVfZmluZF9oZWxwZXJfZ2V0X3JhbmdlKSwgKGJ1Zl9oZWxwZXJfZmluZF9zdWdnZXN0KSwKCSAgKGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9idWZmZXIpOgoJICBDbGVhbnVwIHRoZSB0eXBlZmluZGhlbHBlciBjb2RlIGFuZCBhZGQgcHJpdmF0ZSBkb2MgY29tbWVudHMuCgoyMDA3LTA3LTI0IDEyOjMyOjMxICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IEZpeCBjYXBzZmlsdGVyIGZvciBjYXNlcyB3aGVyZSB0aGUgY2FwcyBzZXQgb24gY2Fwc2ZpbHRlciB3aWxsIHByb3ZpZGUgYWRkaXRpb25hbCBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfY2xhc3NfaW5pdCksCgkgIChnc3RfY2Fwc2ZpbHRlcl90cmFuc2Zvcm1fc2l6ZSksIChnc3RfY2Fwc2ZpbHRlcl9wcmVwYXJlX2J1Zik6CgkgIEZpeCBjYXBzZmlsdGVyIGZvciBjYXNlcyB3aGVyZSB0aGUgY2FwcyBzZXQgb24gY2Fwc2ZpbHRlciB3aWxsIHByb3ZpZGUKCSAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbi4KCSAgRml4ZXMgIzQ0OTE5NwoKMjAwNy0wNy0yNCAxMTozMTowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiBGaXggZG9jcyB0aGF0IHJlY29tbWVuZWQgd3JvbmcgZnVuY3Rpb24gdG8gdXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkgIEZpeCBkb2NzIHRoYXQgcmVjb21tZW5lZCB3cm9uZyBmdW5jdGlvbiB0byB1c2UuCgoyMDA3LTA3LTIzIDEzOjAzOjQzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBBbHNvIGdpdmUgbWVkaWEtdHlwZSBmb3IgdHlwZWZpbmRlcnMgaW4gZWxlbWVudCBvdXRwdXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9wbHVnaW5fZmVhdHVyZXMpOgoJICBBbHNvIGdpdmUgbWVkaWEtdHlwZSBmb3IgdHlwZWZpbmRlcnMgaW4gZWxlbWVudCBvdXRwdXQuCgoyMDA3LTA3LTIzIDExOjQyOjEyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnkuKjogU3BlZWQgdXAgZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9mZWF0dXJlX2xvY2tlZCgpIGJ5IHVzaW5nIGEgaGFzaG1hcC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfaW5pdCksIChnc3RfcmVnaXN0cnlfZmluYWxpemUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9mZWF0dXJlc19mb3JfcGx1Z2luX3VubG9ja2VkKSwKCSAgKGdzdF9yZWdpc3RyeV9hZGRfZmVhdHVyZSksIChnc3RfcmVnaXN0cnlfcmVtb3ZlX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9mZWF0dXJlX2xvY2tlZCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIFNwZWVkIHVwIGdzdF9yZWdpc3RyeV9sb29rdXBfZmVhdHVyZV9sb2NrZWQoKSBieSB1c2luZyBhIGhhc2htYXAuCgkgIEZpeGVzICM0NTk1MDEuCgoyMDA3LTA3LTIzIDEwOjM5OjEwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiBBdm9pZCBkb3VibGUgbWVtb3J5IHVzYWdlIGZvciBwbHVnaW5mZWF0dXJlIG5hbWVzLiBGaXhlcyAjNDU5NDY2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2ZpbmFsaXplKSwKCSAgKGdzdF9wbHVnaW5fZmVhdHVyZV9zZXRfbmFtZSk6CgkgIEF2b2lkIGRvdWJsZSBtZW1vcnkgdXNhZ2UgZm9yIHBsdWdpbmZlYXR1cmUgbmFtZXMuIEZpeGVzICM0NTk0NjYuCgoyMDA3LTA3LTIyIDE4OjI2OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZC5oOiBTbWFsbCBhZGRpdGlvbiB0byBHU1RfRkxPV19JU19GQVRBTCgpIGRvY3M6IG1lbnRpb24gdGhhdCBlbGVtZW50cyBkcml2aW5nIHRoZSBwaXBlbGluZSBtYXkgbmVlZCB0byBleHBsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgU21hbGwgYWRkaXRpb24gdG8gR1NUX0ZMT1dfSVNfRkFUQUwoKSBkb2NzOiBtZW50aW9uIHRoYXQgZWxlbWVudHMKCSAgZHJpdmluZyB0aGUgcGlwZWxpbmUgbWF5IG5lZWQgdG8gZXhwbGljaXRseSBjaGVjayBmb3IgTk9UX0xJTktFRCBhcwoJICB3ZWxsLCBzaW5jZSBJU19GQVRBTCBkb2Vzbid0IGNvdmVyIHRoYXQuCgoyMDA3LTA3LTIyIDE4OjE2OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOiBGaXggdHlwbyBhbmQgZHVwbGljYXRlIGVudHJ5IGluIHZpZGVvIGZvcm1hdHMgbGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBGaXggdHlwbyBhbmQgZHVwbGljYXRlIGVudHJ5IGluIHZpZGVvIGZvcm1hdHMgbGlzdC4KCjIwMDctMDctMjIgMTI6MTg6NDYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOiBBbHNvIHJvdW5kIHRvIHRoZSBuZWFyZXN0IGludCB3aGVuIHVzaW5nIGN1YmljIGludGVycG9sYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBBbHNvIHJvdW5kIHRvIHRoZSBuZWFyZXN0IGludCB3aGVuIHVzaW5nIGN1YmljIGludGVycG9sYXRpb24uCgoyMDA3LTA3LTIxIDIxOjIwOjM3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOiBXaGVuIGxpbmVhcmx5IGludGVycG9sYXRpbmcgaW50ZWdlciB0eXBlcywgcm91bmQgdG8gdGhlIG5lYXJlc3QgaW50IGJ5IGFkZGluZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgV2hlbiBsaW5lYXJseSBpbnRlcnBvbGF0aW5nIGludGVnZXIgdHlwZXMsIHJvdW5kIHRvIHRoZSBuZWFyZXN0IGludAoJICBieSBhZGRpbmcgMC41LiBEb24ndCBkbyBpdCBmb3IgZmxvYXQvZG91YmxlIHR5cGVzLgoJICBGaXhlcyB0aGUgZmFpbGluZyBjb250cm9sbGVyIHRlc3Qgb24gbXkgbWFjaGluZSwgd2hpY2ggaXMgc29tZWhvdwoJICByb3VuZGluZyBkaWZmZXJlbnRseSB0aGFuIG9uIHRoZSBidWlsZGJvdHMuCgoyMDA3LTA3LTIwIDA3OjM2OjQ0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weTogQmV0dGVyIGxvZyBwYXJzaW5nIChjYXRlZ29yaWVzIGNhbiBoYXZlIC0pLiBBZGp1c3QgdGV4dCB2cy4gbGluZXMsIHNvIHRoYXQgdGhleSBzcGFuIHRoZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6CgkgIEJldHRlciBsb2cgcGFyc2luZyAoY2F0ZWdvcmllcyBjYW4gaGF2ZSAtKS4gQWRqdXN0IHRleHQgdnMuIGxpbmVzLCBzbwoJICB0aGF0IHRoZXkgc3BhbiB0aGUgc2FtZSB5LXJhbmdlLgoKMjAwNy0wNy0yMCAwNzoyNjozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy86IFNhdmUgbXkgdGhvdWdodHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvYXVkaW9iYXNlY2xhc3Nlcy50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9keW5saW5rLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkgIFNhdmUgbXkgdGhvdWdodHMuCgkgICogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIEFkZCBub3RlIHRvIHVzZSBnX2Fzc2VydCB0eXBlIG1hY3Jvcy4KCjIwMDctMDctMjAgMDc6MDk6MTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCBsaWJtIGNoZWNrIGFzIHdlIHVzZSBpbiBmb3IgcGx1Z2lucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBBZGQgbGlibSBjaGVjayBhcyB3ZSB1c2UgaW4gZm9yIHBsdWdpbnMuCgoyMDA3LTA3LTE4IDE0OjMxOjIxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQ2hlY2sgdGhhdCB0aGUgc3RhdGVfY29va2llIGhhc24ndCBjaGFuZ2VkIHNpbmNlIHRoZSBjb250aW51ZV9mdW5jIHdhcyBzY2hlZHVsZWQuIEF2b2lkcyBwcm9ibGVtcyB3aGVyZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NvbnRpbnVlX2Z1bmMpOgoJICBDaGVjayB0aGF0IHRoZSBzdGF0ZV9jb29raWUgaGFzbid0IGNoYW5nZWQgc2luY2UgdGhlIGNvbnRpbnVlX2Z1bmMKCSAgd2FzIHNjaGVkdWxlZC4gQXZvaWRzIHByb2JsZW1zIHdoZXJlIHRoZSBzdGF0ZSBjaGFuZ2VzIGJhY2sgdG8KCSAgc29tZXRoaW5nIGl0IHNob3VsZG4ndCBiZSBiZWNhdXNlIGl0IHdhcyBjaGFuZ2VkIGluIHRoZSBtZWFudGltZS4KCjIwMDctMDctMTcgMDk6NDQ6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBGaXggbWVtb3J5IGxlYWsuIEJlIGxlc3MgdmVyYm9zZSBpbiB0aGUgbG9nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9jb25zdF9zdHJpbmcpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3N0cmluZyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICBGaXggbWVtb3J5IGxlYWsuIEJlIGxlc3MgdmVyYm9zZSBpbiB0aGUgbG9nLgoKMjAwNy0wNy0xNiAxNjo0NDozMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOiBBZGQgZmlsZSB0byBjdnNpZ25vcmUgYXMgY29tbWFuZGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICBBZGQgZmlsZSB0byBjdnNpZ25vcmUgYXMgY29tbWFuZGVkLgoKMjAwNy0wNy0xNiAxNjowNDo0OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6IFVzZSBhIEdTdGF0aWNNdXRleCB0byBwcm90ZWN0IGFsbCBjYXNlcyB3aGVyZSBsaWJjaGVjayBmYWlsX2lmL2ZhaWxfdW5sZXNzIG1hY3JvcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOiAobXFfZHVtbXlwYWRfY2hhaW4pLAoJICAobXFfZHVtbXlwYWRfZXZlbnQpLCAocnVuX291dHB1dF9vcmRlcl90ZXN0KToKCSAgVXNlIGEgR1N0YXRpY011dGV4IHRvIHByb3RlY3QgYWxsIGNhc2VzIHdoZXJlIGxpYmNoZWNrCgkgIGZhaWxfaWYvZmFpbF91bmxlc3MgbWFjcm9zIG1pZ2h0IGJlIGNhbGxlZCBmcm9tIG11bHRpcGxlIHRocmVhZHMKCSAgc2ltdWx0YW5lb3VzbHkgdG8gYXZvaWQgZXJyb3JzIGxpa2U6CgkgICJjaGVja19wYWNrLmM6MTA3OiA6LTEwODE3MjU0MDA6QmFkIG1lc3NhZ2UgdHlwZSBhcmciCgoyMDA3LTA3LTE2IDE1OjE5OjA2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzogTWFrZSBzdXJlIHdlIHNldCB0aGUgcGlwZWxpbmUgYmFjayB0byB0aGUgTlVMTCBzdGF0ZSBiZWZvcmUgZHJvcHBpbmcgb3VyIGZpbmFsIHJlZmVyZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc3RyZXNzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2Ugc3VyZSB3ZSBzZXQgdGhlIHBpcGVsaW5lIGJhY2sgdG8gdGhlIE5VTEwgc3RhdGUgYmVmb3JlCgkgIGRyb3BwaW5nIG91ciBmaW5hbCByZWZlcmVuY2UuCgoyMDA3LTA3LTE2IDE0OjU1OjI2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOiBNYWtlIHRoZSB0ZWUgc3RyZXNzLXRlc3QgYSBsaXR0bGUgbGVzcyBzdHJlc3NmdWwgc28gaXQgZG9lc24ndCBqdXN0IHRpbWUgb3V0IG9uIHNsb3ctbWFjaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSB0aGUgdGVlIHN0cmVzcy10ZXN0IGEgbGl0dGxlIGxlc3Mgc3RyZXNzZnVsIHNvIGl0IGRvZXNuJ3QganVzdAoJICB0aW1lIG91dCBvbiBzbG93LW1hY2hpbmVzLCBhbmQgcmVtb3ZlIGEgc21hbGwgcmFjZSB3aGVuIGl0J3Mgc3RhcnRpbmcKCSAgdXAgYnkgYWRkaW5nIGEgZ2V0X3N0YXRlKCkgY2FsbC4KCjIwMDctMDctMTYgMTI6MzY6MTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3QuYzogQXZvaWQgcmVhZGluZyByZWdpc3RyeSB0d2ljZSBvbiBzdGFydHVwLiBGaXhlcyAjNDU3MzIyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIEF2b2lkIHJlYWRpbmcgcmVnaXN0cnkgdHdpY2Ugb24gc3RhcnR1cC4gRml4ZXMgIzQ1NzMyMi4KCjIwMDctMDctMTMgMTQ6MTE6MjIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcGtnY29uZmlnLzogU3Vic3RpdHV0ZSB0aGUgQ0ZMQUdTIGZvciBsaWJjaGVjayBpbnRvIG91ciAucGMgZmlsZSB0b28gc28gdGhhdCBkZXBlbmRlbnQgbW9kdWxlcyB3aWxsIHBpY2sgaXQgdXAgcHJvcGVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSAgU3Vic3RpdHV0ZSB0aGUgQ0ZMQUdTIGZvciBsaWJjaGVjayBpbnRvIG91ciAucGMgZmlsZSB0b28gc28gdGhhdAoJICBkZXBlbmRlbnQgbW9kdWxlcyB3aWxsIHBpY2sgaXQgdXAgcHJvcGVybHkgaWYgbGliY2hlY2sgaXMgaW5zdGFsbGVkCgkgIGludG8gc29tZSBvdGhlciBwcmVmaXguCgoyMDA3LTA3LTEzIDEzOjQ5OjE0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogUmV2ZXJ0IHRoZSBwa2ctY29uZmlnIGNoZWNrIGZvciBsaWJjaGVjaywgc2luY2UgaXQgcHVsbHMgaW4gdGhlIHdyb25nIG5vbi1QSUMgbGliY2hlY2suYSBvbiBVYnVudHUgYW5kIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFJldmVydCB0aGUgcGtnLWNvbmZpZyBjaGVjayBmb3IgbGliY2hlY2ssIHNpbmNlIGl0IHB1bGxzIGluIHRoZQoJICB3cm9uZyBub24tUElDIGxpYmNoZWNrLmEgb24gVWJ1bnR1IGFuZCBwcm9iYWJseSBGZWRvcmEgdG9vLiBXZSBuZWVkCgkgIGEgcHJvcGVyIHNvbHV0aW9uLCBlaXRoZXIgZnJvbSB0aGUgY2hlY2sgcHJvamVjdCwgb3Igc29tZXRoaW5nIGVsc2UuCgoyMDA3LTA3LTEyIDExOjEwOjIyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb25maWd1cmUuYWM6IFVzZSBwa2ctY29uZmlnIHRvIGxvY2F0ZSBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBVc2UgcGtnLWNvbmZpZyB0byBsb2NhdGUgY2hlY2suCgoyMDA3LTA3LTEwIDIwOjEwOjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBGaXggZG9jIHN5bnRheC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgRml4IGRvYyBzeW50YXguCgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZCBkZXByZWNhdGlvbiBndWFyZHMuCgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBEb24ndCBkb2N1bWVudCBvYmplY3QgKHRoaXMgaXMgaW1wbGljaXRseSBwcml2YXRlKS4KCjIwMDctMDctMDggMTQ6MTE6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IFdoZW4gZGVzZXJpYWxpc2luZyBmb289YmFyIHdpdGhvdXQgYSB0eXBlIGNhc3QsIGNoZWNrIGlmIGl0J3MgYSBib29sZWFuIGJlZm9yZSBmYWxsaW5nIGJhY2sgdG8gYSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9wYXJzZV92YWx1ZSk6CgkgIFdoZW4gZGVzZXJpYWxpc2luZyBmb289YmFyIHdpdGhvdXQgYSB0eXBlIGNhc3QsIGNoZWNrIGlmIGl0J3MgYQoJICBib29sZWFuIGJlZm9yZSBmYWxsaW5nIGJhY2sgdG8gYSBzdHJpbmcgdHlwZSwgb3RoZXJ3aXNlIHRoaW5ncyBsaWtlCgkgIGF1ZGlvdGVzdHNyYyAhIGF1ZGlvL3gtcmF3LWludCxzaWduZWQ9dHJ1ZSAhIGZha2VzaW5rIHdvbid0IHdvcmssCgkgIGJlY2F1c2UgdGhlIGZpbHRlcmNhcHMgZW5kIHVwIGhhdmluZyBhIHNpZ25lZD0oc3RyaW5nKXRydWUgZmllbGQsCgkgIHdoaWNoIGNhdXNlcyBwcm9ibGVtcyBsYXRlciB3aGVuIGludGVyc2VjdGlvbiBjYXBzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIGEgdW5pdCB0ZXN0IGZvciB0aGlzLgoKMjAwNy0wNy0wNiAyMTo1MDowMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IEFQSTogUmVmYWN0b3IgR3N0Q29udHJvbGxlciBpbnRvIHRoZSBjb3JlIGNvbnRyb2xsZXIgd2hpY2ggY2FuIHRha2UgYSBHc3RDb250cm9sU291cmNlIGZvciBwcm92Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9hZGRfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZSksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpLCAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfZnJlZSksCgkgIChnc3RfY29udHJvbGxlcl9maW5kX2NvbnRyb2xsZWRfcHJvcGVydHkpLAoJICAoZ3N0X2NvbnRyb2xsZXJfbmV3X3ZhbGlzdCksIChnc3RfY29udHJvbGxlcl9uZXdfbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl9uZXcpLCAoZ3N0X2NvbnRyb2xsZXJfcmVtb3ZlX3Byb3BlcnRpZXNfdmFsaXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX3JlbW92ZV9wcm9wZXJ0aWVzX2xpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfcmVtb3ZlX3Byb3BlcnRpZXMpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc2V0X3Byb3BlcnR5X2Rpc2FibGVkKSwKCSAgKGdzdF9jb250cm9sbGVyX3NldF9kaXNhYmxlZCksIChnc3RfY29udHJvbGxlcl9zZXRfY29udHJvbF9zb3VyY2UpLAoJICAoZ3N0X2NvbnRyb2xsZXJfZ2V0X2NvbnRyb2xfc291cmNlKSwgKGdzdF9jb250cm9sbGVyX2dldCksCgkgIChnc3RfY29udHJvbGxlcl9zeW5jX3ZhbHVlcyksIChnc3RfY29udHJvbGxlcl9nZXRfdmFsdWVfYXJyYXkpLAoJICAoX2dzdF9jb250cm9sbGVyX2Rpc3Bvc2UpLCAoZ3N0X2NvbnRyb2xsZXJfZ2V0X3R5cGUpLAoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSksCgkgIChnc3RfY29udHJvbGxlcl9zZXQpLCAoZ3N0X2NvbnRyb2xsZXJfc2V0X2Zyb21fbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl91bnNldCksIChnc3RfY29udHJvbGxlcl91bnNldF9hbGwpLAoJICAoZ3N0X2NvbnRyb2xsZXJfZ2V0X2FsbCksIChnc3RfY29udHJvbGxlcl9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sc291cmNlLmM6CgkgIChnc3RfY29udHJvbF9zb3VyY2VfY2xhc3NfaW5pdCksIChnc3RfY29udHJvbF9zb3VyY2VfaW5pdCksCgkgIChnc3RfY29udHJvbF9zb3VyY2VfZ2V0X3ZhbHVlKSwKCSAgKGdzdF9jb250cm9sX3NvdXJjZV9nZXRfdmFsdWVfYXJyYXkpLCAoZ3N0X2NvbnRyb2xfc291cmNlX2JpbmQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbHNvdXJjZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6IChnc3Rfb2JqZWN0X3NldF9jb250cm9sX3NvdXJjZSksCgkgIChnc3Rfb2JqZWN0X2dldF9jb250cm9sX3NvdXJjZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9maW5kX2NvbnRyb2xfcG9pbnRfbm9kZSksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9nZXRfZmlyc3RfdmFsdWUpLAoJICAoX2ludGVycG9sYXRlX25vbmVfZ2V0KSwgKGludGVycG9sYXRlX25vbmVfZ2V0KSwKCSAgKGludGVycG9sYXRlX25vbmVfZ2V0X2Jvb2xlYW5fdmFsdWVfYXJyYXkpLAoJICAoaW50ZXJwb2xhdGVfbm9uZV9nZXRfZW51bV92YWx1ZV9hcnJheSksCgkgIChpbnRlcnBvbGF0ZV9ub25lX2dldF9zdHJpbmdfdmFsdWVfYXJyYXkpLAoJICAoX2ludGVycG9sYXRlX3RyaWdnZXJfZ2V0KSwgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0KSwKCSAgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0X2Jvb2xlYW5fdmFsdWVfYXJyYXkpLAoJICAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXRfZW51bV92YWx1ZV9hcnJheSksCgkgIChpbnRlcnBvbGF0ZV90cmlnZ2VyX2dldF9zdHJpbmdfdmFsdWVfYXJyYXkpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgKGdzdF9jb250cm9sX3BvaW50X2ZyZWUpLCAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfcmVzZXQpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfbmV3KSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX3NldF9pbnRlcnBvbGF0aW9uX21vZGUpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfYmluZCksCgkgIChnc3RfY29udHJvbF9wb2ludF9jb21wYXJlKSwgKGdzdF9jb250cm9sX3BvaW50X2ZpbmQpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2Vfc2V0X2ludGVybmFsKSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX3NldCksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9zZXRfZnJvbV9saXN0KSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX3Vuc2V0KSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX3Vuc2V0X2FsbCksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9nZXRfYWxsKSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2dldF9jb3VudCksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9pbml0KSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2ZpbmFsaXplKSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2Rpc3Bvc2UpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2Vwcml2YXRlLmg6CgkgIEFQSTogUmVmYWN0b3IgR3N0Q29udHJvbGxlciBpbnRvIHRoZSBjb3JlIGNvbnRyb2xsZXIgd2hpY2ggY2FuIHRha2UKCSAgYSBHc3RDb250cm9sU291cmNlIGZvciBwcm92aWRpbmcgYWN0dWFsIHZhbHVlcyBmb3IgdGltZXN0YW1wcy4KCSAgSW1wbGVtZW50IGEgaW50ZXJwb2xhdGlvbiBjb250cm9sIHNvdXJjZSBhbmQgdXNlIHRoaXMgZm9yIGJhY2t3YXJkCgkgIGNvbXBhdGliaWxpdHksIGRlcHJlY2F0ZSBhIGJ1bmNoIG9mIGZ1bmN0aW9ucyB0aGF0IGFyZSBub3cgaGFuZGxlZAoJICBieSBHc3RDb250cm9sU291cmNlIG9yIEdzdEludGVycG9sYXRpb25Db250cm9sU291cmNlLgoJICBNYWtlIGl0IHBvc3NpYmxlIHRvIGRpc2FibGUgdGhlIGNvbnRyb2xsZXIgY29tcGxldGVseSBvciBvbmx5IGZvcgoJICBzcGVjaWZpYyBwcm9wZXJ0aWVzLiBGaXhlcyAjNDUwNzExLgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkgIEFkZCBuZXcgZnVuY3Rpb25zIGFuZCBjbGFzc2VzIHRvIHRoZSBkb2NzLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICAqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOiAobWFpbik6CgkgIFBvcnQgdW5pdCB0ZXN0IGFuZCBleGFtcGxlIHRvIHRoZSBuZXcgQVBJIGFuZCBhZGQgc29tZSBuZXcKCSAgdW5pdCB0ZXN0cy4KCjIwMDctMDctMDUgMDk6MDY6MDIgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogSW1wbGVtZW50IG5vbi1kZWZhdWx0IEdzdFBhZEludExpbmtGdW5jdGlvbiBmb3IgbXVsdGlxdWV1ZSBwYWRzIHNvIHRoYXQgdGhlIHBpcGVsaW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgYXQgc2t5bmV0IGJlPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICAoZ3N0X211bHRpX3F1ZXVlX2dldF9pbnRlcm5hbF9saW5rcyksIChhcHBseV9idWZmZXIpLAoJICAoc2luZ2xlX3F1ZXVlX292ZXJydW5fY2IpLCAoZ3N0X3NpbmdsZV9xdWV1ZV9uZXcpOgoJICBJbXBsZW1lbnQgbm9uLWRlZmF1bHQgR3N0UGFkSW50TGlua0Z1bmN0aW9uIGZvciBtdWx0aXF1ZXVlIHBhZHMgc28gdGhhdAoJICB0aGUgcGlwZWxpbmUgbGF5b3V0IGNhbiBiZSB0cmFja2VkIGNvcnJlY3RseS4gRml4ZXMgIzQ1MzczMi4KCjIwMDctMDctMDUgMDg6NDI6NDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBTaW1wbGl0eSAtLWV4dHJhLWRpciBhcyBndGtkb2Mgc2NhbnMgcmVjdXJzaXZlbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgIFNpbXBsaXR5IC0tZXh0cmEtZGlyIGFzIGd0a2RvYyBzY2FucyByZWN1cnNpdmVseS4KCjIwMDctMDctMDMgMTc6MDE6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IFdoZW4gd2UgZ290IGFuIGVycm9yLCB0aGVyZSBpcyBubyBwb2ludCBpbiB3YWl0aW5nIGZvciBwcmVyb2xsIHdoZW4gc2h1dHRpbmcgZG93bi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIFdoZW4gd2UgZ290IGFuIGVycm9yLCB0aGVyZSBpcyBubyBwb2ludCBpbiB3YWl0aW5nIGZvciBwcmVyb2xsIHdoZW4KCSAgc2h1dHRpbmcgZG93bi4KCjIwMDctMDctMDMgMTY6MjY6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiBCZSBhIGxvdCBzbWFydGVyIHdoZW4gZGVjaWRpbmcgd2hhdCBzcmNwYWQgdG8gdXNlIGZvciBwcm94eWluZyB0aGUgYnVmZmVyX2FsbG9jLiBBbHNvIGhhbmQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfYmFzZV9pbml0KSwKCSAgKGdzdF90ZWVfcmVxdWVzdF9uZXdfcGFkKSwgKGdzdF90ZWVfcmVsZWFzZV9wYWQpLAoJICAoZ3N0X3RlZV9maW5kX2J1ZmZlcl9hbGxvYyksIChnc3RfdGVlX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfdGVlX2RvX3B1c2gpLCAoY2xlYXJfcGFkcyksIChnc3RfdGVlX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X3RlZV9jaGFpbik6CgkgIEJlIGEgbG90IHNtYXJ0ZXIgd2hlbiBkZWNpZGluZyB3aGF0IHNyY3BhZCB0byB1c2UgZm9yIHByb3h5aW5nCgkgIHRoZSBidWZmZXJfYWxsb2MuIEFsc28gaGFuZGxlIHBhZCBhZGRlZC9yZW1vdmVkIHdoZW4gZG9pbmcgc28uCgkgIEZpeGVzICMzNTc5NTkuCgkgIEtlZXAgdHJhY2sgb2Ygd2hhdCBwYWRzIHdlIGFscmVhZHkgcHVzaGVkIG9uIGluIGNhc2Ugd2UgaGF2ZSBwYWRzCgkgIGFkZGVkL3JlbW92ZWQgd2hpbGUgcHVzaGluZy4gRml4ZXMgIzM3NDYzOQoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOiAoaGFuZG9mZiksIChHU1RfU1RBUlRfVEVTVCksCgkgICh0ZWVfc3VpdGUpOgoJICBBZGRlZCB1bml0IHRlc3QgZm9yIHBhZCByZXN5bmMuCgoyMDA3LTA3LTAxIDIxOjMxOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogVXBkYXRlZCB0cmFuc2xhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL25sLnBvOgoJICAqIHBvL3N2LnBvOgoJICBVcGRhdGVkIHRyYW5zbGF0aW9ucy4KCjIwMDctMDctMDEgMjE6MzA6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vOiBBZGRlZCBuZXcgRmlubmlzaCB0cmFuc2xhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyYW5zbGF0aW9uIGJ5OiBUb21taSBWYWluaWthaW5lbiA8VG9tbWkuVmFpbmlrYWluZW5AaWtpLmZpPgoJICAqIHBvL0xJTkdVQVM6CgkgICogcG8vZmkucG86CgkgIEFkZGVkIG5ldyBGaW5uaXNoIHRyYW5zbGF0aW9uLgoKMjAwNy0wNi0yOCAxMToyNToxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBXaGVuIGZpZ3VyaW5nIG91dCB3aGVuIGEgcXVldWUgaXMgZmlsbGVkLCB1c2Ugb3VyIGludGVybmFsIHRpbWUgZXN0aW1hdGUgYmFzZWQgb24gcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGFwcGx5X2J1ZmZlciksCgkgIChzaW5nbGVfcXVldWVfb3ZlcnJ1bl9jYik6CgkgIFdoZW4gZmlndXJpbmcgb3V0IHdoZW4gYSBxdWV1ZSBpcyBmaWxsZWQsIHVzZSBvdXIgaW50ZXJuYWwgdGltZSBlc3RpbWF0ZQoJICBiYXNlZCBvbiBzZWdtZW50cywganVzdCBsaWtlIGNoZWNrX2Z1bGwgZG9lcy4KCjIwMDctMDYtMjcgMTE6NDc6NDYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBNZW50aW9uIGJ1ZyA0MzA2ODIgY2xvc2VkIGJ5IHByZXZpb3VzIGNvbW1pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1lbnRpb24gYnVnIDQzMDY4MiBjbG9zZWQgYnkgcHJldmlvdXMgY29tbWl0LgoKMjAwNy0wNi0yNyAxMTo0MzowNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogUmVtb3ZlIDMgZG8tbm90aGluZyBtZXRob2RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X2dldF90eXBlKToKCSAgUmVtb3ZlIDMgZG8tbm90aGluZyBtZXRob2RzLgoKMjAwNy0wNi0yNyAxMToyNDowOCArMDAwMCAgVGltIEFuZ3VzIDx0aW1Abmd1cy5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogVGFrZSBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEgY29weSB3aGVuIHNldHRpbmcgImNhcHMiLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRpbSBBbmd1cyA8dGltIGF0IG5ndXMgZG90IG5ldD4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2NsYXNzX2luaXQpLAoJICAoZ3N0X2NhcHNmaWx0ZXJfc2V0X3Byb3BlcnR5KToKCSAgVGFrZSBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEgY29weSB3aGVuIHNldHRpbmcgImNhcHMiLgoJICBGaXggZG9jdW1lbnRhdGlvbiB0byBjbGFyaWZ5IHRoaXMgYmVoYXZpb3VyLiBGaXhlcyAjNDQ5NDE0LgoKMjAwNy0wNi0yNyAxMDoxMjoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogUmVtb3ZlIGVtcHR5IGluc3RhbmNlX2luaXQoKSBmdW5jdGlvbnMgdG8gc2F2ZSByZWxvY3MgYW5kIGxlc3NlbiB0aGUgbm9pc2UuIFJlbW92ZSBzb21lIG9mIHRoZSBmdW5jdGlvbiBwcm90b3R5Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzogKGdzdF9pbmRleF9mYWN0b3J5X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfaW5pdCk6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2luaXQpOgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF91cmlfaGFuZGxlcl9iYXNlX2luaXQpOgoJICBSZW1vdmUgZW1wdHkgaW5zdGFuY2VfaW5pdCgpIGZ1bmN0aW9ucyB0byBzYXZlIHJlbG9jcyBhbmQgbGVzc2VuIHRoZQoJICBub2lzZS4gUmVtb3ZlIHNvbWUgb2YgdGhlIGZ1bmN0aW9uIHByb3RvdHlwZXMgdGhhdCBhcmUgZG91YmxlZCBieQoJICBHX0RFRklORV9UWVBFLgoKMjAwNy0wNi0yNyAwOTozNDowMSArMDAwMCAgw4l0aWVubmUgTm9yZWF1LUjDqWJlcnQgPGV0aWVubmVAZGVlcHVuZGVyLm9yZz4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBBZGQgcGVlciBhbmQgZGlyZWN0aW9uIGluIHRoZSBYTUwgc2VyaWFsaXNhdGlvbiBvZiBnaG9zdHBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogw4l0aWVubmUgTm9yZWF1LUjDqWJlcnQgPGV0aWVubmUgYXQgZGVlcHVuZGVyIGRvdCBvcmc+CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX3NhdmVfdGh5c2VsZik6CgkgIEFkZCBwZWVyIGFuZCBkaXJlY3Rpb24gaW4gdGhlIFhNTCBzZXJpYWxpc2F0aW9uIG9mIGdob3N0cGFkcy4KCSAgRml4ZXMgIzQ0OTIyNi4KCjIwMDctMDYtMjYgMTY6MjQ6MjAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogUHJlc2VydmUgdXNlZnVsIGluZm9ybWF0aW9uLCB0aGFua3MgVGltLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFByZXNlcnZlIHVzZWZ1bCBpbmZvcm1hdGlvbiwgdGhhbmtzIFRpbS4KCjIwMDctMDYtMjYgMTQ6NDU6MTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLio6IFRha2UgdGhlIG11bHRpcXVldWUgbG9jayB3aGVuIHVwZGF0aW5nIHRoZSBmaWxsIGxldmVsIHNvIHdlIGRvbid0IGdldCBjb25mdXNlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfaW5pdCksCgkgIChnc3Rfc2luZ2xlX3F1ZXVlX2ZsdXNoKSwgKGFwcGx5X3NlZ21lbnQpLCAoYXBwbHlfYnVmZmVyKSwKCSAgKGdzdF9zaW5nbGVfcXVldWVfcHVzaF9vbmUpLCAoZ3N0X211bHRpX3F1ZXVlX2xvb3ApLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksIChnc3RfbXVsdGlfcXVldWVfc2lua19ldmVudCksCgkgIChnc3RfbXVsdGlfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpLCAod2FrZV91cF9uZXh0X25vbl9saW5rZWQpLAoJICAoY29tcHV0ZV9oaWdoX2lkKSwgKGdzdF9zaW5nbGVfcXVldWVfbmV3KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgVGFrZSB0aGUgbXVsdGlxdWV1ZSBsb2NrIHdoZW4gdXBkYXRpbmcgdGhlIGZpbGwgbGV2ZWwgc28gd2UgZG9uJ3QgZ2V0CgkgIGNvbmZ1c2VkLgoJICBBZnRlciBhcHBseWluZyBhIGJ1ZmZlciBvciBldmVudCBvbiB0aGUgc3JjIHBhZCBzZWdtZW50LCBtYWtlIHN1cmUgdG8KCSAgY2FsbCBnc3RfZGF0YV9xdWV1ZV9saW1pdHNfY2hhbmdlZCgpIHRvIGdldCB0aGUgZGF0YSBxdWV1ZSB0byB1bmJsb2NrCgkgIGFuZCBjaGVjayB0aGUgZmlsbGVkIHN0YXRlIGFnYWluLgoJICBSZXdvcmsgdGhlIG5vdC1saW5rZWQgcGFkIGhhbmRsaW5nIHNvIHRoZSBsb2dpYyBpcyB0aGF0IG5vdC1saW5rZWQKCSAgcGFkcyBjYW4gcHVzaCBhcyBmYXN0IGFzIHRoZXkgbGlrZSwgYnV0IG9ubHkgc28gdGhleSBuZXZlciBnZXQKCSAgYWhlYWQgb2YgYW55IGxpbmtlZCBwYWRzLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzogKG1xX3NpbmtwYWRfdG9fc3JjcGFkKSwKCSAgKG1xX2R1bW15cGFkX2dldGNhcHMpLCAobXFfZHVtbXlwYWRfY2hhaW4pLCAobXFfZHVtbXlwYWRfZXZlbnQpLAoJICAocnVuX291dHB1dF9vcmRlcl90ZXN0KSwgKEdTVF9TVEFSVF9URVNUKSwgKG11bHRpcXVldWVfc3VpdGUpOgoJICBBZGQgYSB0ZXN0IHRvIGNoZWNrIHRoYXQgbm90LWxpbmtlZCBwYWRzIGFsd2F5cyBzdGF5IGJlaGluZAoJICBsaW5rZWQgcGFkcy4KCjIwMDctMDYtMjYgMTE6NTc6MjMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9yYW5kb20vcmVsZWFzZTogU29tZSB1cGRhdGVzIHRvIHRoZSByZWxlYXNlIHByb2NlZHVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgU29tZSB1cGRhdGVzIHRvIHRoZSByZWxlYXNlIHByb2NlZHVyZS4KCjIwMDctMDYtMjYgMDg6MjY6MzYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBNaWNyb29wdGltaXphdGlvbiB0aGF0IHNhdmVzIHN0dW5uaW5nIDgwIGJ5dGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKF9fZ3N0X2VsZW1lbnRfZGV0YWlsc19jbGVhcik6CgkgIE1pY3Jvb3B0aW1pemF0aW9uIHRoYXQgc2F2ZXMgc3R1bm5pbmcgODAgYnl0ZXMuCgoyMDA3LTA2LTI1IDEyOjM1OjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3BsdWdpbnMvOiBVcGRhdGUgZG9jcyB3aXRoIGNhcHMgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkgIFVwZGF0ZSBkb2NzIHdpdGggY2FwcyBpbmZvLgoKMjAwNy0wNi0yMyAyMjo1NjoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby9pdC5wbzogVXBkYXRlZCBJdGFsaWFuIHRyYW5zbGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9pdC5wbzoKCSAgVXBkYXRlZCBJdGFsaWFuIHRyYW5zbGF0aW9uLgoKMjAwNy0wNi0yMyAxMToxOToxNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGZpeCB3aW4zMiBhcmNoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggd2luMzIgYXJjaAoKMjAwNy0wNi0yMyAxMToxODo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICA4MCBsaW5lIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgODAgbGluZSBmaXgKCjIwMDctMDYtMjMgMTE6MTU6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vOiBVcGRhdGUgVmlldG5hbWVzZSB0cmFuc2xhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIENoYW5nZUxvZzoKCSAgKiBwby92aS5wbzoKCSAgVXBkYXRlIFZpZXRuYW1lc2UgdHJhbnNsYXRpb25zLgoKMjAwNy0wNi0yMSAyMjozNzoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmVtb3ZlIHVudXNlZCBzaWduYWwgZW51bS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBSZW1vdmUgdW51c2VkIHNpZ25hbCBlbnVtLgoKMjAwNy0wNi0yMSAxODowMDo1OCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogTUFJTlRBSU5FUlM6CgkgIHVwZGF0ZSBNQUlOVEFJTkVSUyBmaWxlIHRvIHJlZmxlY3QgY3VycmVudCByZWFsaXRpZXMgYmV0dGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgTUFJTlRBSU5FUlMgZmlsZSB0byByZWZsZWN0IGN1cnJlbnQgcmVhbGl0aWVzIGJldHRlcgoKMjAwNy0wNi0yMSAxNjozOTowMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBCZWVmIHVwIGFuZCBpbmNsdWRlIHRoZSBkb2NzIGZvciBnc3RfdHlwZV9yZWdpc3Rlcl9zdGF0aWNfZnVsbCBhbmQgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlIGFuZCBhZGQgdGhlIEEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3R5cGVfcmVnaXN0ZXJfc3RhdGljX2Z1bGwpOgoJICBCZWVmIHVwIGFuZCBpbmNsdWRlIHRoZSBkb2NzIGZvciBnc3RfdHlwZV9yZWdpc3Rlcl9zdGF0aWNfZnVsbCBhbmQKCSAgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlIGFuZCBhZGQgdGhlIEFQSSBrZXl3b3JkCgkgIGluIHRoZSBDaGFuZ2VMb2cuCgoyMDA3LTA2LTIxIDE0OjM1OjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltQGZsdWVuZG8uY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IEZpeCBzZXR0aW5nIG1heC0qIHByb3BlcnRpZXMgYWZ0ZXIgYWRkaW5nIHF1ZXVlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfc2V0X3Byb3BlcnR5KSwKCSAgKHVwZGF0ZV90aW1lX2xldmVsKSwgKGdzdF9zaW5nbGVfcXVldWVfcHVzaF9vbmUpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2NoYWluKSwgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2V2ZW50KSwKCSAgKHNpbmdsZV9xdWV1ZV9vdmVycnVuX2NiKSwgKHNpbmdsZV9xdWV1ZV91bmRlcnJ1bl9jYiksCgkgIChzaW5nbGVfcXVldWVfY2hlY2tfZnVsbCk6CgkgIEZpeCBzZXR0aW5nIG1heC0qIHByb3BlcnRpZXMgYWZ0ZXIgYWRkaW5nIHF1ZXVlcy4KCSAgVXNlIElTX0ZJTExFRCBmb3IgY2hlY2tpbmcgdmlzaWJsZSBpdGVtcy4KCSAgU2lnbmFsIG92ZXJydW4gaWYgbXVsdGlwbGUgcXVldWVzIG92ZXJydW4uCgkgIEFkZCBleHRyYSBkZWJ1ZyBvdXRwdXQuCgkgIFBhdGNoIGJ5OiBXaW0gVGF5bWFucyA8d2ltQGZsdWVuZG8uY29tPgoKMjAwNy0wNi0yMSAxNDoyOTowNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgU2F2aW5nIHJlbG9jYXRpb25zIGZvciBHVHlwZUluZm8gYW5kIEdzdEVsZW1lbnREZXRhaWxzLiBGaXhlcyAjNDM3NDU3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3R5cGVfcmVnaXN0ZXJfc3RhdGljX2Z1bGwpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2Jhc2VfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2Jhc2VfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2Jhc2VfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2Jhc2VfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfYmFzZV9pbml0KSwKCSAgKGFwcGx5X2J1ZmZlciksIChnc3RfcXVldWVfY2hhaW4pOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2Jhc2VfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9iYXNlX2luaXQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NsYXNzX2luaXQpOgoJICBTYXZpbmcgcmVsb2NhdGlvbnMgZm9yIEdUeXBlSW5mbyBhbmQgR3N0RWxlbWVudERldGFpbHMuIEZpeGVzICM0Mzc0NTcuCgoyMDA3LTA2LTIxIDA5OjQ2OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOiBGaXggdHlwbyBpbiBpYW5hLm9yZyBVUkkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgRml4IHR5cG8gaW4gaWFuYS5vcmcgVVJJLgoKMjAwNy0wNi0xOSAyMTo1ODozMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wNi0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jCgkgICh0ZXN0X3N0YXRlX2NoYW5nZV9yZXR1cm5zKTogRW5hYmxlIHB1bGwtbW9kZSB0ZXN0cyBub3cgdGhhdAoJICBiYXNlc2luayBoYXMgYmVlbiBmaXhlZC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfbmVlZHNfcHJlcm9sbCk6CgkgIENoYW5nZWQgZnJvbSBnc3RfYmFzZV9zaW5rX2lzX3ByZXJvbGxlZCwgcmV2ZXJzaW5nIHRoZSBzZW5zZSBvZgoJICB0aGUgcmV0dXJuIHZhbHVlLiBSZXR1cm5zIEZBTFNFIGFsc28gaWYgdGhlIHNpbmsgaXMgaW4gcHVsbCBtb2RlLAoJICBpbiB3aGljaCBjYXNlIGl0IG5lZWRzIG5vIHByZXJvbGwuCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5LCBnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6IFVwZGF0ZSBmb3IKCSAgbmVlZHNfcHJlcm9sbCBjaGFuZ2UuCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6IEFkZCBhIGNhc2UgZm9yIFJFQURZX1RPX1BBVVNFRCBhZnRlcgoJICBjaGFpbmluZyB1cCwgaW4gd2hpY2ggd2UgcmV0dXJuIFNVQ0NFU1MgZGlyZWN0bHkgaWYgd2UgYWN0aXZhdGVkCgkgIGluIHB1bGwgbW9kZSBpbnN0ZWFkIG9mIEFTWU5DLiBJbnZvbHZlcyBjb3VudGVyaW5nIGFuIGFzeW5jX3N0YXJ0CgkgIG1lc3NhZ2Ugc2VudCBiZWZvcmUgY2hhaW5pbmcgdXA7IG5vdCBzdXJlIGlmIHRoaXMgaXMgY29ycmVjdCwgaW4KCSAgYW4gaWRlYWwgd29ybGQgd2Ugb25seSBzZW5kIGFzeW5jLXN0YXJ0IHdoZW4gYWN0aXZhdGluZyBpbiBwdXNoCgkgIG1vZGUuCgoyMDA3LTA2LTE5IDIxOjI4OjU0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wNi0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jCgkgICh0ZXN0X3N0YXRlX2NoYW5nZV9yZXR1cm5zKTogTmV3IHRlc3QsIHBhcnRpYWxseSBkaXNhYmxlZCB1bnRpbAoJICBiYXNlc2luayBpcyBmaXhlZC4KCjIwMDctMDYtMTkgMTY6MDU6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogRml4IGV2ZW50IGxlYWsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoYXBwbHlfYnVmZmVyKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2V2ZW50KToKCSAgRml4IGV2ZW50IGxlYWsuCgoyMDA3LTA2LTE5IDEwOjQxOjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBNb3ZlIHRoZSBjb21tb24gY29kZSBmb3IgcG9zdGluZyBzdGF0ZS1jaGFuZ2UgbWVzc2FnZXMgaW50byBvbmUgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwgKGJpbl9wdXNoX3N0YXRlX2NvbnRpbnVlKSwKCSAgKGJpbl9oYW5kbGVfYXN5bmNfc3RhcnQpLCAoYmluX2hhbmRsZV9hc3luY19kb25lKSwKCSAgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIE1vdmUgdGhlIGNvbW1vbiBjb2RlIGZvciBwb3N0aW5nIHN0YXRlLWNoYW5nZSBtZXNzYWdlcyBpbnRvCgkgIG9uZSBmdW5jdGlvbi4KCSAgQnJvYWRjYXN0IHRoZSBzdGF0ZSBzaWduYWwgYWZ0ZXIgd2UgcG9zdGVkIHRoZSBtZXNzYWdlcy4KCSAgTWFyayB0aGUgYmluIGFzIGJ1c3kgd2hlbiBpdCdzIGRvaW5nIGEgc3RhdGUtY2hhbmdlLgoJICBNYWtlIHN1cmUgYXN5bmMtc3RhcnQvZG9uZSBtZXNzYWdlcyBkb24ndCBpbnRlcmZlcmUgd2l0aCB0aGUgYmluJ3MKCSAgc3RhdGUgd2hlbiBpdCdzIGJ1c3kuCgkgIEFmdGVyIHRoZSBzdGF0ZSBjaGFuZ2UsIGxldCB0aGUgYmluIGNoZWNrIHdoaWNoIGVsZW1lbnRzIGNvbXBsZXRlZCB0aGUKCSAgc3RhdGUgY2hhbmdlIHdoaWxlIGl0IHdhcyBidXN5IHNvIHRoYXQgaXQgY2FuIHVwZGF0ZSBpdHMgc3RhdGUuCgoyMDA3LTA2LTE5IDEwOjM4OjM5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvcmFuZG9tL3JlbGVhc2U6IEFkZCBhIG5vdGUgYWJvdXQgdXBkYXRpbmcgdGhlIGRvYXAgZmlsZSB0byB0aGUgcmVsZWFzZSBjaGVja2xpc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgQWRkIGEgbm90ZSBhYm91dCB1cGRhdGluZyB0aGUgZG9hcCBmaWxlIHRvIHRoZSByZWxlYXNlIGNoZWNrbGlzdAoKMjAwNy0wNi0xOCAxNjo0NDowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBNYWtlIHN1cmUgd2UgZG9uJ3QgcmVmZXJlbmNlIHRoZSBidWZmZXIvZXZlbnQgYWZ0ZXIgd2UgaGF2ZSBnaXZlbiBhd2F5IG93bmVyc2hpcCBpbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGFwcGx5X2J1ZmZlciksCgkgIChnc3Rfc2luZ2xlX3F1ZXVlX3B1c2hfb25lKSwgKGdzdF9tdWx0aV9xdWV1ZV9jaGFpbiksCgkgIChnc3RfbXVsdGlfcXVldWVfc2lua19ldmVudCk6CgkgIE1ha2Ugc3VyZSB3ZSBkb24ndCByZWZlcmVuY2UgdGhlIGJ1ZmZlci9ldmVudCBhZnRlciB3ZSBoYXZlIGdpdmVuIGF3YXkKCSAgb3duZXJzaGlwIGluIHRoZSBxdWV1ZS4KCjIwMDctMDYtMTggMTU6MTU6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogVXBkYXRlIHF1ZXVlIHN0YXRlIF9hZnRlcl8gYWRkaW5nIHRoZSBpdGVtIGluIHRoZSBxdWV1ZSBiZWNhdXNlIGVsc2Ugd2UgY291bGQgZW5kIHUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3Rfc2luZ2xlX3F1ZXVlX2ZsdXNoKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9jaGFpbiksIChnc3RfbXVsdGlfcXVldWVfc2lua19ldmVudCk6CgkgIFVwZGF0ZSBxdWV1ZSBzdGF0ZSBfYWZ0ZXJfIGFkZGluZyB0aGUgaXRlbSBpbiB0aGUgcXVldWUgYmVjYXVzZSBlbHNlIHdlCgkgIGNvdWxkIGVuZCB1cCBiZWluZyBmdWxsIHdpdGhvdXQgdGhlIGVsZW1lbnQgYWRkZWQgeWV0LgoKMjAwNy0wNi0xOCAxNToxMjoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uKjogSW1tZWRpYXRseSBjb21taXQgdGhlIHRvcGxldmVsIGJpbiBzdGF0ZSB3aGVuIHJlY2VpdmluZyBhbiBhc3luYy1kb25lIG1lc3NhZ2UuIFRoaXMgZW5hYmxlcyB1cyB0byBhdm9pZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2luaXQpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksIChnc3RfYmluX2NvbnRpbnVlX2Z1bmMpLAoJICAoYmluX3B1c2hfc3RhdGVfY29udGludWUpLCAoYmluX2hhbmRsZV9hc3luY19zdGFydCksCgkgIChiaW5faGFuZGxlX2FzeW5jX2RvbmUpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIEltbWVkaWF0bHkgY29tbWl0IHRoZSB0b3BsZXZlbCBiaW4gc3RhdGUgd2hlbiByZWNlaXZpbmcgYW4gYXN5bmMtZG9uZQoJICBtZXNzYWdlLiBUaGlzIGVuYWJsZXMgdXMgdG8gYXZvaWQgc3Bhd25pbmcgYSB0aHJlYWQgdG8gY29tbWl0IHRoZSBzdGF0ZQoJICBpbiBzb21lIGNvbW1vbiBjYXNlcyBhbmQgaXQgYWxzbyBhdm9pZHMgc29tZSByYWNlcy4KCSAgQXZvaWQgc3Bhd25pbmcgYSBzdGF0ZSB0aHJlYWQgd2hlbiBhZGRpbmcvcmVtb3ZpbmcgYXN5bmMgZWxlbWVudHMgdG8gYQoJICB0b3BsZXZlbCBiaW4uIEluc3RlYWQgd2UgaW1tZWRpYXRseSB1cGRhdGUgdGhlIGJpbiBzdGF0ZS4KCSAgR2V0IHJpZCBvZiBpdGVyYXRpbmcgYWxsIHRoZSBjaGlsZHJlbiB3aGVuIGdldHRpbmcgdGhlIHN0YXRlIGluIHRoZSBiaW4KCSAgYmVjYXVzZSBpdCBpcyBub3cgYWx3YXlzIHVwLXRvLWRhdGUuCgkgIEZpeCBidWcgd2hlcmUgbG9ja2VkIGVsZW1lbnRzIHdvdWxkIGFsd2F5cyByZXR1cm4gX1NVQ0NFU1MgZXZlbiBpdCB0aGV5CgkgIHJldHVybmVkIE5PX1BSRVJPTEwgYmVmb3JlIGJlaW5nIGxvY2tlZC4KCSAgRml4IHRoZSBvcmRlciBvZiB0aGUgc3RhdGVfY2hhbmdlLCBhc3luYy1zdGFydC9kb25lIG1lc3NhZ2VzIHRoYXQgd2FzCgkgIHNvbWV0aW1lcyBpbmNvcnJlY3QuCgkgIE1hcmsgdGhlIHN0YXRlX2RpcnR5IGZpZWxkIGFzIGRlcHJlY2F0ZWQsIHdlIGRvbid0IG5lZWQgaXQgYW55bW9yZSBhcyB3ZQoJICBhcmUgYWx3YXlzIHVwLXRvLWRhdGUuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKToKCSAgU21hbGwgZGVidWcgaW5wcm92ZW1lbnRzLgoJICBSZXR1cm4gdGhlIHByZXZpb3VzIGVsZW1lbnQgc3RhdGUgcmV0dXJuIHdoZW4gbm90aGluZyBpcyBwZW5kaW5nIGluc3RlYWQKCSAgb2YgYmxpbmRseSByZXR1cm5pbmcgU1VDQ0VTUy4KCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCksIChwYWRfYmxvY2tlZF9jYiksCgkgIChnc3Rfc2lua3Nfc3VpdGUpOgoJICBBZGQgYSB3aG9sZSBidW5jaCBvZiBuZXcgdGVzdGNhc2VzLgoKMjAwNy0wNi0xNyAxNzoyNjo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IFVwZGF0ZSB0cmFuc2xhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL3VrLnBvOgoJICAqIHBvL3ZpLnBvOgoJICBVcGRhdGUgdHJhbnNsYXRpb25zLgoKMjAwNy0wNi0xNSAxNDozNzoyOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEZpeCB0eXBvIGluIHRoZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIEZpeCB0eXBvIGluIHRoZSBkb2NzLgoKMjAwNy0wNi0xNSAxMTo0OToyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZCBkb2NzIGZvciBuZXcgbWV0aG9kcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkIGRvY3MgZm9yIG5ldyBtZXRob2RzLgoKMjAwNy0wNi0xNSAxMTozNToyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBEb24ndCB1c2UgR1NsaWNlIGJlY2F1c2Ugd2UgZG9uJ3QgZGVwZW5kIG9uID49IDIuMTAgeWV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9pdGVtX2Rlc3Ryb3kpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2l0ZW1fbmV3KToKCSAgRG9uJ3QgdXNlIEdTbGljZSBiZWNhdXNlIHdlIGRvbid0IGRlcGVuZCBvbiA+PSAyLjEwIHlldC4KCjIwMDctMDYtMTUgMTE6MDk6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogUmVtb3ZlIGRlYnVnIHByaW50Zi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3Rfc2luZ2xlX3F1ZXVlX2ZsdXNoKSwKCSAgKHVwZGF0ZV90aW1lX2xldmVsKSwgKGFwcGx5X3NlZ21lbnQpLCAoYXBwbHlfYnVmZmVyKSwKCSAgKGdzdF9zaW5nbGVfcXVldWVfcHVzaF9vbmUpLCAoZ3N0X211bHRpX3F1ZXVlX2l0ZW1fbmV3KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9sb29wKSwgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfZXZlbnQpLCAoc2luZ2xlX3F1ZXVlX292ZXJydW5fY2IpLAoJICAoc2luZ2xlX3F1ZXVlX3VuZGVycnVuX2NiKSwgKHNpbmdsZV9xdWV1ZV9jaGVja19mdWxsKToKCSAgUmVtb3ZlIGRlYnVnIHByaW50Zi4KCjIwMDctMDYtMTUgMTE6MDA6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS4qOiBWYXJpb3VzIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOiAoZ3N0X2RhdGFfcXVldWVfY2xlYW51cCksCgkgIChnc3RfZGF0YV9xdWV1ZV9maW5hbGl6ZSksIChnc3RfZGF0YV9xdWV1ZV9sb2NrZWRfaXNfZW1wdHkpLAoJICAoZ3N0X2RhdGFfcXVldWVfc2V0X2ZsdXNoaW5nKSwgKGdzdF9kYXRhX3F1ZXVlX3B1c2gpLAoJICAoZ3N0X2RhdGFfcXVldWVfcG9wKSwgKGdzdF9kYXRhX3F1ZXVlX2Ryb3BfaGVhZCksCgkgIChnc3RfZGF0YV9xdWV1ZV9saW1pdHNfY2hhbmdlZCksIChnc3RfZGF0YV9xdWV1ZV9nZXRfbGV2ZWwpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIFZhcmlvdXMgY2xlYW51cHMuCgkgIEFkZGVkIG1ldGhvZHMgdG8gZ2V0IHRoZSBjdXJyZW50IGxldmVscyBhbmQgdG8gaW5mb3JtIHRoZSBxdWV1ZSB0aGF0IHRoZQoJICAnZnVsbCcgbGltaXRzIGNoYW5nZWQuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfaW5pdCksCgkgIChnc3RfbXVsdGlfcXVldWVfZmluYWxpemUpLCAoZ3N0X211bHRpX3F1ZXVlX3NldF9wcm9wZXJ0eSksCgkgIChnc3Rfc2luZ2xlX3F1ZXVlX2ZsdXNoKSwgKHVwZGF0ZV90aW1lX2xldmVsKSwgKGFwcGx5X3NlZ21lbnQpLAoJICAoYXBwbHlfYnVmZmVyKSwgKGdzdF9zaW5nbGVfcXVldWVfcHVzaF9vbmUpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2l0ZW1fc3RlYWxfb2JqZWN0KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9pdGVtX2Rlc3Ryb3kpLCAoZ3N0X211bHRpX3F1ZXVlX2l0ZW1fbmV3KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9sb29wKSwgKGdzdF9tdWx0aV9xdWV1ZV9jaGFpbiksCgkgIChnc3RfbXVsdGlfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9nZXRjYXBzKSwgKGdzdF9tdWx0aV9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfbXVsdGlfcXVldWVfc3JjX3F1ZXJ5KSwgKHNpbmdsZV9xdWV1ZV9vdmVycnVuX2NiKSwKCSAgKHNpbmdsZV9xdWV1ZV91bmRlcnJ1bl9jYiksIChzaW5nbGVfcXVldWVfY2hlY2tfZnVsbCksCgkgIChnc3Rfc2luZ2xlX3F1ZXVlX25ldyk6CgkgIEtlZXAgdHJhY2sgb2YgdGltZSBpbiB0aGUgcXVldWUgYnkgbWVhc3VyaW5nIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4KCSAgcnVubmluZ190aW1lIG9uIGlucHV0IGFuZCBvdXRwdXQuIFRoaXMgZ2l2ZXMgbW9yZSBhY2N1cmF0ZSByZXN1bHRzIGFuZAoJICBjYW4gY29tcGVuc2F0ZSBmb3Igc2VnbWVudHMgY29ycmVjdGx5LgoJICBNYWtlIGEgcXVldWUgYnkgZGVmYXVsdCBvbmx5IDUgYnVmZmVycyBkZWVwLiBXZSB3aWxsIG5vdyBpbmNyZWFzZSB0aGUKCSAgYnVmZmVyIHNpemUgZGVwZW5kaW5nIG9uIHRoZSBmaWxsZWRuZXNzIG9mIHRoZSBvdGhlciBxdWV1ZXMuCgkgIEZhY3RvciBvdXQgY29tbW9uZyBmbHVzaCBjb2RlLgoJICBNYWtlIHN1cmUgd2UgZG9uJ3QgYWRkIGFkZGl0aW9uYWwgcmVmY291bnRzIHRvIGJ1ZmZlcnMgd2hlbiB3ZSBjYW4gYXZvaWQKCSAgaXQuCgkgIFByb3BhZ2F0ZSBHc3RGbG93UmV0dXJuIGRpZmZlcmVudGx5LgoJICBVc2UgR1NsaWNlIGZvciBpbnRlcm1lZGlhdGUgR3N0TXVsdGlRdWV1ZUl0ZW1zLgoJICBLZWVwIHRyYWNrIG9mIEVPUy4KCSAgUmVzaXplIHF1ZXVlcyBvbiBvdmVyIGFuZCB1bmRlcnJ1bnMgYmFzZWQgb24gZmlsbGVkIGxldmVsIG9mIG90aGVyCgkgIHF1ZXVlcy4KCSAgV2hlbiBjaGVja2luZyBpZiB0aGUgcXVldWUgaXMgZmlsbGVkLCBwcmVmZXIgdG8gbWVhc3VyZSBpbiB0aW1lIGlmIHdlCgkgIGNhbiBhbmQgZmFsbCBiYWNrIHRvIGJ5dGVzIHdoZW4gbm8gdGltZSBpcyBrbm93bi4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIEZpeCByZXR1cm4gdmFsdWUuCgoyMDA3LTA2LTE1IDEwOjQ4OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFdvcmsgYXJvdW5kIHRoZSBicm9rZW5uZXNzIG9mIHRoZSBldmVudCB2bWV0aG9kIGluIGJhc2V0cmFuc2Zvcm0uIFByZWZlciB0byByZXR1cm4gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfZXZlbnQpOgoJICBXb3JrIGFyb3VuZCB0aGUgYnJva2VubmVzcyBvZiB0aGUgZXZlbnQgdm1ldGhvZCBpbiBiYXNldHJhbnNmb3JtLiBQcmVmZXIKCSAgdG8gcmV0dXJuIFRSVUUgd2hlbiB0aGUgc3ViY2xhc3MgcmV0dXJuZWQgRkFMU0UgKG1lYW5pbmcgZG9uJ3QgZm9yd2FyZAoJICB0aGUgZXZlbnQpLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBDbGFyaWZ5IHRoZSBkb2NzLgoKMjAwNy0wNi0xNSAxMDo0Mzo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEltcHJvdmUgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3B1c2hfZXZlbnQpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KSwgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChzZXR1cF9waXBlbGluZSk6CgkgIEltcHJvdmUgZGVidWdnaW5nLgoKMjAwNy0wNi0xNSAwNzoyNzowMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOiBBZGRlZCBtb3JlIGZvcm1hdHMgdG8gY2FwcyB0YWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBBZGRlZCBtb3JlIGZvcm1hdHMgdG8gY2FwcyB0YWJsZS4KCjIwMDctMDYtMTUgMDc6MDI6MDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogUmVtb3ZlIGNydWZ5IGNvZGUuIEdPcHRpb24gZG9lcyBub3QgbmVlZCB0aGlzIHdvcmthcm91bmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBSZW1vdmUgY3J1ZnkgY29kZS4gR09wdGlvbiBkb2VzIG5vdCBuZWVkIHRoaXMgd29ya2Fyb3VuZC4KCjIwMDctMDYtMTQgMjA6Mjk6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBGaXggd3JvbmcgZ2V0dGVyIGZvciBlbnVtcyBpbiBjb250cm9sbGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpOgoJICBGaXggd3JvbmcgZ2V0dGVyIGZvciBlbnVtcyBpbiBjb250cm9sbGVyLgoKMjAwNy0wNi0xNCAxNzozNjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IEludGVyY2VwdCBjcml0aWNhbHMgYW5kIHdhcm5pbmdzIGluIHRoZSBHc3QtUGhvbm9uIGxvZyBkb21haW4sIHNvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfaW5pdCk6CgkgIEludGVyY2VwdCBjcml0aWNhbHMgYW5kIHdhcm5pbmdzIGluIHRoZSBHc3QtUGhvbm9uIGxvZyBkb21haW4sIHNvCgkgIEFTU0VSVF9DUklUSUNBTCgpIGV0Yy4gY2FuIGJlIHVzZWQgaW4gZ3N0LXBob25vbidzIHVuaXQgdGVzdHMgYXMKCSAgd2VsbC4KCjIwMDctMDYtMTQgMTY6MDc6MDkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0cGFyYW1zcGVjcy5jOiBTaW5jZSB0aGlzIGZpbGUgZG9lc24ndCBpbmNsdWRlICJnc3QuaCIgaXQgd2lsbCBub3QgZ28gdGhyb3VnaCB0aGUgbWFjcm9zIHRoYXQgZGlzYWJsZSBHU1RfTE9HIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhcmFtc3BlY3MuYzogKF9nc3RfcGFyYW1fZnJhY3Rpb25fdmFsaWRhdGUpOgoJICBTaW5jZSB0aGlzIGZpbGUgZG9lc24ndCBpbmNsdWRlICJnc3QuaCIgaXQgd2lsbCBub3QgZ28gdGhyb3VnaCB0aGUKCSAgbWFjcm9zIHRoYXQgZGlzYWJsZSBHU1RfTE9HIGlmIGRlYnVnZ2luZyB3YXMgZGlzYWJsZWQuCgoyMDA3LTA2LTE0IDE1OjU2OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgVWdseSAnZml4JyBmb3IgdGhlIGNvbnRyb2xsZXIgdW5pdCB0ZXN0IG9uIHRoZSBwNSBib3Q6IGluIGZhaWxfdW5sZXNzX2VxdWFsc19mbG9hdCgpIGNoZWNrIHdoZXRoZXIgdGhlIHZhbHVlcyBhcmUgJ2FsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJICBVZ2x5ICdmaXgnIGZvciB0aGUgY29udHJvbGxlciB1bml0IHRlc3Qgb24gdGhlIHA1IGJvdDogaW4KCSAgZmFpbF91bmxlc3NfZXF1YWxzX2Zsb2F0KCkgY2hlY2sgd2hldGhlciB0aGUgdmFsdWVzIGFyZSAnYWxtb3N0CgkgIGVxdWFsJyBieSBhbGxvd2luZyBhIHNtYWxsIGFic29sdXRlIGVycm9yLCB3aGljaCBzaG91bGQgYmUgZ29vZAoJICBlbm91Z2ggZm9yIG91ciB1c2UgY2FzZXMgKG5vcm1hbCBudW1iZXJzIGFuZCB2YWx1ZXMgY2xvc2UgdG8gMCkuCgkgIFByb3BlciBmaXhhZ2UgbGVmdCB0byBmbG9hdGluZyBwb2ludCBhcml0aG1ldGljIGFmaWNpb25hZG9zLgoKMjAwNy0wNi0xNCAxMjowMzo0NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBBZGQgdHdvIGJyZWFrcyB0aGF0cyB3aGVyZSBtaXNzaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3Jlc2V0X3FvcyksCgkgIChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBBZGQgdHdvIGJyZWFrcyB0aGF0cyB3aGVyZSBtaXNzaW5nLgoKMjAwNy0wNi0xNCAxMTo1Njo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIGZhaWxfdW5sZXNzX2VxdWFsc19mbG9hdCgpIGFuZCBhc3NlcnRfZXF1YWxzX2Zsb2F0KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgQVBJOiBhZGQgZmFpbF91bmxlc3NfZXF1YWxzX2Zsb2F0KCkgYW5kIGFzc2VydF9lcXVhbHNfZmxvYXQoKS4KCSAgQWRkIGRvY3VtZW50YXRpb24gZm9yIHNvbWUgb2YgdGhlIG1hY3Jvcy4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVXNlIG5ld2x5LWFkZGVkIGFzc2VydHMuCgoyMDA3LTA2LTE0IDEwOjMzOjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IFNob3cgdGhlIGNhcHMgY2hhbmdlIGluIHRoZSBsb2cgdG8gaGVscCBzcG90dGluZyB0aGUgY2FzZSBvZiBub3QgZXhhY3RseSBtYXRjaGluZyBjYXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKSwgKGdzdF9wYWRfcHVzaCk6CgkgIFNob3cgdGhlIGNhcHMgY2hhbmdlIGluIHRoZSBsb2cgdG8gaGVscCBzcG90dGluZyB0aGUgY2FzZSBvZiBub3QKCSAgZXhhY3RseSBtYXRjaGluZyBjYXBzLgoKMjAwNy0wNi0xNCAwODo1Mjo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6IEZpeCB0eXBvcywgc3BvdHRlZCBieSBUaGlqcyBWZXJtZWlyICgjNDQ3MTkwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgRml4IHR5cG9zLCBzcG90dGVkIGJ5IFRoaWpzIFZlcm1laXIgKCM0NDcxOTApLgoKMjAwNy0wNi0xMyAxNjoxNToyMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL3BsdWdpbnMvdG1wbC8uY3ZzaWdub3JlOiBJZ25vcmUgZmlsZSB0byBrZWVwIHRoZSBidWlsZGJvdHMgaGFwcHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL3RtcGwvLmN2c2lnbm9yZToKCSAgSWdub3JlIGZpbGUgdG8ga2VlcCB0aGUgYnVpbGRib3RzIGhhcHB5CgoyMDA3LTA2LTEzIDE1OjM5OjUzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvcGx1Z2lucy86IFB1bGwgZmRzaW5rIGludG8gdGhlIGRvY3MgdG9vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICBQdWxsIGZkc2luayBpbnRvIHRoZSBkb2NzIHRvby4KCjIwMDctMDYtMTEgMDc6MTQ6NTMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOiBBY3R1YWxseSB1c2UgdGhlIG5ldyBmdW5jdGlvbnMgd2l0aCBtaW4vbWF4IGNoZWNrcyBmb3IgdGhlIHRyaWdnZXIgYW5kIG5vbmUgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgQWN0dWFsbHkgdXNlIHRoZSBuZXcgZnVuY3Rpb25zIHdpdGggbWluL21heCBjaGVja3MgZm9yIHRoZSB0cmlnZ2VyIGFuZAoJICBub25lIGludGVycG9sYXRpb24gbW9kZXMgZm9yIGdldCgpIGFuZCBnZXRfdmFsdWVfYXJyYXkoKSBpbnN0ZWFkIG9mCgkgIGp1c3QgdGhlIGxhdHRlci4KCjIwMDctMDYtMTAgMTI6Mzg6MTEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBVbnNldCB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBHVmFsdWVzIHdoZW4gZnJlZWluZyB0aGUgY29ycmVzcG9uZGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X2ZyZWUpOgoJICBVbnNldCB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBHVmFsdWVzIHdoZW4gZnJlZWluZyB0aGUgY29ycmVzcG9uZGluZwoJICBHc3RDb250cm9sbGVyUHJvcGVydHkgc3RydWN0LgoKMjAwNy0wNi0wOSAxNjo1ODozMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IFByb3RlY3QgYWdhaW5zdCB2YWx1ZXMgbGFyZ2VyIG9yIHNtYWxsZXIgdGhhbiB0aGUgbWluaW11bSBvciBtYXhpbXVtIGFsbG93ZWQgdmFsdWUgZm9yIHRoZSBwcm9wLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9maW5kX2NvbnRyb2xfcG9pbnRfbm9kZSksCgkgIChpbnRlcnBvbGF0ZV9ub25lX2dldCksIChpbnRlcnBvbGF0ZV9ub25lX2dldF9lbnVtX3ZhbHVlX2FycmF5KSwKCSAgKGludGVycG9sYXRlX25vbmVfZ2V0X3N0cmluZ192YWx1ZV9hcnJheSksCgkgIChpbnRlcnBvbGF0ZV90cmlnZ2VyX2dldCksCgkgIChpbnRlcnBvbGF0ZV90cmlnZ2VyX2dldF9lbnVtX3ZhbHVlX2FycmF5KSwKCSAgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0X3N0cmluZ192YWx1ZV9hcnJheSk6CgkgIFByb3RlY3QgYWdhaW5zdCB2YWx1ZXMgbGFyZ2VyIG9yIHNtYWxsZXIgdGhhbiB0aGUgbWluaW11bSBvciBtYXhpbXVtCgkgIGFsbG93ZWQgdmFsdWUgZm9yIHRoZSBwcm9wZXJ0eSB3aGVuIHVzaW5nIHZhbHVlcyB0aGF0IGNhbiBiZSBjb21wYXJlZC4KCSAgT3B0aW1pemUgdHJpZ2dlciBpbnRlcnBvbGF0b3IgYSBiaXQgYnkgdGFraW5nIHRoZSBsYXN0IHJlcXVlc3RlZCB2YWx1ZQoJICBpbnRvIGFjY291bnQgaW5zdGVhZCBvZiBhbHdheXMgbG9vcGluZyB0aHJvdWdoIHRoZSBjb21wbGV0ZSBsaXN0LgoJICBGaXggY29kaW5nIHN0eWxlIGEgYml0LCBldmVyeXdoZXJlIGVsc2Ugd2UgdXNlICJyZXR1cm4gZm9vIiBpbnN0ZWFkCgkgIG9mICJyZXR1cm4gKGZvbykiLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgcHJvdGVjdGlvbiBhZ2FpbnN0IHRvbyBsYXJnZSBvciB0b28gc21hbGwKCSAgdmFsdWVzLgoKMjAwNy0wNi0wOCAyMTowODoyNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZG9jcy9yYW5kb20vc2xvbW8vY29udHJvbGxlci50eHQ6IEFkZCBzb21lIHRob3VnaHRzIGFib3V0IHRoZSBmdXR1cmUgb2YgdGhlIGNvbnRyb2xsZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3Nsb21vL2NvbnRyb2xsZXIudHh0OgoJICBBZGQgc29tZSB0aG91Z2h0cyBhYm91dCB0aGUgZnV0dXJlIG9mIHRoZSBjb250cm9sbGVyLgoKMjAwNy0wNi0wOCAxMTowMDo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogRG9uJ3Qgb3ZlcmZsb3cgaW4gcmV0aW1lc3RhbXBpbmcgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIERvbid0IG92ZXJmbG93IGluIHJldGltZXN0YW1waW5nIGNvZGUuCgoyMDA3LTA2LTA3IDIwOjUxOjM1ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogVXNlIGdzdF91dGlsX2d1aW50NjRfdG9fZ2RvdWJsZSBmb3IgY29udmVyc2lvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOiAoREVGSU5FX0NVQklDX0dFVCk6CgkgIFVzZSBnc3RfdXRpbF9ndWludDY0X3RvX2dkb3VibGUgZm9yIGNvbnZlcnNpb25zLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucy4KCjIwMDctMDYtMDcgMTc6MjI6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuYzogU21hbGwgZG9jcyBhZGRpdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIFNtYWxsIGRvY3MgYWRkaXRpb24uCgoyMDA3LTA2LTA3IDE0OjQ5OjAwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBSRUFETUU6IFJlbW92ZSB0aGF0IHRlc3QgbGluZSBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogUkVBRE1FOgoJICBSZW1vdmUgdGhhdCB0ZXN0IGxpbmUgYWdhaW4uCgoyMDA3LTA2LTA3IDE0OjM2OjAyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBSRUFETUU6IFRlc3QgY29tbWl0IG1haWwgc2VuZGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogUkVBRE1FOgoJICBUZXN0IGNvbW1pdCBtYWlsIHNlbmRpbmcuCgoyMDA3LTA2LTA3IDE0OjE3OjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb25maWd1cmUuYWM6IEZpeCB0eXBvIGFuZCB0ZXN0IGNvbW1pdCBtYWlsIHNlbmRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRml4IHR5cG8gYW5kIHRlc3QgY29tbWl0IG1haWwgc2VuZGluZy4KCjIwMDctMDYtMDcgMTQ6MTI6MDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOiBJbXByb3ZlIGNvbW1lbnQgYW5kIHRlc3QgY29tbWl0IG1haWwgc2VuZGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkgIEltcHJvdmUgY29tbWVudCBhbmQgdGVzdCBjb21taXQgbWFpbCBzZW5kaW5nLgoKMjAwNy0wNi0wNyAxMDoxMTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQWRkIGhlbHBlciBmdW5jdGlvbiB0byBmaW5kIG1lc3NhZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChmaW5kX21lc3NhZ2UpLCAoYmluX3JlcGxhY2VfbWVzc2FnZSksIChpc19lb3MpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGJpbl9oYW5kbGVfYXN5bmNfc3RhcnQpLCAoYmluX2hhbmRsZV9hc3luY19kb25lKSwKCSAgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIEFkZCBoZWxwZXIgZnVuY3Rpb24gdG8gZmluZCBtZXNzYWdlcy4KCSAgR2VuZXJhdGUgdGhlIGFzeW5jLWRvbmUgbWVzc2FnZXMgdG9nZXRoZXIgd2l0aCB0aGUgc3RhdGUgY2hhbmdlCgkgIG1lc3NhZ2VzLgoJICBTbWFsbCBjbGVhbnVwcyBpbiBoYW5kbGluZyB0b3BsZXZlbCBiaW5zLgoKMjAwNy0wNi0wNiAxODoxMToxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEZpeCBtdWx0aXF1ZXVlIGxlYWtpbmcgYnVmZmVycyBhbmQgZXZlbnRzIHdoZW4gZG93bnN0cmVhbSBvciB0aGUgcXVldWUgYXJlIGZsdXNoaW5nLiBNYWtlIHJlZmNvdW50aW5nIGFzc3VtcHRpb25zIGV4cC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3Rfc2luZ2xlX3F1ZXVlX3B1c2hfb25lKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9pdGVtX25ldyksIChnc3RfbXVsdGlfcXVldWVfY2hhaW4pLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfZXZlbnQpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzogKG11bHRpcXVldWVfc3VpdGUpOgoJICBGaXggbXVsdGlxdWV1ZSBsZWFraW5nIGJ1ZmZlcnMgYW5kIGV2ZW50cyB3aGVuIGRvd25zdHJlYW0gb3IgdGhlCgkgIHF1ZXVlIGFyZSBmbHVzaGluZy4gTWFrZSByZWZjb3VudGluZyBhc3N1bXB0aW9ucyBleHBsaWNpdCBhbmQKCSAgZG9jdW1lbnQgdGhlbSAoc2hvdWxkbid0IGJyZWFrIGV4aXN0aW5nIGNvZGUgdGhhdCB1c2VzIGl0IG90aGVyIHRoYW4KCSAgbWF5YmUgbGVhayBtaW5pb2JqZWN0cywgYnV0IHRoYXQgYWxyZWFkeSBoYXBwZW5zIGFueXdheSkuIEFkZCB1bml0CgkgIHRlc3QgZm9yIHRoZSBtb3N0IGNvbW1vbiBmbHVzaGluZyBjYXNlLiBGaXhlcyAjNDIzNzAwLgoKMjAwNy0wNi0wNiAxNDoyMDowMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IENsYXJpZnkgZG9jczogVGhlIGdldF9hbGwsIGdldF92YWx1ZV9hcnJheShzKSBmdW5jdGlvbnMgZG9uJ3QgbW9kaWZ5IHRoZSBHT2JqZWN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBDbGFyaWZ5IGRvY3M6IFRoZSBnZXRfYWxsLCBnZXRfdmFsdWVfYXJyYXkocykgZnVuY3Rpb25zCgkgIGRvbid0IG1vZGlmeSB0aGUgR09iamVjdCBwcm9wZXJ0aWVzLgoKMjAwNy0wNi0wNiAxNDowMTo1NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IEZhY3RvciBvdXQgdGhlICdzZXQnIGxvZ2ljIGludG8gZ3N0X2NvbnRyb2xsZXJfc2V0X3VubG9ja2VkIGZvciB0aGUgZ3N0X2NvbnRyb2xsZXJfc2V0IGFuZCBnc3RfLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9wcmVwZW5kX2RlZmF1bHQpLAoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KSwgKGdzdF9jb250cm9sbGVyX3NldF91bmxvY2tlZCksCgkgIChnc3RfY29udHJvbGxlcl9zZXQpLCAoZ3N0X2NvbnRyb2xsZXJfc2V0X2Zyb21fbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl91bnNldCksIChnc3RfY29udHJvbGxlcl91bnNldF9hbGwpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgRmFjdG9yIG91dCB0aGUgJ3NldCcgbG9naWMgaW50byBnc3RfY29udHJvbGxlcl9zZXRfdW5sb2NrZWQgZm9yIHRoZQoJICBnc3RfY29udHJvbGxlcl9zZXQgYW5kIGdzdF9jb250cm9sbGVyX3NldF9mcm9tX2xpc3QgZnVuY3Rpb25zLgoJICBUbyBtYWtlIGxpZmUgb2YgdGhlIGludGVycG9sYXRvcnMgZWFzaWVyIGFsd2F5cyBhZGQgYSBjb250cm9sIHBvaW50CgkgIGF0IHRpbWVzdGFtcCB6ZXJvIHdpdGggdGhlIGRlZmF1bHQgdmFsdWUuCgkgIEluIHRoZSBsaW5lYXIgaW50ZXJwb2xhdG9yIG1ha2UgdGhpbmdzIG1vcmUgb2J2aW91cyBieSBiZXR0ZXIgdmFyaWFibGUKCSAgbmFtaW5nIChzbG9wZSkuCgkgIEltcGxlbWVudCBjdWJpYyBpbnRlcnBvbGF0aW9uIG1vZGUgKGJ5IHVzaW5nIGEgbmF0dXJhbCBjdWJpYyBzcGxpbmUpCgkgIGFuZCBtYXAgdGhlIHF1YWRyYXRpYyBpbnRlcnBvbGF0aW9uIG1vZGUgdG8gdGhpcyB0b28gKGFzIHF1YWRyYXRpYwoJICBkb2Vzbid0IG1ha2UgbXVjaCBzZW5zZSwgc2VlIGRpc2N1c3Npb24gb24gdGhlIGxpc3QpLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgY3ViaWMgaW50ZXJwb2xhdGlvbiBtb2RlIGFuZCBjaGVjayBldmVyeXdoZXJlCgkgIGlmIHRoZSBpbnRlcnBvbGF0aW9uIG1vZGUgY291bGQgYmUgc2V0IGFzIGV4cGVjdGVkLgoKMjAwNy0wNi0wNiAxMTozODoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYXJhbXNwZWNzLmM6IERvbid0IHVzZSBHTGliLTIuMTAgZnVuY3Rpb25zLCB3ZSBzdGlsbCBkZXBlbmQgb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhcmFtc3BlY3MuYzogKGdzdF9wYXJhbV9zcGVjX2ZyYWN0aW9uX2dldF90eXBlKToKCSAgRG9uJ3QgdXNlIEdMaWItMi4xMCBmdW5jdGlvbnMsIHdlIHN0aWxsIGRlcGVuZCBvbgoJICBHTGliLWhvdy1vbGQtaXMtaXQtYWdhaW4tMi44LgoKMjAwNy0wNi0wNiAxMToxODoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIEdzdFBhcmFtU3BlY0ZyYWN0aW9uLCBzbyBlbGVtZW50cyBjYW4gaGF2ZSBmcmFjdGlvbiBwcm9wZXJ0aWVzIHdpdGhvdXQgbG90cyBvZiBwYWluZnVsIHN0cmluZyBwYXJzaW5nICgjNDQ0Ni4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3RwYXJhbXNwZWNzLmM6IChfZ3N0X3BhcmFtX2ZyYWN0aW9uX2luaXQpLAoJICAoX2dzdF9wYXJhbV9mcmFjdGlvbl9zZXRfZGVmYXVsdCksIChfZ3N0X3BhcmFtX2ZyYWN0aW9uX3ZhbGlkYXRlKSwKCSAgKF9nc3RfcGFyYW1fZnJhY3Rpb25fdmFsdWVzX2NtcCksCgkgIChnc3RfcGFyYW1fc3BlY19mcmFjdGlvbl9nZXRfdHlwZSksIChnc3RfcGFyYW1fc3BlY19mcmFjdGlvbik6CgkgICogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFyYW1zcGVjcy5jOiAoZ3N0X2R1bW15X29ial9iYXNlX2luaXQpLAoJICAoZ3N0X2R1bW15X29ial9jbGFzc19pbml0KSwgKGdzdF9kdW1teV9vYmpfaW5pdCksCgkgIChnc3RfZHVtbXlfb2JqX3NldF9wcm9wZXJ0eSksIChnc3RfZHVtbXlfb2JqX2dldF9wcm9wZXJ0eSksCgkgIChHU1RfU1RBUlRfVEVTVCksIChnc3RfcGFyYW1fc3BlY19zdWl0ZSk6CgkgIEFQSTogYWRkIEdzdFBhcmFtU3BlY0ZyYWN0aW9uLCBzbyBlbGVtZW50cyBjYW4gaGF2ZSBmcmFjdGlvbgoJICBwcm9wZXJ0aWVzIHdpdGhvdXQgbG90cyBvZiBwYWluZnVsIHN0cmluZyBwYXJzaW5nICgjNDQ0NjQ4KS4KCjIwMDctMDYtMDUgMTY6MjU6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IEZpeCBzaWduYWwgc2lnbmF0dXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpOgoJICBGaXggc2lnbmFsIHNpZ25hdHVyZS4KCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBBZGQgc21hbGwgY2xhcmlmaWNhdGlvbiBpbiB0aGUgYXBpIGRvY3MuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfc2V0X2xvY2F0aW9uKToKCSAgU3RhdGVzIGFyZSBwcm90ZWN0ZWQgd2l0aCBvYmplY3QgbG9jay4KCjIwMDctMDYtMDUgMTQ6MTE6NTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgQVVUSE9SUzogSSBzaG91bGQgcHJvYmFibHkgYmUgbGlzdGVkIGFzIGFuIGF1dGhvciBieSBub3cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIEFVVEhPUlM6CgkgIEkgc2hvdWxkIHByb2JhYmx5IGJlIGxpc3RlZCBhcyBhbiBhdXRob3IgYnkgbm93LgoJICAqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIFVwZGF0ZSB0aGUgcmVsZWFzZSBkb2MKCjIwMDctMDYtMDUgMTM6NDk6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogTWFrZSBkb2NzIGZvciBnc3RfdmFsdWVfY29tcGFyZSgpIG1lbnRpb24gcmV0dXJuIGVudW1zIHRoYXQgYWN0dWFsbHkgZXhpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBNYWtlIGRvY3MgZm9yIGdzdF92YWx1ZV9jb21wYXJlKCkgbWVudGlvbiByZXR1cm4gZW51bXMgdGhhdAoJICBhY3R1YWxseSBleGlzdC4KCjIwMDctMDYtMDUgMTM6MjE6NDEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gQ1ZTCgo9PT0gcmVsZWFzZSAwLjEwLjEzID09PQoKMjAwNy0wNi0wNSAxMjo0NzoyMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL3ZzNi9ncmFtbWFyLmRzcDoKCSogd2luMzIvdnM2L2dzdF9pbnNwZWN0LmRzcDoKCSogd2luMzIvdnM2L2dzdF9sYXVuY2guZHNwOgoJKiB3aW4zMi92czYvZ3N0cmVhbWVyLmRzdzoKCSogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0Y29udHJvbGxlci5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3Rjb3JlZWxlbWVudHMuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0ZGF0YXByb3RvY29sLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdG5ldC5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICBSZWxlYXNlIDAuMTAuMTMgIldpdGggb3Igd2l0aG91dCB5b3UiCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuMTMgIldpdGggb3Igd2l0aG91dCB5b3UiCgoyMDA3LTA2LTA1IDEyOjA2OjQ0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDctMDUtMjkgMTU6NTA6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB0cmlnZ2VyIGEgbWFpbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJpZ2dlciBhIG1haWwKCjIwMDctMDUtMjkgMTQ6NDk6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB0cmlnZ2VyIGEgbWFpbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJpZ2dlciBhIG1haWwKCjIwMDctMDUtMjkgMTQ6NDg6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB0cmlnZ2VyIGEgbWFpbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJpZ2dlciBhIG1haWwKCjIwMDctMDUtMjkgMTQ6Mzc6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICBzZW5kIGEgbWFpbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc2VuZCBhIG1haWwKCjIwMDctMDUtMjkgMTE6NTI6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB0ZXN0IGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVzdCBjb21taXQKCjIwMDctMDUtMjkgMTE6NDA6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB0ZXN0IGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVzdCBjb21taXQKCjIwMDctMDUtMjkgMTE6MDA6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB0ZXN0IGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVzdCBjb21taXQKCjIwMDctMDUtMjkgMTA6NDM6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB0ZXN0IGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVzdCBjb21taXQKCjIwMDctMDUtMjkgMTA6MzU6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB0ZXN0IGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVzdCBjb21taXQKCjIwMDctMDUtMjkgMTA6MzQ6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB0ZXN0IGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVzdCBjb21taXQKCjIwMDctMDUtMjkgMTA6MjA6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB0ZXN0IGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVzdCBjb21taXQKCjIwMDctMDUtMjUgMTU6MzY6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IE1ha2Ugc3VyZSB0aGF0IHRoZSBjaGlsZCBiaW4gc3RvcHMgYWZ0ZXIgY29tcGxldGluZyB0aGUgYXN5bmMgc3RhdGUgY2hhbmdlIHNvIHRoYXQgdGhlIHBhcmVudCBjYW4gY29udGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2hhbmRsZV9hc3luY19kb25lKToKCSAgTWFrZSBzdXJlIHRoYXQgdGhlIGNoaWxkIGJpbiBzdG9wcyBhZnRlciBjb21wbGV0aW5nIHRoZSBhc3luYyBzdGF0ZQoJICBjaGFuZ2Ugc28gdGhhdCB0aGUgcGFyZW50IGNhbiBjb250aW51ZSB0aGUgc3RhdGUgY2hhbmdlIHRvIFBMQVlJTkcuCgkgIEZpeGVzICM0NDExNTkuCgoyMDA3LTA1LTI1IDA5OjI2OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBVc2UgYWRkaXRpb25hbCByZWZjb3VudGluZyB0byBhdm9pZCBjcmFzaGVzIHdoZW4gZHluYW1pY2FsbHkgYWRkaW5nIGFuZCByZW1vdmluZyBwYWRzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfZmluYWxpemUpLAoJICAodW5yZWZfZGF0YSksIChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jaGVja19wYWRzKToKCSAgVXNlIGFkZGl0aW9uYWwgcmVmY291bnRpbmcgdG8gYXZvaWQgY3Jhc2hlcyB3aGVuIGR5bmFtaWNhbGx5IGFkZGluZyBhbmQKCSAgcmVtb3ZpbmcgcGFkcy4gRml4ZXMgIzQyMDIwNi4KCjIwMDctMDUtMjQgMTU6MDA6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IFdoZW4gYnVmZmVyaW5nIGdvZXMgZnJvbSBhIHR3byBkaWdpdCB0byBhIHNpbmdsZSBkaWdpdCBudW1iZXIsIG1ha2Ugc3VyZSB0byByZW1vdmUgdGhlIG9sZCBzZWNvbmQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIFdoZW4gYnVmZmVyaW5nIGdvZXMgZnJvbSBhIHR3byBkaWdpdCB0byBhIHNpbmdsZSBkaWdpdCBudW1iZXIsIG1ha2Ugc3VyZQoJICB0byByZW1vdmUgdGhlIG9sZCBzZWNvbmQgZGlnaXQgYnkgd3JpdGluZyBhIGJsYW5rIG92ZXIgaXQuCgoyMDA3LTA1LTI0IDEyOjE5OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzogRWxpbWluYXRlIHRhYnMgYW5kIHRyYWlsaW5nIGNvbW1hIGluIGVudW0gbGlzdDsgZml4IHNvbWUgdHlwb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgIEVsaW1pbmF0ZSB0YWJzIGFuZCB0cmFpbGluZyBjb21tYSBpbiBlbnVtIGxpc3Q7IGZpeCBzb21lIHR5cG9zLgoKMjAwNy0wNS0yNCAxMTo1MDo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogQWxsb3cgcmVmY291bnQgb2YgMyBhbmQgNCBiZWNhdXNlIHNvbWUgc3RhdGUgdGhyZWFkIG1pZ2h0IHN0aWxsIGJlIGJ1c3kgd2l0aCBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBbGxvdyByZWZjb3VudCBvZiAzIGFuZCA0IGJlY2F1c2Ugc29tZSBzdGF0ZSB0aHJlYWQgbWlnaHQgc3RpbGwgYmUgYnVzeQoJICB3aXRoIGl0LgoKMjAwNy0wNS0yNCAwOTo0MTo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBUaGVzZSBhcmUgbm90IGluc3RhbGxlZCBoZWFkZXJzLCBubyBuZWVkIGZvciBwYWRkaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgVGhlc2UgYXJlIG5vdCBpbnN0YWxsZWQgaGVhZGVycywgbm8gbmVlZCBmb3IgcGFkZGluZy4KCjIwMDctMDUtMjQgMDg6MzU6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEVuYWJsZSBsYXRlbmN5IGZvciBuZXh0IHJlbGVhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9iaW5fY29udGludWVfZnVuYyk6CgkgIEVuYWJsZSBsYXRlbmN5IGZvciBuZXh0IHJlbGVhc2UuCgkgIFJlc3RvcmUgU1RBVEVfTE9DSyBhcm91bmQgcmVjYWxjX3N0YXRlIHRoYXQgd2FzIGxlZnQgb3V0IGR1cmluZyB0aGUKCSAgcmV3cml0ZSBhbmQgY291bGQgcmVzdWx0IGluIHJhY3kgYmVoYXZpb3VyIHdoZW4gX2dldF9zdGF0ZSBhbmQKCSAgcmVjYWxjX3N0YXRlIGFyZSBydW4gY29uY3VycmVudGx5LiBTZWUgIzQ0MDQ2My4KCjIwMDctMDUtMjMgMTM6NTY6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogSW1wcm92ZSB0ZXN0X2FzeW5jX29yZGVyIHRvIGFsc28gd29yayB3aGVuIGJvdGggdGltZXJzIGFyZSBhbHJlYWR5IGV4cGlyZWQgd2hlbiB3ZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChzdG9yZV9jYWxsYmFjayksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIEltcHJvdmUgdGVzdF9hc3luY19vcmRlciB0byBhbHNvIHdvcmsgd2hlbiBib3RoIHRpbWVycyBhcmUgYWxyZWFkeQoJICBleHBpcmVkIHdoZW4gd2UgZ2V0IHNjaGVkdWxlZCB0byBjaGVjayBpdC4KCjIwMDctMDUtMjIgMTc6MTA6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YmluLio6ICdwcml2YXRlJyBpcyBhIGMrKyBrZXl3b3JkLCBsZXQncyBub3QgdXNlIHRoYXQgaW4gaGVhZGVyIGZpbGVzLCBvdGhlcndpc2UgYysrIGNvbXBpbGVycyB3aWxsIHRocm93IGEgdGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9pbml0KSwgKGdzdF9iaW5fZGlzcG9zZSksCgkgIChnc3RfYmluX3NldF9wcm9wZXJ0eSksIChnc3RfYmluX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAncHJpdmF0ZScgaXMgYSBjKysga2V5d29yZCwgbGV0J3Mgbm90IHVzZSB0aGF0IGluIGhlYWRlciBmaWxlcywKCSAgb3RoZXJ3aXNlIGMrKyBjb21waWxlcnMgd2lsbCB0aHJvdyBhIHRhbnRydW0uCgoyMDA3LTA1LTIyIDExOjU1OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy86IFVzZSAjaWZkZWYgZm9yIEhBVkVfWFlaIGZvciBjb25zaXN0ZW5jeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfZG9fc2VlayksCgkgIChnc3RfZmlsZV9zaW5rX2dldF9jdXJyZW50X29mZnNldCk6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5jOiAocGx1Z2luX2luaXQpOgoJICBVc2UgI2lmZGVmIGZvciBIQVZFX1hZWiBmb3IgY29uc2lzdGVuY3kuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOiAoc2V0dXBfZmlsZXNpbmspLAoJICAoY2xlYW51cF9maWxlc2luayksIChHU1RfU1RBUlRfVEVTVCksIChmaWxlc2lua19zdWl0ZSk6CgkgIEFkZCBzb21lIHVuaXQgdGVzdHMgZm9yIGZpbGVzaW5rLgoKMjAwNy0wNS0yMiAxMTo0MzowNyArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuKjogRml4IHBvc2l0aW9uIHJlcG9ydGluZzsgcmVuYW1lIGRhdGFfd3JpdHRlbiBtZW1iZXIgdG8gY3VycmVudF9wb3MgdG8gcmVmbGVjdCBpdHMgcmVhbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1dyBhdCBza3luZXQgYmU+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19vcGVuX2ZpbGUpLAoJICAoZ3N0X2ZpbGVfc2lua19xdWVyeSksIChnc3RfZmlsZV9zaW5rX2RvX3NlZWspLAoJICAoZ3N0X2ZpbGVfc2lua19nZXRfY3VycmVudF9vZmZzZXQpLCAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSAgRml4IHBvc2l0aW9uIHJlcG9ydGluZzsgcmVuYW1lIGRhdGFfd3JpdHRlbiBtZW1iZXIgdG8gY3VycmVudF9wb3MgdG8KCSAgcmVmbGVjdCBpdHMgcmVhbCBtZWFuaW5nIChmaXhlcyAjNDEyNjQ4KS4KCjIwMDctMDUtMjIgMTE6MDk6NDUgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBBZGQgYSBwcm9wZXJ0eSBmb3IgYmlucyB0aGF0IGhhbmRsZSB0aGUgc3RhdGUgY2hhbmdlIG9mIHRoZWlyIGNoaWxkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9pbml0KSwKCSAgKGdzdF9iaW5fZGlzcG9zZSksIChnc3RfYmluX3NldF9wcm9wZXJ0eSksIChnc3RfYmluX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBBZGQgYSBwcm9wZXJ0eSBmb3IgYmlucyB0aGF0IGhhbmRsZSB0aGUgc3RhdGUgY2hhbmdlIG9mIHRoZWlyIGNoaWxkcy4KCSAgRml4ZXMgIzQzNTg4MAoKMjAwNy0wNS0yMiAxMDoyMTozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1xdW90ZXMueG1sOgoJKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICBhZGQgcXVvdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBxdW90ZQoKMjAwNy0wNS0yMiAwOTo1NjoyNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IFVzZSBhbiBhcnJheSBvZiB0aGUgY29ycmVjdCB0eXBlIHdoZW4gdXNpbmcgX2dldF92YWx1ZV9hcnJheSB3aXRoIGxpbmVhciBpbnRlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBVc2UgYW4gYXJyYXkgb2YgdGhlIGNvcnJlY3QgdHlwZSB3aGVuIHVzaW5nIF9nZXRfdmFsdWVfYXJyYXkgd2l0aAoJICBsaW5lYXIgaW50ZXJwb2xhdGlvbi4KCjIwMDctMDUtMjIgMDY6Mzc6MzcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9yZXF1aXJlc19jbG9jaywgZ3N0X2VsZW1lbnRfcHJvdmlkZXNfY2xvY2ssIGdzdF9lbGVtZW50X3JlcXVlc3RfcGFkLCBnc3RfZWxlbWVudF9jbGFzc18uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfcmVxdWlyZXNfY2xvY2ssCgkgIGdzdF9lbGVtZW50X3Byb3ZpZGVzX2Nsb2NrLCBnc3RfZWxlbWVudF9yZXF1ZXN0X3BhZCwKCSAgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHMsIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSwKCSAgZ3N0X2VsZW1lbnRfZGVmYXVsdF9zZW5kX2V2ZW50LCBnc3RfZWxlbWVudF9hYm9ydF9zdGF0ZSwKCSAgZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUsIGdzdF9lbGVtZW50X3NldF9zdGF0ZSwKCSAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMsIGl0ZXJhdG9yX2FjdGl2YXRlX2ZvbGRfd2l0aF9yZXN5bmMpOgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsLCBnc3RfcGFkX3NldF9nZXRjYXBzX2Z1bmN0aW9uLAoJICBnc3RfcGFkX2ZpeGF0ZV9jYXBzLCBnc3RfcGFkX2NvbmZpZ3VyZV9zaW5rLCBnc3RfcGFkX2NvbmZpZ3VyZV9zcmMsCgkgIGdzdF9wYWRfcXVlcnksIGdzdF9wYWRfc2F2ZV90aHlzZWxmLCBoYW5kbGVfcGFkX2Jsb2NrLCBnc3RfcGFkX3B1c2gsCgkgIGdzdF9wYWRfZ2V0X3JhbmdlLCBnc3RfcGFkX3B1bGxfcmFuZ2UpOgoJICAqIGdzdC9nc3RwYWQuaCAoR1NUX1BBRF9MSU5LX1NVQ0NFU1NGVUwsIEdTVF9GTE9XX0NVU1RPTV9TVUNDRVNTLAoJICBHU1RfRkxPV19OT1RfU1VQUE9SVEVELCBHU1RfRkxPV19JU19GQVRBTCwgR3N0UGFkQWN0aXZhdGVGdW5jdGlvbiwKCSAgR3N0UGFkQWN0aXZhdGVNb2RlRnVuY3Rpb24sIEdzdFBhZENoYWluRnVuY3Rpb24sCgkgIEdzdFBhZEdldENhcHNGdW5jdGlvbiwgR3N0UGFkQWNjZXB0Q2Fwc0Z1bmN0aW9uLAoJICBHc3RQYWRGaXhhdGVDYXBzRnVuY3Rpb24sIEdzdFBhZFRlbXBsYXRlKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYyAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSwKCSAgZ3N0X3BpcGVsaW5lX3NldF9uZXdfc3RyZWFtX3RpbWUsIGdzdF9waXBlbGluZV91c2VfY2xvY2ssCgkgIGdzdF9waXBlbGluZV9zZXRfY2xvY2ssIGdzdF9waXBlbGluZV9hdXRvX2Nsb2NrLAoJICBnc3RfcGlwZWxpbmVfZ2V0X2RlbGF5KToKCSAgV2hpdGVzcGFjZSBhbmQgZG9jcyBmaXhlcy4KCjIwMDctMDUtMjEgMjE6NDg6MDcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOiBBZGQgc3VwcG9ydCBmb3IgcmV0cmlldmluZyB2YWx1ZSBhcnJheXMgd2hlbiB1c2luZyB0aGUgdHJpZ2dlciBpbnRlcnBvbGF0aW9uIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0X2VudW1fdmFsdWVfYXJyYXkpLAoJICAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXRfc3RyaW5nX3ZhbHVlX2FycmF5KToKCSAgQWRkIHN1cHBvcnQgZm9yIHJldHJpZXZpbmcgdmFsdWUgYXJyYXlzIHdoZW4gdXNpbmcgdGhlIHRyaWdnZXIKCSAgaW50ZXJwb2xhdGlvbiBtb2RlLgoKMjAwNy0wNS0yMSAyMTozNDo0OSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLio6IENsYXJpZnkgdGhlIGRvY3Mgb2YgZ3N0X2NvbnRyb2xsZXJfZ2V0X3ZhbHVlX2FycmF5KCk6IFRoZSBhcnJheSB3aGVyZSB0aGUgdmFsdWVzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZXJfZ2V0X3ZhbHVlX2FycmF5KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgQ2xhcmlmeSB0aGUgZG9jcyBvZiBnc3RfY29udHJvbGxlcl9nZXRfdmFsdWVfYXJyYXkoKTogVGhlIGFycmF5IHdoZXJlCgkgIHRoZSB2YWx1ZXMgc2hvdWxkIGJlIHdyaXR0ZW4gdG8gbXVzdCBiZSBhbGxvY2F0ZWQgYXMgdGhlcmUgc2VlbXMgdG8gYmUKCSAgbm8gd2F5IHRvIGdldCB0aGUgc2l6ZSBvZiBhIHJhbmRvbSBHVHlwZS4gVGhpcyBkb2Vzbid0IGNoYW5nZSBhbnkKCSAgYmVoYXZpb3VyLiBBbHNvIGZpeCBzb21lIHR5cG9zIGFsbCBvdmVyIHRoZSBwbGFjZSBhbmQgcmVtb3ZlIGFuIHVudXNlZCwKCSAgY29tbWVudGVkIGZ1bmN0aW9uIHRoYXQgaXMgbm90IG5lY2Vzc2FyeSBhcyBnX29iamVjdF9zZXQoKSBjb3VsZCBiZQoJICB1c2VkIGluc3RlYWQuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIGdzdF9jb250cm9sbGVyX2dldF92YWx1ZV9hcnJheSgpLgoKMjAwNy0wNS0yMSAxNDo1MDo1MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IERpc2FibGUgcGFydCBvZiB0aGUgZ3N0X2J1ZmZlcl90cnlfbmV3X2FuZF9hbGxvYyB0ZXN0LCBiZWNhdXNlIGl0IGNhbiBoYXBwaWx5IHN1Y2NlZWQgb24uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBEaXNhYmxlIHBhcnQgb2YgdGhlIGdzdF9idWZmZXJfdHJ5X25ld19hbmRfYWxsb2MgdGVzdCwgYmVjYXVzZQoJICBpdCBjYW4gaGFwcGlseSBzdWNjZWVkIG9uIDY0LWJpdCBzeXN0ZW1zIHdoZXJlIHRoZXJlJ3MgbW9yZSBhZGRyZXNzCgkgIHNwYWNlIGF2YWlsYWJsZS4KCjIwMDctMDUtMjEgMTI6MDU6NTYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogQWRkIHVuaXQgdGVzdCBmb3IgdGhlIGltcHJvdmVkIGNhcHMgY2hlY2tpbmcgZnJvbSBidWcgIzQyMTU0My4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3BhZF9zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoZSBpbXByb3ZlZCBjYXBzIGNoZWNraW5nIGZyb20gYnVnICM0MjE1NDMuCgoyMDA3LTA1LTIxIDEyOjA1OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OiBTbWFsbCBhZGRpdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBTbWFsbCBhZGRpdGlvbi4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3F1ZXJ5KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChhcHBseV9zZWdtZW50KToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgSW1wcm92ZSBkb2NzLgoKMjAwNy0wNS0yMSAxMjowMDo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQWRkZWQgc2ltcGxlIHZlcnNpb24gb2YgaW1wcm92ZWQgY2FwcyBjaGVja2luZy4gSXQgd2FzIHByZXZpb3VzbHkgYXNzdW1lZCB0aGF0IGEgc2V0Y2FwcyBmdW5jdGlvbiB3b3VsZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwKCSAgKGdzdF9wYWRfYWNjZXB0Y2Fwc19kZWZhdWx0KSwgKGdzdF9wYWRfY29uZmlndXJlX3NpbmspLAoJICAoZ3N0X3BhZF9jb25maWd1cmVfc3JjKToKCSAgQWRkZWQgc2ltcGxlIHZlcnNpb24gb2YgaW1wcm92ZWQgY2FwcyBjaGVja2luZy4gSXQgd2FzIHByZXZpb3VzbHkKCSAgYXNzdW1lZCB0aGF0IGEgc2V0Y2FwcyBmdW5jdGlvbiB3b3VsZCBjaGVjayB0aGUgdmFsaWRpdHkgb2YgdGhlIGNhcHMgYnV0CgkgIHBlb3BsZSBwcmVmZXIgdXMgdG8gY2hlY2sgY2FwcyBhZ2FpbnN0IHRoZSB0ZW1wbGF0ZSBhdXRvbWF0aWNhbGx5LgoJICBGaXhlcyAjNDIxNTQzLgoKMjAwNy0wNS0yMSAxMToyOToyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOiBGaXggbWFjcm8gZm9yIGxvY2tpbmcvdW5sb2NraW5nIHRoZSB0cmFuc2Zvcm0gbG9jay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEZpeCBtYWNybyBmb3IgbG9ja2luZy91bmxvY2tpbmcgdGhlIHRyYW5zZm9ybSBsb2NrLgoKMjAwNy0wNS0xOSAxMzo1MzoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcGx1Z2lucy90bXBsLy5jdnNpZ25vcmU6IElnbm9yZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvdG1wbC8uY3ZzaWdub3JlOgoJICBJZ25vcmUgbW9yZS4KCjIwMDctMDUtMTggMTY6NTM6MTggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IEhlbGxvLCBJIGFtIE1yIFRheW1hbnMnIHBlcnNvbmFsIGRlYnVnZ2VyLiBUb2RheSBJIHdpbGwgaW50cm9kdWNlIGEgZml4IGZvciB0aGUgc3VidGxlIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xvb3ApOgoJICBIZWxsbywgSSBhbSBNciBUYXltYW5zJyBwZXJzb25hbCBkZWJ1Z2dlci4gVG9kYXkgSSB3aWxsIGludHJvZHVjZSBhIGZpeAoJICBmb3IgdGhlIHN1YnRsZSBhcnQgb2Ygd2FybmluZyBhIHBvdGVudGlhbGx5IGJsb2NraW5nIHRocmVhZCB0aGF0IGl0CgkgIHNob3VsZCBjaGVjayB0aGUgc291cmNlIHBhZCByZXR1cm4gdmFsdWUsIGFuZCByZWxheSB0aGUgaW5mb3JtYXRpb24KCSAgdXBzdHJlYW0uCgoyMDA3LTA1LTE4IDExOjIwOjMzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBSZWxlYXNlIHRoZSBxdWV1ZSBsb2NrICEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KToKCSAgUmVsZWFzZSB0aGUgcXVldWUgbG9jayAhCgoyMDA3LTA1LTE3IDE3OjU1OjQ4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBZGQgdGhlIHR3byBuZXcgY29udHJvbGxlciBmdW5jdGlvbnMgdG8gdGhlIGFwcHJvcGlhdGUgcGxhY2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgdGhlIHR3byBuZXcgY29udHJvbGxlciBmdW5jdGlvbnMgdG8gdGhlIGFwcHJvcGlhdGUgcGxhY2VzLgoKMjAwNy0wNS0xNyAxNzozNzo1OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IEFQSTogZ3N0X2NvbnRyb2xsZXJfc3VnZ2VzdF9uZXh0X3N5bmMoKSwgZ3N0X29iamVjdF9zdWdnZXN0X25leHRfc3luYygpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZpZXdlZCBieTogU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZXJfc3VnZ2VzdF9uZXh0X3N5bmMpLCAoZ3N0X2NvbnRyb2xsZXJfc3luY192YWx1ZXMpLAoJICAoX2dzdF9jb250cm9sbGVyX2dldF9wcm9wZXJ0eSksIChfZ3N0X2NvbnRyb2xsZXJfc2V0X3Byb3BlcnR5KSwKCSAgKF9nc3RfY29udHJvbGxlcl9pbml0KSwgKF9nc3RfY29udHJvbGxlcl9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOiAoZ3N0X29iamVjdF9zdWdnZXN0X25leHRfc3luYyksCgkgIChnc3Rfb2JqZWN0X2dldF9jb250cm9sX3JhdGUpLCAoZ3N0X29iamVjdF9zZXRfY29udHJvbF9yYXRlKToKCSAgQVBJOiBnc3RfY29udHJvbGxlcl9zdWdnZXN0X25leHRfc3luYygpLCBnc3Rfb2JqZWN0X3N1Z2dlc3RfbmV4dF9zeW5jKCkKCSAgQWRkIEFQSSB0aGF0IHByb3ZpZGVzIHN5bmMgc3VnZ2VzdGlvbiB0aW1lc3RhbXBzIGZvciBlbGVtZW50cyB0aGF0CgkgIGNhbGwgZ3N0X29iamVjdF9zeW5jX3ZhbHVlcygpIGZyb20gd2hpY2ggdGhvc2UgZWxlbWVudHMgY2FuIHN1YmRpdmlkZQoJICB0aGVpciBwcm9jZXNzaW5nIGxvb3AgdG8gZ2V0IHRoZSBiZXN0IHJlc3VsdHMgZm9yIHRoZSBjb250cm9sbGVkCgkgIHByb3BlcnRpZXMuIEZvciBub3cgaXQganVzdCBzdWdnZXN0cyBsYXN0X3N5bmMgKyBjb250cm9sX3JhdGUgYXMKCSAgbmV3IHRpbWVzdGFtcCBidXQgdGhpcyB3aWxsIGJlIGltcHJvdmVkIGluIHRoZSBmdXR1cmUuCgkgIFdoaWxlIGRvaW5nIHRoYXQgY2hhbmdlIHRoZSBjb250cm9sLXJhdGUgcHJvcGVydHkgdG8gYSBHc3RDbG9ja1RpbWUKCSAgZnJvbSBndWludCBhbmQgY2hhbmdlIGl0J3MgbWVhbmluZyBmcm9tIHNhbXBsZXMgdG8gbmFub3NlY29uZHMgYXMKCSAgdGhlIEdzdENvbnRyb2xsZXIgZG9lc24ndCBrbm93IGFueXRoaW5nIGFib3V0IHNhbXBsaW5nIHJhdGUuIFN0cmljdGx5CgkgIHNwZWFraW5nIHRoaXMgYnJlYWtzIEFCSSBidXQgYXMgdGhlIGNvbnRyb2wtcmF0ZSBwcm9wZXJ0eSBkaWRuJ3QgZG8KCSAgYW55dGhpbmcgaW4gdGhlIHBhc3QgYW5kIGFzIHN1Y2ggY291bGRuJ3QgYmUgdXNlZCB0aGlzIHNob3VsZCBiZSBubwoJICBwcm9ibGVtLgoKMjAwNy0wNS0xNyAxNzoxNjowOSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IFNhdmUgbGFzdCBzeW5jZWQgdmFsdWUgZnJvbSB0aGUgbGlzdCB0byBjb250aW51ZSBzZWFyY2hpbmcgZnJvbSB0aGVyZSBpbiBmdXR1cmUgc3luY3MuIFRoaXMgc3BlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZpZXdlZCBieTogU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfdW5zZXQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfdW5zZXRfYWxsKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9maW5kX2NvbnRyb2xfcG9pbnRfbm9kZSk6CgkgIFNhdmUgbGFzdCBzeW5jZWQgdmFsdWUgZnJvbSB0aGUgbGlzdCB0byBjb250aW51ZSBzZWFyY2hpbmcgZnJvbSB0aGVyZQoJICBpbiBmdXR1cmUgc3luY3MuIFRoaXMgc3BlZWRzIGV2ZXJ5dGhpbmcgdXAgYSBiaXQuCgoyMDA3LTA1LTE3IDE3OjA1OjM2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogQWRkIGEgbmV3IHByaXZhdGUgR3N0Q29udHJvbFBvaW50IHN0cnVjdCB3aGljaCAiaW5oZXJpdHMiIGZyb20KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbF9wb2ludF9jb21wYXJlKSwKCSAgKGdzdF9jb250cm9sX3BvaW50X2ZpbmQpLCAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KSwKCSAgKGdzdF9jb250cm9sX3BvaW50X2ZyZWUpLCAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfZnJlZSksCgkgIChnc3RfY29udHJvbGxlcl9zZXQpLCAoZ3N0X2NvbnRyb2xsZXJfc2V0X2Zyb21fbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl91bnNldCksIChnc3RfY29udHJvbGxlcl91bnNldF9hbGwpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3luY192YWx1ZXMpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X2ZpbmRfY29udHJvbF9wb2ludF9ub2RlKSwKCSAgKGludGVycG9sYXRlX25vbmVfZ2V0KSwgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0KToKCSAgQWRkIGEgbmV3IHByaXZhdGUgR3N0Q29udHJvbFBvaW50IHN0cnVjdCB3aGljaCAiaW5oZXJpdHMiIGZyb20KCSAgR3N0VGltZWRWYWx1ZSB0byBhbGxvdyBkaWZmZXJlbnQgaW50ZXJwb2xhdG9ycyB0byBzdG9yZSBpbnRlcm5hbAoJICB2YWx1ZXMgbmV4dCB0byBlYWNoIGNvbnRyb2wgcG9pbnQuIEZyb20gdGhlIG91dHNpZGUgZXZlcnl0aGluZyBpcwoJICBzdGlsbCBhIEdzdENvbnRyb2xQb2ludCBzbyB3ZSBkb24ndCBsb29zZSBiaW5hcnkgY29tcGF0aWJpbGl0eS4KCSAgQWxzbyBmaXh1cCBhbGwgdGhlIEdWYWx1ZSBoYW5kbGluZyB0byBub3QgbGVhayBHVmFsdWVzIG9yIGxpc3Qgbm9kZXMuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZyZWUgdGhlIGxpc3Qgbm9kZXMgYW5kIEdWYWx1ZXMgaW4gdGhlIGNvbnRyb2xsZXJfbWlzYyB0ZXN0LgoKMjAwNy0wNS0xNyAxMTowNToyMiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IFNtYWxsIGRvYyBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgIFNtYWxsIGRvYyBmaXguCgoyMDA3LTA1LTE2IDE5OjM1OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBJZiB3ZSBmYWlsIHRvIGxvYWQgYSBwbHVnaW4gYmVjYXVzZSBvZiB1bnJlc29sdmVkIHN5bWJvbHMgb3IgbWlzc2luZyBsaWJyYXJpZXMgYW5kIHNwZXcgYSB3YXJuaW5nIHRvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgSWYgd2UgZmFpbCB0byBsb2FkIGEgcGx1Z2luIGJlY2F1c2Ugb2YgdW5yZXNvbHZlZCBzeW1ib2xzIG9yIG1pc3NpbmcKCSAgbGlicmFyaWVzIGFuZCBzcGV3IGEgd2FybmluZyB0byBzdGRlcnIsIHdlIG1heSBqdXN0IGFzIHdlbGwgbWVudGlvbgoJICB3aGljaCBwbHVnaW4gaXQgd2FzIHRoYXQgZmFpbGVkIHRvIGxvYWQuCgoyMDA3LTA1LTEzIDIwOjI4OjE0ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGRvY3MvTWFrZWZpbGUuYW06IHRoZSBndGstZG9jIG1ha2VmaWxlIHNuaXBwZXQgY29ycmVjdGx5IGhhbmRsZXMgdGhlIGNhc2Ugd2hlbiBFTkFCTEVfR1RLX0RPQyBpcyBmYWxzZSwgYW5kIGluc3RhbGxzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL01ha2VmaWxlLmFtOiB0aGUgZ3RrLWRvYyBtYWtlZmlsZSBzbmlwcGV0IGNvcnJlY3RseQoJICBoYW5kbGVzIHRoZSBjYXNlIHdoZW4gRU5BQkxFX0dUS19ET0MgaXMgZmFsc2UsIGFuZCBpbnN0YWxscwoJICB0aGUgcHJlYnVpbHQgZG9jdW1lbnRhdGlvbi4gIFNvIGd0ay1kb2Mgc3ViZGlycyBhcmUKCSAgdW5jb25kaXRpb25hbGx5IGVuYWJsZWQuICBGaXhlczogIzM0OTA5OS4KCjIwMDctMDUtMTMgMjA6MTE6MjcgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmg6IFJld29yZCBzb21lIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5oOiBSZXdvcmQgc29tZSBkb2N1bWVudGF0aW9uLgoKMjAwNy0wNS0xMyAwMDoyMDozNSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IGdzdF9wbHVnaW5fcmVnaXN0ZXJfZnVuYygpIGRvZXNuJ3QgYWN0dWFsbHkgZG8gYW55dGhpbmcgd2l0aCB0aGUgcGFzc2VkICJtb2R1bGUiIHBhcmFtZXRlciwgc28gcmVtb3YuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiBnc3RfcGx1Z2luX3JlZ2lzdGVyX2Z1bmMoKSBkb2Vzbid0IGFjdHVhbGx5CgkgIGRvIGFueXRoaW5nIHdpdGggdGhlIHBhc3NlZCAibW9kdWxlIiBwYXJhbWV0ZXIsIHNvIHJlbW92ZSBpdC4KCSAgQWxsb3dzIHJlbW92YWwgb2YgYWRkaXRpb25hbCB2ZXN0aWdhbCBjb2RlLgoKMjAwNy0wNS0xMyAwMDowOTowMCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IFVzaW5nIHNpZ2FjdGlvbiBzaG91bGQgZGVwZW5kIG9uIEhBVkVfU0lHQUNUSU9OLCBub3QgSEFWRV9XSU4zMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICBVc2luZyBzaWdhY3Rpb24gc2hvdWxkIGRlcGVuZCBvbiBIQVZFX1NJR0FDVElPTiwgbm90IEhBVkVfV0lOMzIuCgkgIFN3aXRjaCB0byB1c2luZyBnX3N0YXQoKSBiZWNhdXNlIGl0J3MgbW9yZSBwb3J0YWJsZS4KCjIwMDctMDUtMTIgMjM6NTM6MDggKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdC5jOiBBZGQgR1NUX0RJU0FCTEVfT1BUSU9OX1BBUlNJTkcsIGluIG9yZGVyIHRvIGRpc2FibGUgb3B0aW9uIHBhcnNpbmcgZm9yIGVtYmVkZGVkIHN5c3RlbXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgQWRkIEdTVF9ESVNBQkxFX09QVElPTl9QQVJTSU5HLCBpbiBvcmRlciB0byBkaXNhYmxlIG9wdGlvbgoJICBwYXJzaW5nIGZvciBlbWJlZGRlZCBzeXN0ZW1zLgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBBbGxvdyBnc3RfZWxlbWVudF9yZWdpc3RlcigpIHRvIGJlIGNhbGxlZCB3aXRoIHBsdWdpbj09TlVMTC4KCSAgRGlkIG5vYm9keSBub3RpY2UgdGhhdCBzdGF0aWMgZWxlbWVudHMgd2VyZSBicm9rZW4/CgoyMDA3LTA1LTEyIDE1OjM4OjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBHaXZlIG1vcmUgaW50ZXJlc3RpbmcgaW5mbyB3aGVuIGJ1ZmZlcmluZyBzdGFydHMgYW5kIHN0b3BzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgR2l2ZSBtb3JlIGludGVyZXN0aW5nIGluZm8gd2hlbiBidWZmZXJpbmcgc3RhcnRzIGFuZCBzdG9wcy4KCSAgRml4IGNhc2Ugd2hlcmUgYnVmZmVyaW5nIHN0YXJ0cyBidXQgd2UgZmFpbCB0byB1cGRhdGUgdGhlIGJ1ZmZlcmluZyBmbGFnCgkgIGJlY2F1c2UgdGhlIHRhcmdldCBzdGF0ZSBpcyBub3QgUExBWUlORy4KCjIwMDctMDUtMTIgMTU6MzU6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLio6IFJlZmFjdG9yIGFuIGNsZWFudXAgcXVldWUgYSBiaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KSwKCSAgKGdzdF9xdWV1ZV9maW5hbGl6ZSksICh1cGRhdGVfdGltZV9sZXZlbCksIChhcHBseV9zZWdtZW50KSwKCSAgKGFwcGx5X2J1ZmZlciksIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSksIChnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfcHVzaF9vbmUpLCAoZ3N0X3F1ZXVlX2xvb3ApOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgUmVmYWN0b3IgYW4gY2xlYW51cCBxdWV1ZSBhIGJpdC4KCSAgRG8gYmV0dGVyIHRpbWUgbGV2ZWwgY2FsY3VsYXRpb25zIHRoYXQgYWxzbyB3b3JrIHdoZW4gdGhlIHNyY3BhZCBpcyBub3QKCSAgeWV0IHJ1bm5pbmcuCgkgIFJlbW92ZSBzb21lIHVubmVlZGVkIGRlYnVnIGxpbmVzLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChxdWV1ZV9zdWl0ZSk6CgkgIEFkZGVkIHRlc3RjYXNlIGZvciB0aW1lIGxldmVsIG1lYXN1cmVtZW50LgoJICBUcnkgdG8gbWFrZSBzb21lIHN0dWZmIG1vcmUgcmFjZWZyZWUuCgoyMDA3LTA1LTExIDE0OjQ2OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHVyaS5jOiBEb24ndCBsZWFrIHBsdWdpbiBmZWF0dXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXJpLmM6IChnc3RfZWxlbWVudF9tYWtlX2Zyb21fdXJpKToKCSAgRG9uJ3QgbGVhayBwbHVnaW4gZmVhdHVyZS4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdXJpX3N1aXRlKToKCSAgQWRkIGJyYWluLWRlYWQgdW5pdCB0ZXN0LgoKMjAwNy0wNS0xMSAxNDoyODo1NSArMDAwMCAgSmVyb2VuIFdvdXRlcnMgPHdvdXRlcnNqQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1cmkuYzogVHJlYXQgcHJvdG9jb2wgc3RyaW5ncyBpbiBhIGNhc2UtaW5zZW5zaXRpdmUgd2F5ICgjNDM3NTYzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKZXJvZW4gV291dGVycyA8d291dGVyc2ogYXQgZ21haWwgY29tPgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF91cmlfZ2V0X3Byb3RvY29sKSwgKHNlYXJjaF9ieV9lbnRyeSk6CgkgIFRyZWF0IHByb3RvY29sIHN0cmluZ3MgaW4gYSBjYXNlLWluc2Vuc2l0aXZlIHdheSAoIzQzNzU2MykuCgoyMDA3LTA1LTExIDEwOjU2OjQ4ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvOiBEb24ndCBwcmludCBhIGdfd2FybmluZyBmb3IgYW55IGZhaWx1cmUgdG8gbG9hZCBhIHNoYXJlZCBvYmplY3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICBEb24ndCBwcmludCBhIGdfd2FybmluZyBmb3IgYW55IGZhaWx1cmUgdG8gbG9hZCBhIHNoYXJlZCBvYmplY3QuCgkgIEluc3RlYWQsIHB1c2ggdGhpcyBkb3duIGludG8gZ3N0cGx1Z2luLmMsIGFuZCB3YXJuIF9vbmx5XyBpZiB3ZQoJICBmYWlsZWQgdG8gb3BlbiB0aGUgbW9kdWxlIChpLmUuIGZhaWx1cmUgdG8gbGluaykuCgkgIEF2b2lkcyB3YXJuaW5ncyBvbiBub3JtYWwsIHdvcmtpbmcsIG5vbi1wbHVnaW4gLnNvIGZpbGVzLgoKMjAwNy0wNS0xMSAwODoyOToxMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbi5jIChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6IGdzdC9nc3RyZWdpc3RyeS5jIChHU1RfQ0FUX0RFRkFVTFQsIGdzdF9yZWdpc3RyeV9sb29rdXBfZmVhdHVyZV9sb2NrZWQsIGdzdF9yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYyAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jIChHU1RfQ0FUX0RFRkFVTFQsCgkgIGdzdF9yZWdpc3RyeV9sb29rdXBfZmVhdHVyZV9sb2NrZWQsIGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICBQcmludCBhIGdfd2FybmluZyBpZiB0aGVyZSB3YXMgYW4gZXJyb3Igd2hlbiBsb2FkaW5nIGEgcGx1Z2lucyBkdXJpbmcKCSAgcmVnaXN0cnkgc2Nhbi4gVGhlIHNodWxkIGhlbHAgYmVnaW5uZXJzIHN0YXJ0aW5nIHdpdGggZ3N0LXBsdWdpbgoJICB0ZW1wbGF0ZS4KCjIwMDctMDUtMTAgMTU6MjE6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLio6IEJlIHNtYXJ0ZXIgd2hlbiBjYWxjdWxhdGluZyB0aGUgY3VycmVudCBhbW91bnQgb2YgZGF0YSBpbiB0aGUgcXVldWUgYnkgbWVhc3VyaW5nIHRoZSBkaWYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpLAoJICAodXBkYXRlX3RpbWVfbGV2ZWwpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9mbHVzaCksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9wdXNoX29uZSksIChnc3RfcXVldWVfbG9vcCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBCZSBzbWFydGVyIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGN1cnJlbnQgYW1vdW50IG9mIGRhdGEgaW4gdGhlIHF1ZXVlIGJ5CgkgIG1lYXN1cmluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHN0YXJ0IGFuZCBlbmQgdGltZXN0YW1wcyAoaW4gcnVubmluZwoJICB0aW1lKSBpbnNpZGUgdGhlIHF1ZXVlLiBGaXhlcyAjNDMyODc2LgoJICBBUEk6IEdzdFF1ZXVlOjpwdXNoaW5nIHRvIG5vdGlmeSBlbGVtZW50cyB0aGF0IHdlIGFyZSBwdXNoaW5nIGRhdGEgYWdhaW4KCSAgc2luY2UgdGhlIHJ1bm5pbmcgc2lnbmFsIGlzIHJhdGhlciBicm9rZW4gZm9yIHRoaXMgcHVycG9zZS4KCjIwMDctMDUtMTAgMTI6NDA6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYyAoX2RvX2luaXQsIGdzdF9xdWV1ZV9zaWduYWxzLCBnc3RfcXVldWVfYmFzZV9pbml0LCBnc3RfcXVldWVfaW5pdCk6IHVzZSBHU1RfQk9JTEVSUExBVEUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jIChfZG9faW5pdCwgZ3N0X3F1ZXVlX3NpZ25hbHMsCgkgIGdzdF9xdWV1ZV9iYXNlX2luaXQsIGdzdF9xdWV1ZV9pbml0KToKCSAgdXNlIEdTVF9CT0lMRVJQTEFURQoKMjAwNy0wNS0wOSAyMTowNjowNiArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMuCgkgICogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJICBVc2UgZ3JhbW1hciBwcmUtZ2VuZXJhdGVkIGZpbGVzLgoKMjAwNy0wNS0wOSAxNjozMjowNyArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvOiBNYWludGFpbiBBUEkgYW5kIEFCSSB3aGVuIC0tZGlzYWJsZS1wYXJzZSBpcyB1c2VkLiBOb3cgdGhhdCB3ZSBoYXZlIGFuIGFwcHJvcHJpYXRlIGVycm9yIGNvZGUsIHdlIGNhbiBqdXN0IHJldHUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgIDxwa2ogYXQgYXhpcyBjb20+CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3RwYXJzZS5jOiAoZ3N0X3BhcnNlX2xhdW5jaHYpLCAoZ3N0X3BhcnNlX2xhdW5jaCk6CgkgICogZ3N0L2dzdHBhcnNlLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24pOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBNYWludGFpbiBBUEkgYW5kIEFCSSB3aGVuIC0tZGlzYWJsZS1wYXJzZSBpcyB1c2VkLiBOb3cgdGhhdAoJICB3ZSBoYXZlIGFuIGFwcHJvcHJpYXRlIGVycm9yIGNvZGUsIHdlIGNhbiBqdXN0IHJldHVybiBOVUxMIGFuZCB0aGUKCSAgYXBwcm9wcmlhdGUgZXJyb3Igd2hlbiBnc3RfcGFyc2VfbGF1bmNoKCkgaXMgdXNlZCBkZXNwaXRlIGl0IGhhdmluZwoJICBiZWVuIGRpc2FibGVkICgjMzQyNTY0KS4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtZGlzYWJsZWQuYzoKCSAgTWFrZSBzdXJlIHRoZXNlIGZ1bmN0aW9ucyBleGlzdCBhbmQgcmV0dXJuIE5VTEwgcGx1cyBhIEdFcnJvciB3aGVuCgkgIC0tZGlzYWJsZS1wYXJzZSBpcyB1c2VkLgoKMjAwNy0wNS0wOSAxMDowMTozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2JlbmNobWFya3MvOiBTZXQgYSBnb29kIGV4YW1wbGUgYW5kIGRvbid0IGxlYWsgbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOiAobWFpbik6CgkgICogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLmM6IChtYWluKToKCSAgU2V0IGEgZ29vZCBleGFtcGxlIGFuZCBkb24ndCBsZWFrIG1lc3NhZ2VzLgoKMjAwNy0wNS0wNiAxODoyNzoyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IENvcnJlY3QgZml4eHJlZnMgb3B0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBDb3JyZWN0IGZpeHhyZWZzIG9wdGlvbnMuCgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jIChnc3RfY2Fwc2ZpbHRlcl9kZXRhaWxzKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuaCAoX19HU1RfQ0FQU0ZJTFRFUl9IX18sCgkgIEdTVF9UWVBFX0NBUFNGSUxURVIsIEdTVF9DQVBTRklMVEVSLCBHU1RfQ0FQU0ZJTFRFUl9DTEFTUywKCSAgR1NUX0lTX0NBUFNGSUxURVIsIEdTVF9JU19DQVBTRklMVEVSX0NMQVNTLCBHc3RDYXBzRmlsdGVyLAoJICBHc3RDYXBzRmlsdGVyQ2xhc3MsIF9Hc3RDYXBzRmlsdGVyLCB0cmFucywgZmlsdGVyX2NhcHMsCgkgIF9Hc3RDYXBzRmlsdGVyQ2xhc3MsIHRyYW5zX2NsYXNzKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmMgKG5hbWUsIHJhbmssIHR5cGUsIF9lbGVtZW50cyk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jCgkgIChnc3RfaWRlbnRpdHlfY2hlY2tfaW1wZXJmZWN0X3RpbWVzdGFtcCwKCSAgZ3N0X2lkZW50aXR5X2NoZWNrX2ltcGVyZmVjdF9vZmZzZXQpOgoJICBEb2N1bWVudCBjYXBzZmlsdGVyIGFuZCBhZGQgZG9jLWJsdXJiIHRvIGlkZW50aXR5LgoKMjAwNy0wNS0wNCAxMjozNzowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBEb24ndCBjcmFzaCBpZiBzb21lb25lIHRyaWVzIHRvIHNldCBhbiBpbnRlcnBvbGF0aW9uIG1vZGUgdGhhdCBpcyBpbnZhbGlkIG9yIHRoYXQgaXNuJ3Qgc3VwcG9ydC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBEb24ndCBjcmFzaCBpZiBzb21lb25lIHRyaWVzIHRvIHNldCBhbiBpbnRlcnBvbGF0aW9uIG1vZGUgdGhhdAoJICBpcyBpbnZhbGlkIG9yIHRoYXQgaXNuJ3Qgc3VwcG9ydGVkIHlldC4gRml4ZXMgIzQyMjI5NS4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgQWRkIGEgdGVzdCBjYXNlIGZvciB0aGUgYWJvdmUuCgoyMDA3LTA1LTAzIDE2OjQ0OjM0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFByb3Blcmx5IHNldCB0aGUgbGFzdF9zdG9wIHBvc2l0aW9uIG9uIEdzdFNlZ21lbnQuIFRoaXMgd2lsbCBvbmx5IGhhcHBlbiBpZiB0aGVyZSBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKToKCSAgUHJvcGVybHkgc2V0IHRoZSBsYXN0X3N0b3AgcG9zaXRpb24gb24gR3N0U2VnbWVudC4gVGhpcyB3aWxsIG9ubHkgaGFwcGVuCgkgIGlmIHRoZXJlIGlzIGEgYnVmZmVyIHRvIHB1c2ggb3V0LgoKMjAwNy0wNS0wMyAxNDo1ODowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBhbHdheXNfaW5fcGxhY2UgZG9lcyBub3QgbWVhbiB0aGF0IHRoZSBzaW5rIGFuZCBzb3VyY2UgY2FwcyBhcmUgdGhlIHNhbWUhIE1ha2Ugc3VyZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBhbHdheXNfaW5fcGxhY2UgZG9lcyBub3QgbWVhbiB0aGF0IHRoZSBzaW5rIGFuZCBzb3VyY2UgY2FwcyBhcmUgdGhlCgkgIHNhbWUhIE1ha2Ugc3VyZSB3ZSBkb24ndCBibGluZGx5IHByb3h5IHRoZSBidWZmZXJfYWxsb2MgaW4gdGhpcyBjYXNlLgoKMjAwNy0wNS0wMyAxNDo1NDozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFQSTogZ3N0X2Jhc2Vfc3JjX3F1ZXJ5X2xhdGVuY3koKS4gQWRkZWQgbWV0aG9kIHNvIHRoYXQgc3ViY2xhc3NlcyBjYW4gZWFzaWx5IGdldCB0aGUgbGF0ZW5jeSB2YWx1ZXMgb2YgdGhlIGJhc2Ugc291ci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpLCAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIEFQSTogZ3N0X2Jhc2Vfc3JjX3F1ZXJ5X2xhdGVuY3koKS4gQWRkZWQgbWV0aG9kIHNvIHRoYXQgc3ViY2xhc3NlcyBjYW4KCSAgZWFzaWx5IGdldCB0aGUgbGF0ZW5jeSB2YWx1ZXMgb2YgdGhlIGJhc2Ugc291cmNlIGNsYXNzLgoKMjAwNy0wNS0wMyAwOToyNDo1OCArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmMgKHByaW50X2ltcGxlbWVudGF0aW9uX2luZm8pOiBSZW1vdmUgMC44IGNydWZ0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jIChwcmludF9pbXBsZW1lbnRhdGlvbl9pbmZvKToKCSAgUmVtb3ZlIDAuOCBjcnVmdC4KCjIwMDctMDUtMDIgMTc6MDk6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy86IERvbid0IGNyZWF0ZSBhIGN1c3RvbWlzZWQgbWFuIHBhZ2UgYmFzZWQgb24gdGhlIGhvc3QgYXJjaGl0ZWN0dXJlLCBkZXNjcmliZSB0aGUgZGVmYXVsdCByZWdpc3RyeSBwYXRoIGdlbmVyaWMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBEb24ndCBjcmVhdGUgYSBjdXN0b21pc2VkIG1hbiBwYWdlIGJhc2VkIG9uIHRoZSBob3N0IGFyY2hpdGVjdHVyZSwKCSAgZGVzY3JpYmUgdGhlIGRlZmF1bHQgcmVnaXN0cnkgcGF0aCBnZW5lcmljYWxseS4gVGhhdCB3YXkgdGhlIG1hbgoJICBwYWdlIGlzIHRoZSBzYW1lIGZvciBhbGwgYXJjaGl0ZWN0dXJlcyBhbmQgcGFja2FnZXJzIGhhdmUgb25lCgkgIG11bHRpbGliIGlzc3VlIGxlc3MgdG8gZGVhbCB3aXRoLiBGaXhlcyAjNDM0OTI2LgoKMjAwNy0wNS0wMiAxNToxNDozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRml4IGRvY3VtZW50YXRpb24gYXMgc3BvdHRlZCBieSByZyBvbiBJUkMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgRml4IGRvY3VtZW50YXRpb24gYXMgc3BvdHRlZCBieSByZyBvbiBJUkMuCgoyMDA3LTA0LTI5IDE3OjM2OjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuYzogSW1wcm92ZSBkb2NzIGZvciBnc3RfZWxlbWVudF97bGluayx1bmxpbmt9LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgSW1wcm92ZSBkb2NzIGZvciBnc3RfZWxlbWVudF97bGluayx1bmxpbmt9LgoKMjAwNy0wNC0yOSAxNDowNDoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGRvY3MvUkVBRE1FOgoJICB1cGRhdGUgUkVBRE1FCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgUkVBRE1FCgoyMDA3LTA0LTI4IDExOjI5OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgVHlwbyBmaXhlczsgbWlub3IgZG9jcyBhZGRpdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3R1cmkuYzoKCSAgKiBnc3QvZ3N0dXJpLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBUeXBvIGZpeGVzOyBtaW5vciBkb2NzIGFkZGl0aW9uLgoKMjAwNy0wNC0yNyAwODozMDo1OSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQVBJOiBBZGQgZ3N0X3VyaV9wcm90b2NvbF9pc19zdXBwb3J0ZWQoKSwgd2hpY2ggY2hlY2tzIGlmIGFuIHNpbmsgb3Igc3JjIHRoYXQgc3VwcG9ydHMgYSBnaXZlbiBVUkkgcHJvdG9jb2wgZXhpc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1cmkuYzogKGdldF9lbGVtZW50X2ZhY3Rvcmllc19mcm9tX3VyaV9wcm90b2NvbCksCgkgIChnc3RfdXJpX3Byb3RvY29sX2lzX3N1cHBvcnRlZCksIChnc3RfZWxlbWVudF9tYWtlX2Zyb21fdXJpKToKCSAgKiBnc3QvZ3N0dXJpLmg6CgkgIEFQSTogQWRkIGdzdF91cmlfcHJvdG9jb2xfaXNfc3VwcG9ydGVkKCksIHdoaWNoIGNoZWNrcyBpZiBhbiBzaW5rCgkgIG9yIHNyYyB0aGF0IHN1cHBvcnRzIGEgZ2l2ZW4gVVJJIHByb3RvY29sIGV4aXN0cy4KCjIwMDctMDQtMjcgMDc6MzQ6MTAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBTZXQgdGhlIGxvY2F0aW9uIHRvIE5VTEwgaWYgImZpbGU6Ly8iIGlzIHNldCBhcyBVUkkuIE90aGVyd2lzZSBzb21lIHJhbmRvbSBwcmV2aW91cyBVUkkgd291bGQgc3RpbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3VyaV9zZXRfdXJpKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY191cmlfc2V0X3VyaSk6CgkgIFNldCB0aGUgbG9jYXRpb24gdG8gTlVMTCBpZiAiZmlsZTovLyIgaXMgc2V0IGFzIFVSSS4gT3RoZXJ3aXNlCgkgIHNvbWUgcmFuZG9tIHByZXZpb3VzIFVSSSB3b3VsZCBzdGlsbCBiZSBzZXQgaWYgImZpbGU6Ly8iIGlzCgkgIHNldCBvbiBhbiBhbHJlYWR5IHVzZWQgZmlsZXNpbmsvZmlsZXNyYy4KCjIwMDctMDQtMjcgMDc6Mjc6MzYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBTcGVjaWFsIGNhc2UgdGhlICJmaWxlOi8vIiBVUkkgYXMgYXMgdGhpcyBpcyB1c2VkIGJ5IHNvbWUgYXBwbGljYXRpb25zIHRvIHRlc3Qgd2l0aCBnc3RfZWxlbWVudF9tYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3VyaV9zZXRfdXJpKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY191cmlfc2V0X3VyaSk6CgkgIFNwZWNpYWwgY2FzZSB0aGUgImZpbGU6Ly8iIFVSSSBhcyBhcyB0aGlzIGlzIHVzZWQgYnkgc29tZQoJICBhcHBsaWNhdGlvbnMgdG8gdGVzdCB3aXRoIGdzdF9lbGVtZW50X21ha2VfZnJvbV91cmkgaWYgdGhlcmUncwoJICBhbiBlbGVtZW50IHRoYXQgc3VwcG9ydHMgdGhlIFVSSSBwcm90b2NvbC4KCSAgQWxzbyBtb3ZlIHRoZSBnX3BhdGhfaXNfYWJzb2x1dGUoKSBjaGVjayBmb3IgdGhlIGxvY2F0aW9uIHBhcnQKCSAgb2YgdGhlIFVSSSB0byBhbHNvIGNoZWNrIHRoaXMgZm9yICJmaWxlOi8vbG9jYWxob3N0L2JsYSIgVVJJcy4KCjIwMDctMDQtMjYgMTA6MDA6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBnc3RfYnVmZmVyX3RyeV9uZXdfYW5kX2FsbG9jKCkgcGx1cyB1bml0IHRlc3QgKCM0MzE5NDApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfdHJ5X25ld19hbmRfYWxsb2MpOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfYnVmZmVyX3N1aXRlKToKCSAgQVBJOiBhZGQgZ3N0X2J1ZmZlcl90cnlfbmV3X2FuZF9hbGxvYygpIHBsdXMgdW5pdCB0ZXN0ICgjNDMxOTQwKS4KCjIwMDctMDQtMjYgMDc6MzI6MDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS4qOiBJbXBsZW1lbnQgbm8tbW1hcCBhbHRlcm5hdGl2ZSBmb3IgcmVnaXN0cnkgcmVhZGluZy4gRG8gY29kZSBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NhY2hlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBJbXBsZW1lbnQgbm8tbW1hcCBhbHRlcm5hdGl2ZSBmb3IgcmVnaXN0cnkgcmVhZGluZy4gRG8gY29kZSBjbGVhbnVwcy4KCSAgQWRkIG1vcmUgY29tbWVudHMgYWJvdXQgYXZvaWRpbmcgc3RyZHVwcyBmb3IgYWxsIHRleHQgZGF0YS4gQ29tbWVudHMKCSAgd2VsY29tZS4KCjIwMDctMDQtMjUgMTI6MzA6MjcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oIChHc3RCaW5hcnlQbHVnaW5FbGVtZW50LAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaCAoR3N0QmluYXJ5UGx1Z2luRWxlbWVudCwKCSAgR3N0QmluYXJ5UGx1Z2luRmVhdHVyZSwgX0dzdEJpbmFyeUVsZW1lbnRGYWN0b3J5LCBwbHVnaW5fZmVhdHVyZSwKCSAgR3N0QmluYXJ5RWxlbWVudEZhY3RvcnksIF9Hc3RCaW5hcnlUeXBlRmluZEZhY3RvcnksIHBsdWdpbl9mZWF0dXJlKToKCSAgQ29tbWVudCBzdHJ1Y3RzIGFuZCByZWZvcm1hdCB0byBmaXggdGhlIGJ1aWxkICh0aGF0IHN0dWZmIHNob3VsZCBnbwoJICBpbnRvIGEgcHJpdi4gaGVhZGVyKS4KCjIwMDctMDQtMjUgMTE6NDQ6MjkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS4qOiBSZWZhY3RvciBzbyB0aGF0IHdlIGNhbiBpbXBsZW1lbnQgbXVsdGlwbGUgZmVhdHVyZXMuIEFkZCBzdXBwb3J0IGZvcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgUmVmYWN0b3Igc28gdGhhdCB3ZSBjYW4gaW1wbGVtZW50IG11bHRpcGxlIGZlYXR1cmVzLiBBZGQgc3VwcG9ydCBmb3IKCSAgVHlwZUZpbmRGYWN0b3J5IGZlYXR1cmVzLgoKMjAwNy0wNC0yNCAwNjoxNDozNSArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxQZXRlci5LamVsbGVyc3RlZHRAYXhpcy5jb20+CgoJICBjb25maWd1cmUuYWM6IEZpeCBBTV9DT05ESVRJT05BTChHU1RfRElTQUJMRV9HU1RfREVCVUcsLi4uKSBhbmQgdXBkYXRlIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxQZXRlci5LamVsbGVyc3RlZHRAYXhpcy5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICBGaXggQU1fQ09ORElUSU9OQUwoR1NUX0RJU0FCTEVfR1NUX0RFQlVHLC4uLikgYW5kIHVwZGF0ZSBjb21tZW50LgoKMjAwNy0wNC0yMyAwNzozMDozOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBGaXggYnVpbGQgd2l0aCAtLWdzdC1kaXNhYmxlLWdzdC1kZWJ1ZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGl0ZXJhdG9yX2FjdGl2YXRlX2ZvbGRfd2l0aF9yZXN5bmMpLCAoZ3N0X2Jpbl9jb250aW51ZV9mdW5jKSwKCSAgKGJpbl9oYW5kbGVfYXN5bmNfZG9uZSksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBGaXggYnVpbGQgd2l0aCAtLWdzdC1kaXNhYmxlLWdzdC1kZWJ1ZwoKMjAwNy0wNC0yMSAxMzoyNzoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBNYWtlIHN1cmUgc3RyZWFtaW5nIGhhcyBmaW5pc2hlZCBiZWZvcmUgY2FsbGluZyB0aGUgOjpzdG9wKCkgdmZ1bmMsIHNpbmNlIHRoYXQgdmZ1bi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9hY3RpdmF0ZSk6CgkgIE1ha2Ugc3VyZSBzdHJlYW1pbmcgaGFzIGZpbmlzaGVkIGJlZm9yZSBjYWxsaW5nIHRoZSA6OnN0b3AoKSB2ZnVuYywKCSAgc2luY2UgdGhhdCB2ZnVuYyBtaWdodCBjbGVhciBzdGF0ZSB3aGljaCBpcyBiZWluZyB1c2VkIGluIHRoZQoJICBzdHJlYW1pbmcgdGhyZWFkLiBUaGlzIGZpeGVzIGEgcmFjZSB0aGF0IGNhdXNlZCBjcmFzaGVzIGluCgkgIGF1ZGlvcmVzYW1wbGUgd2hlbiBzaHV0dGluZyBkb3duIGEgcGlwZWxpbmUgKCM0MjAxMDYpLgoKMjAwNy0wNC0yMCAwODo1Mzo0MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogVGhhdCB3YXMgb25lIGJ5dGUgbWlzc2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgVGhhdCB3YXMgb25lIGJ5dGUgbWlzc2luZy4KCjIwMDctMDQtMjAgMDg6Mzk6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIDJuZCBhdHRlbXB0IHRvIGhhdmUgYSB4bWwtbGVzcyBidWlsZCBhcyBhIGpvaW5lZCBlZmZvcnQgb2YgIzQxMzEyMyBhbmQgIzQyMTQ4MC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpLAoJICAoZ3N0X3NpZ25hbF9vYmplY3RfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAybmQgYXR0ZW1wdCB0byBoYXZlIGEgeG1sLWxlc3MgYnVpbGQgYXMgYSBqb2luZWQgZWZmb3J0IG9mICM0MTMxMjMKCSAgYW5kICM0MjE0ODAuCgoyMDA3LTA0LTIwIDA4OjIxOjE5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDogQWRkZWQgb3BlbiBpc3N1ZXMvdGhvdWdodHMgdG8gZHJhZnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OgoJICBBZGRlZCBvcGVuIGlzc3Vlcy90aG91Z2h0cyB0byBkcmFmdC4KCjIwMDctMDQtMTkgMTQ6MzI6NDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9wYXJzZS86IFVwZGF0ZSB0aGUgcHJlYnVpbGQgcGFyc2VyIHNvdXJjZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnRhYi5wcmUuYzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci50YWIucHJlLmg6CgkgICogZ3N0L3BhcnNlL2xleC5fZ3N0X3BhcnNlX3l5LnByZS5jOgoJICBVcGRhdGUgdGhlIHByZWJ1aWxkIHBhcnNlciBzb3VyY2VzLgoKMjAwNy0wNC0xOSAxNDoyMzoyNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3BhcnNlL01ha2VmaWxlLmFtOiBBbmQgbm93IGZpeCB0aGUgYnVpbGRpbmcgb2YgdGhlIGZsZXggc291cmNlcy4gTm93IGV2ZXJ5dGhpbmcgc2hvdWxkIHdvcmsgYXMgZXhwZWN0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgQW5kIG5vdyBmaXggdGhlIGJ1aWxkaW5nIG9mIHRoZSBmbGV4IHNvdXJjZXMuIE5vdyBldmVyeXRoaW5nIHNob3VsZAoJICB3b3JrIGFzIGV4cGVjdGVkLgoKMjAwNy0wNC0xOSAxNDowNjo1MiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3BhcnNlL01ha2VmaWxlLmFtOiBOb3cgaG9wZWZ1bGx5IGZpeCB0aGUgYnVpbGQgZmFpbHVyZXMgYnkgc2V0dGluZyBwcm9wZXIgcnVsZSBkZXBlbmRlbmNpZXMgYW5kIG1vdmluZyBpbnN0ZWFkIG9mLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgTm93IGhvcGVmdWxseSBmaXggdGhlIGJ1aWxkIGZhaWx1cmVzIGJ5IHNldHRpbmcgcHJvcGVyIHJ1bGUKCSAgZGVwZW5kZW5jaWVzIGFuZCBtb3ZpbmcgaW5zdGVhZCBvZiBjb3B5aW5nLgoKMjAwNy0wNC0xOSAxMDo0MzoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvYmVuY2htYXJrcy86IFRvdGFsIGxpY2Vuc2lmaWNhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmdudXBsb3Q6CgkgICogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LnNjbToKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuZ251cGxvdDoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuc2NtOgoJICBUb3RhbCBsaWNlbnNpZmljYXRpb24uCgoyMDA3LTA0LTE5IDEwOjIyOjI5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvcGFyc2UvTWFrZWZpbGUuYW06IEZpeCB0aGUgYnVpbGQgYnkgY29ycmVjdGluZyB0aGUgcnVsZSB0aGF0IGdhdmUgd3JvbmcgZmlsZXMgdG8gZmxleC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBGaXggdGhlIGJ1aWxkIGJ5IGNvcnJlY3RpbmcgdGhlIHJ1bGUgdGhhdCBnYXZlIHdyb25nIGZpbGVzIHRvIGZsZXguCgoyMDA3LTA0LTE5IDA4OjQwOjMzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9iZW5jaG1hcmtzLzogQ2hhbmdlIGxpY2VuY2UgdG8gTEdQTCBhcyBncmFudGVkIGJ5IEJlbmphbWluIGFuZCBBbmR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuYzoKCSAgQ2hhbmdlIGxpY2VuY2UgdG8gTEdQTCBhcyBncmFudGVkIGJ5IEJlbmphbWluIGFuZCBBbmR5LgoKMjAwNy0wNC0xOSAwNjoxODoyNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3BhcnNlL01ha2VmaWxlLmFtOiBBZGQgY29ycmVjdCBncmFtbWFyLnRhYi5oIGRlcGVuZGVuY3kgaWYgY29tcGlsaW5nIHdpdGhvdXQgbmV3IGVub3VnaCBmbGV4LiBGaXhlcyAjNDMxMTUwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIEFkZCBjb3JyZWN0IGdyYW1tYXIudGFiLmggZGVwZW5kZW5jeSBpZiBjb21waWxpbmcgd2l0aG91dCBuZXcgZW5vdWdoCgkgIGZsZXguIEZpeGVzICM0MzExNTAuCgoyMDA3LTA0LTE4IDEzOjM0OjQ4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvTWFrZWZpbGUuYW06IEZpeCB0eXBvIGFuZCB1c2Ugb3V0ZGF0ZWQgc291cmNlcyBpZiB0aGUgZmxleC9iaXNvbiBzb3VyY2VzIGFyZSBuZXdlciB0aGFuIHRoZSBwcmVnZW5lcmF0ZWQgb24uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBGaXggdHlwbyBhbmQgdXNlIG91dGRhdGVkIHNvdXJjZXMgaWYgdGhlIGZsZXgvYmlzb24gc291cmNlcyBhcmUgbmV3ZXIKCSAgdGhhbiB0aGUgcHJlZ2VuZXJhdGVkIG9uZXMgYnV0IGZsZXggaXMgdG9vIG9sZC4gUHJpbnQgYSB3YXJuaW5nIGluCgkgIHRoYXQgY2FzZS4gVGhpcyBzaG91bGQgZml4IHRoZSBidWlsZCBvbiB0aGUgYnVpbGQgYm90LgoKMjAwNy0wNC0xOCAxMjozNDo1MSArMDAwMCAgTWFyYy1BbmRyZSBMdXJlYXUgPG1hcmNhbmRyZS5sdXJlYXVAZ21haWwuY29tPgoKCSAgZ3N0L3BhcnNlLzogTWFrZSB0aGUgcGFyc2VyIHJlZW50cmFudCBhbmQgcmVjdXJzaXZlbHkgY2FsbGFibGUuIFRoaXMgcmVxdWlyZXMgZmxleCA+PSAyLjUuMzEsIGZvciBvbGRlciB2ZXJzaW9ucyBwcmVnLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyYy1BbmRyZSBMdXJlYXUgPG1hcmNhbmRyZSBkb3QgbHVyZWF1IGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogZ3N0L3BhcnNlL3BhcnNlLmw6CgkgIE1ha2UgdGhlIHBhcnNlciByZWVudHJhbnQgYW5kIHJlY3Vyc2l2ZWx5IGNhbGxhYmxlLiBUaGlzIHJlcXVpcmVzIGZsZXgKCSAgPj0gMi41LjMxLCBmb3Igb2xkZXIgdmVyc2lvbnMgcHJlZ2VuZXJhdGVkIHNvdXJjZXMgYXJlIHVzZWQgYXMgd2UKCSAgY2FuJ3QgYnVtcCB0aGUgYnVpbGQgZGVwZW5kZW5jeS4gRmluYWxseSBmaXhlcyAjMzQ5MTgwLgoJICAqIGdzdC9nc3RwYXJzZS5jOiAoZ3N0X3BhcnNlX2xhdW5jaCk6CgkgIERyb3AgdGhlIEhBVkVfTVRfU0FWRV9GTEVYICNpZmRlZnMgYXMgd2UgYWx3YXlzIHVzZSBhIG5ldyBlbm91Z2ggZmxleAoJICBub3cgYW55d2F5LgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnRhYi5wcmUuYzogKF9fZ3N0X3BhcnNlX3N0cmR1cCksCgkgIChfX2dzdF9wYXJzZV9zdHJmcmVlKSwgKF9fZ3N0X3BhcnNlX2xpbmtfbmV3KSwKCSAgKF9fZ3N0X3BhcnNlX2xpbmtfZnJlZSksIChfX2dzdF9wYXJzZV9jaGFpbl9uZXcpLAoJICAoX19nc3RfcGFyc2VfY2hhaW5fZnJlZSksIChTRVRfRVJST1IpLCAoWVlQUklOVEYpLAoJICAoZ3N0X3BhcnNlX2VsZW1lbnRfc2V0KSwgKGdzdF9wYXJzZV9mcmVlX2xpbmspLAoJICAoZ3N0X3BhcnNlX2ZvdW5kX3BhZCksIChnc3RfcGFyc2VfcGVyZm9ybV9kZWxheWVkX2xpbmspLAoJICAoZ3N0X3BhcnNlX3BlcmZvcm1fbGluayksICh5eXRuYW1lcnIpLCAoeXlzeW50YXhfZXJyb3IpLCAoeXllcnJvciksCgkgIChfZ3N0X3BhcnNlX2xhdW5jaCk6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIudGFiLnByZS5oOgoJICAqIGdzdC9wYXJzZS9sZXguX2dzdF9wYXJzZV95eS5wcmUuYzogKFBSSU5UKSwgKHl5X2dldF9uZXh0X2J1ZmZlciksCgkgICh5eV9nZXRfcHJldmlvdXNfc3RhdGUpLCAoeXlfdHJ5X05VTF90cmFucyksIChpbnB1dCksCgkgIChfZ3N0X3BhcnNlX3l5cmVzdGFydCksIChfZ3N0X3BhcnNlX3l5X3N3aXRjaF90b19idWZmZXIpLAoJICAoX2dzdF9wYXJzZV95eV9sb2FkX2J1ZmZlcl9zdGF0ZSksIChfZ3N0X3BhcnNlX3l5X2NyZWF0ZV9idWZmZXIpLAoJICAoX2dzdF9wYXJzZV95eV9kZWxldGVfYnVmZmVyKSwgKF9nc3RfcGFyc2VfeXlfaW5pdF9idWZmZXIpLAoJICAoX2dzdF9wYXJzZV95eV9mbHVzaF9idWZmZXIpLCAoX2dzdF9wYXJzZV95eXB1c2hfYnVmZmVyX3N0YXRlKSwKCSAgKF9nc3RfcGFyc2VfeXlwb3BfYnVmZmVyX3N0YXRlKSwKCSAgKF9nc3RfcGFyc2VfeXllbnN1cmVfYnVmZmVyX3N0YWNrKSwgKF9nc3RfcGFyc2VfeXlfc2Nhbl9idWZmZXIpLAoJICAoX2dzdF9wYXJzZV95eV9zY2FuX3N0cmluZyksIChfZ3N0X3BhcnNlX3l5X3NjYW5fYnl0ZXMpLAoJICAoeXlfZmF0YWxfZXJyb3IpLCAoX2dzdF9wYXJzZV95eWdldF9leHRyYSksCgkgIChfZ3N0X3BhcnNlX3l5Z2V0X2xpbmVubyksIChfZ3N0X3BhcnNlX3l5Z2V0X2NvbHVtbiksCgkgIChfZ3N0X3BhcnNlX3l5Z2V0X2luKSwgKF9nc3RfcGFyc2VfeXlnZXRfb3V0KSwKCSAgKF9nc3RfcGFyc2VfeXlnZXRfbGVuZyksIChfZ3N0X3BhcnNlX3l5Z2V0X3RleHQpLAoJICAoX2dzdF9wYXJzZV95eXNldF9leHRyYSksIChfZ3N0X3BhcnNlX3l5c2V0X2xpbmVubyksCgkgIChfZ3N0X3BhcnNlX3l5c2V0X2NvbHVtbiksIChfZ3N0X3BhcnNlX3l5c2V0X2luKSwKCSAgKF9nc3RfcGFyc2VfeXlzZXRfb3V0KSwgKF9nc3RfcGFyc2VfeXlnZXRfZGVidWcpLAoJICAoX2dzdF9wYXJzZV95eXNldF9kZWJ1ZyksIChfZ3N0X3BhcnNlX3l5Z2V0X2x2YWwpLAoJICAoX2dzdF9wYXJzZV95eXNldF9sdmFsKSwgKF9nc3RfcGFyc2VfeXlsZXhfaW5pdCksCgkgICh5eV9pbml0X2dsb2JhbHMpLCAoX2dzdF9wYXJzZV95eWxleF9kZXN0cm95KSwgKHl5X2ZsZXhfc3RybmNweSksCgkgICh5eV9mbGV4X3N0cmxlbiksIChfZ3N0X3BhcnNlX3l5YWxsb2MpLCAoX2dzdF9wYXJzZV95eXJlYWxsb2MpLAoJICAoX2dzdF9wYXJzZV95eWZyZWUpOgoJICBJZiB0aGUgaW5zdGFsbGVkIGZsZXggdmVyc2lvbiBpcyB0b28gb2xkIHVzZSBwcmUtZ2VuZXJhdGVkIHBhcnNlcgoJICBzb3VyY2VzLiBUaGVzZSBwcmUtZ2VuZXJhdGVkIHBhcnNlciBzb3VyY2VzIGFyZSBhbHdheXMgdXBkYXRlZCB3aGVuCgkgIHRoZSBhY3R1YWwgZmxleC9iaXNvbiBzb3VyY2VzIGNoYW5nZSBidXQgcmVxdWlyZSBldmVyeWJvZHkgd2hvIHdhbnRzCgkgIHRvIGNoYW5nZSBzb21ldGhpbmcgaW4gdGhlIHBhcnNlciB0byBoYXZlIGZsZXggPj0gMi41LjMxIGluc3RhbGxlZC4KCjIwMDctMDQtMTggMTA6NTg6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIE1ha2UgLS1kaXNhYmxlLW5scyB0byB3b3JrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9tNC9nc3QtZ2V0dGV4dC5tNDoKCSAgKiBnc3QvZ3N0LWkxOG4tbGliLmg6CgkgIE1ha2UgLS1kaXNhYmxlLW5scyB0byB3b3JrCgoyMDA3LTA0LTE3IDE2OjEyOjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNvbmZpZy5oLmluOiBSZXZlcnQgcHJldmlvdXMgY2hhbmdlIHRoYXQgYnJva2UgdGhlIGJ1aWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIFJldmVydCBwcmV2aW91cyBjaGFuZ2UgdGhhdCBicm9rZSB0aGUgYnVpbGQuCgoyMDA3LTA0LTE3IDE0OjM2OjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgTUFOUEFUSCBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1BTlBBVEggZml4CgoyMDA3LTA0LTE3IDEwOjQ2OjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBEcm9wIGxpYnhtbDIgZGVwZW5kZW5jeSB3aGVuIGJ1aWxkaW5nIHdpdGgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIERyb3AgbGlieG1sMiBkZXBlbmRlbmN5IHdoZW4gYnVpbGRpbmcgd2l0aAoJICAtLWVuYWJsZS1iaW5hcnktcmVnaXN0cnkgLS1kaXNhYmxlLWxvYWRzYXZlCgoyMDA3LTA0LTE2IDIxOjQxOjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdHJlYW1lci5kb2FwOgoJICBmaXggdGhlIHJlbGVhc2UgZGF0ZSBpbiB0aGUgZG9hcCBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdGhlIHJlbGVhc2UgZGF0ZSBpbiB0aGUgZG9hcCBmaWxlCgoyMDA3LTA0LTE2IDE5OjQ1OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lio6IFJlbW92ZSB1bm5lY2Vzc2FyeSA8c3lzL21tYW4uaD4gaW5jbHVkZSB3aGljaCBicm9rZSB0aGUgd2luMzIgYnVpbGQgd2l0aCBNaW5nVzsgbW92ZSBpbmNsdWRlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZV9jYWNoZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBSZW1vdmUgdW5uZWNlc3NhcnkgPHN5cy9tbWFuLmg+IGluY2x1ZGUgd2hpY2ggYnJva2UgdGhlIHdpbjMyIGJ1aWxkCgkgIHdpdGggTWluZ1c7IG1vdmUgaW5jbHVkZXMgZnJvbSBoZWFkZXIgZmlsZSB0byAuYyBmaWxlLCBldmVuIGlmIHRoZQoJICBoZWFkZXIgZmlsZSBpc24ndCBpbnN0YWxsZWQ7IHVzZSBnX3N0cmVycm9yKCkgd2hlcmUgVVRGLTggc3RyaW5ncwoJICBhcmUgZXhwZWN0ZWQsIHN1Y2ggYXMgaW4gR1NUX0RFQlVHIG1lc3NhZ2VzLgoKMjAwNy0wNC0xMyAxNToxNTo1MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBSZW1vdmUgYm9ndXMgYWRkaXRpb24gZm9yIEFQSSBJIGRpZG4ndCBlbmQgdXAga2VlcGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgUmVtb3ZlIGJvZ3VzIGFkZGl0aW9uIGZvciBBUEkgSSBkaWRuJ3QgZW5kIHVwIGtlZXBpbmcuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIE1lbnRpb24gU2luY2U6IDAuMTAuMTMgaW4gdGhlIGRvY3VtZW50YXRpb24uCgkgIEFkZCB0aGUgQVBJIGtleXdvcmQgdG8gdGhlIHByZXZpb3VzIENoYW5nZUxvZyBlbnRyeS4KCjIwMDctMDQtMTMgMTQ6MTg6NDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgQWxsb3cgYmFzZXNyYyBkZXJpdmVkIGNsYXNzZXMgdG8gZXhlY3V0ZSBzZWVrcyBpbiBvdGhlciBmb3JtYXRzIGJ5IHByb3ZpZGluZyBhIHByZXBhcmVfc2Vla19zZWdtZW50IHZtZXRob2QuIFN1Yi1jbGFzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9wcmVwYXJlX3NlZWtfc2VnbWVudCksCgkgIChnc3RfYmFzZV9zcmNfcHJlcGFyZV9zZWVrX3NlZ21lbnQpLCAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2Vlayk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIEFsbG93IGJhc2VzcmMgZGVyaXZlZCBjbGFzc2VzIHRvIGV4ZWN1dGUgc2Vla3MgaW4gb3RoZXIgZm9ybWF0cwoJICBieSBwcm92aWRpbmcgYSBwcmVwYXJlX3NlZWtfc2VnbWVudCB2bWV0aG9kLiBTdWItY2xhc3NlcyBjYW4gY2hvb3NlCgkgIHRvIHByZXBhcmUgdGhlIEdzdFNlZ21lbnQgaW4gYW55IGZvcm1hdCB0aGF0IHRoZWlyIHBlcmZvcm1fc2VlayBtZXRob2QKCSAgd2lsbCBiZSBhYmxlIHRvIHVuZGVyc3RhbmQuIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHByb3ZpZGVzIHRoZQoJICBvbGQgYmVoYXZpb3VyIG9mIGF0dGVtcHRpbmcgdG8gY29udmVydCB0aGUgc2VlayBvZmZzZXRzIHRvIHRoZQoJICBjb25maWd1cmVkIG5hdGl2ZSBmb3JtYXQuCgoyMDA3LTA0LTEzIDExOjUzOjAwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IERvbid0IG91dHB1dCB0aGUgc2FtZSBkZWJ1ZyBzdGF0ZW1lbnQgdHdpY2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyk6CgkgIERvbid0IG91dHB1dCB0aGUgc2FtZSBkZWJ1ZyBzdGF0ZW1lbnQgdHdpY2UuCgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl90cnlfdG9fbWVyZ2VfdXApLAoJICAoZ3N0X2FkYXB0ZXJfcGVlayksIChnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcik6CgkgIE9wdGltaXNlIHRoZSBjYXNlIHdoZXJlIHdlIGhhdmUgYnVmZmVycyBhdCB0aGUgaGVhZCBvZiB0aGUgcXVldWUgdGhhdAoJICBjYW4gYmUgam9pbmVkIHF1aWNrbHkgKGJlY2F1c2UgdGhleSdyZSBjb250aWd1b3VzIHN1Yi1idWZmZXJzKSBieQoJICBtZXJnaW5nIHRoZW0gdG9nZXRoZXIgcmF0aGVyIHRoYW4gY29weWluZyBkYXRhIG91dCBpbnRvIG5ldyBtZW1vcnkuCgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIEZpeCBhIGxlYWsgaW4gYW4gZXJyb3IgcGF0aCBmb3IgcGFyc2VfbGF1bmNoLCBhbmQgYWRkIGEgY2hlY2sKCSAgZm9yIGl0IHRvIHRoZSB0ZXN0c3VpdGUuCgoyMDA3LTA0LTEzIDExOjIwOjQ4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBEb24ndCBkZWFkbG9jayB3aGVuIHJlbGVhc2luZyBhIHBhZCAtIGdzdF9wYWRfc2V0X2FjdGl2ZSBtYXkgdHJ5IGFuZCB0YWtlIHRoZSBtdWx0aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9yZWxlYXNlX3BhZCk6CgkgIERvbid0IGRlYWRsb2NrIHdoZW4gcmVsZWFzaW5nIGEgcGFkIC0gZ3N0X3BhZF9zZXRfYWN0aXZlIG1heSB0cnkKCSAgYW5kIHRha2UgdGhlIG11bHRpcXVldWUgbG9jayB0b28uCgoyMDA3LTA0LTEyIDEyOjU5OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVycm9yLio6IEFQSTogYWRkIEdTVF9DT1JFX0VSUk9SX0RJU0FCTEVEICgjMzkyODA0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6IChfZ3N0X2NvcmVfZXJyb3JzX2luaXQpOgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICBBUEk6IGFkZCBHU1RfQ09SRV9FUlJPUl9ESVNBQkxFRCAoIzM5MjgwNCkuCgoyMDA3LTA0LTEyIDEwOjMyOjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogZG9uJ3QgZ2V0IGVtcHR5IHBhdGhzIG9uIHRoZSBQQVRIIHZhcmlhYmxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGRvbid0IGdldCBlbXB0eSBwYXRocyBvbiB0aGUgUEFUSCB2YXJpYWJsZXMKCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfaXNfYWN0aXZlLCBnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKToKCSAgRG9uJ3QgZm9ybWF0IGZvciB0aGUgdW5jb21tb24gdGVybWluYWwgd2lkdGggb2YgODQgY2hhcmFjdGVycy4KCjIwMDctMDQtMDkgMTE6NTk6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBiYWNrIHRvIGhlYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gaGVhZAoKMjAwNy0wNC0wOSAwODoxNzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGRvbid0IGZvcm1hdCBmb3IgdGhlIHVuY29tbW9uIGVkaXRvciB3aWR0aCBvZiA4NCBjaGFyYWN0ZXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBmb3JtYXQgZm9yIHRoZSB1bmNvbW1vbiBlZGl0b3Igd2lkdGggb2YgODQgY2hhcmFjdGVycwoKMjAwNy0wNC0wNiAxMTo0ODoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBPbmx5IHRyeSB0byBzZWxlY3QgYSBkaWZmZXJlbnQgcGlwZWxpbmUgY2xvY2sgd2hlbiB3ZSB3ZW50IGJhY2sgdG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChyZXNldF9zdHJlYW1fdGltZSksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwgKGdzdF9waXBlbGluZV9zZXRfbmV3X3N0cmVhbV90aW1lKToKCSAgT25seSB0cnkgdG8gc2VsZWN0IGEgZGlmZmVyZW50IHBpcGVsaW5lIGNsb2NrIHdoZW4gd2Ugd2VudCBiYWNrIHRvCgkgIFBBVVNFRCBhbmQgbm90IHdoZW4gd2UgbWVyZWx5IGdvdCBmbHVzaGVkLgoKMjAwNy0wNC0wNSAxNjoxNzoyNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluOiBmcmFjdGlvbnMgYXJlIGJldHRlciBzdXBwb3J0ZWQgaW4gZ3N0cmVhbWVyIHRoYW4gcmFjdGlvbnMsIHNvIHN1Z2dlc3QgdXNpbmcgdGhvc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZnJhY3Rpb25zIGFyZSBiZXR0ZXIgc3VwcG9ydGVkIGluIGdzdHJlYW1lciB0aGFuIHJhY3Rpb25zLCBzbwoJICBzdWdnZXN0IHVzaW5nIHRob3NlLgoKMjAwNy0wNC0wNSAxMzo0OTo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9ubC5wbzoKCSAgdXBkYXRlIGR1dGNoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgZHV0Y2gKCjIwMDctMDQtMDUgMTM6NDY6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vOiBBZGRlZCBEYW5pc2ggdHJhbnNsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBTdWJtaXR0ZWQgYnk6IE1vZ2VucyBKYWVnZXIgPG1vZ2Vuc0BqYWVnZXIudGY+CgkgICogcG8vTElOR1VBUzoKCSAgKiBwby9kYS5wbzoKCSAgQWRkZWQgRGFuaXNoIHRyYW5zbGF0aW9uLgoKMjAwNy0wNC0wNSAxMToxNjowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRml4IGxlYWsgY2F1c2VkIHdoZW4gcmVmdXNpbmcgbmV3c2VnbWVudCBhZnRlciBFT1MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0X3VubG9ja2VkKSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpOgoJICBGaXggbGVhayBjYXVzZWQgd2hlbiByZWZ1c2luZyBuZXdzZWdtZW50IGFmdGVyIEVPUy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2Vfc2lua19pbml0KSwgKGdzdF9mYWtlX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mYWtlX3NpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9mYWtlX3NpbmtfcHJlcm9sbCksCgkgIChnc3RfZmFrZV9zaW5rX3JlbmRlciksIChnc3RfZmFrZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJICBBZGQgbnVtLWJ1ZmZlcnMgcHJvcGVydHkgdG8gbWFrZSB0aGUgZWxlbWVudCBnZW5lcmF0ZSBFT1MgYWZ0ZXIgYQoJICBjb25maWd1cmFibGUgYW1vdW50IG9mIGJ1ZmZlcnMuCgkgIEFQSTogZmFrZXNpbms6Om51bS1idWZmZXJzIHByb3BlcnR5LgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChmYWtlc2lua19zdWl0ZSk6CgkgIEZpeCBHc3RCdXMgbGVhayBpbiB0ZXN0LgoJICBUZXN0IGZvciBmYWtlc2luayBudW0tYnVmZmVycy4KCjIwMDctMDQtMDUgMTA6MTA6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IGFjY2VwdCBhbnl0aGluZyBhZnRlciBhbiBFT1MsIHJldHVybiBVTkVYUEVDVEVEIGluc3RlYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0X3VubG9ja2VkKSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCBhY2NlcHQgYW55dGhpbmcgYWZ0ZXIgYW4gRU9TLCByZXR1cm4gVU5FWFBFQ1RFRCBpbnN0ZWFkLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChmYWtlc2lua19zdWl0ZSk6CgkgIFVuaXQgdGVzdCBmb3IgbmV3IEVPUyBiZWhhdmlvdXIuCgoyMDA3LTA0LTA1IDEwOjA4OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogTWFrZSBwYWR0ZW1wbGF0ZXMgYWxzbyB3b3JrIHdoZW4gdGhleSBkb24ndCBjb250YWluICVzIG9yICVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3JlcXVlc3RfcGFkKToKCSAgTWFrZSBwYWR0ZW1wbGF0ZXMgYWxzbyB3b3JrIHdoZW4gdGhleSBkb24ndCBjb250YWluICVzIG9yICVkLgoKMjAwNy0wNC0wNSAxMDowNjoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEltcHJvdmUgX2FkanVzdF91bmxvY2tlZCgpIHNvIHRoYXQgaXQgb3ZlcmZsb3dzIGxlc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfYWRqdXN0X3VubG9ja2VkKSwKCSAgKGdzdF9jbG9ja191bmFkanVzdF91bmxvY2tlZCksIChnc3RfY2xvY2tfc2V0X2NhbGlicmF0aW9uKToKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgSW1wcm92ZSBfYWRqdXN0X3VubG9ja2VkKCkgc28gdGhhdCBpdCBvdmVyZmxvd3MgbGVzcy4KCSAgQWRkIGdzdF9jbG9ja191bmFkanVzdF91bmxvY2tlZCB0byBjb252ZXJ0IGZyb20gZXh0ZXJuYWwgdGltZSB0bwoJICBpbnRlcm5hbCB0aW1lIGJhc2VkIG9uIGNhbGlicmF0aW9uLgoJICBBZGQgc29tZSBtb3JlIGRlYnVnLgoJICBBUEk6IEdzdENsb2NrOjpnc3RfY2xvY2tfdW5hZGp1c3RfdW5sb2NrZWQoKQoKMjAwNy0wNC0wMyAxMTowMjo0MSArMDAwMCAgVG9tbWkgTXnDtmjDpG5lbiA8ZXh0LXRvbW1pLm15b2hhbmVuQG5va2lhLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBEZWFjdGl2YXRlIHBhZHMgYW5kIGZyZWUgR3N0U2luZ2xlUXVldWUgd2l0aCBnc3Rfc2luZ2xlX3F1ZXVlX2ZyZWUoKSB3aGVuIHJlbGVhc2luZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRvbW1pIE15w7Zow6RuZW4gPGV4dC10b21taSBkb3QgbXlvaGFuZW4gYXQgbm9raWEgZG90IGNvbT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9yZWxlYXNlX3BhZCk6CgkgIERlYWN0aXZhdGUgcGFkcyBhbmQgZnJlZSBHc3RTaW5nbGVRdWV1ZSB3aXRoIGdzdF9zaW5nbGVfcXVldWVfZnJlZSgpCgkgIHdoZW4gcmVsZWFzaW5nIHNpbmsgcGFkLiBGaXhlcyAjNDI1NDAwLgoKMjAwNy0wNC0wMiAxNDo0ODoxMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9keW5saW5rLnR4dDogTW9yZSB3b3JrIG9uIHByb3Bvc2FsIGZvciBuZXcgY29yZSBhcGkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHlubGluay50eHQ6CgkgIE1vcmUgd29yayBvbiBwcm9wb3NhbCBmb3IgbmV3IGNvcmUgYXBpLgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEFQSTogR1NUX0JBU0VfVFJBTlNGT1JNX0xPQ0svVU5MT0NLIGFkZGVkCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChvbl9vYmplY3RfY29udHJvbGxlZF9wcm9wZXJ0eV9jaGFuZ2VkKSwKCSAgKGdzdF9jb250cm9sbGVyX3N5bmNfdmFsdWVzKSwKCSAgKGdzdF9jb250cm9sbGVyX3NldF9pbnRlcnBvbGF0aW9uX21vZGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICBMZXNzIHZlcmJvc2UgbG9nZ2luZyBhZGQgZG9jcyBmb3IgdW5pbXBsZW1lbnRlZCBwYXJ0cyBhbmQgY29ycmVjdGx5CgkgIHJldHVybiB3aGVuIHVzaW5nIHVuYXZhaWxhYmxlIHBhcnRzLgoKMjAwNy0wMy0yOSAxNjowNDo0NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0Y2xvY2suYzogTW92ZSBhbGwgdGhlIGRlYnVnIHRvIHRoZSBDTE9DSyBjYXRlZ29yeSwgYW5kIGFzc29jaWF0ZSBpdCB3aXRoIHRoZSBjbG9jayBvYmplY3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX3NldF9tYXN0ZXIpLCAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pOgoJICBNb3ZlIGFsbCB0aGUgZGVidWcgdG8gdGhlIENMT0NLIGNhdGVnb3J5LCBhbmQgYXNzb2NpYXRlIGl0IHdpdGgKCSAgdGhlIGNsb2NrIG9iamVjdC4KCjIwMDctMDMtMjkgMTU6NTM6MDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IE1ha2UgdGFrZV9idWZmZXIgYSBiaXQgcXVpY2tlciBieSByZW1vdmluZyByZWR1bmRhbnQgY2hlY2tzIGNhdXNlZCBieSBjYWxsaW5nIGdzdF9hZGFwdGVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIpOgoJICBNYWtlIHRha2VfYnVmZmVyIGEgYml0IHF1aWNrZXIgYnkgcmVtb3ZpbmcgcmVkdW5kYW50IGNoZWNrcwoJICBjYXVzZWQgYnkgY2FsbGluZyBnc3RfYWRhcHRlcl90YWtlLgoKMjAwNy0wMy0yOCAxODozODoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBEb24ndCBsZWFrIEdDb25kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9zaW5nbGVfcXVldWVfZnJlZSk6CgkgIERvbid0IGxlYWsgR0NvbmQuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6IChzZXR1cF9tdWx0aXF1ZXVlKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKG11bHRpcXVldWVfc3VpdGUpOgoJICBBZGQgc29tZSBkZWFkIHNpbXBsZSB1bml0IHRlc3RzIGZvciB0aGUgJ211bHRpcXVldWUnIGVsZW1lbnQKCSAgKHNvbWUgYml0cyBkb24ndCB3b3JrIHlldCBhbmQgYXJlIGRpc2FibGVkIGZvciBub3cpLgoKMjAwNy0wMy0yOCAxODoyNToxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IE1ha2UgZ3N0X2VsZW1lbnRfZ2V0X3JlcXVlc3RfcGFkKCkgY3JlYXRlIHJlcXVlc3QgcGFkcyBvbmx5IGZvciByZXF1ZXN0IHBhZCB0ZW1wbGF0ZXMgYW5kIG5vdCBmb3IsIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3JlcXVlc3RfcGFkKSwKCSAgKGdzdF9lbGVtZW50X2NsYXNzX2dldF9yZXF1ZXN0X3BhZF90ZW1wbGF0ZSk6CgkgIE1ha2UgZ3N0X2VsZW1lbnRfZ2V0X3JlcXVlc3RfcGFkKCkgY3JlYXRlIHJlcXVlc3QgcGFkcyBvbmx5IGZvcgoJICByZXF1ZXN0IHBhZCB0ZW1wbGF0ZXMgYW5kIG5vdCBmb3IsIHNheSwgc29tZXRpbWVzIHBhZCB0ZW1wbGF0ZXMuCgoyMDA3LTAzLTI4IDEzOjQ0OjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6IEFkZCBleGFtcGxlIHRoYXQgbmVlZHMgbW9yZSB0aGlua2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICBBZGQgZXhhbXBsZSB0aGF0IG5lZWRzIG1vcmUgdGhpbmtpbmcuCgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSAgTW9yZSB0aG91Z2h0cyBhYm91dCB3dHJhcHBlciBwbHVnaW5zLgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZW1iZWRkZWQudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDoKCSAgTW9yZSBkZXNpZ24gd29yay4KCjIwMDctMDMtMjUgMTU6MzM6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogT25seSBwdXNoIHRoZSBzZWdtZW50IGV2ZW50cyBpbiB0aGUgUExBWUlORyBzdGF0ZSBmb3IgbGl2ZSBzb3VyY2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBPbmx5IHB1c2ggdGhlIHNlZ21lbnQgZXZlbnRzIGluIHRoZSBQTEFZSU5HIHN0YXRlIGZvciBsaXZlIHNvdXJjZXMuCgoyMDA3LTAzLTIzIDE3OjUyOjE5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBNb2RpZnkgdGhlIGNsb2NrIGRpc3RyaWJ1dGlvbiBwYXRoIGluIFBBVVNFRC0+UExBWUlORyBzbyB0aGF0IHdlIG5ldmVyIGF0dGVtcHQgdG8gY2hvb3NlIGEgbmV3IGNsby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICBNb2RpZnkgdGhlIGNsb2NrIGRpc3RyaWJ1dGlvbiBwYXRoIGluIFBBVVNFRC0+UExBWUlORyBzbyB0aGF0IHdlCgkgIG5ldmVyIGF0dGVtcHQgdG8gY2hvb3NlIGEgbmV3IGNsb2NrIHVubGVzcyB3ZSdyZSBhY3R1YWxseSBsZWF2aW5nCgkgIHRoZSBQQVVTRUQgc3RhdGUgZm9yIHRoZSBmaXJzdCB0aW1lLiBUaGlzIHByZXZlbnRzIGNob29zaW5nIGEKCSAgZGlmZmVyZW50IGNsb2NrIHdoZW4gdGhlIHN0YXRlX2NoYW5nZSBnZXRzIGNhbGxlZCBmb3IgYSAybmQgdGltZSBkdWUKCSAgdG8gc29tZSBlbGVtZW50IGRvaW5nIGFuIGFzeW5jIHN0YXRlIGNoYW5nZS4KCjIwMDctMDMtMjIgMTg6Mjg6MDAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RwYWQuYzogUmV2ZXJ0IGxhc3QgY29tbWl0LiBUaGlzIG5lZWRzIHNvbWUgbW9yZSB0aG91Z2h0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfY2FwcyksIChnc3RfcGFkX2NvbmZpZ3VyZV9zaW5rKSwKCSAgKGdzdF9wYWRfY29uZmlndXJlX3NyYyksIChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKSwKCSAgKGdzdF9wYWRfY2hhaW5fdW5jaGVja2VkKSwgKGdzdF9wYWRfcHVzaCk6CgkgIFJldmVydCBsYXN0IGNvbW1pdC4gVGhpcyBuZWVkcyBzb21lIG1vcmUgdGhvdWdodHMuCgoyMDA3LTAzLTIyIDE3OjEyOjIzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cGFkLmM6IENoZWNrIGluIHNldF9jYXBzIGlmIHRoZSBjYXBzIGFyZSBjb21wYXRpYmxlIHdpdGggdGhlIHBhZCBhbmQgcmVtb3ZlIHR3byBmdW5jdGlvbnMgdGhhdCBhcmUgcmVkdW5kYW50IG4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfY2FwcyksIChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKSwKCSAgKGdzdF9wYWRfY2hhaW5fdW5jaGVja2VkKSwgKGdzdF9wYWRfcHVzaCk6CgkgIENoZWNrIGluIHNldF9jYXBzIGlmIHRoZSBjYXBzIGFyZSBjb21wYXRpYmxlIHdpdGggdGhlIHBhZCBhbmQgcmVtb3ZlCgkgIHR3byBmdW5jdGlvbnMgdGhhdCBhcmUgcmVkdW5kYW50IG5vdy4gRml4ZXMgIzQyMTU0My4KCjIwMDctMDMtMjIgMTI6MzE6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogVW5yZWYgc29tZSBtb3JlIHRvIG1ha2UgdmFsZ3JpbmQgaGFwcHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAobWl4ZWRfdGhyZWFkKSwgKG1peGVkX2FzeW5jX2NiKSwgKGdzdF9zeXN0ZW1jbG9ja19zdWl0ZSk6CgkgIFVucmVmIHNvbWUgbW9yZSB0byBtYWtlIHZhbGdyaW5kIGhhcHB5LgoKMjAwNy0wMy0yMiAxMTo1ODowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiBGaXggYW5veWluZyByZWdyZXNzaW9uIHRoYXQgc3Vydml2ZWQgYSBmZXcgcmVsZWFzZXMuIFdoZW4gYWRkaW5nIGFuIGFzeW5jIGVudHJ5IHdoaWxlIGJsb2NraW5nIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9qaXR0ZXJfdW5sb2NrZWQpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlciksCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfYXN5bmMpLCAoZ3N0X3N5c3RlbV9jbG9ja19pZF91bnNjaGVkdWxlKToKCSAgRml4IGFub3lpbmcgcmVncmVzc2lvbiB0aGF0IHN1cnZpdmVkIGEgZmV3IHJlbGVhc2VzLiBXaGVuIGFkZGluZyBhbgoJICBhc3luYyBlbnRyeSB3aGlsZSBibG9ja2luZyBvbiBhIHN5bmMgZW50cnksIHRoZSBzeW5jIGVudHJ5IHdpbGwgdW5ibG9jawoJICBidXQgc3RpbGwgYmUgYnVzeSwgc28gaXQgc2hvdWxkIGNvbnRpbnVlIHRvIHdhaXQgaW5zdGVhZCBvZiByZXR1cm5pbmcKCSAgX0JVU1kgdG8gdGhlIGFwcC4KCSAgQWRkIHNvbWUgY29tbWVudHMgaGVyZSBhbmQgdGhlcmUuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChtaXhlZF90aHJlYWQpLAoJICAobWl4ZWRfYXN5bmNfY2IpLCAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3N5c3RlbWNsb2NrX3N1aXRlKToKCSAgQWRkIHRlc3RjYXNlIGZvciB0aGlzLgoKMjAwNy0wMy0yMiAxMToxOTozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBIYW5kbGUgZXJyb3JzIGZyb20gdGhlIGNsb2NrIHN5bmMgYmV0dGVyLCBvbmx5IFVOU0NIRURVTEVEIGluZGljYXRlcyBhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIEhhbmRsZSBlcnJvcnMgZnJvbSB0aGUgY2xvY2sgc3luYyBiZXR0ZXIsIG9ubHkgVU5TQ0hFRFVMRUQgaW5kaWNhdGVzIGEKCSAgV1JPTkdfU1RBVEUgYW5kIGNhbiBzaWxlbnRseSBwYXVzZSB0aGUgdGFzay4gQWxsIG90aGVyIGNhc2VzIHNob3VsZAoJICBlcnJvciBvdXQuCgoyMDA3LTAzLTIyIDA4OjIzOjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBGaXggcG9zc2libGUgZGVhZGxvY2sgaWYgcGFkIGV2ZW50ZnVuYyBpcyBub3Qgc3BlY2lmaWVkLiAgRml4ZXMgIzQyMTE3Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiA8c3lyamFsYSBhdCBzY2kgZG90IGZpPgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgRml4IHBvc3NpYmxlIGRlYWRsb2NrIGlmIHBhZCBldmVudGZ1bmMgaXMgbm90IHNwZWNpZmllZC4gIEZpeGVzICM0MjExNzcuCgkgIEltcHJvdmUgZGVidWdnaW5nLgoKMjAwNy0wMy0yMSAxODoxMzo0MCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOiBGaXggc29tZSBlcnJvcnMgaW4gdGhlIHR5cGVmaW5kaW5nIGRvY3MgcG9pbnRlZCBvdXQgb24gaXJjLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIEZpeCBzb21lIGVycm9ycyBpbiB0aGUgdHlwZWZpbmRpbmcgZG9jcyBwb2ludGVkIG91dCBvbiBpcmMuCgoyMDA3LTAzLTIxIDE3OjUwOjQ2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBDbGFyaWZ5IEZJWE1FIGNvbW1lbnQgaW4gdGhlIGZhY2Ugb2YgaGF2aW5nIGFkZGVkIHVubG9ja19zdG9wKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIENsYXJpZnkgRklYTUUgY29tbWVudCBpbiB0aGUgZmFjZSBvZiBoYXZpbmcgYWRkZWQgdW5sb2NrX3N0b3AoKQoKMjAwNy0wMy0yMSAxMTo1MjowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogUHJlcGFyZSBmb3IgcmVsZWFzZSB3aGVyZSB3ZSB3YXJuIGFnYWluc3QgcG9zc2libGUgYXBwIGJyZWFrYWdlIGluIHRoZSBjYXNlIG9mIGxpdmUgcGlwZWxpbmVzIGFsb25nIHdpdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2dldF90eXBlKSwgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpOgoJICBQcmVwYXJlIGZvciByZWxlYXNlIHdoZXJlIHdlIHdhcm4gYWdhaW5zdCBwb3NzaWJsZSBhcHAgYnJlYWthZ2UgaW4gdGhlCgkgIGNhc2Ugb2YgbGl2ZSBwaXBlbGluZXMgYWxvbmcgd2l0aCBhbiBlbnYgdmFyIHRvIGVuYWJsZS9kaXNhYmxlIGxpdmUKCSAgcHJlcm9sbCBtb2RlIChHU1RfQ09NUEFUPVtuby1dbGl2ZS1wcmVyb2xsKS4KCjIwMDctMDMtMjAgMTQ6MjU6MTUgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmMgKGdzdF9pZGVudGl0eV9jaGVja19pbXBlcmZlY3Rfb2Zmc2V0KTogU28gd2Ugc2hvdWxkIHVzZSBjb3JyZWN0IGNvbnN0YW50cyBmb3IgY2hlY2tpbmcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jIChnc3RfaWRlbnRpdHlfY2hlY2tfaW1wZXJmZWN0X29mZnNldCk6CgkgIFNvIHdlIHNob3VsZCB1c2UgY29ycmVjdCBjb25zdGFudHMgZm9yIGNoZWNraW5nIGZvciBOb25lIG9mZnNldC4KCjIwMDctMDMtMjAgMTQ6MTc6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDogTWVudGlvbiB0aGUgZmFjdCB0aGF0IHRoZSBuZXdseSBzd2l0Y2hlZCBlbGVtZW50IHNob3VsZCBiZSBzZXQgdG8gYXQgbGVhc3QgUEFVU0VELgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSAgTWVudGlvbiB0aGUgZmFjdCB0aGF0IHRoZSBuZXdseSBzd2l0Y2hlZCBlbGVtZW50IHNob3VsZCBiZSBzZXQgdG8gYXQKCSAgbGVhc3QgUEFVU0VELgoKMjAwNy0wMy0yMCAxMDoyMzoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3QuYzogRml4IGNvbXBpbGF0aW9uIHdpdGggcmVnaXN0cnkgZGlzYWJsZWQgYXMgc3BvdHRlZCBieSBTYXVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIEZpeCBjb21waWxhdGlvbiB3aXRoIHJlZ2lzdHJ5IGRpc2FibGVkIGFzIHNwb3R0ZWQgYnkgU2F1ci4KCjIwMDctMDMtMjAgMDk6NDY6MTEgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBMb29rIGF0IHRoZSBwZW5kaW5nIHN0YXRlIHRvbyB3aGVuIHN5bmNpbmcgdGhlIGVsZW1lbnQgc3RhdGUgdG8gdGhlIHBhcmVudC4gRml4ZXMgIzQyMDEzMy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc3luY19zdGF0ZV93aXRoX3BhcmVudCk6CgkgIExvb2sgYXQgdGhlIHBlbmRpbmcgc3RhdGUgdG9vIHdoZW4gc3luY2luZyB0aGUgZWxlbWVudCBzdGF0ZSB0byB0aGUKCSAgcGFyZW50LiBGaXhlcyAjNDIwMTMzLgoKMjAwNy0wMy0xOSAxNTowMTo0MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9iYXNlLzogQWRkIDo6dW5sb2NrX3N0b3AgdG8gYmFzZXNyYyBhbmQgYmFzZXNpbmsuIFRoaXMgYWxsb3dzIGFuIG9wcG9ydHVuaXR5IGZvciBzdWItY2xhc3NlcyB0byBjb3JyZWN0bHkgY2wuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19zZXRfZmx1c2hpbmcpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc3JjX3VubG9ja19zdG9wKSwKCSAgKGdzdF9iYXNlX3NyY19kZWFjdGl2YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgQWRkIDo6dW5sb2NrX3N0b3AgdG8gYmFzZXNyYyBhbmQgYmFzZXNpbmsuIFRoaXMgYWxsb3dzIGFuIG9wcG9ydHVuaXR5CgkgIGZvciBzdWItY2xhc3NlcyB0byBjb3JyZWN0bHkgY2xlYXIgYW55IHN0YXRlIHRoZXkgc2V0IHRyeWluZyB0bwoJICB1bmxvY2ssIHN1Y2ggYXMgY2xlYXJpbmcgb3V0IHVubG9jayBjb21tYW5kcyBmcm9tIGEgY29tbWFuZCBmZC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfZmRfc2lua19yZW5kZXIpLCAoZ3N0X2ZkX3NpbmtfdW5sb2NrKSwKCSAgKGdzdF9mZF9zaW5rX3VubG9ja19zdG9wKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZkX3NyY19pbml0KSwgKGdzdF9mZF9zcmNfdW5sb2NrKSwgKGdzdF9mZF9zcmNfdW5sb2NrX3N0b3ApLAoJICAoZ3N0X2ZkX3NyY19jcmVhdGUpLCAoZ3N0X2ZkX3NyY19nZXRfc2l6ZSksIChnc3RfZmRfc3JjX2RvX3NlZWspOgoJICBJbXBsZW1lbnQgdW5sb2NrX3N0b3AgaW4gZmRzcmMgYW5kIGZkc2luay4KCSAgSW1wbGVtZW50IHNlZWtpbmcgaW4gZmRzcmMgd2hlbiBhIHNlZWthYmxlIGZkIGlzIHBhc3NlZCwgYXMgaW4KCSAgZ3N0LWxhdW5jaC0wLjEwIGZkc3JjICEgLi4uICEgeHZpbWFnZXNpbmsgPCAvcGF0aC90by9maWxlCgoyMDA3LTAzLTE5IDEyOjA3OjMyICswMDAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLmRhc2guZ3JvdXAuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogRml4IHBhZC1hZGRlZCBhbmQgcGFkLXJlbW92ZWQgc2lnbmFsIHNpZ25hdHVyZXMgc28gdGhhdCB0aGUgcGFkIHR5cGUgaXMgc3RhdGVkIGFzIEdTVF9UWVBFX1BBRCBpbnN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRXZhbiBOZW1lcnNvbiA8ZXZhbiBhdCBjb2V1cyBkYXNoIGdyb3VwIGRvdCBjb20+CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpOgoJICBGaXggcGFkLWFkZGVkIGFuZCBwYWQtcmVtb3ZlZCBzaWduYWwgc2lnbmF0dXJlcyBzbyB0aGF0IHRoZSBwYWQgdHlwZSBpcwoJICBzdGF0ZWQgYXMgR1NUX1RZUEVfUEFEIGluc3RlYWQgb2YgR19UWVBFX09CSkVDVC4gRml4ZXMgIzQxOTg1MS4KCjIwMDctMDMtMTkgMTA6NDc6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgbmV3IGVsZW1lbnQgZmllbGQgYW5kIG1ldGhvZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIG5ldyBlbGVtZW50IGZpZWxkIGFuZCBtZXRob2QuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5faW5pdCksCgkgIChiaW5fcmVtb3ZlX21lc3NhZ2VzKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksCgkgIChnc3RfYmluX3JlY2FsY19zdGF0ZSksIChnc3RfYmluX2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksCgkgIChnc3RfYmluX2NvbnRpbnVlX2Z1bmMpLCAoYmluX2J1c19oYW5kbGVyKSwKCSAgKGJpbl9wdXNoX3N0YXRlX2NvbnRpbnVlKSwgKGJpbl9oYW5kbGVfYXN5bmNfc3RhcnQpLAoJICAoYmluX2hhbmRsZV9hc3luY19kb25lKSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIE1ha2UgYXN5bmMgc3RhdGUgY2hhbmdlcyBhIGJpdCBzbWFydGVyIGJ5IHVzaW5nIG5ldyBBU1lOQ19TVEFSVCBhbmQKCSAgQVNZTkNfRE9ORSBtZXNzYWdlcy4gVGhpcyByZWR1Y2VzIHRoZSBudW1iZXIgb2YgdGltZXMgd2UgcnVuIHRoZSBzdGF0ZQoJICByZWNhbGN1bGF0aW9uIHRocmVhZC4KCSAgRG9uJ3QgY2hhbmdlIHN0YXRlIG9mIGVsZW1lbnQgd2l0aCBhIHBlbmRpbmcgQVNZTkNfU1RBUlQgbWVzc2FnZS4KCSAgRGVwcmVjYXRlIFNUQVRFX0RJUlRZIG1lc3NhZ2VzLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9pbml0KSwgKGdzdF9lbGVtZW50X3NlbmRfZXZlbnQpLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSksIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIEtlZXAgdGhlIHN0YXRlIHRoYXQgd2FzIGxhc3Qgc2V0IGJ5IHRoZSBhcHAgaW4gYSBuZXcgZWxlbWVudCBmaWVsZC4KCSAgRG9uJ3QgYWxsb3cgc3RhdGUgY2hhbmdlcyB3aGVuIGhhbmRsaW5nIGFuIGVsZW1lbnQgZXZlbnQuCgkgIFBvc3QgQVNZTkNfU1RBUlQgYW5kIEFTWU5DX0RPTkUgbWVzc2FnZXMuCgkgIENoYW5nZSBsb3N0X3N0YXRlIHNvIHRoYXQgd2UgZ28gdG8gUEFVU0VEIGFuZCB3YWl0IGZvciB0aGUgcGFyZW50IHRvIHNldAoJICB1cyB0byBQTEFZSU5HIGFnYWluIChzbyBsYXRlbmN5IGNhbGN1bGF0aW9uIGNhbiBiZSBwZXJmb3JtZWQpCgkgIEV4cG9ydCBnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUoKSBtZXRob2Qgc28gdGhhdCBzdWJjbGFzc2VzIGNhbiB1c2UgaXQuCgkgIEFQSTogZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKCkKCSAgQVBJOiBHU1RfU1RBVEVfVEFSR0VUCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksCgkgIChyZXNldF9zdHJlYW1fdGltZSksIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9waXBlbGluZV9oYW5kbGVfbWVzc2FnZSksIChnc3RfcGlwZWxpbmVfc2V0X25ld19zdHJlYW1fdGltZSk6CgkgIFVzaW5nIHRoZSBuZXcgQVNZTkNfU1RBUlQgbWVzc2FnZSB3ZSBjYW4gcmVzZXQgdGhlIGJhc2VfdGltZSB3aGVuCgkgIG5lZWRlZC4gVGhpcyBjYW4gdGhlbiBiZSB1c2VkIHRvIGltcGxlbWVudCBiYXNlX3RpbWUgcmVkaXN0cmlidXRpb24gaW4KCSAgZmx1c2hpbmcgc2Vla3Mgc28gdGhhdCB3ZSBjYW4gcmVtb3ZlIHRoZSBleHBsaWNpdCBzZWVrIGhhbmRsaW5nLgoJICBQZXJmb3JtIGxhdGVuY3kgcXVlcnkgYW5kIGNvbmZpZ3VyYXRpb24gd2hlbiBnb2luZyB0byBQTEFZSU5HLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBQb3N0IG5ldyBBU1lOQ19TVEFSVC9BU1lOQ19ET05FIG1lc3NhZ2VzLgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IHRlc3QgYmVjYXVzZSB0aGUgYmluIHdpbGwgbm90IHNldCB0aGUgYXN5bmMgZWxlbWVudCB0byBQTEFZSU5HIHJpZ2h0CgkgIGF3YXkuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAocG9wX2FzeW5jX2RvbmUpLCAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIHRoZSBtZXNzYWdlIGNoZWNrIGEgbGl0dGxlIHN0cm9uZ2VyLgoJICBIYW5kbGUgQVNZTkMgbWVzc2FnZXMuCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBFeHBlY3QgQVNZTkNfRE9ORSBtZXNzYWdlcy4KCjIwMDctMDMtMTkgMDk6NTU6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgQVNZTkNfU1RBUlQgYW5kIEFTWU5DX0RPTkUgbWVzc2FnZXMgdG8gcHJlcGFyZSBmb3IgbGF0ZW5jeSBzdXBwb3J0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfYXN5bmNfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X2FzeW5jX2RvbmUpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfaW5mbyksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9hc3luY19zdGFydCk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWRkIEFTWU5DX1NUQVJUIGFuZCBBU1lOQ19ET05FIG1lc3NhZ2VzIHRvIHByZXBhcmUgZm9yIGxhdGVuY3kKCSAgc3VwcG9ydC4KCjIwMDctMDMtMTUgMjI6MzM6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICB0eXBvcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHlwb3MKCjIwMDctMDMtMTUgMTI6Mzc6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBOb3cgdGhhdCB3ZSBkb24ndCBjaGVjayBmb3IgdGhlICdDb2RlYycga2V5d29yZCBhbnkgbG9uZ2VyIGluIHRoZSBrbGFzcywgd2Ugc2hvdWxkbid0IHNwZXcgYSB3YXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgKHByaW50X3BsdWdpbl9hdXRvbWF0aWNfaW5zdGFsbF9pbmZvX2NvZGVjcyk6CgkgIE5vdyB0aGF0IHdlIGRvbid0IGNoZWNrIGZvciB0aGUgJ0NvZGVjJyBrZXl3b3JkIGFueSBsb25nZXIgaW4gdGhlCgkgIGtsYXNzLCB3ZSBzaG91bGRuJ3Qgc3BldyBhIHdhcm5pbmcgaWYgdGhlIGtsYXNzIGlzbid0IGEgZGVjb2RlciBvcgoJICBlbmNvZGVyIChzaW5jZSBpdCBtaWdodCBiZSBhIFNvdXJjZS9OZXR3b3JrLCBmb3IgZXhhbXBsZSkuCgoyMDA3LTAzLTE0IDE3OjI0OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogRG9uJ3QgcmVxdWlyZSBkZWNvZGVyL2RlbXV4ZXIvZGVwYXlsb2FkZXIgZWxlbWVudHMgb3IgZW5jb2Rlci9tdXhlci9wYXlsYWRlciBlbGVtZW50cyB0byBoYXZlICdDLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIChwcmludF9wbHVnaW5fYXV0b21hdGljX2luc3RhbGxfaW5mb19jb2RlY3MpOgoJICBEb24ndCByZXF1aXJlIGRlY29kZXIvZGVtdXhlci9kZXBheWxvYWRlciBlbGVtZW50cyBvcgoJICBlbmNvZGVyL211eGVyL3BheWxhZGVyIGVsZW1lbnRzIHRvIGhhdmUgJ0NvZGVjJyBhcyBwYXJ0IG9mIHRoZWlyCgkgIGZhY3RvcnkgY2xhc3Mgc3RyaW5nIHdoZW4gaW50cm9zcGVjdGluZyBhIHBsdWdpbidzIGNhcGFiaWxpdGllcy4KCSAgZHJhZnQta2xhc3MudHh0IG1lbnRpb25zIHRoYXQgaXQgbWlnaHQgYmUgcmVtb3ZlZCBpbiBmdXR1cmUsIGFuZAoJICBmbHVtcDNkZWMgZG9lc24ndCBoYXZlIGl0IGFzIHBhcnQgb2YgaXRzIGNsYXNzIHN0cmluZywgc28gY2hhbmNlcwoJICBhcmUgb3RoZXJzIG1pZ2h0IGFsc28gbm90IGhhdmUgaXQuCgoyMDA3LTAzLTE0IDE1OjQyOjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL2kxOG46CgkgIHVwZGF0ZSBpMThuIGRvYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGkxOG4gZG9jCgoyMDA3LTAzLTE0IDE1OjE3OjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcmVmb3JtYXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlZm9ybWF0CgoyMDA3LTAzLTE0IDE1OjE1OjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogVXBkYXRlIHRyYW5zbGF0aW9ucyBmcm9tIHRyYW5zbGF0aW9uIHByb2plY3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vYWYucG86CgkgICogcG8vYXoucG86CgkgICogcG8vYmcucG86CgkgICogcG8vY2EucG86CgkgICogcG8vY3MucG86CgkgICogcG8vZGUucG86CgkgICogcG8vZW5fR0IucG86CgkgICogcG8vZnIucG86CgkgICogcG8vaXQucG86CgkgICogcG8vbmIucG86CgkgICogcG8vbmwucG86CgkgICogcG8vcnUucG86CgkgICogcG8vc3EucG86CgkgICogcG8vc3IucG86CgkgICogcG8vc3YucG86CgkgICogcG8vdHIucG86CgkgICogcG8vdWsucG86CgkgICogcG8vdmkucG86CgkgICogcG8vemhfQ04ucG86CgkgICogcG8vemhfVFcucG86CgkgIFVwZGF0ZSB0cmFuc2xhdGlvbnMgZnJvbSB0cmFuc2xhdGlvbiBwcm9qZWN0CgoyMDA3LTAzLTE0IDEzOjQwOjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0Y2hpbGRwcm94eS5jOiBJbnZlcnQgcHJlY29uZGl0aW9uIGNoZWNrIHRvIGJlIGFsaWtlIHRoZSBvbmVzIGluIHRoZSBtaW1pY2VkIGdvYmplY3QgYXBpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOiAoZ3N0X2NoaWxkX3Byb3h5X2dldF9wcm9wZXJ0eSksCgkgIChnc3RfY2hpbGRfcHJveHlfc2V0X3Byb3BlcnR5KToKCSAgSW52ZXJ0IHByZWNvbmRpdGlvbiBjaGVjayB0byBiZSBhbGlrZSB0aGUgb25lcyBpbiB0aGUgbWltaWNlZCBnb2JqZWN0CgkgIGFwaS4KCjIwMDctMDMtMTQgMTE6MjE6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBmaXggbWlzbGVhZGluZyBsb2cgc3RhdGVtZW50CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggbWlzbGVhZGluZyBsb2cgc3RhdGVtZW50CgoyMDA3LTAzLTEzIDE0OjUzOjIxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogRG8gc29tZSBBcmNoaXRlY3Qgd29yay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtdGFncmVhZGluZy50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9hdWRpb2Jhc2VjbGFzc2VzLnR4dDoKCSAgRG8gc29tZSBBcmNoaXRlY3Qgd29yay4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X3NldF9uYW1lKToKCSAgQWRkIGEgV0FSTklORy4KCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIEFkZCBkb2NzIHRoYXQgcG9pbnQgZnJvbSBnc3RfcGFkX2dldF9yYW5nZSB0byBnc3RfcGFkX3B1bGxfcmFuZ2UKCjIwMDctMDMtMTIgMTU6Mjc6MDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IERlZmVyIHN0YXJ0aW5nIHRoZSBhc3luYyBzeXN0ZW0gY2xvY2sgdGhyZWFkIHVudGlsIHRoZSBmaXJzdCBhc3luYyB3YWl0IGlzIHNjaGVkdWxlZC4gRml4ZXMgIzQxLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19pbml0KSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfc3RhcnRfYXN5bmMpLCAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2FzeW5jKToKCSAgRGVmZXIgc3RhcnRpbmcgdGhlIGFzeW5jIHN5c3RlbSBjbG9jayB0aHJlYWQgdW50aWwgdGhlIGZpcnN0IGFzeW5jCgkgIHdhaXQgaXMgc2NoZWR1bGVkLiBGaXhlcyAjNDE0OTg2LgoKMjAwNy0wMy0xMiAxNDoyMzoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBGaXggc21hbGwgbGVhayAoZnJlZSBHc3RTaW5nbGVRdWV1ZSBzdHJ1Y3R1cmUgdG9vLCBub3Qgb25seSBjb250ZW50cykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX2ZpbmFsaXplKSwKCSAgKGdzdF9zaW5nbGVfcXVldWVfZnJlZSk6CgkgIEZpeCBzbWFsbCBsZWFrIChmcmVlIEdzdFNpbmdsZVF1ZXVlIHN0cnVjdHVyZSB0b28sIG5vdCBvbmx5IGNvbnRlbnRzKS4KCjIwMDctMDMtMTAgMTU6NDQ6NDQgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogVXNlIEdTVF9TVFJfTlVMTCB0byBwcmV2ZW50IE5VTEwgcG9pbnRlciB0byBiZSBwYXNzZWQgdG8gR1NUX0NBVF9ERUJVRy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOihnc3RfYmluX2FkZCk6CgkgIFVzZSBHU1RfU1RSX05VTEwgdG8gcHJldmVudCBOVUxMIHBvaW50ZXIgdG8gYmUgcGFzc2VkIHRvIEdTVF9DQVRfREVCVUcuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucy4KCjIwMDctMDMtMDkgMTY6Mzk6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OiBGaXggR3N0VGVlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgIEZpeCBHc3RUZWUgZG9jcy4KCjIwMDctMDMtMDkgMTY6MzA6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgbWV0YWRhdGEgY29weSBmdW5jdGlvbnMuIEZpeGVzICMzOTMwOTkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9jb3B5X21ldGFkYXRhKSwgKF9nc3RfYnVmZmVyX2NvcHkpOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgQWRkIG1ldGFkYXRhIGNvcHkgZnVuY3Rpb25zLiBGaXhlcyAjMzkzMDk5LgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2J1ZmZlcl9zdGFtcCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKToKCSAgVXNlIG5ldyBtZXRhZGF0YSBjb3B5IGZ1bmN0aW9ucy4KCjIwMDctMDMtMDkgMTQ6MjA6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS4qOiBTZXBhcmF0ZSBvdXQgY2hlY2staW1wZXJmZWN0LXRpbWVzdGFtcCBhbmQgY2hlY2staW1wZXJmZWN0LW9mZnNldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X2luaXQpLCAoZ3N0X2lkZW50aXR5X2NoZWNrX3BlcmZlY3QpLAoJICAoZ3N0X2lkZW50aXR5X2NoZWNrX2ltcGVyZmVjdF90aW1lc3RhbXApLAoJICAoZ3N0X2lkZW50aXR5X2NoZWNrX2ltcGVyZmVjdF9vZmZzZXQpLCAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCksCgkgIChnc3RfaWRlbnRpdHlfc2V0X3Byb3BlcnR5KSwgKGdzdF9pZGVudGl0eV9nZXRfcHJvcGVydHkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgU2VwYXJhdGUgb3V0IGNoZWNrLWltcGVyZmVjdC10aW1lc3RhbXAgYW5kIGNoZWNrLWltcGVyZmVjdC1vZmZzZXQuCgkgIFB1dCBiYWNrIGNoZWNrLXBlcmZlY3QgYXMgaXQgd2FzIHRvIGtlZXAgY29tcGF0aWJpbGl0eS4KCjIwMDctMDMtMDkgMTI6MzQ6NDYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogVGhlcmUncyBubyBuZWVkIHRvIHdhcm4gaWYgVk9JRF9QRU5ESU5HIGlzIG5vdCBOT05FIGhlcmUsIGFzIGxvbmcgYXMgdGhlIHN0YXRlIGlzIE5VTEwgaXQncyBvaywgYW5kLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9kaXNwb3NlKToKCSAgVGhlcmUncyBubyBuZWVkIHRvIHdhcm4gaWYgVk9JRF9QRU5ESU5HIGlzIG5vdCBOT05FIGhlcmUsIGFzCgkgIGxvbmcgYXMgdGhlIHN0YXRlIGlzIE5VTEwgaXQncyBvaywgYW5kIHRoYXQncyBjaGVja2VkIGltbWVkaWF0ZWx5CgkgIGFib3ZlLgoKMjAwNy0wMy0wOCAxNzo1ODo1NyArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogRml4IGNoZWNrIGZvciBwZXJmZWN0IHN0cmVhbSB0byBpZ25vcmUgYnVmZmVycyB3aXRoIC0xIG9mZnNldHMvb2Zmc2V0IGVuZHMgd2hlbiBjaGVjay4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMy0wOCAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jaGVja19wZXJmZWN0KToKCSAgRml4IGNoZWNrIGZvciBwZXJmZWN0IHN0cmVhbSB0byBpZ25vcmUgYnVmZmVycyB3aXRoIC0xCgkgIG9mZnNldHMvb2Zmc2V0IGVuZHMgd2hlbiBjaGVja2luZyBkYXRhIGNvbnRpZ3VpdHkuCgoyMDA3LTAzLTA4IDE2OjI2OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBQcmludCBJTkZPIG1lc3NhZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgUHJpbnQgSU5GTyBtZXNzYWdlcy4KCjIwMDctMDMtMDggMTE6NDA6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uKjogQWRkIHN1cHBvcnQgZm9yIGRyb3BwaW5nIGJ1ZmZlcnMgd2l0aCBjdXN0b20gR3N0Rmxvd1JldHVybi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudGZ1bmMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9hY3RpdmF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEFkZCBzdXBwb3J0IGZvciBkcm9wcGluZyBidWZmZXJzIHdpdGggY3VzdG9tIEdzdEZsb3dSZXR1cm4uCgkgIFNldCBESVNDT05UIGZsYWdzIG9uIG91dGdvaW5nIGJ1ZmZlcnMgYmFzZWQgb24gUW9TLCBpbmNvbW1pbmcgRElTQ09OVAoJICBidWZmZXJzIG9yIGRyb3BwZWQgYnVmZmVycy4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzIGZvciBuZXcgY3VzdG9tIHJldHVybiBjb2RlLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBVc2UgZHJvcCBzdXBwb3J0IGluIGJhc2UgY2xhc3MgdG8gaW1wbGVtZW50IGRyb3AtcHJvYmFiaWxpdHkuCgoyMDA3LTAzLTA3IDE3OjI2OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogUmVtb3ZlIG5ld2xpbmVzIGF0IGVuZCBvZiBkZWJ1ZyBsb2cgc3RyaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAobG9hZF9wbHVnaW5fZnVuYyk6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkX2J5X25hbWUpLCAoZ3N0X3BsdWdpbl9sb2FkKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHRyYWNlLmM6IChnc3RfdHJhY2VfbmV3KSwgKGdzdF9hbGxvY190cmFjZV9zZXRfZmxhZ3NfYWxsKToKCSAgUmVtb3ZlIG5ld2xpbmVzIGF0IGVuZCBvZiBkZWJ1ZyBsb2cgc3RyaW5ncy4KCjIwMDctMDMtMDcgMTc6MTQ6NTMgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IE9ubHkgcG9zdCBidXMgbWVzc2FnZSBhdCBtYXgsIG9uY2UgcGVyIGJ1ZmZlciByZWNlaXZlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDMtMDcgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2hlY2tfcGVyZmVjdCk6CgkgIE9ubHkgcG9zdCBidXMgbWVzc2FnZSBhdCBtYXgsIG9uY2UgcGVyIGJ1ZmZlciByZWNlaXZlZC4KCjIwMDctMDMtMDcgMTc6MTM6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IEFkZCBkb2MgYWJvdXQgc3luY2hyb25pc2F0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSAgQWRkIGRvYyBhYm91dCBzeW5jaHJvbmlzYXRpb24KCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RidXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKMjAwNy0wMy0wNyAxNzowOTo1NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3RyZWFtZXIuZG9hcDogVXBkYXRlIHRoZSBkb2FwIGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdHJlYW1lci5kb2FwOgoJICBVcGRhdGUgdGhlIGRvYXAgZmlsZS4KCjIwMDctMDMtMDcgMTc6MDI6NTEgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IFJlbmFtZSBub24tcGVyZmVjdCB0byBpbXBlcmZlY3QgZm9yIE1pa2UgYW5kIGZvciB0aGUgc2FuY3RpdHkgb2YgdGhlIGxhbmd1YWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMy0wNyAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jaGVja19wZXJmZWN0KToKCSAgUmVuYW1lIG5vbi1wZXJmZWN0IHRvIGltcGVyZmVjdCBmb3IgTWlrZSBhbmQgZm9yIHRoZSBzYW5jdGl0eSBvZgoJICB0aGUgbGFuZ3VhZ2UuCgkgIEFsc28gbWFrZSBzdXJlIGJ1cyBtZXNzYWdlIGdldHMgZW1pdHRlZCBmb3IgZGF0YS1pbmNvbnRpZ3VpdGllcy4KCjIwMDctMDMtMDcgMTY6NTg6NDIgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lio6IEVtaXQgYnVzIG1lc3NhZ2UgaWYgY2hlY2stcGVyZmVjdCBpcyB0cnVlIGFuZCB3ZSBlbmNvdW50ZXIgYSBub24tcGVyZmVjdCBzdHJlYW0gYmV0d2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDMtMDcgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2hlY2tfcGVyZmVjdCksCgkgIChnc3RfaWRlbnRpdHlfc3RhcnQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgRW1pdCBidXMgbWVzc2FnZSBpZiBjaGVjay1wZXJmZWN0IGlzIHRydWUgYW5kIHdlIGVuY291bnRlciBhCgkgIG5vbi1wZXJmZWN0IHN0cmVhbSBiZXR3ZWVuIDIgY29uc2VjdXRpdmUgYnVmZmVycy4KCSAgRml4ZXMgIzQxNTM5NC4KCjIwMDctMDMtMDcgMTY6NTU6MDIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gQ1ZTCgo9PT0gcmVsZWFzZSAwLjEwLjEyID09PQoKMjAwNy0wMy0wNyAxNjo0NDowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMTIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4xMgoKMjAwNy0wMy0wNyAxNjozMTozMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDctMDMtMDcgMTI6NTE6MjAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogY29tbW9uOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDctMDMtMDEgMTg6NDY6MzYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBWZXJzaW9uIDAuMTAuMTEuMiAoMC4xMC4xMiBwcmUtcmVsZWFzZSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBWZXJzaW9uIDAuMTAuMTEuMiAoMC4xMC4xMiBwcmUtcmVsZWFzZSkKCSAgQnVtcCBsaWJ0b29sIHZlcnNpb25pbmcuCgoyMDA3LTAzLTAxIDE0OjQ5OjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogTG9nIGZsb3ctbmFtZXMgYW5kIG5vdCBudW1iZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19sb29wKToKCSAgTG9nIGZsb3ctbmFtZXMgYW5kIG5vdCBudW1iZXJzLgoKMjAwNy0wMi0yOCAxOToyNTo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IENvbnZlcnQgdG8gbmV3IEFHX0dTVCBzdHlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBDb252ZXJ0IHRvIG5ldyBBR19HU1Qgc3R5bGUuCgoyMDA3LTAyLTI4IDE4OjUxOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCB1bnJlZiBxdWVyeSB0d2ljZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19xdWVyeV9sYXRlbmN5KToKCSAgRG9uJ3QgdW5yZWYgcXVlcnkgdHdpY2UuCgoyMDA3LTAyLTI4IDE2OjU3OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IEltcGxlbWVudCBHc3RPYmplY3QgLT4gc3RyaW5nIHRyYW5zZm9ybSBzbyB3ZSBwcmludCBvYmplY3QgbmFtZXMgd2hlbiBzZXJpYWxpemluZyBHVmFsdWVzIGNvbnRhaW5pbmcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9vYmplY3Rfc3RyaW5nKSwKCSAgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgIEltcGxlbWVudCBHc3RPYmplY3QgLT4gc3RyaW5nIHRyYW5zZm9ybSBzbyB3ZSBwcmludCBvYmplY3QgbmFtZXMKCSAgd2hlbiBzZXJpYWxpemluZyBHVmFsdWVzIGNvbnRhaW5pbmcgR3N0T2JqZWN0cy4KCjIwMDctMDItMjggMTY6NTU6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgbmV3IHN0dWZmIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBuZXcgc3R1ZmYgdG8gZG9jcy4KCjIwMDctMDItMjggMTY6NDY6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEltcHJvdmUgbGF0ZW5jeSBxdWVyeSBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWV1ZV9vYmplY3RfdW5sb2NrZWQpLCAoZ3N0X2Jhc2Vfc2lua19zZW5kX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgSW1wcm92ZSBsYXRlbmN5IHF1ZXJ5IGNvZGUuCgkgIERvbid0IGxlYWsgbGF0ZW5jeSBldmVudHMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCjIwMDctMDItMjggMTY6NDM6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC4qOiBJbXByb3ZlIGRvY3MgYSBsaXR0bGUuIEFkZGVkIFNpbmNlOiBmb3IgbmV3IG1hY3JvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfbWVzc2FnZV9mdWxsKSwKCSAgKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBJbXByb3ZlIGRvY3MgYSBsaXR0bGUuIEFkZGVkIFNpbmNlOiBmb3IgbmV3IG1hY3JvLgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3Rfc2luayk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9waXBlbGluZV9zZXRfbmV3X3N0cmVhbV90aW1lKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgYW5kIGRvY3MuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9zdGF0ZV9jaGFuZ2VfcmV0dXJuX2dldF9uYW1lKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgoyMDA3LTAyLTI4IDE2OjQwOjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogSGFuZGxlIElORk8gbWVzc2FnZXMgZnJvbSB0aGUgR1NUX0VMRU1FTlRfSU5GTyBtYWNybyBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfbWVzc2FnZV9mdWxsKSwKCSAgKGdzdF9lbGVtZW50X3NldF9sb2NrZWRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgSGFuZGxlIElORk8gbWVzc2FnZXMgZnJvbSB0aGUgR1NUX0VMRU1FTlRfSU5GTyBtYWNybyBhcyB3ZWxsLgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIFNtYWxsIGNvZGUgY2xlYW51cHMuCgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19pbmZvKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2luZm8pOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFQSTogZ3N0X21lc3NhZ2VfbmV3X2luZm8oKQoJICBBUEk6IGdzdF9tZXNzYWdlX3BhcnNlX2luZm8oKQoJICBBZGQgSU5GTyBtZXNzYWdlIGNyZWF0ZSBhbmQgcGFyc2UgY29kZS4KCjIwMDctMDItMjggMTY6MzU6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEFsc28gcmVwb3J0IHRoZSBsaXZlIHBhcmFtZXRlciBvZiBhIGxhdGVuY3kgcXVlcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9xdWVyeV9taW5fbWF4X2luaXQpLCAoYmluX3F1ZXJ5X2xhdGVuY3lfZm9sZCksCgkgIChiaW5fcXVlcnlfbGF0ZW5jeV9kb25lKToKCSAgQWxzbyByZXBvcnQgdGhlIGxpdmUgcGFyYW1ldGVyIG9mIGEgbGF0ZW5jeSBxdWVyeS4KCjIwMDctMDItMjggMTI6NTc6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSAgcGx1ZyB0ZXN0IGxlYWsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBsdWcgdGVzdCBsZWFrCgoyMDA3LTAyLTI4IDEyOjQzOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBhY3R1YWxseSB1c2UgdGhlIGVudiB2YXIgZm9yIHRlc3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhY3R1YWxseSB1c2UgdGhlIGVudiB2YXIgZm9yIHRlc3RzCgoyMDA3LTAyLTI4IDEyOjQwOjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IENvcHkgdGhlIGN1cnJlbnQgZ2VuZXJpYy9zdGF0ZXMgZXhhbXBsZSBmcm9tIC1iYXNlIGFuZCBhZGFwdCBzbyB3ZSBjYW4gdXNlIHRoZSBleGFjdCBzYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoc3RhdGVzX3N1aXRlKToKCSAgQ29weSB0aGUgY3VycmVudCBnZW5lcmljL3N0YXRlcyBleGFtcGxlIGZyb20gLWJhc2UgYW5kIGFkYXB0IHNvCgkgIHdlIGNhbiB1c2UgdGhlIGV4YWN0IHNhbWUgY29kZSBldmVyeXdoZXJlLgoJICBDaGVjayBhIFNUQVRFU19JR05PUkVfRUxFTUVOVFMgZW52IHZhciB3aGljaCBjYW4gYmUgdXNlZAoJICB0byBpZ25vcmUgY2VydGFpbiBlbGVtZW50IGZhY3RvcmllcyBmb3IgdGhpcyB0ZXN0LCB3aGljaCBpcwoJICB3aGF0IGlzIGJlaW5nIGRvbmUgaW4gLWJhc2UKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgTWVudGlvbiB0aGlzIGVudmlyb25tZW50IHZhcmlhYmxlLgoKMjAwNy0wMi0yNyAxNzoyMjowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFQSTogZ3N0X2J1c190aW1lZF9wb3AoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfaW5pdCksIChnc3RfYnVzX2Rpc3Bvc2UpLCAoZ3N0X2J1c19wb3N0KSwKCSAgKGdzdF9idXNfdGltZWRfcG9wKSwgKGdzdF9idXNfcG9wKToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgIEFQSTogZ3N0X2J1c190aW1lZF9wb3AoKQoJICBJbXBsZW1lbnQgZ3N0X2J1c190aW1lZF9wb3AoKSB0byBkbyBhIGJsb2NraW5nIHRpbWVkIHdhaXQgZm9yIGEKCSAgbWVzc2FnZSB0byBhcnJpdmUgb24gdGhlIGJ1cy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6IChHU1RfU1RBUlRfVEVTVCksIChwb3BfdGhyZWFkKSwKCSAgKGdzdF9idXNfc3VpdGUpOgoJICBUd28gdW5pdCB0ZXN0cyBmb3IgbmV3IF90aW1lZF9wb3AoKSBmdW5jdGlvbi4KCjIwMDctMDItMjMgMTc6NDI6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogRG9uJ3QgcmVmIGEgTlVMTCBjbG9jayBpbiBfcHJvdmlkZV9jbG9ja19mdW5jKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcGlwZWxpbmVfcHJvdmlkZV9jbG9ja19mdW5jKSwgKGdzdF9waXBlbGluZV9zZXRfZGVsYXkpOgoJICBEb24ndCByZWYgYSBOVUxMIGNsb2NrIGluIF9wcm92aWRlX2Nsb2NrX2Z1bmMoKS4KCSAgRG9uJ3QgYWxsb3cgYW4gSU5WQUxJRCBkZWxheS4KCSAgRG9uJ3QgdHJ5IHRvIGNhbGN1bGF0ZSBiYXNlX3RpbWUgd2l0aCBhbiBpbnZhbGlkIHN0YXJ0X3RpbWUuCgkgIEFsc28gZGlzdHJpYnV0ZSBhbmQgbm90aWZ5IGEgTlVMTCBjbG9jayB3aGVuIGl0IHdhcyBzZWxlY3RlZC4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgRG9uJ3QgY3Jhc2ggd2hlbiBhIE5VTEwgY2xvY2sgd2FzIHNlbGVjdGVkIGluIHRoZSBwaXBlbGluZS4KCjIwMDctMDItMjMgMTM6NDI6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzLzogU29tZSBzbWFsbCB1cGRhdGVzOiB1cGRhdGUgcGx1Z2luIHN5c3RlbSBpZGVudGlmaWVyIHByZWZpeCBtZW50aW9uIG91ciBuZXcgaW5zdGFsbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJICAqIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkgIFNvbWUgc21hbGwgdXBkYXRlczogdXBkYXRlIHBsdWdpbiBzeXN0ZW0gaWRlbnRpZmllciBwcmVmaXgKCSAgKCdnc3RyZWFtZXIubmV0JyB0byAnZ3N0cmVhbWVyJyksIG1lbnRpb24gb3VyIG5ldyBpbnN0YWxsCgkgIEFQSSBpbiBsaWJnc3RiYXNldXRpbHMgcmF0aGVyIHRoYW4gbGliZ2ltbWUtY29kZWMsIGFkZAoJICByZWZlcmVuY2UgdG8gdGhlIG9ubGluZSBkb2NzLgoKMjAwNy0wMi0yMSAxNTozNToxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB3aW4zMi9jb21tb24vY29uZmlnLmg6IFByZXR0eSBzdXJlIEJpbGwgbmV2ZXIgbWFkZSBhIHBvd2VycGMgdmVyc2lvbi4gIFBvd2VycGMgaGFja2VycywgdXNlIG1vYXAgY2wgY2kgdG8gb25seSBjaGVjayAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBQcmV0dHkgc3VyZSBCaWxsIG5ldmVyIG1hZGUgYSBwb3dlcnBjIHZlcnNpb24uICBQb3dlcnBjIGhhY2tlcnMsCgkgIHVzZSBtb2FwIGNsIGNpIHRvIG9ubHkgY2hlY2sgaW4gd2hhdCBpcyBtZW50aW9uZWQgaW4gdGhlIENoYW5nZUxvZy4KCjIwMDctMDItMjEgMTU6MzQ6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgRml4IHVwIGRvY3VtZW50YXRpb24gdG8gbGluayB0byB0aGUgY29ycmVjdCBHc3RHRXJyb3Igc2VjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBGaXggdXAgZG9jdW1lbnRhdGlvbiB0byBsaW5rIHRvIHRoZSBjb3JyZWN0IEdzdEdFcnJvciBzZWN0aW9uLgoJICBBZGQgR1NUX0VMRU1FTlRfSU5GTyBtYWNybyBzaW5jZSBzb21lb25lIGVsc2UgYWRkZWQgYSBJbmZvIG1lc3NhZ2UuCgoyMDA3LTAyLTIxIDE1OjMwOjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogTWFrZSBzdXJlIHRoYXQgd2UgYWN0dWFsbHkgc2hvdyB0aGUgaW1wb3J0YW50IG1lc3NhZ2UgcGFydCBvZiBhIHdhcm5pbmcgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIE1ha2Ugc3VyZSB0aGF0IHdlIGFjdHVhbGx5IHNob3cgdGhlIGltcG9ydGFudCBtZXNzYWdlIHBhcnQgb2YgYQoJICB3YXJuaW5nIG1lc3NhZ2UuCgkgIE5vIG5lZWQgdG8gY2hlY2sgaWYgdGhlIGdlcnJvciBpcyBub3QgTlVMTCB0byBmcmVlOyBmaXJzdCBvZiBhbGwKCSAgZ19mcmVlIGFjY2VwdHMgTlVMTDsgYW5kIHNlY29uZCB0aGUgZGVmYXVsdCBlcnJvciBoYW5kbGVyIHdvdWxkCgkgIHNlZ2ZhdWx0IGlmIGdlcnJvciB3YXMgTlVMTC4KCjIwMDctMDItMjEgMTI6MTA6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBSZW1vdmVkIGRvY3MgYXMgd2VsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgUmVtb3ZlZCBkb2NzIGFzIHdlbGwuCgoyMDA3LTAyLTIxIDEyOjAxOjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuKjogUmVtb3ZlIG5ldyBtZXNzYWdlcyBmb3IgcmVsZWFzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX3BhcnNlX2R1cmF0aW9uKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBSZW1vdmUgbmV3IG1lc3NhZ2VzIGZvciByZWxlYXNlLgoKMjAwNy0wMi0yMCAxODowMjo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIE1ha2UgdGhlIGdob3N0cGFkIGEgcGFyZW50IG9mIHRoZSBpbnRlcm5hbCBwYWQgYWdhaW4gZm9yIGJldHRlciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiBEb24ndCB3cml0ZSBjb2RlIHRoYXQgcmVsaWVzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfZGlzcG9zZSksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19mdWxsKToKCSAgTWFrZSB0aGUgZ2hvc3RwYWQgYSBwYXJlbnQgb2YgdGhlIGludGVybmFsIHBhZCBhZ2FpbiBmb3IgYmV0dGVyIGJhY2t3YXJkCgkgIGNvbXBhdGliaWxpdHkuIERvbid0IHdyaXRlIGNvZGUgdGhhdCByZWxpZXMgb24gdGhpcyBob3dldmVyLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCksIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X3BhZF9saW5rX2NoZWNrX2hpZXJhcmNoeSk6CgkgIFJlcXVpcmUgdGhhdCBwYXJlbnRzIHNob3VsZCBiZSBHc3RFbGVtZW50cyBpbiB0aGUgaGllcmFyY2h5IGNoZWNrLgoKMjAwNy0wMi0yMCAxMDo0NToxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogSW1wcm92ZSBkZWJ1ZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fcmVwbGFjZV9tZXNzYWdlKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksIChiaW5fcXVlcnlfbWluX21heF9pbml0KSwKCSAgKGJpbl9xdWVyeV9sYXRlbmN5X2ZvbGQpLCAoYmluX3F1ZXJ5X2xhdGVuY3lfZG9uZSksCgkgIChnc3RfYmluX3F1ZXJ5KToKCSAgSW1wcm92ZSBkZWJ1ZyBpbmZvLgoJICBJbXBsZW1lbnQgbGF0ZW5jeSBxdWVyeS4KCjIwMDctMDItMjAgMTA6MTY6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEbyBub3Qgc2V0IHRoZSBpbnRlcm5hbCBwYWQgYXMgYSBwYXJlbnQgYW55bW9yZSBzbyB3ZSBjYW4gYXZvaWQgaGllcmFyY2h5IGxpbmtpbmcgZXJyb3JzIHdoZW4gdGhlIGdob3N0cGFkIGhhcyBubyBwYXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9kb19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfZG9fYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fbGluayksIChnc3RfZ2hvc3RfcGFkX2Rpc3Bvc2UpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXdfZnVsbCksIChnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQpOgoJICBEbyBub3Qgc2V0IHRoZSBpbnRlcm5hbCBwYWQgYXMgYSBwYXJlbnQgYW55bW9yZSBzbyB3ZSBjYW4gYXZvaWQKCSAgaGllcmFyY2h5IGxpbmtpbmcgZXJyb3JzIHdoZW4gdGhlIGdob3N0cGFkIGhhcyBubyBwYXJlbnQgeWV0LiBUaGlzIGFsc28KCSAgZml4ZXMgZmFpbGVkIGFjdGl2YXRpb24gYmVjYXVzZSBvZiB1bmxpbmtlZCBpbnRlcm5hbCBwYWRzLCB3aGljaCBpbgoJICB0dXJuIGZpeGVzIHRoZSBpbXBvc3NpYmxlIGNhc2Ugd2hlcmUgeW91IGhhdmUgdG8gYWN0aXZhdGUgYSBwYWQgYmVmb3JlCgkgIHlvdSBjYW4gYWRkIGl0IHRvIGEgcnVubmluZyBlbGVtZW50LgoJICBBbHNvIGZpeCB0aGUgZG9jcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChwcmVfYWN0aXZhdGUpLCAocG9zdF9hY3RpdmF0ZSksCgkgIChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCksIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpOgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIE1hcmsgYWN0aXZhdGlvbiBtb2RlIGluIHByZV9hY3RpdmF0ZSBzbyB0aGF0IHdlIGRvbid0IHRyeSB0byBhY3RpdmF0ZSBpbgoJICBlbmRsZXNzIGxvb3BzLiBGaXhlcyAjMzg1MDg0LgoKMjAwNy0wMi0xOSAxODowODo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBJbXBsZW1lbnQgYSBjaGVja2dldHJhbmdlIGZ1bmN0aW9uIGluc3RlYWQgb2YgcmVseWluZyBvbiB0aGUgZGVmYXVsdCBjb3JlIGJlaGF2aW91ci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGVja19nZXRfcmFuZ2UpOgoJICBJbXBsZW1lbnQgYSBjaGVja2dldHJhbmdlIGZ1bmN0aW9uIGluc3RlYWQgb2YgcmVseWluZyBvbiB0aGUgZGVmYXVsdAoJICBjb3JlIGJlaGF2aW91ciB0aGF0IGFzc3VtZXMgd2UgY2FuIG9wZXJhdGUgaW4gcHVsbCBtb2RlIGlmIHdlIGhhdmUgYQoJICBnZXRyYW5nZSBmdW5jdGlvbi4gRmlyc3Qgc3RlcCBhdCBmaXhpbmcgIzM4NTA4NC4KCjIwMDctMDItMTUgMTI6MDU6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIE1vcmUgZG9jcyBjb3ZlcmFnZSBhbmQgc29tZSBDaGFuZ2VMb2cgc3VyZ2VyeSAoYWRkIG1pc3NpbmcgbmFtZXMpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBNb3JlIGRvY3MgY292ZXJhZ2UgYW5kIHNvbWUgQ2hhbmdlTG9nIHN1cmdlcnkgKGFkZCBtaXNzaW5nIG5hbWVzKQoKMjAwNy0wMi0xNSAxMTozMjowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogU29tZSBkb2MgdXBkYXRlcy4gU3RhcnQgcmVuYW1pbmcgZnJvbSBzdHJlYW1fdGltZSB0byBydW5uaW5nX3RpbWUgd2hlcmUgaXQgd2FzIHVzZWQgd3JvbmdseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWFjdGl2YXRpb24udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNvdXJjZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJ1cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcXVlcnkudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBTb21lIGRvYyB1cGRhdGVzLiBTdGFydCByZW5hbWluZyBmcm9tIHN0cmVhbV90aW1lIHRvIHJ1bm5pbmdfdGltZSB3aGVyZQoJICBpdCB3YXMgdXNlZCB3cm9uZ2x5LgoKMjAwNy0wMi0xNSAwOTowNzoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBBbnN3ZXIgTEFURU5DWSBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSk6CgkgIEFuc3dlciBMQVRFTkNZIHF1ZXJ5LgoKMjAwNy0wMi0xNSAwODo0MDozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChldmVudF9wcm9iZSksICh0ZXN0X2V2ZW50KSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgoyMDA3LTAyLTE1IDA4OjM3OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBJbXByb3ZlIGRlYnVnZ2luZyBvZiBkZWZhdWx0IHBhZCBkaXNwYXRjaGVyIGFuZCBxdWVyeSBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2ludGVybmFsX2xpbmtzX2RlZmF1bHQpLAoJICAoZ3N0X3BhZF9kaXNwYXRjaGVyKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgb2YgZGVmYXVsdCBwYWQgZGlzcGF0Y2hlciBhbmQgcXVlcnkgZnVuY3Rpb25zLgoKMjAwNy0wMi0xNSAwODozMToyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFJlbW92ZSBvbGQgdW51c2VkIG1ldGhvZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgUmVtb3ZlIG9sZCB1bnVzZWQgbWV0aG9kLgoKMjAwNy0wMi0xMyAxNTo1MTowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IEZpeCBjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggY2hlY2sKCjIwMDctMDItMTMgMTU6MzQ6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OiBTb21lIHNtYWxsIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgU29tZSBzbWFsbCB1cGRhdGUuCgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9zZWVrKToKCSAgUmV2ZXJ0IG9sZCBib2d1cyBjaGFuZ2UgdGhhdCBzaG91bGQgbWFrZSBzZWVraW5nIHdvcmsgYWdhaW4uCgoyMDA3LTAyLTEzIDE0OjUyOjQ3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljLzogUG9zc2libGUgZHluYW1pYyByZWNvbm5lY3Rpb24gYXBpLCBwbHVzIHNvbWUgdHlwZSBmaXhlcyB0aGUgb3RoZXIgdHdvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHlubGluay50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9pbnRlcmZhY2VzLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3JlY2VpcGllcy50eHQ6CgkgIFBvc3NpYmxlIGR5bmFtaWMgcmVjb25uZWN0aW9uIGFwaSwgcGx1cyBzb21lIHR5cGUgZml4ZXMgdGhlIG90aGVyIHR3bwoJICBkb2NzLgoKMjAwNy0wMi0xMyAxMzo0MDowNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IEFsc28gY2hlY2sgZm9yIGFuIGFic29sdXRlIHBhdGggZm9sbG93aW5nIGZpbGU6Ly8gaW4gdGhlIGZpbGVzcmMgZWxlbWVudC4gUmVtb3ZlIHJlZHVuZGFudCBjaGVjayBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfdXJpX3NldF91cmkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3VyaV9zZXRfdXJpKToKCSAgQWxzbyBjaGVjayBmb3IgYW4gYWJzb2x1dGUgcGF0aCBmb2xsb3dpbmcgZmlsZTovLyBpbiB0aGUgZmlsZXNyYwoJICBlbGVtZW50LiBSZW1vdmUgcmVkdW5kYW50IGNoZWNrIGFuZCBjYWxsIGdfcGF0aF9pc19hYnNvbHV0ZSgpIG9uIHRoZQoJICB1bmVzY2FwZWQgbG9jYXRpb24uCgoyMDA3LTAyLTEzIDA5OjEwOjUzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6IEFkZCBleGlzdGluZyBjYXRlZ29yeSBhbmFseXNpcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICBBZGQgZXhpc3RpbmcgY2F0ZWdvcnkgYW5hbHlzaXMuCgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgRml4IGRvYyBleGFtcGxlLCBmcmFtZXJhdGUgaXMgYSBmcmFjdGlvbi4KCjIwMDctMDItMTIgMTk6NTU6MjQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCBjcm9zc3JlZmVyZW5jZXMgdG8gZ2xpYi9nb2JqZWN0IGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBBZGQgY3Jvc3NyZWZlcmVuY2VzIHRvIGdsaWIvZ29iamVjdCBkb2NzLgoKMjAwNy0wMi0xMiAxMTozMjoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OiBTbWFsbCB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OgoJICBTbWFsbCB1cGRhdGUuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfbGF0ZW5jeSksIChnc3RfYmFzZV9zaW5rX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKSwgKGdzdF9iYXNlX3Npbmtfc2VuZF9xb3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19wZXJmb3JtX3FvcyksIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdF91bmxvY2tlZCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKSwgKGdzdF9iYXNlX3Npbmtfc2VuZF9ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19xdWVyeV9sYXRlbmN5KCkgdG8gbGV0IHN1YmNsYXNzZXMgcXVlcnkgdGhlIHVwc3RyZWFtCgkgIGxhdGVuY3kuCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19nZXRfbGF0ZW5jeSgpIHRvIGxldCBzdWJjbGFzc2VzIHF1ZXJ5IHRoZSBjb25maWd1cmVkCgkgIGxhdGVuY3kgaW4gdGhlIHNpbmsuCgkgIEltcGxlbWVudCBxdWVyeSBhbmQgc2V0IGxhdGVuY3kuCgkgIFVwZGF0ZSBzb21lIGRvY3MuCgkgIEFzIHNwb3R0ZWQgYnkgV2lsbCBOZXd0b24gPHdpbGwgZG90IG5ld3RvbiBhdCBnbWFpbCBkb3QgY29tPjogTWFrZSBzdXJlIHdlCgkgIGRvbid0IGNvbnRpbnVlIHByZXJvbGwgd2hlbiB3ZSBhcmUgZmx1c2hpbmcuIEZpeGVzICM0MDUyODQuCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOiAoY2hhbmdlX3N0YXRlX3RpbWVvdXQpLAoJICAocXVpdF90aW1lb3V0KSwgKEdTVF9TVEFSVF9URVNUKSwgKHN0cmVzc19zdWl0ZSk6CgkgIFRlc3QgZm9yICM0MDUyODQuCgoyMDA3LTAyLTEyIDEwOjUwOjIwICswMDAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgQVBJOiBhZGQgR1NUX1RBR19SRUZFUkVOQ0VfTEVWRUwgKCM0MDM1OTcpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJlbsOpIFN0YWRsZXIgPG1haWwgYXQgcmVuZXN0YWRsZXIgZGU+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQVBJOiBhZGQgR1NUX1RBR19SRUZFUkVOQ0VfTEVWRUwgKCM0MDM1OTcpLgoKMjAwNy0wMi0xMSAxOTo1OToxMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9saWJzL01ha2VmaWxlLmFtOiBGaXggcGF0aCB0byBjb3JlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgRml4IHBhdGggdG8gY29yZSBkb2NzLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZ2V0X2J5X2ludGVyZmFjZSksCgkgIChnc3RfYmluX2l0ZXJhdGVfYWxsX2J5X2ludGVyZmFjZSk6CgkgIFJlZml4IGRvY3MgYnkgYWxzbyByZW5hbWluZyAnaW50ZXJmYWNlJyB0byAnaWZhY2UnIGluIGltcGxlbWVudGF0aW9uLgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOiAoZ3N0X2NoaWxkX3Byb3h5X2Jhc2VfaW5pdCk6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyk6CgkgIERvY3VtZW50IG1vcmUuCgoyMDA3LTAyLTEwIDE4OjMxOjEyICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0YmluLmg6IFJlcGxhY2UgaW50ZXJmYWNlIHBhcmFtZXRlciBuYW1lIGJ5IGlmYWNlIGFzIGludGVyZmFjZSBpcyBhIHJlc2VydmVkIGtleXdvcmQgaW4gVmlzdWFsIFN0dWRpbyBmb3IgQysrIHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5oOihnc3RfYmluX2dldF9ieV9pbnRlcmZhY2UpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX2FsbF9ieV9pbnRlcmZhY2UpOgoJICBSZXBsYWNlIGludGVyZmFjZSBwYXJhbWV0ZXIgbmFtZSBieSBpZmFjZSBhcyBpbnRlcmZhY2UgaXMKCSAgYSByZXNlcnZlZCBrZXl3b3JkIGluIFZpc3VhbCBTdHVkaW8gZm9yIEMrKyBwcm9qZWN0cyBzbyBpdCByZW1vdmVzCgkgIGEgYnVpbGQgZXJyb3IgZm9yIGFwcGxpY2F0aW9uIGRldmVsb3BwZXJzIHVzaW5nIFZTLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOihnc3RfZmlsZV9zcmNfdXJpX3NldF91cmkpOgoJICBGaXggYSBidWcgb24gV2luZG93cyBpbiB1cmkgZm9ybWF0IGNoZWNrLiBOb3cgdGhlIHByZWZpeCBjaGVja2VkCgkgIGlzIGZpbGU6Ly8gYW5kIG5leHQgd2UgY2hlY2sgaWYgdGhlIHBhdGggYWZ0ZXIgZmlsZTovLyBpcyBhYnNvbHV0ZS4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGRhdGFwcm90b2NvbC5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zLgoKMjAwNy0wMi0wOSAxNToyNTo0NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAyLTA5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmMKCSAgKHNpbXBsZV9sYXVuY2hfbGluZXNfc3VpdGUsIHRlc3RfdGVlKTogRGlzYWJsZSB0ZWUgdGVzdCB1bnRpbCBJCgkgIGhhdmUgdGltZSB0byBmaXggaXQgOi0oCgoyMDA3LTAyLTA5IDEzOjU5OjMyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZCBBQkkgY2hlY2tzIGZvciBQUEMzMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDItMDkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW0gKG5vaW5zdF9IRUFERVJTKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGMzMi5oOiBBZGQgQUJJIGNoZWNrcyBmb3IgUFBDMzIuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDogQWRkIEFCSSBjaGVja3MgZm9yIFBQQzMyLgoKMjAwNy0wMi0wOSAxMzo0NToyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYyAodGVzdF90ZWUpOiBBZGQgdGVzdHMgZm9yIHB1c2ggYW5kIHB1bGwgdGVlIGJlaGF2aW9yLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMi0wOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jICh0ZXN0X3RlZSk6IEFkZAoJICB0ZXN0cyBmb3IgcHVzaCBhbmQgcHVsbCB0ZWUgYmVoYXZpb3IuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiBEZXNjcmliZSBoYXMtc2luay1sb29wIGJldHRlciwgYW5kCgkgIG1hcmsgYXMgZGVwcmVjYXRlZCBhcyB3ZWxsIGFzIHVuaW1wbGVtZW50ZWQuIEl0IHdhcyBhIGNyYWNrIGlkZWEuCgkgIEFkZCBzdXBwb3J0IGZvciB0ZWUgb3BlcmF0aW5nIGluIHB1bGwgbW9kZSwgb2ZmIGJ5IGRlZmF1bHQuCgoyMDA3LTAyLTA5IDEzOjQxOjI0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYyAobG9hZF9mZWF0dXJlLCBsb2FkX3BsdWdpbik6IERyb3Agc29tZSBub3JtYWwtY2FzZSBsb2dzIGRvd24gdG8gTE9HLCByYWlzZSBlcnJvcnMgdG8gV0FSTklORy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDItMDkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmMgKGxvYWRfZmVhdHVyZSwgbG9hZF9wbHVnaW4pOiBEcm9wIHNvbWUKCSAgbm9ybWFsLWNhc2UgbG9ncyBkb3duIHRvIExPRywgcmFpc2UgZXJyb3JzIHRvIFdBUk5JTkcuCgkgIChnc3RfcmVnaXN0cnlfeG1sX3JlYWRfY2FjaGUpOiBEb24ndCBsb2cgYmVmb3JlIGNhbGxpbmcgYSBmdW5jdGlvbgoJICB0aGF0IGxvZ3MuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmMgKGdzdF9yZWdpc3RyeV9maW5hbGl6ZSk6IExlc3MgZGVidWcgb24gcHJvZ3JhbQoJICBleGl0IChyZWdpc3RyeSBmaW5hbGl6ZSkuCgkgIChnc3RfcmVnaXN0cnlfYWRkX3BsdWdpbiwgZ3N0X3JlZ2lzdHJ5X2FkZF9mZWF0dXJlKTogTm8gbmVlZCBmb3IgYQoJICBERUJVRyBsb2cgd2hlbiB3ZSBlbWl0IHNpZ25hbHMgdGhhdCBwZW9wbGUgZG9uJ3QgZXZlbiBoYXZlIHRoZQoJICBjaGFuY2UgdG8gY29ubmVjdCB0by4KCSAgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOiBMZXNzIGxvZ2dpbmcgaW4gdGhlIG5vcm1hbCBjYXNlLgoKMjAwNy0wMi0wNSAxMzoxNTo0NCArMDAwMCAgTWljaGFsIEJlbmVzIDxtaWNoYWwuYmVuZXNAaXRvbmlzLnR2PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IENvcnJlY3RseSBnZW5lcmF0ZSBFT1MgZm9yIG5vbi1zZWVrYWJsZSBmaWxlcy4gV2UgZG9uJ3QgaGF2ZSBhIHRvdGFsIGxlbmd0aCBmb3IgdGhlbSBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWljaGFsIEJlbmVzIDxtaWNoYWwgZG90IGJlbmVzIGF0IGl0b25pcyBkb3QgdHY+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY3JlYXRlX3JlYWQpOgoJICBDb3JyZWN0bHkgZ2VuZXJhdGUgRU9TIGZvciBub24tc2Vla2FibGUgZmlsZXMuIFdlIGRvbid0IGhhdmUgYSB0b3RhbAoJICBsZW5ndGggZm9yIHRoZW0gYW5kIHdvdWxkIGdldCBhbiB1bmV4cGVjdGVkIGVuZCBvZiBmaWxlIGlmIHdlIG9ubHkKCSAgc3BlY2lhbC1jYXNlZCBmb3IgcmVndWxhciBmaWxlcy4gKEZpeGVzOiAjNDA0NTY5KQoKMjAwNy0wMi0wNSAwODoxNToyNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgR3N0VVJJSGFuZGxlciBpbnRlcmZhY2UgaW4gZmlsZXNyYy4gVGhpcyBhbHNvIHRlc3RzIHRoZSBuZXdseSBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGZpbGVzcmNfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgR3N0VVJJSGFuZGxlciBpbnRlcmZhY2UgaW4gZmlsZXNyYy4gVGhpcyBhbHNvCgkgIHRlc3RzIHRoZSBuZXdseSBhZGRlZCBmaWxlOi8vbG9jYWxob3N0L2Zvby9iYXIgc3VwcG9ydC4KCjIwMDctMDItMDQgMTY6MTQ6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDogVGhlIGtsYXNzIHN0cmluZyBpcyBub3QgYSBoaWVyYXJjaHkuIEFkZCByZWZlcmVuY2UgdG8gdGhlIGRlc2lnbiBkb2MgZm9yIG1vcmUgaW5mb3JtYXRpb24gYW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIFRoZSBrbGFzcyBzdHJpbmcgaXMgbm90IGEgaGllcmFyY2h5LiBBZGQgcmVmZXJlbmNlIHRvIHRoZSBkZXNpZ24gZG9jCgkgIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBjb21tb24gdHlwZXMuCgoyMDA3LTAyLTAyIDE4OjA4OjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1ZXJ5LmM6IFJlbW92ZSBvbGQgc3RydWN0dXJlIGZpZWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfbGF0ZW5jeSk6CgkgIFJlbW92ZSBvbGQgc3RydWN0dXJlIGZpZWxkLgoKMjAwNy0wMi0wMiAxMjoyNzoxNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluOiBHaXZlIGV4YW1wbGUgZm9yIG5ldHdvcmsgc3RyZWFtaW5nICgjMzUxOTk4KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIEdpdmUgZXhhbXBsZSBmb3IgbmV0d29yayBzdHJlYW1pbmcgKCMzNTE5OTgpCgoyMDA3LTAyLTAyIDExOjQ4OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIGRvY3MgZm9yIG5ldyBtZXRob2RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgZG9jcyBmb3IgbmV3IG1ldGhvZHMuCgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X2xhdGVuY3kpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX2xhdGVuY3kpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBBZGQgbmV3IExBVEVOQ1kgZXZlbnQgdG8gY29uZmlndXJlIGxhdGVuY3kgaW4gYSBwaXBlbGluZS4KCSAgQVBJOiBnc3RfZXZlbnRfbmV3X2xhdGVuY3kKCSAgQVBJOiBnc3RfZXZlbnRfcGFyc2VfbGF0ZW5jeQoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfYnVmZmVyaW5nKSwKCSAgKGdzdF9tZXNzYWdlX25ld19sb3N0X3ByZXJvbGwpLCAoZ3N0X21lc3NhZ2VfbmV3X3ByZXJvbGxlZCksCgkgIChnc3RfbWVzc2FnZV9uZXdfbGF0ZW5jeSksIChnc3RfbWVzc2FnZV9wYXJzZV9idWZmZXJpbmcpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfbG9zdF9wcmVyb2xsKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGRlZCBtZXNzYWdlcyB1c2VkIGluIGRyYWZ0LWxhdGVuY3kuCgkgIEFQSTogZ3N0X21lc3NhZ2VfbmV3X2xvc3RfcHJlcm9sbAoJICBBUEk6IGdzdF9tZXNzYWdlX3BhcnNlX2xvc3RfcHJlcm9sbAoJICBBUEk6IGdzdF9tZXNzYWdlX25ld19wcmVyb2xsZWQKCSAgQVBJOiBnc3RfbWVzc2FnZV9uZXdfbGF0ZW5jeQoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19sYXRlbmN5KSwgKGdzdF9xdWVyeV9zZXRfbGF0ZW5jeSksCgkgIChnc3RfcXVlcnlfcGFyc2VfbGF0ZW5jeSk6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEltcGxlbWVudGVkIG5ldyBsYXRlbmN5IHF1ZXJ5IGFzIGluIGRlc2lnbiBkb2MuCgkgIEFQSTogZ3N0X3F1ZXJ5X25ld19sYXRlbmN5CgkgIEFQSTogZ3N0X3F1ZXJ5X3NldF9sYXRlbmN5CgkgIEFQSTogZ3N0X3F1ZXJ5X3BhcnNlX2xhdGVuY3kKCjIwMDctMDItMDIgMTE6MzM6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDogU2xpZ2h0IHJlZGVzaWduIHRvIGFsbG93IGZvciBkeW5hbWljIGxhdGVuY3kgYWRqdXN0bWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OgoJICBTbGlnaHQgcmVkZXNpZ24gdG8gYWxsb3cgZm9yIGR5bmFtaWMgbGF0ZW5jeSBhZGp1c3RtZW50cy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgRml4IHNvbWUgdHlwb3MuCgoyMDA3LTAyLTAyIDEwOjQxOjI5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogQWxsb3cgZmlsZTovL2xvY2FsaG9zdC9mb28vYmFyIFVSTHMgYW5kIGNvcnJlY3RseSBmYWlsIGZvciBldmVyeSBvdGhlciBob3N0bmFtZSB0aGF0IG9uZSBzZXRzLiBUaGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBXaW0gVGF5bWFucyA8d2ltQGZsdWVuZG8uY29tPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfdXJpX3NldF91cmkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3VyaV9zZXRfdXJpKToKCSAgQWxsb3cgZmlsZTovL2xvY2FsaG9zdC9mb28vYmFyIFVSTHMgYW5kIGNvcnJlY3RseSBmYWlsIGZvciBldmVyeSBvdGhlcgoJICBob3N0bmFtZSB0aGF0IG9uZSBzZXRzLiBUaGlzIHdhcyBnbm9tZXZmc3NyYyBpcyBsaW5rZWQgZm9yIHRob3NlIGlmCgkgIGluc3RhbGxlZCBhcyBpdCBjYW4gaGFuZGxlIGl0ICgjNDAzMTcyKQoKMjAwNy0wMi0wMSAxOTowMDo0OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy4qOiBEb24ndCBwdXQgdGhlIHByZXZpb3VzbHkgYWRkZWQgZGVzdHJveSBub3RpZnkgaW4gdGhlIEdzdENvbGxlY3REYXRhIHN0cnVjdCBhcyBhbGwgaXQnLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZpZXdlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19maW5hbGl6ZSksCgkgICh1bnJlZl9kYXRhKSwgKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZF9mdWxsKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIERvbid0IHB1dCB0aGUgcHJldmlvdXNseSBhZGRlZCBkZXN0cm95IG5vdGlmeSBpbiB0aGUgR3N0Q29sbGVjdERhdGEKCSAgc3RydWN0IGFzIGFsbCBpdCdzIHBhZGRpbmcgaXMgYWxyZWFkeSB1c2VkIGFuZCB3ZSBkb24ndCB3YW50IHRvIGJyZWFrCgkgIEFCSS4gSW5zdGVhZCBwdXQgaW4gdGhlIHBhZCdzIEdPYmplY3QgZGF0YSBmb3Igbm93LiBUaGlzIHNob3VsZCBiZQoJICBjbGVhbmVkIHVwIGZvciAwLjExICgjNDAyMzkzKS4KCjIwMDctMDItMDEgMTc6NTI6MTEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFQSTogQWRkIGZ1bmN0aW9uIHRvIHNwZWNpZnkgYSBkZXN0cm95IG5vdGlmaWNhdGlvbiBmb3IgY3VzdG9tCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZpZXdlZCBieTogV2ltIFRheW1hbnMgPHdpbUBmbHVlbmRvLmNvbT4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfZmluYWxpemUpLAoJICAodW5yZWZfZGF0YSksIChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkX2Z1bGwpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgQVBJOiBBZGQgZnVuY3Rpb24gdG8gc3BlY2lmeSBhIGRlc3Ryb3kgbm90aWZpY2F0aW9uIGZvciBjdXN0b20KCSAgR3N0Q29sbGVjdERhdGEgd2hlbiBhZGRpbmcgbmV3IHBhZHMgaW4gR3N0Q29sbGVjdFBhZHMgKCM0MDIzOTMpLgoKMjAwNy0wMi0wMSAxNzoxMDoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBvL3N2LnBvOiBVcGRhdGUgU3dlZGlzaCB0cmFuc2xhdGlvbiAoIzM3ODI1NSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL3N2LnBvOgoJICBVcGRhdGUgU3dlZGlzaCB0cmFuc2xhdGlvbiAoIzM3ODI1NSkuCgoyMDA3LTAxLTMxIDExOjQyOjUzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6IEZpeCB0aGUgcHJldmlvdXMgY2hhbmdlLCB0aGlzIGlzIGEgbGlzdCBvZiBjYXRlZ29yaWVzIGFuZCBub3QgYSBoaWVyYXJjaHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSAgRml4IHRoZSBwcmV2aW91cyBjaGFuZ2UsIHRoaXMgaXMgYSBsaXN0IG9mIGNhdGVnb3JpZXMgYW5kIG5vdCBhIGhpZXJhcmNoeS4KCjIwMDctMDEtMzEgMTE6MDI6MjkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDogQWRkIGluZm8gYWJvdXQgaG93IHRvIGdldCBhIGxpc3Qgb2YgdXNlZCBjbGFzc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIEFkZCBpbmZvIGFib3V0IGhvdyB0byBnZXQgYSBsaXN0IG9mIHVzZWQgY2xhc3Nlcy4KCjIwMDctMDEtMzAgMTk6MTI6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBEb24ndCBsZWFrIGZvdW5kIGNhcHMgaW4gY2hhaW4gZnVuY3Rpb24gKG5vIGlkZWEgd2h5IHRoYXQgbmV2ZXIgc2hvd2VkIHVwIGFzIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbl9kb190eXBlZmluZGluZyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgRG9uJ3QgbGVhayBmb3VuZCBjYXBzIGluIGNoYWluIGZ1bmN0aW9uIChubyBpZGVhIHdoeSB0aGF0IG5ldmVyCgkgIHNob3dlZCB1cCBhcyBhIGxlYWsgYW55d2hlcmUpLgoKMjAwNy0wMS0zMCAxNTowNDozMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbi5oOiBGaXggYW5kIGV4cGFuZCBHc3RQbHVnaW5EZXNjIEFQSSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIEZpeCBhbmQgZXhwYW5kIEdzdFBsdWdpbkRlc2MgQVBJIGRvY3MuCgoyMDA3LTAxLTI5IDE1OjU0OjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb25maWd1cmUuYWM6IGNvbW1lbnQgYWJvdXQgcmVmaW5pbmcgdGhlIHhtbCBkZXBzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgY29tbWVudCBhYm91dCByZWZpbmluZyB0aGUgeG1sIGRlcHMKCSAgKiBkb2NzL21hbnVhbHMubWFrOgoJICBjb21tZW50cyBhYm91dCBtb3ZpbmcgYXdheSBmcm9tIGphZGUgZm9yIGRvY3MKCSAgKiBnc3QvZ3N0LmM6CgkgIHJlY29tbWl0IHRoZSBpZmRlZnMgdG8gdXNlIHRoZSBiaW5hcnkgcmVnaXN0cnkKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgdGhpcyBicmVhayBpcyBvYnNvbGV0ZQoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBiZXR0ZXIgR1NUX0VMRU1FTlRfREVUQUlMUyBkb2NzLCBhZGQgY29tbWVudCBhYm91dCB0cmFuc2xhdGlvbgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIHJlbW92ZSBlb2wgc2xhc2gKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfc2lnbmFsX29iamVjdF9nZXRfdHlwZSk6CgkgIGFkZCBHX1VOTElLRUxZIGFzIHVzdWFsCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0KToKCSAgYWRkIGZhbGwgdHJodSBjb21tZW50CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfaW5pdGlhbGl6ZV9tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfc3RyaW5nKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NhY2hlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfY2hlY2tfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgIGNvbW1lbnQgdHlwbyBhbmQgZm9ybWF0dGluZwoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUpLAoJICAoZ3N0X2VsZW1lbnRfc3RhdGVfY2hhbmdlX3JldHVybl9nZXRfbmFtZSk6CgkgIHJlbW92ZSBvYnNvbGV0ZSBicmVha3MKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF9kYXRlX2dldF90eXBlKSwgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgIGFkZCBGSVhNRSAwLjExIGFuZCByZW1vdmUgY3BwIGNvbW1lbnQKCjIwMDctMDEtMjkgMTU6MDI6MTEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogRml4IHByaW50IHN0YXRlbWVudCBpbiBhbiBldmVuIG1vcmUgcG9ydGFibGUgd2F5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgIEZpeCBwcmludCBzdGF0ZW1lbnQgaW4gYW4gZXZlbiBtb3JlIHBvcnRhYmxlIHdheS4KCjIwMDctMDEtMjkgMTM6NDA6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBHU1RfUk9VTkRfRE9XTl8qIG1hY3JvcyAoIzQwMTc4MSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFQSTogYWRkIEdTVF9ST1VORF9ET1dOXyogbWFjcm9zICgjNDAxNzgxKS4KCjIwMDctMDEtMjcgMTg6NDQ6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBEb2N1bWVudCByZWdpc3RyeSBzaWduYWxzIGFuZCBtYWtlIGd0ay1kb2MgcGljayB0aGVtIHVwICgjNDAxMzgxKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2NsYXNzX2luaXQpOgoJICBEb2N1bWVudCByZWdpc3RyeSBzaWduYWxzIGFuZCBtYWtlIGd0ay1kb2MgcGljayB0aGVtIHVwICgjNDAxMzgxKS4KCjIwMDctMDEtMjYgMTg6MjQ6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDogQWRkIHNvbWUgYXVkaW9jb252ZXJ0cyBhbmQgYXVkaW9yZXNhbXBsZSB0byB0aGUgcGlwZWxpbmUsIGFuZCBzb21lIG1vcmUgY29tbWVudHMgYW5kIGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6CgkgIEFkZCBzb21lIGF1ZGlvY29udmVydHMgYW5kIGF1ZGlvcmVzYW1wbGUgdG8gdGhlIHBpcGVsaW5lLCBhbmQgc29tZQoJICBtb3JlIGNvbW1lbnRzIGFuZCBlcnJvciBoYW5kbGluZy4KCjIwMDctMDEtMjYgMTM6MDc6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzLzogRml4IHR5cG8gKCM0MDA5ODcpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICAqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIEZpeCB0eXBvICgjNDAwOTg3KS4KCjIwMDctMDEtMjYgMDk6Mzc6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBJbml0IGNhcHMgZmxhZ3MgdG9vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X3N0YXRpY19jYXBzX2dldCk6CgkgIEluaXQgY2FwcyBmbGFncyB0b28uCgoyMDA3LTAxLTI1IDE3OjU0OjA3ICswMDAwICBKaW5kcmljaCBNYWtvdmlja2EgPGppbmRyaWNoLm1ha292aWNrQGl0b25pcy50dj4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBJZiBub3QgdXNpbmcgbW1hcCdlZCBmaWxlcyB0cnkgdG8gc2VlayB0byB0aGUgZW5kIGluc3RlYWQgb2YgdGhlIHN0YXJ0IHRvIGRldGVybWluZSB3aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEppbmRyaWNoIE1ha292aWNrYSA8amluZHJpY2gubWFrb3ZpY2sgYXQgaXRvbmlzIGRvdCB0dj4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19zdGFydCk6CgkgIElmIG5vdCB1c2luZyBtbWFwJ2VkIGZpbGVzIHRyeSB0byBzZWVrIHRvIHRoZSBlbmQgaW5zdGVhZCBvZiB0aGUKCSAgc3RhcnQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgd2UgY2FuIHNlZWsgYXQgYWxsLiBUaGlzIGZpeGVzIHRoZSBjYXNlCgkgIG9mIDJHQisgZmlsZXMgb3ZlciBORlMsIHdoZXJlIHNlZWtzIGluIHRoZSBmaXJzdCAyR0IgY2FuIHN1Y2NlZWQgYnV0CgkgIHNlZWtzIGZvciBldmVyeXRoaW5nIGFmdGVyd2FyZHMgZmFpbC4gRml4ZXMgIzQwMDY1NgoKMjAwNy0wMS0yNSAxNzo0MTozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IEFkZCBzb21lIHJlZmNvdW50IGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKF9nc3RfY2Fwc19mcmVlKSwgKGdzdF9zdGF0aWNfY2Fwc19nZXQpOgoJICBBZGQgc29tZSByZWZjb3VudCBkZWJ1Z2dpbmcuCgkgIE1ha2UgZ3N0X3N0YXRpY19jYXBzX2dldCB0aHJlYWRzYWZlLCB3aGljaCBpcyBuZWVkZWQgd2hlbiBhdXRvcGx1Z2dpbmcKCSAgaW4gbXVsdGlwbGUgc3RyZWFtaW5nIHRocmVhZHMuCgoyMDA3LTAxLTI1IDEwOjUwOjAzICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIEFQSTogZ3N0X2FkYXB0ZXJfY29weSgpIHRoYXQgY2FuIHJlZHVjZSB0aGUgYW1vdW50IG9mIG1lbWNweSB3aGVuIGdldHRpbmcgZGF0YSBmcm9tIHRoZSBhZGFwdGVyLiBGaXhlcyAjMzg4MjAxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IERhdmlkIFNjaGxlZWYgPGRzIGF0IHNjaGxlZWYgZG90IG9yZz4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfY29weSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIEFQSTogZ3N0X2FkYXB0ZXJfY29weSgpIHRoYXQgY2FuIHJlZHVjZSB0aGUgYW1vdW50IG9mIG1lbWNweSB3aGVuCgkgIGdldHRpbmcgZGF0YSBmcm9tIHRoZSBhZGFwdGVyLiBGaXhlcyAjMzg4MjAxLgoKMjAwNy0wMS0yNSAxMDoxNDowOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBJbiBwcmludCBzdGF0ZW1lbnRzLCAiJXgiIGlzIGZvciBndWludC4gRml4ZXMgYnVpbGQgb24gbWFjb3N4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgIEluIHByaW50IHN0YXRlbWVudHMsICIleCIgaXMgZm9yIGd1aW50LiBGaXhlcyBidWlsZCBvbiBtYWNvc3guCgoyMDA3LTAxLTI0IDExOjMyOjAwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IFNtYWxsIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIChnc3RfbXVsdGlfcXVldWVfbG9vcCk6CgkgIFNtYWxsIGZpeC4KCSAgKHNpbmdsZV9xdWV1ZV9vdmVycnVuX2NiKSwgKHNpbmdsZV9xdWV1ZV91bmRlcnJ1bl9jYiksCgkgIChzaW5nbGVfcXVldWVfY2hlY2tfZnVsbCksIChnc3Rfc2luZ2xlX3F1ZXVlX25ldyk6CgkgIEltcGxlbWVudCBzaW5nbGUgcXVldWUgZ3Jvd3RoIHN5c3RlbS4KCSAgVGhpcyB1c2VzIHRoZSBleHRyYS1zaXplIHByb3BlcnRpZXMsIGFuZCB3aWxsIGdyb3cgc2luZ2xlIHF1ZXVlcyBieQoJICB0aGF0IG11Y2ggaWYgb25lIGdvZXMgZnVsbCB3aGVyZWFzIHRoZXJlIGFyZSBvdGhlcnMgZW1wdHkuIFRoaXMgaXMKCSAgY2FsbGVkIGV4dHJhLW1vZGUgaW4gdGhlIGNvZGUuCgkgIFdoZW4gYSBzaW5nbGUgcXVldWUncyBsZXZlbHMgZ28gYmFjayBiZWxvdyB0aGUgaW5pdGlhbCBtYXgtc2l6ZQoJICBsaW1pdHMsIGl0IGlzIG5vIGxvbmdlciBpbiBleHRyYS1tb2RlLiBUaGlzIGlzIHRvIGVuc3VyZSB3ZSBkb24ndAoJICBjb25zdW1lIHRvbyBtdWNoIG1lbW9yeS4KCSAgRml4ZXMgIzM5OTg3NQoKMjAwNy0wMS0yMyAxMzo1MDo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogTWFrZSB3YXJuaW5nIGFib3V0IGxhdGUgZ190aHJlYWRfaW5pdCgpIGNhbGxzIGEgYml0IG1vcmUgZXhwbGljaXQsIHNvIHRoYXQgaXQncyBtb3JlIG9idmlvdXMgdG8gYXBwbGljYXRpby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKToKCSAgTWFrZSB3YXJuaW5nIGFib3V0IGxhdGUgZ190aHJlYWRfaW5pdCgpIGNhbGxzIGEgYml0IG1vcmUgZXhwbGljaXQsCgkgIHNvIHRoYXQgaXQncyBtb3JlIG9idmlvdXMgdG8gYXBwbGljYXRpb24gZGV2ZWxvcGVycyB3aGF0IHRoZXkgbmVlZAoJICB0byBkbyBpZiBhIHVzZXIgZmlsZXMgYSBidWcgYWdhaW5zdCB0aGVpciBhcHBsaWNhdGlvbi4KCjIwMDctMDEtMjIgMTY6MDA6MzkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogUmVtb3ZlIHByZXZpb3VzIGhhY2sgb2YgdW5zZXR0aW5nIHRoZSBmbHVzaGluZyBmbGFnIGZvciB0aGUgc291cmNlIHBhZCBpbnN0ZWFkIG9mIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIChnc3RfbXVsdGlfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3NpbmdsZV9xdWV1ZV9uZXcpOgoJICBSZW1vdmUgcHJldmlvdXMgaGFjayBvZiB1bnNldHRpbmcgdGhlIGZsdXNoaW5nIGZsYWcgZm9yIHRoZSBzb3VyY2UgcGFkCgkgIGluc3RlYWQgb2YgYWN0aXZhdGluZyBpdC4gSW5zdGVhZCwgZml4IHRoZSBzb3VyY2UgcGFkIGFjdGl2YXRlIGZ1bmN0aW9uCgkgIHNvIHRoYXQgaXQgbm8gbG9uZ2VyIGRlcGVuZHMgb24gaGF2aW5nIGEgcGFyZW50IHNldCBvciBub3QuCgoyMDA3LTAxLTIyIDE0OjMwOjI3ICswMDAwICBDYXJsb3MgU2FubWFydGluIERvbWluZ3VleiA8Y3Nhbm1hcnRpbkBpZ2FsaWEuY29tPgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6IEZpeCBleGFtcGxlIGNvZGUsIGdzdF9lbGVtZW50X3VucmVmKCkgZG9lc24ndCBleGlzdCBhbnkgbG9uZ2VyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IENhcmxvcyBTYW5tYXJ0aW4gRG9taW5ndWV6IDxjc2FubWFydGluQGlnYWxpYS5jb20+CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgIEZpeCBleGFtcGxlIGNvZGUsIGdzdF9lbGVtZW50X3VucmVmKCkgZG9lc24ndCBleGlzdCBhbnkgbG9uZ2VyLgoKMjAwNy0wMS0yMSAyMDoyNDoxMSArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIGdzdC9nc3RwYWQuYzogRml4IHR3byBkb2NzIHR5cG9lcyAoIzM5OTA5NCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3IGF0IHNreW5ldCBiZT4KCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIEZpeCB0d28gZG9jcyB0eXBvZXMgKCMzOTkwOTQpLgoKMjAwNy0wMS0xOSAwOToxNToyMSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogQWRkIGdzdC1wbHVnaW5zLWJhc2UvZ3N0L3V0aWxzLyB0byBMRF9MSUJSQVJZX1BBVEggc28gdGhhdCBwbHVnaW5zIGRlcGVuZGluZyBvbiBsaWJnc3RiYXNldS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIEFkZCBnc3QtcGx1Z2lucy1iYXNlL2dzdC91dGlscy8gdG8gTERfTElCUkFSWV9QQVRIIHNvIHRoYXQgcGx1Z2lucwoJICBkZXBlbmRpbmcgb24gbGliZ3N0YmFzZXV0aWxzIGNhbiB3b3JrIGluIHVuaW5zdGFsbGVkIGVudmlyb25tZW50LgoKMjAwNy0wMS0xOCAxMjowMDoyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogQWRkIG1vcmUgZG9jcyByZWdhcmRpbmcgdGFnIG1lcmdlLW1vZGVzIGFuZCB3aGVuIHRvIHNlbmQgdGFncy4gRml4ICdzaW5jZScgc3RhdGVtZW50IGZvciBuZXcgdGFnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgQWRkIG1vcmUgZG9jcyByZWdhcmRpbmcgdGFnIG1lcmdlLW1vZGVzIGFuZCB3aGVuIHRvIHNlbmQgdGFncy4gRml4ICdzaW5jZScKCSAgc3RhdGVtZW50IGZvciBuZXcgdGFnLgoKMjAwNy0wMS0xNyAxNDozMzozOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBXaGVuIGR5bmFtaWNhbGx5IGNyZWF0aW5nIHNpbmdsZSBxdWV1ZXMsIGFjdGl2YXRlIHNpbmtwYWQgYmVmb3JlIGFkZGluZyBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3Rfc2luZ2xlX3F1ZXVlX25ldyk6CgkgIFdoZW4gZHluYW1pY2FsbHkgY3JlYXRpbmcgc2luZ2xlIHF1ZXVlcywgYWN0aXZhdGUgc2lua3BhZCBiZWZvcmUgYWRkaW5nCgkgIGl0LgoJICBXZSBzaG91bGQgYmUgZG9pbmcgdGhlIHNhbWUgdGhpbmcgZm9yIHRoZSBzb3VyY2UgcGFkLCBidXQgd2UgY2FuJ3QKCSAgc2luY2UgaXQgd291bGQgY2FsbCBhIG1ldGhvZCB3aGljaCBuZWVkcyB0aGUgcGFyZW50IHRvIGJlIHNldCBpbiBvcmRlcgoJICB0byB3b3JrIHByb3BlcnRseS4gSW5zdGVhZCBvZiBhY3RpdmF0aW5nIHRoZSBzb3VyY2UgcGFkLCB3ZSBqdXN0IHVuc2V0CgkgIHRoZSBmbHVzaGluZyBmbGFnLCB3aGljaCBpcyB0aGUgbWluaW1hbCByZXF1aXJlbWVudCBmb3IgYWRkaW5nIGEgcGFkCgkgIHRvIGFuIGVsZW1lbnQgaW4gYSBzdGF0ZSBncmVhdGVyIHRoYW4gUkVBRFkuCgoyMDA3LTAxLTE3IDE0OjI2OjQ2ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBBZGQgRFlMRF9MSUJSQVJZX1BBVEggZGVjbGFyYXRpb25zIHNvIHdlIGNhbiBhbHNvIHVzZSB0aGlzIHNjcmlwdCBvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIEFkZCBEWUxEX0xJQlJBUllfUEFUSCBkZWNsYXJhdGlvbnMgc28gd2UgY2FuIGFsc28gdXNlIHRoaXMgc2NyaXB0IG9uCgkgIE1hYyBPUyBYLgoKMjAwNy0wMS0xNyAxMjozMTowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIEFCSSBzdHJ1Y3RzIGZvciBIUFBBIChzZWUgIzM5Mzc5NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9ocHBhLmg6CgkgIEFkZCBBQkkgc3RydWN0cyBmb3IgSFBQQSAoc2VlICMzOTM3OTYpLgoKMjAwNy0wMS0xNiAwOTo1Nzo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IEFjdHVhbGx5IHdyaXRlIEFCSSBzdHJ1Y3RzIHRvIHRoZSBmaWxlIHNwZWNpZmllZCBpbiB0aGUgR1NUX0FCSSBlbnZpcm9ubWVudCB2YXJpYWJsZSwgYXMgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX2FiaV9saXN0KToKCSAgQWN0dWFsbHkgd3JpdGUgQUJJIHN0cnVjdHMgdG8gdGhlIGZpbGUgc3BlY2lmaWVkIGluIHRoZSBHU1RfQUJJCgkgIGVudmlyb25tZW50IHZhcmlhYmxlLCBhcyB0aGUgbWVzc2FnZSB3ZSBwcmludCBjbGFpbXMgd2Ugd291bGQuCgoyMDA3LTAxLTE1IDE0OjUxOjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOiBGaXggaGVhZGVyIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6CgkgIEZpeCBoZWFkZXIgY29tbWVudC4KCjIwMDctMDEtMTUgMTQ6Mzk6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0LmM6IENoYW5nZSB0YWcgdHlwZSBmcm9tIFNUUklORyB0byBET1VCTEUuIEFwcGx5IENoYW5nZUxvZyBzdXJnZXJ5IGZvciBteSBwcmV2aW91cyB0d28gZW50cmllcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpOgoJICBDaGFuZ2UgdGFnIHR5cGUgZnJvbSBTVFJJTkcgdG8gRE9VQkxFLiBBcHBseSBDaGFuZ2VMb2cgc3VyZ2VyeSBmb3IgbXkKCSAgcHJldmlvdXMgdHdvIGVudHJpZXMuCgoyMDA3LTAxLTE1IDEzOjU3OjEyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhZGQgdGFnIHN1cHBvcnQgZm9yIGJlYXQtcGVyLW1pbnV0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBhZGQgdGFnIHN1cHBvcnQgZm9yIGJlYXQtcGVyLW1pbnV0ZQoKMjAwNy0wMS0xNSAxMjoxODo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lio6IHVzZSBnbGliIHR5cGVzLCBjbGVhbnVwIGNvbW1lbnRzLCBpbXBlbWVudCBpbnRlcmZhY2VzIGFuZCB1cmktdHlwZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfaW5pdGlhbGl6ZV9tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfc3RyaW5nKSwgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbWFrZV9kYXRhKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NhY2hlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfY2hlY2tfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIHVzZSBnbGliIHR5cGVzLCBjbGVhbnVwIGNvbW1lbnRzLCBpbXBlbWVudCBpbnRlcmZhY2VzIGFuZCB1cmktdHlwZXMKCjIwMDctMDEtMTMgMTA6MzM6NDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9nZXRfcmFuZ2UsIGdzdF9wYWRfcHVsbF9yYW5nZSk6IEFsbG93IGdldHJhbmdlKCkgdG8gcmV0dXJuIGJ1ZmZlcnMgd2l0aCBvdGhlciBjYXBzLCB3aGlsZSB3ZSBmaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0xMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZ2V0X3JhbmdlLCBnc3RfcGFkX3B1bGxfcmFuZ2UpOiBBbGxvdwoJICBnZXRyYW5nZSgpIHRvIHJldHVybiBidWZmZXJzIHdpdGggb3RoZXIgY2Fwcywgd2hpbGUgd2UgZml4CgkgIGRlbXV4ZXJzIGFuZCB0eXBlZmluZCwgb3Igb3RoZXJ3aXNlIGNoYW5nZSBwYXJ0LW5lZ290aWF0aW9uLnR4dC4KCjIwMDctMDEtMTIgMjE6MTM6MzIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fYWN0aXZhdGUpOiBGYWN0b3Igc3RhcnQvc3RvcCBpbnRvIHRoaXMgcHJpdmF0ZSBmdW5jdGlvbiBpbnN0ZWFkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0xMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjdGl2YXRlKToKCSAgRmFjdG9yIHN0YXJ0L3N0b3AgaW50byB0aGlzIHByaXZhdGUgZnVuY3Rpb24gaW5zdGVhZCBvZiBwYXJ0aWFsbHkKCSAgaW4gYWN0aXZhdGUgZnVuY3Rpb25zIGFuZCBwYXJ0aWFsbHkgaW4gdGhlIGNoYW5nZV9zdGF0ZSBmdW5jdGlvbi4KCSAgRml4ZXMgc2V0dXAgYmVmb3JlIHRoZSBlbGVtZW50IGhhcyBjaGFuZ2VkIGZyb20gUkVBRFktPlBBVVNFRCwgYXMKCSAgaXMgdGhlIGNhc2UgaW4gcHVsbC1tb2RlIHBpcGVsaW5lcy4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2FjdGl2YXRlX3B1c2gpCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc3JjX2FjdGl2YXRlX3B1bGwpOiBSZWZhY3RvciB0byB1c2UKCSAgZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjdGl2YXRlKCkuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKTogUmVtb3ZlZCwgbm90IG5lZWRlZCBhbnkgbW9yZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfbmVnb3RpYXRlX3B1bGwpOgoJICBUcnVuY2F0ZSBiZWZvcmUgZml4YXRpbmcuCgoyMDA3LTAxLTEyIDE4OjA2OjI5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfbmVnb3RpYXRlX3B1bGwpOiBEb24ndCBzZXRfY2FwcygpIGlmIHRoZSByZXN1bHQgb2YgZml4YXRpbmcgaXMgQU5ZLCBhcyBpdCcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDEtMTIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX25lZ290aWF0ZV9wdWxsKToKCSAgRG9uJ3Qgc2V0X2NhcHMoKSBpZiB0aGUgcmVzdWx0IG9mIGZpeGF0aW5nIGlzIEFOWSwgYXMgaXQncyBub3QKCSAgc3VwcG9ydGVkLCBhbmQgbm90IG5lY2Vzc2FyeSBpbiB0aGUgY2FzZSBvZiBhIGxpbmsgd2l0aCBubwoJICB0ZW1wbGF0ZSBjYXBzIG9uIGVpdGhlciBzaWRlLiBGaXhlcyB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMgaW4KCSAgc29tZSBwdWxsLW1vZGUgdGVzdHMuCgoyMDA3LTAxLTEyIDE1OjU2OjAwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoX0dzdEJhc2VUcmFuc2Zvcm1Qcml2YXRlKTogKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0LCBnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19hY3RpdmEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDEtMTIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKF9Hc3RCYXNlVHJhbnNmb3JtUHJpdmF0ZSk6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCwgZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfYWN0aXZhdGVfcHVzaCkKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zcmNfYWN0aXZhdGVfcHVsbCk6CgkgIFRyYWNrIHRoZSBhY3RpdmF0aW9uIG1vZGUuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2Fwcyk6IEluIHB1bGwgbW9kZSwgd2hlbiBhY3RpdmF0aW5nIHRoZQoJICBzcmMgcGFkLCBhZnRlciBhY3RpdmF0aW5nIHRoZSBzaW5rIHBhZCwgYWN0aXZhdGUgdGhlIHNpbmsgcGFkJ3MKCSAgcGVlciwgYXMgZGlzY3Vzc2VkIGluIHBhcnQtbmVnb3RpYXRpb24udHh0LgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfZml4YXRlKTogQWRkIGZpeGF0ZQoJICB2bWV0aG9kLCBhcyBpbiBiYXNlc2luay4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6IFJlZm9ybWF0IGRvY3MsIGFkZCBmaXhhdGUgdm1ldGhvZC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfcGFkX3NldGNhcHMpOiBJbiBwdWxsCgkgIG1vZGUsIGZpcnN0IHByb3h5IHRoZSBzZXRjYXBzIHRvIHRoZSBwZWVyIHBhZC4KCSAgKGdzdF9iYXNlX3NpbmtfcGFkX2ZpeGF0ZSk6IEFkZCBhIGZpeGF0ZSBmdW5jdGlvbiB0aGF0IGNhbGxzIHRoZQoJICBuZXcgZml4YXRlIHZtZXRob2QuCgkgIChnc3RfYmFzZV9zaW5rX2RlZmF1bHRfYWN0aXZhdGVfcHVsbCk6IFJlbmFtZSBmcm9tCgkgIGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbC4KCSAgKGdzdF9iYXNlX3NpbmtfbmVnb3RpYXRlX3B1bGwpOiBOZXcgZnVuY3Rpb24sIHBlcmZvcm1zIG5lZ290aWF0aW9uCgkgIGluIHB1bGwgbW9kZSBiZWZvcmUgY2FsbGluZyA6OmFjdGl2YXRlX3B1bGwoKS4KCSAgKGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlX3B1bGwpOiBBY3R1YWxseSBjYWxsIHRoZSBhY3RpdmF0ZV9wdWxsCgkgIHZtZXRob2QgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4gSSBoYXZlIG5vIGlkZWEgaG93CgkgIHRoaXMgd29ya2VkIGJlZm9yZS4gTmVnb3RpYXRlIGJlZm9yZSBjYWxsaW5nIGFjdGl2YXRlX3B1bGwuCgoyMDA3LTAxLTEyIDE1OjQ4OjAwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCk6IFJlZnVzZSB0byBhY3RpdmF0ZSB1bmxpbmtlZCBzaW5rIHBhZHMgaW4gcHVsbCBtb2RlLiBJbiBhZGRpdGlvbiB0byBiZWluZyBjb3JyZWMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDEtMTIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpOiBSZWZ1c2UgdG8gYWN0aXZhdGUgdW5saW5rZWQKCSAgc2luayBwYWRzIGluIHB1bGwgbW9kZS4gSW4gYWRkaXRpb24gdG8gYmVpbmcgY29ycmVjdCwgZml4ZXMKCSAgZmlsZXNyYyAhIGRlY29kZWJpbiAhIGlkZW50aXR5ICEgZmFrZXNpbmsuCgkgIChnc3RfcGFkX2dldF9yYW5nZSwgZ3N0X3BhZF9wdWxsX3JhbmdlKTogRG9uJ3QgY2FsbAoJICBnc3RfcGFkX3NldF9jYXBzKCkgaWYgdGhlIGNhcHMgY2hhbmdlczsgaW5zdGVhZCBlcnJvciBvdXQgd2l0aAoJICBHU1RfRkxPV19OT1RfTkVHT1RJQVRFRCwgYXMgZGlzY3Vzc2VkIGluIHBhcnQtbmVnb3RpYXRpb24udHh0LgoKMjAwNy0wMS0xMiAxNTozOTo1NyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6IFVwZGF0ZSB3aXRoIG1vcmUgcG9saWN5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0xMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDogVXBkYXRlIHdpdGggbW9yZSBwb2xpY3kuCgoyMDA3LTAxLTEyIDEyOjQ4OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY2hlY2svOiBBZGQgR19CRUdJTl9ERUNMUyBhbmQgR19FTkRfREVDTFMuIE1vdmUgR1NUX0NIRUNLX01BSU4gd2hlcmUgaXQgYmVsb25ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuaDoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBBZGQgR19CRUdJTl9ERUNMUyBhbmQgR19FTkRfREVDTFMuIE1vdmUgR1NUX0NIRUNLX01BSU4gd2hlcmUgaXQKCSAgYmVsb25ncy4KCjIwMDctMDEtMTIgMTA6NTM6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay86IEFkZCBtaW5pbWFsIHVuaXQgdGVzdCBmb3IgYmVmb3JlbWVudGlvbmVkIEdzdFRhZ1NldHRlciBidWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdzZXR0ZXIuYzogKGdzdF9kdW1teV9lbmNfYWRkX2ludGVyZmFjZXMpLAoJICAoZ3N0X2R1bW15X2VuY19iYXNlX2luaXQpLCAoZ3N0X2R1bW15X2VuY19jbGFzc19pbml0KSwKCSAgKGdzdF9kdW1teV9lbmNfaW5pdCksICh0YWdfbGlzdF9mb3JlYWNoKSwgKHRhZ19zZXR0ZXJfbGlzdF9sZW5ndGgpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3RhZ19zZXR0ZXJfc3VpdGUpOgoJICBBZGQgbWluaW1hbCB1bml0IHRlc3QgZm9yIGJlZm9yZW1lbnRpb25lZCBHc3RUYWdTZXR0ZXIgYnVnLgoKMjAwNy0wMS0xMiAxMDo0ODo0OSArMDAwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGdzdC9nc3R0YWdzZXR0ZXIuYzogZ3N0X3RhZ19saXN0X21lcmdlKCkgcmV0dXJucyBhIG5ldyBsaXN0LCBzbyBpdCdzIG5vdCB0aGUgYmVzdCBpZGVhIHRvIGluZ29yZSBpdHMgcmV0dXJuIHZhbHVlLiBFZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJlbsOpIFN0YWRsZXIgPG1haWwgYXQgcmVuZXN0YWRsZXIgZG90IGRlPgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzogKGdzdF90YWdfc2V0dGVyX21lcmdlX3RhZ3MpOgoJICBnc3RfdGFnX2xpc3RfbWVyZ2UoKSByZXR1cm5zIGEgbmV3IGxpc3QsIHNvIGl0J3Mgbm90IHRoZSBiZXN0IGlkZWEKCSAgdG8gaW5nb3JlIGl0cyByZXR1cm4gdmFsdWUuIEVmZmVjdGl2ZWx5IG1lYW50IHRoYXQgdGFncyBjb3VsZCBvbmx5CgkgIGJlIG1lcmdlZCBvbiBhIEdzdFRhZ1NldHRlciBvbmNlIHVzaW5nIF9tZXJnZV90YWdzKCkuIEZpeGVzICMzOTU1NTQuCgkgIEFsc28gYWRkIGZ1bmN0aW9uIGd1YXJkIHRvIHJlcXVpcmUgYSBub24tTlVMTCB0YWdsaXN0IGFzIGlucHV0IChoYXMKCSAgYWx3YXlzIGJlZW4gc28gZHVlIHRvIGdzdF90YWdfbGlzdF9jb3B5KCksIGp1c3QgbWFraW5nIGl0IGV4cGxpY2l0KS4KCjIwMDctMDEtMTEgMTU6MDM6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OiBTb21lIGFkZGl0aW9uczogbWVudGlvbiBuZXcgQVBJIHRoYXQgaXMgc3VwcG9zZWQgdG8gYmUgdXNlZCBhdCB0aGUgdmFyaW91cyBzdGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSAgU29tZSBhZGRpdGlvbnM6IG1lbnRpb24gbmV3IEFQSSB0aGF0IGlzIHN1cHBvc2VkIHRvIGJlIHVzZWQgYXQgdGhlCgkgIHZhcmlvdXMgc3RhZ2VzOyBzaG9ydCBibG9iIGFib3V0IG5ldyBnc3QtaW5zcGVjdCBpbnRyb3NwZWN0aW9uCgkgIG9wdGlvbjsgbWVudGlvbiBwb3RlbnRpYWwgZnV0dXJlIHByb2JsZW0gd2l0aCBwbHVnaW5zIHRoYXQgaGF2ZQoJICBhIGR5bmFtaWMgbGlzdCBvZiBlbGVtZW50cyAoc3VjaCBhcyBsYWRzcGEsIHBpdGZkbGwsIGxpYnZpc3VhbCkuCgoyMDA3LTAxLTExIDE0OjE2OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogQWRkIC0tcHJpbnQtcGx1Z2luLWF1dG8taW5zdGFsbC1pbmZvIG9wdGlvbiB0byBnc3QtaW5zcGVjdCwgc28gd2UgY2FuIGludHJvc3BlY3QgcGx1Z2luIGZpbGVzIGFuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIChwcmludF9wbHVnaW5fYXV0b21hdGljX2luc3RhbGxfaW5mb19jb2RlY3MpLAoJICAocHJpbnRfcGx1Z2luX2F1dG9tYXRpY19pbnN0YWxsX2luZm9fcHJvdG9jb2xzKSwKCSAgKHByaW50X3BsdWdpbl9hdXRvbWF0aWNfaW5zdGFsbF9pbmZvKSwgKG1haW4pOgoJICBBZGQgLS1wcmludC1wbHVnaW4tYXV0by1pbnN0YWxsLWluZm8gb3B0aW9uIHRvIGdzdC1pbnNwZWN0LCBzbyB3ZSBjYW4KCSAgaW50cm9zcGVjdCBwbHVnaW4gZmlsZXMgYW5kIGdldCBtYWNoaW5lLXBhcnNhYmxlIG91dHB1dCB0aGF0IGNvcnJlc3BvbmRzCgkgIHRvIHRoZSBsYXN0IGJpdCBvZiB0aGUgbWlzc2luZy1wbHVnaW4gaW5zdGFsbGVyIHN0cmluZyAoc21hbGwgZ290Y2hhOgoJICBkb2Vzbid0IHRha2UgaW50byBhY2NvdW50IHJhbmtzKS4KCjIwMDctMDEtMTEgMTM6NDU6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbW1pdCBiaW5hcnkgcmVnaXN0cnkgKGRpc2FibGVkIGJ5IGRlZmF1bHQsIHNlZSAjMzU5NjUzKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfbG9va3VwX2ZlYXR1cmVfbG9ja2VkKSwKCSAgKGdzdF9yZWdpc3RyeV9sb29rdXBfbG9ja2VkKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9pbml0aWFsaXplX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9zdHJpbmcpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2FjaGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9jaGVja19tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfeG1sX3JlYWRfY2FjaGUpOgoJICBjb21taXQgYmluYXJ5IHJlZ2lzdHJ5IChkaXNhYmxlZCBieSBkZWZhdWx0LCBzZWUgIzM1OTY1MykKCjIwMDctMDEtMTEgMTA6NDg6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6IEZpeCAnbWFrZSBjaGVjaycgdG9vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6ICh0ZXN0X2dldF9hbGxvd2VkX2NhcHMpOgoJICBGaXggJ21ha2UgY2hlY2snIHRvby4KCjIwMDctMDEtMTAgMjE6MjQ6MDggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OiBGaXggYSB0eXBvLCBhZGQgYSBjb3VwbGUgbm90ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OiBGaXggYSB0eXBvLCBhZGQgYSBjb3VwbGUKCSAgbm90ZXMuCgoyMDA3LTAxLTEwIDIxOjE1OjA4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDogVXBkYXRlIHdpdGgsIHVtLCBvbmUgd2F5IHRoYXQgcHVsbC1tb2RlIG5lZ290aWF0aW9uIG1pZ2h0IHdvcms/CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OiBVcGRhdGUgd2l0aCwgdW0sIG9uZSB3YXkgdGhhdAoJICBwdWxsLW1vZGUgbmVnb3RpYXRpb24gbWlnaHQgd29yaz8KCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2dldF9hbGxvd2VkX2NhcHMpOiBSZW1vdmUgdGhlIHJlc3RyaWN0aW9uCgkgIHRoYXQgdGhlIHBhZCBtdXN0IGJlIGEgc3JjIHBhZDsgbWFrZXMgc2Vuc2UgdG8gY2FsbCBpdCB0aGUgb3RoZXIKCSAgd2F5IGluIHB1bGwgbW9kZSwgYW5kIHRoZSBsb2dpYyBpcyBzeW1tZXRyaWMgYW55d2F5LgoKMjAwNy0wMS0xMCAxOToyNTowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogSW5jbHVkZSA8c3RkaW8uaD4gZm9yIGZzZWVrbygpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIEluY2x1ZGUgPHN0ZGlvLmg+IGZvciBmc2Vla28oKS4KCjIwMDctMDEtMTAgMTA6MjE6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuKjogUmVzZXJ2ZSBMQVRFTkNZIGV2ZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgUmVzZXJ2ZSBMQVRFTkNZIGV2ZW50LgoKMjAwNy0wMS0wOSAxODowOTo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OiBVcGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDoKCSAgVXBkYXRlcy4KCjIwMDctMDEtMDkgMTU6Mzg6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDogVXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6CgkgIFVwZGF0ZXMuCgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogZ3N0L2dzdHRyYWNlLmM6CgkgIFNtYWxsIHR5cG8gZml4ZXMuCgoyMDA3LTAxLTA5IDE0OjM4OjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svLmN2c2lnbm9yZTogSWdub3JlIHRlc3QtcmVnaXN0cnkueG1sIGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrLy5jdnNpZ25vcmU6CgkgIElnbm9yZSB0ZXN0LXJlZ2lzdHJ5LnhtbCBhcyB3ZWxsLgoKMjAwNy0wMS0wOSAxMjozNDo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogdW5yZWYgZGF0YSBhdCB0aGUgZW5kIHdoZW4gd2UgYXJlIGRvbmUgd2l0aCB0aGUgcGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpOgoJICB1bnJlZiBkYXRhIGF0IHRoZSBlbmQgd2hlbiB3ZSBhcmUgZG9uZSB3aXRoIHRoZSBwYWQuCgoyMDA3LTAxLTA4IDIwOjMwOjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgZ3N0X3VwZGF0ZV9yZWdpc3RyeSgpICgjMzkxMjk2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0LmM6IChsb2FkX3BsdWdpbl9mdW5jKSwgKHNjYW5fYW5kX3VwZGF0ZV9yZWdpc3RyeSksCgkgIChpbml0X3Bvc3QpLCAoZ3N0X2RlaW5pdCksIChnc3RfdXBkYXRlX3JlZ2lzdHJ5KToKCSAgKiBnc3QvZ3N0Lmg6CgkgIEFQSTogYWRkIGdzdF91cGRhdGVfcmVnaXN0cnkoKSAoIzM5MTI5NikuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgIFNpbXBsZSB1bml0IHRlc3QgZm9yIHRoZSBhYm92ZS4KCjIwMDctMDEtMDggMTY6MjM6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogUGx1Z2luIGV4dGVuc2lvbiBvbiBIUC1VWCBpcyAuc2wsIGFkZCB0aGF0IHRvIHRoZSBsaXN0IG9mIGFwcHJvdmVkIHBsdWdpbiBleHRlbnNpb25zIChzZWUgIzM5Mzc5NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIFBsdWdpbiBleHRlbnNpb24gb24gSFAtVVggaXMgLnNsLCBhZGQgdGhhdCB0byB0aGUgbGlzdCBvZiBhcHByb3ZlZAoJICBwbHVnaW4gZXh0ZW5zaW9ucyAoc2VlICMzOTM3OTYpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgdWxvbmcgPT4gZ3Vsb25nLiBGaXhlcyBjb21waWxhdGlvbiB3aXRoIEhQLVVYIGNvbXBpbGVyLgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IGNvbXBpbGF0aW9uIGlmIHZhbGdyaW5kIGhlYWRlcnMgYXJlIG5vdCBhdmFpbGFibGUuCgoyMDA3LTAxLTA3IDEwOjIxOjMzICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb24uCgkgICogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJICBBZGQgZ3N0ZGF0YXF1ZXVlLmMgdG8gdGhlIGJ1aWxkLgoJICAqIHdpbjMyL3ZzNi9saWJnc3Rjb3JlZWxlbWVudHMuZHNwOgoJICBBZGQgZ3N0bXVsdGlxdWV1ZS5jIHRvIHRoZSBidWlsZC4KCjIwMDctMDEtMDYgMTc6MTg6MDMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDogTmV3IEdzdEJhc2VTaW5rQ2xhc3Mgdm1ldGhvZCwgYWN0aXZhdGVfcHVsbCgpLCBwcm92aWRpbmcgZm9yIGEgd2F5IHRvIHNwZWNpYWxpemUgdGhlIHByby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0wNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6IE5ldyBHc3RCYXNlU2lua0NsYXNzIHZtZXRob2QsCgkgIGFjdGl2YXRlX3B1bGwoKSwgcHJvdmlkaW5nIGZvciBhIHdheSB0byBzcGVjaWFsaXplIHRoZSBwcm9jZXNzIG9mCgkgIHNwYXduaW5nIGEgdGhyZWFkIHRvIHB1bGwgb24gdGhlIHNpbmsgcGFkLiBUaGVyZSBpcyBhIGRlZmF1bHQKCSAgaW1wbGVtZW50YXRpb24uCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZV9wdWxsKQoJICAoZ3N0X2Jhc2Vfc2lua19wYWRfYWN0aXZhdGVfcHVzaCwgZ3N0X2Jhc2Vfc2lua19wYWRfYWN0aXZhdGUpCgkgIChnc3RfYmFzZV9zaW5rX2luaXQpOiBSZW5hbWVkIHBhZCBhY3RpdmF0aW9uIGZ1bmN0aW9ucyAoaW5zZXJ0aW5nCgkgICJfcGFkIiBpbiB0aGVpciBuYW1lcykuIFJlZmFjdG9yIHRvIHVzZSB0aGUgbmV3IGFjdGl2YXRlX3B1bGwKCSAgdm1ldGhvZCwgYXMgYXBwcm9wcmlhdGUuCgkgIChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQsIGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCk6IFNldCB0aGUKCSAgZGVmYXVsdCBhY3RpdmF0ZV9wdWxsIGZ1bmN0aW9uIHRvIHN0YXJ0IGEgdGFzayBwdWxsaW5nIGZyb20gdGhlCgkgIHNpbmsgcGFkLCBhcyBiZWZvcmUuCgoyMDA3LTAxLTA2IDE3OjA5OjEwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZ2V0X3JhbmdlLCBnc3RfcGFkX3B1bGxfcmFuZ2UpOiBTZXQgY2FwcyBvbiB0aGUgcGFkcyBpZiBuZWNlc3NhcnksIGFzIGluIHB1c2goKS9jaGFpbigpLiBVcGRhdGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDEtMDYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2dldF9yYW5nZSwgZ3N0X3BhZF9wdWxsX3JhbmdlKTogU2V0IGNhcHMKCSAgb24gdGhlIHBhZHMgaWYgbmVjZXNzYXJ5LCBhcyBpbiBwdXNoKCkvY2hhaW4oKS4gVXBkYXRlIGRvY3MuCgkgIFNob3VsZG4ndCBhZmZlY3QgZXhpc3RpbmcgcHVsbCgpIHVzYWdlIGFzIGl0IGlzIGN1cnJlbnRseSBvbmx5CgkgIGJlaW5nIHVzZWQgb24gYnVmZmVycyB3aXRob3V0IGNhcHMuCgoyMDA3LTAxLTA1IDE2OjM2OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBDYWxsIGdfdGhyZWFkX2luaXQoKSBmaXJzdCB0aGluZyBpbiBnc3RfaW5pdCgpIC8gZ3N0X2NoZWNrX2luaXQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCksIChnc3RfaW5pdF9jaGVjayksCgkgIChpbml0X3ByZSk6CgkgIENhbGwgZ190aHJlYWRfaW5pdCgpIGZpcnN0IHRoaW5nIGluIGdzdF9pbml0KCkgLyBnc3RfY2hlY2tfaW5pdCgpLgoJICBXaGVuIGluaXRpYWxpc2F0aW9uIGlzIGRvbmUgdmlhIGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXAoKSBhbmQKCSAgR09wdGlvbiBwYXJzaW5nLCBpc3N1ZSBhIHdhcm5pbmcgaWYgdGhlIEdMaWIgdGhyZWFkIHN5c3RlbSBoYXMgbm90CgkgIGJlZW4gaW5pdGlhbGlzZWQgeWV0IGJ5IHRoZSB0aW1lIGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXAoKSBpcwoJICBjYWxsZWQsIGFzIGl0J3MgcXVpdGUgbGlrZWx5IG90aGVyIEdMaWIgZnVuY3Rpb25zIHN1Y2ggYXMKCSAgZ19vcHRpb25fY29udGV4dF9uZXcoKSBoYXZlIGJlZW4gY2FsbGVkIGFscmVhZHkgdGhlbiwgYW5kCgkgIGdfdGhyZWFkX2luaXQoKSBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgYW55IG90aGVyIEdMaWIgZnVuY3Rpb24uIFRoZQoJICBhcHBsaWNhdGlvbiBpbiBxdWVzdGlvbiBtdXN0IGJlIGZpeGVkIGluIHRoYXQgY2FzZSwgc2luY2UgbWVtb3J5CgkgIGNvcnJ1cHRpb24gbWlnaHQgaGFwcGVuIG90aGVyd2lzZS4KCSAgV2UgaXNzdWUgdGhlIHdhcm5pbmcgYmVjYXVzZSBldmVuIGlmIHRoZSBHTGliIGZvbGtzIGRlY2lkZSB0byB3b3JrCgkgIGFyb3VuZCB0aGUgcHJvYmxlbSBvbiB0aGVpciBlbmQgaW4gZnV0dXJlLCB0aGlzIGlzIHN0aWxsIGFuIGlzc3VlCgkgIHdpdGggYWxsIEdMaWIgdmVyc2lvbnMgPj0gMi4xMC4wLCBzbyB3ZSBzaG91bGQgd2FybiB1bnRpbCB3ZSBkZXBlbmQKCSAgb24gYSBHTGliIHZlcnNpb24gd2Uga25vdyB0byBiZSBzYWZlLgoJICBVcGRhdGUgZG9jdW1lbnRhdGlvbiBhcyB3ZWxsLgoJICBDbG9zZXMgYnVnICMzOTEyNzguCgoyMDA3LTAxLTA1IDE1OjU1OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvOiBDYWxsIGdfdGhyZWFkX2luaXQoKSByZWFsbHkgcmVhbGx5IGVhcmx5LCBiZWZvcmUgYW55IG90aGVyIEdMaWIgZnVuY3Rpb24gKHNlZSAjMzQyNTY0IGFuZCByZWNlbnQgZGlzY3Vzc2lvbiBvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtdHlwZWZpbmQuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChtYWluKToKCSAgQ2FsbCBnX3RocmVhZF9pbml0KCkgcmVhbGx5IHJlYWxseSBlYXJseSwgYmVmb3JlIGFueSBvdGhlciBHTGliCgkgIGZ1bmN0aW9uIChzZWUgIzM0MjU2NCBhbmQgcmVjZW50IGRpc2N1c3Npb24gb24gZ3RrLWRldmVsLWxpc3QpLgoKMjAwNy0wMS0wNSAxMzoyMzowMiArMDAwMCAgVmluY2VudCBUb3JyaSA8dnRvcnJpQHVuaXYtZXZyeS5mcj4KCgkgIGdzdC86IE9uIHdpbjMyLCBhbGwgdGhlIF9fZGVjbHNwZWMgc3R1ZmYgZm9yIHN5bWJvbCBleHBvcnRpbmcgaXMgYXBwYXJlbnRseSBvbmx5IG5lZWRlZCB3aXRoIE1TVkMsIGJ1dCBkb2Vzbid0IHdvcmsgdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFZpbmNlbnQgVG9ycmkgIDx2dG9ycmkgYXQgdW5pdi1ldnJ5IGRvdCBmcj4KCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgT24gd2luMzIsIGFsbCB0aGUgX19kZWNsc3BlYyBzdHVmZiBmb3Igc3ltYm9sIGV4cG9ydGluZyBpcwoJICBhcHBhcmVudGx5IG9ubHkgbmVlZGVkIHdpdGggTVNWQywgYnV0IGRvZXNuJ3Qgd29yayB3aXRoIE1pbmdXLgoJICBGaXhlcyBjb21waWxhdGlvbiB3aXRoIE1pbmdXIGFuZCAjMzkxOTA5LgoKMjAwNy0wMS0wNSAxMTo1Nzo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBDaGFuZ2Ugc29tZSBHU1RfRVJST1JfT0JKRUNUIHRoYXQgYXJlbid0IHJlYWxseSBlcnJvcnMgdG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgIENoYW5nZSBzb21lIEdTVF9FUlJPUl9PQkpFQ1QgdGhhdCBhcmVuJ3QgcmVhbGx5IGVycm9ycyB0bwoJICBHU1RfV0FSTklOR19PQkpFQ1QgaW4gb3JkZXIgdG8gcmVkdWNlIHRlcm1pbmFsIHNwYW0uCgoyMDA3LTAxLTA0IDEzOjU0OjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbTogZGlzYWJsZSB0ZXN0IGFnYWluLCBhcyB0aGVyZSBzZWVtIHRvIGJlIHN0aWxsIHJhY2UgcHJvYmxlbXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGRpc2FibGUgdGVzdCBhZ2FpbiwgYXMgdGhlcmUgc2VlbSB0byBiZSBzdGlsbCByYWNlIHByb2JsZW1zCgoyMDA3LTAxLTA0IDEzOjM3OjA4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay86IGVuYWJsZSBxdWV1ZSB0ZXN0IGFnYWluLCBhZGQgdGVzdHMgZm9yIHRoZSBsZWFreSBiZWhhdmlvdXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzogKHF1ZXVlX292ZXJydW4pLCAocXVldWVfdW5kZXJydW4pLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAocXVldWVfc3VpdGUpOgoJICBlbmFibGUgcXVldWUgdGVzdCBhZ2FpbiwgYWRkIHRlc3RzIGZvciB0aGUgbGVha3kgYmVoYXZpb3VyCgoyMDA3LTAxLTAyIDE3OjAxOjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQ29tcGlsZSBhZGFwdGVyIHRlc3QvZXhhbXBsZSBvbmx5IGlmIHRoZSByZXF1aXJlZCBoZWFkZXJzIGFyZSBhdmFpbGFibGUgKGZpeGVzICMzOTE5MTUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIENvbXBpbGUgYWRhcHRlciB0ZXN0L2V4YW1wbGUgb25seSBpZiB0aGUgcmVxdWlyZWQgaGVhZGVycyBhcmUKCSAgYXZhaWxhYmxlIChmaXhlcyAjMzkxOTE1KS4KCjIwMDctMDEtMDIgMDk6MzE6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHRlbGwgdXMgd2hhdCdzIG5vdCBpbXBsZW1lbnRlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVsbCB1cyB3aGF0J3Mgbm90IGltcGxlbWVudGVkCgoyMDA3LTAxLTAyIDA5OjMxOjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgYnVtcCB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJ1bXAgdG8gQ1ZTCgoyMDA3LTAxLTAyIDA2OjE0OjA2ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uYzogUmVzdG9yZSB0aGUgcHJldmlvdXMgc2lnbmFsIGhhbmRsZXIgZm9yIFNJR1NFR1YgaW5zdGVhZCBvZiBzZXR0aW5nIHRvIGRlZmF1bHQsIHNpbmNlIHdlIG1heSBoYXZlIHN0by4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIFJlc3RvcmUgdGhlIHByZXZpb3VzIHNpZ25hbCBoYW5kbGVyIGZvciBTSUdTRUdWIGluc3RlYWQgb2YKCSAgc2V0dGluZyB0byBkZWZhdWx0LCBzaW5jZSB3ZSBtYXkgaGF2ZSBzdG9sZW4gaXQgYXdheSBmcm9tCgkgIHNvbWVvbmUuICAoaS5lLiwgTW9ubykKCjIwMDYtMTItMjYgMTU6NTU6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OiBTb21lIHNtYWxsIGFkZGl0aW9ucyBhbmQgY2xhcmlmaWNhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkgIFNvbWUgc21hbGwgYWRkaXRpb25zIGFuZCBjbGFyaWZpY2F0aW9ucy4KCjIwMDYtMTItMjYgMTU6MDY6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogTWFrZSBzdXJlIHdlIGRvbid0IHBhc3Mgbm9uLVVURi04IHN0cmluZ3MgdG8gZ19tYXJrdXBfZXNjYXBlKCksIHNpbmNlIHRoYXQgY2FuIGxlYWQgdG8gcmFuZG9tIG0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChnc3RfcmVnaXN0cnlfc2F2ZV9lc2NhcGVkKToKCSAgTWFrZSBzdXJlIHdlIGRvbid0IHBhc3Mgbm9uLVVURi04IHN0cmluZ3MgdG8gZ19tYXJrdXBfZXNjYXBlKCksCgkgIHNpbmNlIHRoYXQgY2FuIGxlYWQgdG8gcmFuZG9tIG1lbW9yeSBjb3JydXB0aW9ucyBhbmQgY3Jhc2hlcwoJICAobWF5IG9yIG1heSBub3QgYmUgcmVsYXRlZCB0byAjMzgzMjQ0LCAjMzg2NzExLCBhbmQgIzM4NjcxMSkuCgoyMDA2LTEyLTIxIDE1OjU0OjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay86IHN5bmMgLmN2c2lnbm9tZSBhbmQgQ0xFQU5GSUxFUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBzeW5jIC5jdnNpZ25vbWUgYW5kIENMRUFORklMRVMKCjIwMDYtMTItMjEgMTU6MzI6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBmaXggZGlzdGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBmaXggZGlzdGNoZWNrCgoyMDA2LTEyLTIxIDE1OjAwOjA4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6IHR3byB0aW55IGFkZGl0aW9uYWwgY29tbWVudHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICB0d28gdGlueSBhZGRpdGlvbmFsIGNvbW1lbnRzCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBkb2MgZml4aW5nCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzogKHF1ZXVlX292ZXJydW4pLCAocXVldWVfdW5kZXJydW4pLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBkaXNhYmxlIHRlc3QgZm9yIG5vdywgdW5sZXNzIGl0IGdldHMgZml4ZWQKCjIwMDYtMTItMjEgMTQ6MjQ6NTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6IGZpeCByYWNlIGluIHVuZGVycnVuIHRlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzogKHF1ZXVlX292ZXJydW4pLCAocXVldWVfdW5kZXJydW4pLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBmaXggcmFjZSBpbiB1bmRlcnJ1biB0ZXN0CgoyMDA2LTEyLTIxIDA5OjU4OjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOiBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6IChxdWV1ZV9vdmVycnVuKSwgKHF1ZXVlX3VuZGVycnVuKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgdHJ5IHRvIG5hcnJvdyB0ZXN0IGZhaWx1cmUKCjIwMDYtMTItMjEgMDk6Mzc6NTYgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IFVzZSBnX3JhbmRvbV9pbnRfcmFuZ2UoKSwgc2luY2UgaXQgcHJvZHVjZXMgYmV0dGVyIHJhbmRvbSBudW1iZXJzIGluIGEgcmFuZ2UgdGhhbiBhbG1vLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBVc2UgZ19yYW5kb21faW50X3JhbmdlKCksIHNpbmNlIGl0IHByb2R1Y2VzIGJldHRlciByYW5kb20KCSAgbnVtYmVycyBpbiBhIHJhbmdlIHRoYW4gYWxtb3N0LWNvcnJlY3QgZmxvYXRpbmcgcG9pbnQgY29kZS4KCjIwMDYtMTItMjEgMDg6MTI6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IGRvIG5vdCBhdXRvbWF0aWNhbGx5IChkZSlhY3RpdmF0ZSBwYWRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfc2V0dXBfc3JjX3BhZCksCgkgIChnc3RfY2hlY2tfdGVhcmRvd25fc3JjX3BhZCksIChnc3RfY2hlY2tfc2V0dXBfc2lua19wYWQpLAoJICAoZ3N0X2NoZWNrX3RlYXJkb3duX3NpbmtfcGFkKToKCSAgZG8gbm90IGF1dG9tYXRpY2FsbHkgKGRlKWFjdGl2YXRlIHBhZHMKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOiAocXVldWVfb3ZlcnJ1biksIChxdWV1ZV91bmRlcnJ1biksCgkgIChzZXR1cF9xdWV1ZSksIChjbGVhbnVwX3F1ZXVlKSwgKEdTVF9TVEFSVF9URVNUKSwgKHF1ZXVlX3N1aXRlKToKCSAgYWRkIG5ldywgeWV0IHNpbXBsZSB0ZXN0cyBmb3IgcXVldWUKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6IChjbGVhbnVwX2Zha2VzcmMpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6IChjbGVhbnVwX2Zkc3JjKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IChjbGVhbnVwX2ZpbGVzcmMpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6IChjbGVhbnVwX2lkZW50aXR5KToKCSAgY29uc2lzdGVudCBwYWQgKGRlKWFjdGl2YXRpb24KCjIwMDYtMTItMjAgMTk6MDY6MDIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogRml4IHR3byBkb2MgdHlwb3MgKCMzODc4NjYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlYmFzdGlhbiBEcsO2Z2UgIDxzbG9tbyB1YnVudHUgY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgRml4IHR3byBkb2MgdHlwb3MgKCMzODc4NjYpLgoKMjAwNi0xMi0xOSAxNTowNjo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOiBGaXggdHlwbyAoZ19vYmplY3RfY29udHJvbF9wcm9wZXJ0aWVzKCkgZG9lc24ndCBleGlzdCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJICBGaXggdHlwbyAoZ19vYmplY3RfY29udHJvbF9wcm9wZXJ0aWVzKCkgZG9lc24ndCBleGlzdCkuCgoyMDA2LTEyLTE5IDEyOjM4OjAwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogRmluZSB0dW5lIHRoZSBjYXNlcyB3aGVyZSB0aGUgc2VnbWVudCBzdGFydC9zdG9wIHZhbHVlcyBhcmUgcmVhbGx5IHVwZGF0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfc2Vlayk6CgkgIEZpbmUgdHVuZSB0aGUgY2FzZXMgd2hlcmUgdGhlIHNlZ21lbnQgc3RhcnQvc3RvcCB2YWx1ZXMgYXJlIHJlYWxseQoJICB1cGRhdGVkLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCB0ZXN0cyBmb3IgdGhlIHJldHVybiB2YWx1ZXMgb2YgZ3N0X3NlZ21lbnRfc2V0X3NlZWsoKS4KCjIwMDYtMTItMTkgMTE6MDQ6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IERvY3MgdHlwbyBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgRG9jcyB0eXBvIGZpeC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2xhc3NfaW5pdCksCgkgIChnc3RfcXVldWVfaW5pdCk6CgkgIEZpeCBpbmNvcnJlY3QgZG9jdW1lbnRhdGlvbiBhbmQgZmxlc2ggaXQgb3V0IGEgYml0IG1vcmUuCgkgIFNldCBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIG1heCBwcm9wZXJ0aWVzIG9uIHRoZSBHUGFyYW1TcGVjIGFzIHdlbGwsCgkgIHNvIGl0IHNob3dzIHVwIGNvcnJlY3RseSBpbiBnc3QtaW5zcGVjdC4KCjIwMDYtMTItMTggMTY6MDE6MzIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogQ29ycmVjdCBkb2NzIG9mIHF1ZXVlLCBhZGQgbW9yZSBkZXRhaWwgYW5kIGNyb3NzbGluayBpdCBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChxdWV1ZV9sZWFreV9nZXRfdHlwZSk6CgkgIENvcnJlY3QgZG9jcyBvZiBxdWV1ZSwgYWRkIG1vcmUgZGV0YWlsIGFuZCBjcm9zc2xpbmsgaXQgbW9yZS4KCjIwMDYtMTItMTYgMTk6MzM6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IFByaW50IGFkZGl0aW9uYWwgZGVidWcgaW5mbyB3aGVuIHRoZSBzdHJlYW0gaXNuJ3QgcGVyZmVjdGx5IHRpbWVzdGFtcGVkOyBkb24ndCB0cnkgdG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NoZWNrX3BlcmZlY3QpOgoJICBQcmludCBhZGRpdGlvbmFsIGRlYnVnIGluZm8gd2hlbiB0aGUgc3RyZWFtIGlzbid0IHBlcmZlY3RseQoJICB0aW1lc3RhbXBlZDsgZG9uJ3QgdHJ5IHRvIHVzZSBpbnZhbGlkIGR1cmF0aW9ucy4KCjIwMDYtMTItMTYgMTY6MTQ6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbTogRGlzdCBuZXcgZGVzaWduIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBEaXN0IG5ldyBkZXNpZ24gZG9jcy4KCjIwMDYtMTItMTYgMTU6MTc6NTQgKzAwMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZEBsdW9uLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuKjogQWRkIHJlZmNvdW50aW5nIHRvIHRoZSBjb2xsZWN0cGFkcyBkYXRhIHNvIHdlIGNhbiB0cmFjayB3aGVuIGl0J3Mgc2FmZSB0byBmcmVlIHRoZSBkYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNqb2VyZCBTaW1vbnMgPHNqb2VyZCBhdCBsdW9uIGRvdCBuZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAocmVmX2RhdGEpLCAodW5yZWZfZGF0YSksCgkgIChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQpLCAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCksIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgQWRkIHJlZmNvdW50aW5nIHRvIHRoZSBjb2xsZWN0cGFkcyBkYXRhIHNvIHdlIGNhbiB0cmFjayB3aGVuIGl0J3Mgc2FmZQoJICB0byBmcmVlIHRoZSBkYXRhLiBGaXhlcyAjMzgzMzgyLgoKMjAwNi0xMi0xNSAxNzowOTo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogQXV0b21hdGljYWxseSBhY3RpdmF0ZS9kZWFjdGl2YXRlIHBhZHMgd2hlbiB0aGV5IGFyZSBhZGRlZCB0byBhIHN0YXJ0ZWQvc3RvcGVkIGNvbGxlYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKToKCSAgQXV0b21hdGljYWxseSBhY3RpdmF0ZS9kZWFjdGl2YXRlIHBhZHMgd2hlbiB0aGV5IGFyZSBhZGRlZCB0byBhCgkgIHN0YXJ0ZWQvc3RvcGVkIGNvbGxlY3RwYWRzLgoKMjAwNi0xMi0xNSAxNjowMTo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFNldCBwYWRzIHRvIEZMVVNISU5HIHdoZW4gdGhleSBhcmUgY3JlYXRlZC4gQ2hlY2ssIHdhcm4gYW5kIGZpeCB3aGVuIGEgZGVtdXhlciBhZGRzIGFuIGluYWN0aXZlIHBhZCB0byBpdHNlbGYgdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfYWRkX3BhZCk6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX25ld19mdWxsKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpOgoJICBTZXQgcGFkcyB0byBGTFVTSElORyB3aGVuIHRoZXkgYXJlIGNyZWF0ZWQuIENoZWNrLCB3YXJuIGFuZCBmaXggd2hlbiBhCgkgIGRlbXV4ZXIgYWRkcyBhbiBpbmFjdGl2ZSBwYWQgdG8gaXRzZWxmIHdoZW4gcnVubmluZy4gRml4ZXMgIzMzOTMyNi4KCjIwMDYtMTItMTUgMTU6NDk6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBFeHBvc2UgZGVmYXVsdCBlbGVtZW50IHNlbmRfZXZlbnQgYW5kIHF1ZXJ5IGhhbmRsaW5nIGFzIHZtZXRob2RzIHRoYXQgc3ViY2xhc3NlcyBjYW4gY2hhaW4gdXAgdG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF9lbGVtZW50X2RlZmF1bHRfc2VuZF9ldmVudCksIChnc3RfZWxlbWVudF9zZW5kX2V2ZW50KSwKCSAgKGdzdF9lbGVtZW50X2RlZmF1bHRfcXVlcnkpLCAoZ3N0X2VsZW1lbnRfcXVlcnkpOgoJICBFeHBvc2UgZGVmYXVsdCBlbGVtZW50IHNlbmRfZXZlbnQgYW5kIHF1ZXJ5IGhhbmRsaW5nIGFzIHZtZXRob2RzIHRoYXQKCSAgc3ViY2xhc3NlcyBjYW4gY2hhaW4gdXAgdG8uCgoyMDA2LTEyLTE1IDE1OjM5OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogU21hbGwgZG9jdW1lbnRhdGlvbiBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKToKCSAgU21hbGwgZG9jdW1lbnRhdGlvbiBmaXhlcy4KCjIwMDYtMTItMTUgMTU6MjY6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDogQ2hlY2tlZCBpbiBkcmFmdCBmb3IgaGFuZGxpbmcgbGF0ZW5jeSBpbiBwaXBlbGluZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OgoJICBDaGVja2VkIGluIGRyYWZ0IGZvciBoYW5kbGluZyBsYXRlbmN5IGluIHBpcGVsaW5lcy4KCjIwMDYtMTItMTUgMDA6MTY6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgYWRkaW5nIC5kb2FwIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgICogZ3N0cmVhbWVyLmRvYXA6CgkgICogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGFkZGluZyAuZG9hcCBmaWxlCgoyMDA2LTEyLTE0IDE0OjA2OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBpbml0X3ByZSgpIGFuZCBpbml0X3Bvc3QoKSBtaWdodCBiZSBjYWxsZWQgdmlhIG91ciBHT3B0aW9uR3JvdXAgb3IgZnJvbSBnc3RfaW5pdCgpLCBhbmQgd2Ugc2hvdWxkIHNraXAgYm90Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcHJlKSwgKGluaXRfcG9zdCk6CgkgIGluaXRfcHJlKCkgYW5kIGluaXRfcG9zdCgpIG1pZ2h0IGJlIGNhbGxlZCB2aWEgb3VyIEdPcHRpb25Hcm91cCBvcgoJICBmcm9tIGdzdF9pbml0KCksIGFuZCB3ZSBzaG91bGQgc2tpcCBib3RoIG9mIHRoZW0gaWYgd2UndmUgYWxyZWFkeQoJICBiZWVuIGluaXRpYWxpc2VkLCBvdGhlcndpc2Ugd2Ugd2lsbCBpbml0IHNvbWUgdGhpbmdzIHR3aWNlIG9yIGFkZAoJICB0d28gZGVmYXVsdCBsb2cgZnVuY3Rpb25zLgoKMjAwNi0xMi0xMyAxMjo0NjoyOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOiBObywgZ3N0X21haW5fbG9vcCBkb2VzIG5vdCBleGlzdC4gSXRzIGdfbWFpbl9sb29wLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgTm8sIGdzdF9tYWluX2xvb3AgZG9lcyBub3QgZXhpc3QuIEl0cyBnX21haW5fbG9vcC4KCSAgRGlzY292ZXJlZCBieSBzb21lYm9keSB3aG8gYWJ1c2VkIHRoZSBjb3B5LXBhc3RlIHRlY2huaXF1ZSBvZiBjb2RpbmcgOikKCjIwMDYtMTItMTMgMTE6MDU6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogTG9nIGdob3N0cGFkIGRlYnVnIHN0dWZmIHRvIHRoZSBHU1RfUEFEUyBjYXRlZ29yeSBhcyB3ZWxsIHJhdGhlciB0aGFuIGp1c3QgdG8gdGhlIGRlZmF1bHQgY2F0ZWdvcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBMb2cgZ2hvc3RwYWQgZGVidWcgc3R1ZmYgdG8gdGhlIEdTVF9QQURTIGNhdGVnb3J5IGFzIHdlbGwgcmF0aGVyCgkgIHRoYW4ganVzdCB0byB0aGUgZGVmYXVsdCBjYXRlZ29yeS4KCjIwMDYtMTItMTIgMTM6NTM6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgc29tZSBiYXNpYyBzeXN0ZW0gZGV0YWlscyBzdWNoIGFzIE9TIGFuZCBhcmNoaXRlY3R1cmUgdG8gdGhlIGRlYnVnIG91dHB1dCBpZiBwb3NzaWJsZSwgY291cnRlc3kgb2YgdW5hbWUoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcHJlKToKCSAgQWRkIHNvbWUgYmFzaWMgc3lzdGVtIGRldGFpbHMgc3VjaCBhcyBPUyBhbmQgYXJjaGl0ZWN0dXJlCgkgIHRvIHRoZSBkZWJ1ZyBvdXRwdXQgaWYgcG9zc2libGUsIGNvdXJ0ZXN5IG9mIHVuYW1lKCkuCgoyMDA2LTEyLTExIDEzOjQwOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9nc3QvcnVubmluZy54bWw6IERvY3VtZW50IEdTVF9SRUdJU1RSWV9GT1JLIGFuZCBHU1RfREVCVUdfTk9fQ09MT1IgZW52aXJvbm1lbnQgdmFyaWFibGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgRG9jdW1lbnQgR1NUX1JFR0lTVFJZX0ZPUksgYW5kIEdTVF9ERUJVR19OT19DT0xPUgoJICBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCgoyMDA2LTEyLTA5IDIwOjIzOjEwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogSXQgaXMgYWNjZXB0YWJsZSB0byBoYXZlIGEgcmVmY291bnQgb2YgMiBvciAzIGF0IHRoaXMgcG9pbnQgaW4gdGhlIHRlc3QsIGJlY2F1c2UgdGhlIHBpcGVsaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEl0IGlzIGFjY2VwdGFibGUgdG8gaGF2ZSBhIHJlZmNvdW50IG9mIDIgb3IgMyBhdCB0aGlzIHBvaW50IGluIHRoZQoJICB0ZXN0LCBiZWNhdXNlIHRoZSBwaXBlbGluZSBtaWdodCBiZSBqdXN0IHBvc3RpbmcgaXRzIHN0YXRlX2NoYW5nZQoJICBtZXNzYWdlLiBUaGUgbmV4dCBsaW5lIHRoZW4gd2FpdHMgZm9yIHRoYXQgbWVzc2FnZSB0byBhcHBlYXIgdXNpbmcKCSAgYnVzX3BvbGwsIHNvIHRoYXQgc2hvdWxkIGJlIGZpbmUgdG9vLgoKMjAwNi0xMi0wOSAxODo0ODo1NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0LmM6IElnbm9yZSBFSU5UUiB3aGVuIHJlYWRpbmcgZnJvbSB0aGUgY2hpbGQgcmVnaXN0cnkgcGlwZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZyk6CgkgIElnbm9yZSBFSU5UUiB3aGVuIHJlYWRpbmcgZnJvbSB0aGUgY2hpbGQgcmVnaXN0cnkgcGlwZS4KCSAgRXhwbGljaXRseSBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBmcm9tIGNsb3NlLCBzaW5jZSBpdCBtYWtlcyBubwoJICBkaWZmZXJlbmNlLgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfcmVmKSwKCSAgKGdzdF9taW5pX29iamVjdF91bnJlZik6CgkgIFdoZW4gZGVidWdnaW5nIHJlZmNvdW50cywgY2hlY2sgR1NUX0lTX01JTklfT0JKRUNUIGFuZCB3YXJuLgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoX3ByaXZfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zKToKCSAgV2hlbiByZW1vdmluZyBjYWNoZWQgcGx1Z2lucywgcmVtb3ZlIHRoZWlyIGZlYXR1cmVzIHRvbywgc28gdGhleSdyZQoJICBub3QgdmlzaWJsZSBhZnRlciB0aGV5J3ZlIGRpc2FwcGVhcmVkLgoJICAqIGdzdC9nc3R1dGlscy5jOiAocHJlcGFyZV9saW5rX21heWJlX2dob3N0aW5nKToKCSAgSW4gdGhlIHVubGlrZWx5IGNhc2UgdGhhdCB3ZSBhcmUgbGlua2luZyBwYWRzIHdpdGggbm8gcGFyZW50cywgZG9uJ3QKCSAgY3Jhc2ggdHJ5aW5nIHRvIGdldCB0aGUgbm9uLWV4aXN0ZW50IHBhcmVudCBiaW4uCgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgT3V0cHV0IGRlYnVnIGluIHRoZSBQSVBFTElORSBjYXRlZ29yeQoKMjAwNi0xMi0wOCAxNjoxMjo0NCArMDAwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGdzdC9nc3RjbG9jay5jOiBSZWplY3QgaW52YWxpZCBjbG9jayB0aW1lcyBmb3IgaW50ZXJ2YWwgb2YgcGVyaW9kaWMgaWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJlbsOpIFN0YWRsZXIgPG1haWwgYXQgcmVuZXN0YWRsZXIgZG90IGRlPgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX25ld19wZXJpb2RpY19pZCk6CgkgIFJlamVjdCBpbnZhbGlkIGNsb2NrIHRpbWVzIGZvciBpbnRlcnZhbCBvZiBwZXJpb2RpYyBpZHMuCgkgIEZpeGVzICMjMzgzNTA2LgoKMjAwNi0xMi0wNyAxMjoxMToxNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBGaXggcmVmY291bnRpbmcgb2YgZ3N0X3BsdWdpbl9mZWF0dXJlX2xvYWQgdG8gbWF0Y2ggdGhlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jcmVhdGUpOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfbG9hZCk6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2NhbGxfZnVuY3Rpb24pOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X2luZm8pOgoJICBGaXggcmVmY291bnRpbmcgb2YgZ3N0X3BsdWdpbl9mZWF0dXJlX2xvYWQgdG8gbWF0Y2ggdGhlIGRvY3MuCgkgIEZpeGVzOiAjMzgwMTI5CgoyMDA2LTEyLTA3IDEwOjU5OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJbXByb3ZlIGRlYnVnZ2luZyBvZiBldmVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBJbXByb3ZlIGRlYnVnZ2luZyBvZiBldmVudHMuCgoyMDA2LTEyLTA3IDEwOjUxOjM2ICswMDAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IE1ha2UgcGVyaW9kIGlkcyBhZGQgdGhlIGludGVydmFsIHRvIHRoZSBvcmlnaWFsIHJlcXVlc3RlZCB0aW1lIGluc3RlYWQgb2YgdGhlIHBvc3NpYmx5IHVwZGF0ZWQgdGltZSB3Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUmVuw6kgU3RhZGxlciA8bWFpbCBhdCByZW5lc3RhZGxlciBkb3QgZGU+CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfaWRfd2FpdCk6CgkgIE1ha2UgcGVyaW9kIGlkcyBhZGQgdGhlIGludGVydmFsIHRvIHRoZSBvcmlnaWFsIHJlcXVlc3RlZCB0aW1lIGluc3RlYWQKCSAgb2YgdGhlIHBvc3NpYmx5IHVwZGF0ZWQgdGltZSB3aGljaCBjYW4gYmUgd3Jvbmcgd2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUKCSAgd2FpdGVycyBmb3IgdGhlIHNhbWUgaWQuIEZpeGVzICMzODI1OTIuCgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2FzeW5jX3RocmVhZCksCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfaml0dGVyX3VubG9ja2VkKSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9qaXR0ZXIpOgoJICBGaXggcmVzdGFydCBpbiB0aGUgYXN5bmMgbm90aWZ5IHRocmVhZCB3aGVuIGFuIGFzeW5jIGVudHJ5IGlzIGFkZGVkIHRvCgkgIHRoZSBmcm9udCBvZiB0aGUgbGlzdC4gRml4ZXMgIzM4MTQ5Mi4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogKHN0b3JlX2NhbGxiYWNrKSwKCSAgKG5vdGlmeV9jYWxsYmFjayksIChHU1RfU1RBUlRfVEVTVCksIChnc3Rfc3lzdGVtY2xvY2tfc3VpdGUpOgoJICBBZGRlZCB0ZXN0IGZvciBtdWx0aXBsZSBhc3luYyB3YWl0cy4KCSAgQWRkZWQgdGVzdCBmb3IgYXN5bmMgd2FpdCBvcmRlci4KCjIwMDYtMTItMDcgMTA6MDI6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEFkZCBzb21lIG1vcmUgZG9jcyBhYm91dCB0aGUgUE9TSVRJT04gcXVlcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcXVlcnkpOgoJICBBZGQgc29tZSBtb3JlIGRvY3MgYWJvdXQgdGhlIFBPU0lUSU9OIHF1ZXJ5LgoKMjAwNi0xMi0wNyAwMjozNzoxOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJ1bXAgdmVyc2lvbiBuYW5vIC0gYmFjayB0byBDVlMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQnVtcCB2ZXJzaW9uIG5hbm8gLSBiYWNrIHRvIENWUy4KCj09PSByZWxlYXNlIDAuMTAuMTEgPT09CgoyMDA2LTEyLTA3IDAyOjMzOjU0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogcmVsZWFzaW5nIDAuMTAuMTEsICJMb3ZlIG5ldmVyIHJ1bnMgb24gdGltZSIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgID09PSByZWxlYXNlIDAuMTAuMTEgPT09CgkgIDIwMDYtMTItMDYgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgcmVsZWFzaW5nIDAuMTAuMTEsICJMb3ZlIG5ldmVyIHJ1bnMgb24gdGltZSIKCjIwMDYtMTItMDEgMTA6MjM6MjYgKzAwMDAgIFNlcmdleSBTY29iaWNoIDxzZXJnZXkuc2NvYmljaEBnbWFpbC5jb20+CgoJICB3aW4zMi86IEZpeCBjb21waWxhdGlvbiBvbiB3aW4zMiB1bmRlciBWUzgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RiYXNlLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0Y29yZWVsZW1lbnRzLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0cmVhbWVyLnZjcHJvajoKCSAgRml4IGNvbXBpbGF0aW9uIG9uIHdpbjMyIHVuZGVyIFZTOAoJICBQYXRjaCBieTogU2VyZ2V5IFNjb2JpY2ggPHNlcmdleSBkb3Qgc2NvYmljaCBhdCBnbWFpbCBkb3QgY29tPgoJICBQYXJ0aWFsbHkgZml4ZXMgIzM4MTE3NQoKMjAwNi0xMS0zMCAyMjo1NTowOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDYtMTEtMjkgMTY6Mzk6MzIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IElmIHNvbWVvbmUgaXMgZm9vbGlzaCBlbm91Z2ggdG8gY29tcGFyZSAyIGZyYWN0aW9ucyB3aXRoIGRlbm9taW5hdG9yID0gMCwgcmV0dXJuIFVOT1JERVJFRCByYXRoZXIgdGhhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2NvbXBhcmVfZnJhY3Rpb24pOgoJICBJZiBzb21lb25lIGlzIGZvb2xpc2ggZW5vdWdoIHRvIGNvbXBhcmUgMiBmcmFjdGlvbnMgd2l0aCBkZW5vbWluYXRvciA9CgkgIDAsIHJldHVybiBVTk9SREVSRUQgcmF0aGVyIHRoYW4gYWJvcnRpbmcuCgoyMDA2LTExLTI4IDEyOjA3OjA2ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvYmFzZS86IE5ldyBHc3REYXRhUXVldWUgb2JqZWN0IGZvciB0aHJlYWRzYWZlIHF1ZXVlaW5nLiBNb3N0IHVzZWZ1bCBmb3IgZWxlbWVudHMgdGhhdCBuZWVkIHNvbWUgcXVldWVpbmcgZnVuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzogKGdzdF9kYXRhX3F1ZXVlX2dldF90eXBlKSwKCSAgKGdzdF9kYXRhX3F1ZXVlX2Jhc2VfaW5pdCksIChnc3RfZGF0YV9xdWV1ZV9jbGFzc19pbml0KSwKCSAgKGdzdF9kYXRhX3F1ZXVlX2luaXQpLCAoZ3N0X2RhdGFfcXVldWVfbmV3KSwKCSAgKGdzdF9kYXRhX3F1ZXVlX2NsZWFudXApLCAoZ3N0X2RhdGFfcXVldWVfZmluYWxpemUpLAoJICAoZ3N0X2RhdGFfcXVldWVfbG9ja2VkX2ZsdXNoKSwgKGdzdF9kYXRhX3F1ZXVlX2xvY2tlZF9pc19lbXB0eSksCgkgIChnc3RfZGF0YV9xdWV1ZV9sb2NrZWRfaXNfZnVsbCksIChnc3RfZGF0YV9xdWV1ZV9mbHVzaCksCgkgIChnc3RfZGF0YV9xdWV1ZV9pc19lbXB0eSksIChnc3RfZGF0YV9xdWV1ZV9pc19mdWxsKSwKCSAgKGdzdF9kYXRhX3F1ZXVlX3NldF9mbHVzaGluZyksIChnc3RfZGF0YV9xdWV1ZV9wdXNoKSwKCSAgKGdzdF9kYXRhX3F1ZXVlX3BvcCksIChnc3RfZGF0YV9xdWV1ZV9kcm9wX2hlYWQpLAoJICAoZ3N0X2RhdGFfcXVldWVfc2V0X3Byb3BlcnR5KSwgKGdzdF9kYXRhX3F1ZXVlX2dldF9wcm9wZXJ0eSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgTmV3IEdzdERhdGFRdWV1ZSBvYmplY3QgZm9yIHRocmVhZHNhZmUgcXVldWVpbmcuIE1vc3QgdXNlZnVsIGZvcgoJICBlbGVtZW50cyB0aGF0IG5lZWQgc29tZSBxdWV1ZWluZyBmdW5jdGlvbm5hbGl0eS4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEluc2VydCBkb2N1bWVudGF0aW9uIGZvciBHc3REYXRhUXVldWUKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9iYXNlX2luaXQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2NsYXNzX2luaXQpLCAoZ3N0X211bHRpX3F1ZXVlX2luaXQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2ZpbmFsaXplKSwgKGdzdF9tdWx0aV9xdWV1ZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2dldF9wcm9wZXJ0eSksIChnc3RfbXVsdGlfcXVldWVfcmVxdWVzdF9uZXdfcGFkKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9yZWxlYXNlX3BhZCksIChnc3Rfc2luZ2xlX3F1ZXVlX3B1c2hfb25lKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9pdGVtX2Rlc3Ryb3kpLCAoZ3N0X211bHRpX3F1ZXVlX2l0ZW1fbmV3KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9sb29wKSwgKGdzdF9tdWx0aV9xdWV1ZV9jaGFpbiksCgkgIChnc3RfbXVsdGlfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9nZXRjYXBzKSwgKGdzdF9tdWx0aV9xdWV1ZV9idWZmZXJhbGxvYyksCgkgIChnc3RfbXVsdGlfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X211bHRpX3F1ZXVlX2FjY2VwdGNhcHMpLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NyY19ldmVudCksIChnc3RfbXVsdGlfcXVldWVfc3JjX3F1ZXJ5KSwKCSAgKHdha2VfdXBfbmV4dF9ub25fbGlua2VkKSwgKGNvbXB1dGVfbmV4dF9ub25fbGlua2VkKSwKCSAgKHNpbmdsZV9xdWV1ZV9vdmVycnVuX2NiKSwgKHNpbmdsZV9xdWV1ZV91bmRlcnJ1bl9jYiksCgkgIChzaW5nbGVfcXVldWVfY2hlY2tfZnVsbCksIChnc3Rfc2luZ2xlX3F1ZXVlX25ldyk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIE5ldyBtdWx0aXF1ZXVlIGVsZW1lbnQsIHVzaW5nIEdzdERhdGFRdWV1ZS4gVXNlZCBmb3IgcXVldWluZyBtdWx0aXBsZQoJICBzdHJlYW1zLgoJICBDbG9zZXMgIzM0NDYzOSBhbmQgIzM0Nzc4NQoKMjAwNi0xMS0yMiAxMjoyOTo0MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOiBhZGQgbW9yZSBtaXNzaW5nIHR5cGUgZGV0YWlscwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIGFkZCBtb3JlIG1pc3NpbmcgdHlwZSBkZXRhaWxzCgkgICogdG9vbHMvZ3N0LXJ1bi5jOiAobWFpbik6CgkgIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMDYtMTEtMjEgMDg6MzA6MjAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvbGlicy86IGFkZCB0eXBlcyBvZiBiYXNlIGNsYXNzZXMgdG8gZW5hYmxlIGdvYmplY3Qgc3BlY2lmaWMgc3R1ZmYgaW4gdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSAgYWRkIHR5cGVzIG9mIGJhc2UgY2xhc3NlcyB0byBlbmFibGUgZ29iamVjdCBzcGVjaWZpYyBzdHVmZiBpbiB0aGUgZG9jcwoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZW1iZWRkZWQudHh0OgoJICBtb3JlIGlkZWFzIGFib3V0IGlzb2xhdGluZyBwbGF0Zm9ybSBzcGVjaWZpYyB0aGluZ3MKCjIwMDYtMTEtMjAgMTE6MTE6MjAgKzAwMDAgIFNlYmFzdGlhbiBEcm9lZ2UgPHNsb21vQHVidW50dS5jb20+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOiBGaXggY29tcGlsYXRpb24gYW5kIHJ1bm5pbmcgYWdhaW5zdCAwLjkuNC4gRml4ZXMgIzM3NzMzMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpYW4gRHJvZWdlIDxzbG9tbyBhdCB1YnVudHUgZG90IGNvbT4KCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBGaXggY29tcGlsYXRpb24gYW5kIHJ1bm5pbmcgYWdhaW5zdCAwLjkuNC4gRml4ZXMgIzM3NzMzMi4KCjIwMDYtMTEtMjAgMTA6Mjc6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBGaXggYm91bmRhcnkgY2hlY2tpbmcgaW4gdG9fcnVubmluZ190aW1lKCkgYW5kIHRvX3N0cmVhbV90aW1lKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfc2VlayksCgkgIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudF9mdWxsKSwgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwKCSAgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSk6CgkgIEZpeCBib3VuZGFyeSBjaGVja2luZyBpbiB0b19ydW5uaW5nX3RpbWUoKSBhbmQgdG9fc3RyZWFtX3RpbWUoKS4KCSAgRml4ZXMgIzM3NzE4My4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBzdHJlYW0gYW5kIHJ1bm5pbmcgdGltZSBjYW4gbm93IGJlIGNhbGN1bGF0ZWQgZm9yIHRoZSBjb21wbGV0ZQoJICBjbGlwcGVkIHNlZ21lbnQuCgoyMDA2LTExLTE1IDE3OjM4OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBDYW4ndCBhY2Nlc3MgZXZlbnQgc3RydWN0dXJlIGFmdGVyIGdpdmluZyBhd2F5IG93bmVyc2hpcCBvZiB0aGUgZXZlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgIENhbid0IGFjY2VzcyBldmVudCBzdHJ1Y3R1cmUgYWZ0ZXIgZ2l2aW5nIGF3YXkgb3duZXJzaGlwIG9mCgkgIHRoZSBldmVudC4KCjIwMDYtMTEtMTUgMTM6MDA6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvOiBtb3JlIHRoaW5raW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZW1iZWRkZWQudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3JlY2VpcGllcy50eHQ6CgkgIG1vcmUgdGhpbmtpbmcKCjIwMDYtMTEtMTMgMTg6MDM6MzUgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBnc3QvZ3N0cGFkLmM6IEZpeCBkb2N1bWVudGF0aW9uIGZvciBnc3RfcGFkX2Rpc3BhdGNoZXIuIEZpeGVzICMzNzQ0NzUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3IGF0IHNreW5ldCBkb3QgYmU+CgkgICogZ3N0L2dzdHBhZC5jOgoJICBGaXggZG9jdW1lbnRhdGlvbiBmb3IgZ3N0X3BhZF9kaXNwYXRjaGVyLiBGaXhlcyAjMzc0NDc1LgoKMjAwNi0xMS0xMyAxNzo1NDo1OCArMDAwMCAgSm9uYXRoYW4gTWF0dGhldyA8am9uYXRoYW5Aa2FvbGluLndoOS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogU3RvcmUgbmV3IGxlbmd0aCBpbiBzZWdtZW50IGR1cmF0aW9uIHNvIHdlIGRvbid0IGtlZXAgb24gY2FsbGluZyB0aGUgcG90ZW50aWFsbHkgZXhwZW5zaXouLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKb25hdGhhbiBNYXR0aGV3IDxqb25hdGhhbiBhdCBrYW9saW4gZG90IHdoOSBkb3QgbmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3VwZGF0ZV9sZW5ndGgpOgoJICBTdG9yZSBuZXcgbGVuZ3RoIGluIHNlZ21lbnQgZHVyYXRpb24gc28gd2UgZG9uJ3Qga2VlcCBvbiBjYWxsaW5nIHRoZQoJICBwb3RlbnRpYWxseSBleHBlbnNpemUgZ2V0X3NpemUoKSBjYWxsLiBGaXhlcyAjMzcwODY1LgoKMjAwNi0xMS0xMCAxODo1Njo0NCArMDAwMCAgU2VyZ2V5IFNjb2JpY2ggPHNlcmdlcnkuc2NvYmljaEBnbWFpbC5jb20+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogQWRkIHR3byBtaXNzaW5nIHN5bWJvbHMgKCMzNjY0OTIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlcmdleSBTY29iaWNoICA8c2VyZ2VyeS5zY29iaWNoIGF0IGdtYWlsIGNvbT4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIHR3byBtaXNzaW5nIHN5bWJvbHMgKCMzNjY0OTIpLgoKMjAwNi0xMS0xMCAxMDo1MDoxOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogRml4IGZvcm1hdCBzdHJpbmcgdG8gdXNlIGFsbCBpdHMgYXJndW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX2ZsdXNoKSwKCSAgKGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKToKCSAgRml4IGZvcm1hdCBzdHJpbmcgdG8gdXNlIGFsbCBpdHMgYXJndW1lbnRzLgoJICBSZW1vdmUgdXNlbGVzcyA+PSBjaGVjayBvbiBhIGd1aW50CgoyMDA2LTExLTA5IDE1OjI1OjM5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvLmN2c2lnbm9yZTogSWdub3JlIGJ1aWxkIGZpbGUgYXMgY29tbWFuZGVkIGJ5IHRoZSBidWlsZC1ib3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvYWRhcHRlci8uY3ZzaWdub3JlOgoJICBJZ25vcmUgYnVpbGQgZmlsZSBhcyBjb21tYW5kZWQgYnkgdGhlIGJ1aWxkLWJvdAoKMjAwNi0xMS0wOSAxNDozODo1OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9leGFtcGxlcy9hZGFwdGVyLzogQWRkIG5ldyBmaWxlcyBmcm9tIHRoZSBwcmV2aW91cyBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvYWRhcHRlci9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy9hZGFwdGVyL2FkYXB0ZXJfdGVzdC5jOiAocnVuX3Rlc3RfdGFrZSksCgkgIChydW5fdGVzdF90YWtlX2J1ZmZlciksIChydW5fdGVzdHMpLCAobWFpbik6CgkgIEFkZCBuZXcgZmlsZXMgZnJvbSB0aGUgcHJldmlvdXMgY29tbWl0CgoyMDA2LTExLTA5IDE0OjM3OjM4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIERvIHNvbWUgb3B0aW1pc2F0aW9uIHdvcmsgaW4gR3N0QWRhcHRlciB0byBhdm9pZCBjb3BpZXMgaW4gbW9yZSBjYXNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgICogY29uZmlndXJlLmFjOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfY2xlYXIpLAoJICAoZ3N0X2FkYXB0ZXJfcHVzaCksIChnc3RfYWRhcHRlcl9wZWVrX2ludG8pLCAoZ3N0X2FkYXB0ZXJfcGVlayksCgkgIChnc3RfYWRhcHRlcl9mbHVzaCksIChnc3RfYWRhcHRlcl90YWtlKSwgKGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzogKGNyZWF0ZV9hbmRfZmlsbF9hZGFwdGVyKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9hZGFwdGVyX3N1aXRlKToKCSAgKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgRG8gc29tZSBvcHRpbWlzYXRpb24gd29yayBpbiBHc3RBZGFwdGVyIHRvIGF2b2lkIGNvcGllcyBpbiBtb3JlIGNhc2VzLgoJICBJdCBjb3VsZCBzdGlsbCBkbyBzbGlnaHRseSBiZXR0ZXIgYnkgbWVyZ2luZyBidWZmZXJzIHdoZW4KCSAgZ3N0X2J1ZmZlcl9pc19zcGFuX2Zhc3QgaXMgdHJ1ZSwgYnV0IGlzIGFscmVhZHkgZmFzdGVyLgoJICBBbHNvLCBhdm9pZCB0cmF2ZXJzaW5nIGEgc2luZ2xlLWxpbmtlZCBsaXN0IHRvIGFwcGVuZCBlYWNoIGluY29taW5nCgkgIGJ1ZmZlciBpbnNpZGUgdGhlIGFkYXB0ZXIuCgkgIEFkZCBzaW1wbGUgdGVzdCBhcHAgdGhhdCB0aW1lcyB0aGUgYWRhcHRlciBiZWhhdmlvdXIgaW4gZGlmZmVyZW50CgkgIHNpdHVhdGlvbnMsIGFuZCBleHRlbmQgdGhlIHVuaXQgdGVzdCB0byBjaGVjayB0aGF0IGJ5dGVzIGVudGVyIGFuZAoJICBleGl0IHRoZSBhZGFwdGVyIGluIHRoZWlyIG9yaWdpbmFsIG9yZGVyLgoKMjAwNi0xMS0wOCAxOToyNzoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6IFVwZGF0ZTogdXNlIGVsZW1lbnQgbWVzc2FnZSBpbnN0ZWFkIG9mIGFkZGluZyBhIG5ldyBtZXNzYWdlIHR5cGUgdG8gdGhlIGNvcmU7IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJICBVcGRhdGU6IHVzZSBlbGVtZW50IG1lc3NhZ2UgaW5zdGVhZCBvZiBhZGRpbmcgYSBuZXcgbWVzc2FnZQoJICB0eXBlIHRvIHRoZSBjb3JlOyBkb24ndCBwcm92aWRlIEdTdHJlYW1lciBBUEkgdG8gaW5pdGlhdGUgdGhlCgkgIHBsdWdpbiBkb3dubG9hZCwganVzdCBwcm92aWRlIEFQSSB0byBjb21wb3NlIHRoZSBzdHJpbmdzIG5lZWRlZAoJICBhbmQgbGV0IGFuIGV4dGVybmFsIGxpYmdpbW1lc3R1ZmYgaGFuZGxlIHRoZSByZXN0LgoKMjAwNi0xMS0wOCAxMTo0MToxMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBQcmludCBhIHN0cmluZyBpbnN0ZWFkIG9mICd1bmtub3duIHR5cGUnIGZvciBHVmFsdWVBcnJheSBwcm9wZXJ0aWVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIFByaW50IGEgc3RyaW5nIGluc3RlYWQgb2YgJ3Vua25vd24gdHlwZScgZm9yIEdWYWx1ZUFycmF5IHByb3BlcnRpZXMKCjIwMDYtMTEtMDggMTA6MzU6MjQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBGaXggQ2hyaXN0aWFuJ3MgZW1haWwgYWRkcmVzcyBpbiBDaGFuZ2Vsb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpeCBDaHJpc3RpYW4ncyBlbWFpbCBhZGRyZXNzIGluIENoYW5nZWxvZwoKMjAwNi0xMS0wOCAwMjowNDo1MiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSAgZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDogTW9yZSBzbWFsbCBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSAgTW9yZSBzbWFsbCBmaXhlcy4KCjIwMDYtMTEtMDggMDI6MDM6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOiBNYWtlIHR5cGVmaW5kIGVsZW1lbnQgZXhhbXBsZSB3b3JrIGFnYWluICgjMzcxODk0KTsgYWRkIGEgbGljZW5zZSBoZWFkZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kL3R5cGVmaW5kLmM6ICh0eXBlX2ZvdW5kKSwgKG1haW4pOgoJICBNYWtlIHR5cGVmaW5kIGVsZW1lbnQgZXhhbXBsZSB3b3JrIGFnYWluICgjMzcxODk0KTsgYWRkIGEKCSAgbGljZW5zZSBoZWFkZXIuCgoyMDA2LTExLTA4IDAxOjQwOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDogQ29tbWl0IGluaXRpYWwgZHJhZnQgYWJvdXQgaG93IHRvIGRlYWwgd2l0aCBtaXNzaW5nIHBsdWdpbnMsIG5lZWRzIHdvcmsgKEFQSSB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkgIENvbW1pdCBpbml0aWFsIGRyYWZ0IGFib3V0IGhvdyB0byBkZWFsIHdpdGggbWlzc2luZyBwbHVnaW5zLAoJICBuZWVkcyB3b3JrIChBUEkgdG9vKS4KCjIwMDYtMTEtMDcgMDc6MzQ6NDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDogZG9jdW1lbnRzIHRoZSBuZXcgY2FwcyBlbGVtZW50cyAoc2VlICMzNjMxMTgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgZG9jdW1lbnRzIHRoZSBuZXcgY2FwcyBlbGVtZW50cyAoc2VlICMzNjMxMTgpCgoyMDA2LTExLTA2IDE3OjUzOjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgVXNlIGdfc3RyZXJyb3IoKSBpbnN0ZWFkIG9mIHN0cmVycm9yKCkgLSB3ZSB3YW50IFVURi04LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfbW1hcF9idWZmZXJfZmluYWxpemUpLAoJICAoZ3N0X2ZpbGVfc3JjX21hcF9yZWdpb24pLCAoZ3N0X2ZpbGVfc3JjX3N0YXJ0KToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOiAoZ3N0X2ZpbGVfaW5kZXhfbG9hZCksCgkgIChnc3RfZmlsZV9pbmRleF9jb21taXQpOgoJICBVc2UgZ19zdHJlcnJvcigpIGluc3RlYWQgb2Ygc3RyZXJyb3IoKSAtIHdlIHdhbnQgVVRGLTguCgoyMDA2LTExLTA2IDE3OjI1OjAxICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogQW5vdGhlciBwcmludGYgZml4ICgjMzcxNDkzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBhdCBheGlzIGNvbT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NyZWF0ZSk6CgkgIEFub3RoZXIgcHJpbnRmIGZpeCAoIzM3MTQ5MykuCgoyMDA2LTExLTA2IDE1OjIyOjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6IHJlbGljZW5jZSAob2theSB3aXRoIGF1dGhvcj1jb21wYW55KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIHJlbGljZW5jZSAob2theSB3aXRoIGF1dGhvcj1jb21wYW55KQoKMjAwNi0xMS0wNiAxNToxODo1NyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBFbmhhbmNlIGRlYnVnIGFuZCBpbXByb3ZlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0X2Rpc3BhdGNoKSwKCSAgKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgIEVuaGFuY2UgZGVidWcgYW5kIGltcHJvdmUgZG9jcwoJICAqIGdzdC9nc3R1cmkuYzoKCSAgRml4IGRvY3MKCjIwMDYtMTEtMDYgMTU6MTc6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvOiBtb3JlIGlkZWFzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZGlzdHJpYnV0ZWQudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDoKCSAgbW9yZSBpZGVhcwoKMjAwNi0xMS0wNiAxNToxNDo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogYWRkIG5ldyBBUEkgYW5kIGZpeCB0aGUgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgYWRkIG5ldyBBUEkgYW5kIGZpeCB0aGUgYnVpbGQKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3JlY2FsY19zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X21lc3NhZ2VfZnVsbCksCgkgIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyk6CgkgIHVzZSBuZXcgQVBJIGFuZCBpbXByb3ZlIGxvZ2dpbmcKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3N0YXRlX2NoYW5nZV9yZXR1cm5fZ2V0X25hbWUpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBUEk6IGFkZCBmdW5jdGlvbiB0byBnZXQgU3RhdGVDaGFuZ2VyZXR1cm4gbmFtZXMgdG8gaW1wcm92ZSBsb2dzCgoyMDA2LTExLTA2IDEyOjAxOjI3ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSogZG9jcy9yYW5kb20vemFoZWVybS9kdmItaW50ZXJmYWNlLnR4dDoKCSAgTm90ZXMgdGFrZW4gd2hpbGUgZGlzY3Vzc2luZyBkdmIgY2hhbm5lbCBzZWxlY3Rpb24gd2l0aCBXaW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE5vdGVzIHRha2VuIHdoaWxlIGRpc2N1c3NpbmcgZHZiIGNoYW5uZWwgc2VsZWN0aW9uIHdpdGggV2ltCgoyMDA2LTExLTA0IDEyOjU0OjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBkb24ndCBwdXQgc3RyZXJyb3IgaW4gdHJhbnNsYXRhYmxlIG1lc3NhZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IHB1dCBzdHJlcnJvciBpbiB0cmFuc2xhdGFibGUgbWVzc2FnZQoKMjAwNi0xMS0wMyAxNTowNDo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogR2V0IHRoZSB0eXBlIGFuZCBwcmludGYgY29udmVyc2lvbiBzcGVjaWZpZXJzIHJpZ2h0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NyZWF0ZSk6CgkgIEdldCB0aGUgdHlwZSBhbmQgcHJpbnRmIGNvbnZlcnNpb24gc3BlY2lmaWVycyByaWdodC4KCjIwMDYtMTEtMDMgMTM6NTc6MjggKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBnc3QvZ3N0cGFkLmM6IFNvbWUgc21hbGwgY2xlYW51cHMuIEltcHJvdmUgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1dyBhdCBza3luZXQgZG90IGJlPgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCksIChwcmVfYWN0aXZhdGUpLAoJICAoZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luYyksIChnc3RfcGFkX2FjY2VwdGNhcHNfZGVmYXVsdCksCgkgIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGhhbmRsZV9wYWRfYmxvY2spLCAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgU29tZSBzbWFsbCBjbGVhbnVwcy4gSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdHBhZC5oOgoJICBTaWduYWwgYWxsIHdhaXRpbmcgdGhyZWFkcyB3aXRoIGEgYnJvYWRjYXN0IGluc3RlYWQgb2YganVzdCBvbmUuCgkgIEZpeGVzICMzNjk5NDIuCgoyMDA2LTExLTAzIDA5OjQwOjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiBBZGQgc29tZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfdXBkYXRlX2ZkKSwKCSAgKGdzdF9mZF9zcmNfY3JlYXRlKToKCSAgQWRkIHNvbWUgZGVidWdnaW5nLgoJICBPbmx5IHVwZGF0ZSBmZCB3aGVuIGl0J3MgZGlmZmVyZW50IGZyb20gdGhlIG9sZC4KCjIwMDYtMTEtMDIgMjA6NTI6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogUHJpbnRmIGZpeGVzIGZvciBQUEMvT1NYLCB0YWtlIHR3byAoIzM2OTM2NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NyZWF0ZV9tbWFwKToKCSAgUHJpbnRmIGZpeGVzIGZvciBQUEMvT1NYLCB0YWtlIHR3byAoIzM2OTM2NikuCgoyMDA2LTExLTAyIDEzOjAwOjM4ICswMDAwICBKYW4gRGF2aWQgTW9sIDxqLmouZC5tb2xAdHVkZWxmdC5ubD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBQcmludGYgZml4ZXMgZm9yIGdzaXplIHBhcmFtZXRlcnMgb24gUFBDL09TWCAoIzM2OTM2NikuIEFsc28sIGRvbid0IGNhc3QgdG8gbG9uZyBsb25nIGZvciBwb3J0YWJpbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEphbiBEYXZpZCBNb2wgIDxqLmouZC5tb2wgYXQgdHVkZWxmdCBubD4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZpbGVfc3JjX21hcF9zbWFsbF9yZWdpb24pLCAoZ3N0X2ZpbGVfc3JjX2NyZWF0ZV9tbWFwKToKCSAgUHJpbnRmIGZpeGVzIGZvciBnc2l6ZSBwYXJhbWV0ZXJzIG9uIFBQQy9PU1ggKCMzNjkzNjYpLiBBbHNvLAoJICBkb24ndCBjYXN0IHRvIGxvbmcgbG9uZyBmb3IgcG9ydGFiaWxpdHkgcmVhc29ucywgYnV0IHVzZQoJICBHTGliJ3MgdHlwZXMgaW5zdGVhZC4KCjIwMDYtMTAtMzAgMTg6NDM6MTIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogR2V0IHRoZSBhcmd1bWVudHMgdG8gbHNlZWsoKSB0aGUgcmlnaHQgd2F5IGFyb3VuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY191cGRhdGVfZmQpOgoJICBHZXQgdGhlIGFyZ3VtZW50cyB0byBsc2VlaygpIHRoZSByaWdodCB3YXkgYXJvdW5kLgoJICBGaXhlcyAzNjc2NzcuCgoyMDA2LTEwLTMwIDA3OjUxOjEzICswMDAwICBnb3JzaGtvdiA8Z29yc2hrb3ZAb2dobWEub24uY2E+CgoJICBnc3QvZ3N0aW5mby5oOiBfZGVjbHNwZWMgc2hvdWxkIGJlIF9fZGVjbHNwZWMgKHR3byB1bmRlcnNjb3Jlcywgbm90IG9uZSkuIEZpeGVzIDM2NjU3Mi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBnb3JzaGtvdiA8Z29yc2hrb3YgYXQgb2dobWEgZG90IG9uIGRvdCBjYT4KCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBfZGVjbHNwZWMgc2hvdWxkIGJlIF9fZGVjbHNwZWMgKHR3byB1bmRlcnNjb3Jlcywgbm90IG9uZSkuIEZpeGVzIDM2NjU3Mi4KCjIwMDYtMTAtMjggMTU6NDI6MjkgKzAwMDAgIEtqYXJ0YW4gTWFyYWFzIDxrbWFyYWFzQGdub21lLm9yZz4KCgkgIFR5cG8gZml4ZXMgKCMzNjYyMTIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEtqYXJ0YW4gTWFyYWFzICA8a21hcmFhcyBhdCBnbm9tZSBvcmc+CgkgICogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkgICogZG9jcy9yYW5kb20vd3RheS9jYXBzbmVnbzItZG9jczoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0eG1sLmM6CgkgIFR5cG8gZml4ZXMgKCMzNjYyMTIpLgoKMjAwNi0xMC0yOCAxNToxMDoyNiArMDAwMCAgU2VyZ2V5IFNjb2JpY2ggPHNlcmdleS5zY29iaWNoQGdtYWlsLmNvbT4KCgkgIEFkZCBuZWVkZWQgZW50cmllcyBpbiAuZGVmIGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlcmdleSBTY29iaWNoIDxzZXJnZXkgZG90IHNjb2JpY2ggYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvZ3N0LmM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RiYXNlLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0Y29udHJvbGxlci52Y3Byb2o6CgkgIEFkZCBuZWVkZWQgZW50cmllcyBpbiAuZGVmIGZpbGVzLgoJICBVc2UgSEFWRV9VTklTVERfSC4KCSAgUmVhcnJhbmdlIGRlZiBmaWxlcyBpbiB2czggc29sdXRpb25zLiBGaXhlcyAjMzY2Mjg2LgoKMjAwNi0xMC0yOCAxNTowMzoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDogQWRkIEdTVF9TRUdNRU5UX0ZPUk1BVCBhbmQgR1NUX1VTSU5HX1BSSU5URl9FWFRFTlNJT04gdG8gdGhlIGhhbmQtbWFkZSB3aW4zMiBnc3Rjb25maWcuaC4gRi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkgIEFkZCBHU1RfU0VHTUVOVF9GT1JNQVQgYW5kIEdTVF9VU0lOR19QUklOVEZfRVhURU5TSU9OIHRvIHRoZQoJICBoYW5kLW1hZGUgd2luMzIgZ3N0Y29uZmlnLmguIEZpeGVzICMzNjYzMjEuCgoyMDA2LTEwLTI3IDE2OjMxOjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IE1ha2UgYWNjZXB0Y2FwcyByZXR1cm4gVFJVRSB3aGVuIHdlIGRvbid0IGhhdmUgYSB0YXJnZXQsIGp1c3QgbGlrZSBzZXRjYXBzIGRvZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19hY2NlcHRjYXBzKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpOgoJICBNYWtlIGFjY2VwdGNhcHMgcmV0dXJuIFRSVUUgd2hlbiB3ZSBkb24ndCBoYXZlIGEgdGFyZ2V0LCBqdXN0IGxpa2UKCSAgc2V0Y2FwcyBkb2VzLgoKMjAwNi0xMC0yNyAxMDoxMDoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBSZXZlcnQgcHJldmlvdXMgY29tbWl0LCAwIHNpemVkIGJ1ZmZlcnMgYXJlIGFsbG93ZWQuIFJlb3BlbnMgIzM2MzA5NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pOgoJICBSZXZlcnQgcHJldmlvdXMgY29tbWl0LCAwIHNpemVkIGJ1ZmZlcnMgYXJlIGFsbG93ZWQuIFJlb3BlbnMgIzM2MzA5NS4KCjIwMDYtMTAtMjYgMDg6NDk6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IElmIHNvbWVvbmUgdHJpZXMgdG8gc2V0IGEgbm9uLVVURjggc3RyaW5nIGZpZWxkIG9uIGEgc3RydWN0dXJlLCBkb24ndCBqdXN0IHByaW50IGEgd2FybmluZywgYnV0IGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9pZF9zZXRfdmFsdWUpOgoJICBJZiBzb21lb25lIHRyaWVzIHRvIHNldCBhIG5vbi1VVEY4IHN0cmluZyBmaWVsZCBvbiBhIHN0cnVjdHVyZSwKCSAgZG9uJ3QganVzdCBwcmludCBhIHdhcm5pbmcsIGJ1dCBhbHNvIGlnbm9yZSB0aGUgcmVxdWVzdCBhbmQgZG8KCSAgbm90IGNoYW5nZS9hZGQgdGhhdCBmaWVsZCB0byB0aGUgc3RydWN0dXJlLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF90YWdfc3VpdGUpOgoJICBUZXN0IGZvciB0aGUgYWJvdmUuCgoyMDA2LTEwLTI2IDAwOjAwOjM0ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RpbmZvLmM6IGdfaGFzaF90YWJsZV9pbnNlcnQoKSBuZWVkcyBhIGNhc3QgdG8gYSBub24tY29uc3QgcG9pbnRlciBkdWguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIGdfaGFzaF90YWJsZV9pbnNlcnQoKSBuZWVkcyBhIGNhc3QgdG8gYSBub24tY29uc3QgcG9pbnRlciBkdWguCgoyMDA2LTEwLTI1IDIzOjQ3OjQwICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RpbmZvLio6IENoYW5nZSBuYW1lIHBhcmFtZXRlciBvZiBfZ3N0X2RlYnVnX3JlZ2lzdGVyX2Z1bmNwdHIgdG8gY29uc3QgdG8gcmVmbGVjdCB0aGUgY29uc3RuZXNzIG9mIGl0cyB1c2UgaW4gdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIENoYW5nZSBuYW1lIHBhcmFtZXRlciBvZiBfZ3N0X2RlYnVnX3JlZ2lzdGVyX2Z1bmNwdHIgdG8gY29uc3QKCSAgdG8gcmVmbGVjdCB0aGUgY29uc3RuZXNzIG9mIGl0cyB1c2UgaW4gdGhlIGZ1bmN0aW9uIGFzIHdlbGwKCSAgYXMgdG8gcXVpZXQgYSBnY2Mgd2FybmluZy4KCjIwMDYtMTAtMjUgMTM6NDE6NDQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRG9uJ3QgcHVzaCB0aGUgYnVmZmVyIGlmIGl0J3MgZW1wdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKToKCSAgRG9uJ3QgcHVzaCB0aGUgYnVmZmVyIGlmIGl0J3MgZW1wdHkuCgkgIENsb3NlcyAjMzYzMDk1CgoyMDA2LTEwLTI0IDA4OjIyOjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGV2ZW50Lmg6IEFkZCBzbWFsbCBjb21tZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgQWRkIHNtYWxsIGNvbW1lbnQuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudGZ1bmMpOgoJICBEZWJ1ZyBzZWdtZW50IHZhbHVlcyAqYWZ0ZXIqIHVwZGF0aW5nIHRoZW0gYXMgdGhpcyBpcyBtb3JlCgkgIGludGVyZXN0aW5nLgoKMjAwNi0xMC0yMyAxNToyMToxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDogVXBkYXRlIHNvbWUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICBVcGRhdGUgc29tZSBkb2NzLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaXNfYmxvY2tpbmcpLCAoaGFuZGxlX3BhZF9ibG9jayksCgkgIChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICBSZXZlcnQgQkxPQ0tJTkcgcGF0Y2gsIGl0IHRyaWVzIHRvIGJlIHNtYXJ0IHdpdGhvdXQgcmVhbGx5IGhhdmluZyBhCgkgIGNsZWFyIGlkZWEgd2hhdCBvciBob3cuIFNvLCBub3cgd2UgZGlzY2FyZCBhbGwgRkxVU0hJTkcgZXZlbnRzIGFnYWluIG9uCgkgIGEgYmxvY2tpbmcgcGFkLiBTaG91bGQgZml4IGdub25saW4gYWdhaW4uCgoyMDA2LTEwLTIzIDE0OjUxOjMwICswMDAwICBTZXJnZXkgU2NvYmljaCA8c2VyZ2V5LnNjb2JpY2hAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IE1ha2Ugc3VyZSBzaXplIGlzIGFsd2F5cyBpbml0aWFsaXplZC4gRml4ZXMgIzM2NDM4OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZXJnZXkgU2NvYmljaCA8c2VyZ2V5IGRvdCBzY29iaWNoIGF0IGdtYWlsIGRvdCBjb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfd2FpdF9wbGF5aW5nKSwKCSAgKGdzdF9iYXNlX3NyY19zdGFydCksIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgIE1ha2Ugc3VyZSBzaXplIGlzIGFsd2F5cyBpbml0aWFsaXplZC4gRml4ZXMgIzM2NDM4OC4KCjIwMDYtMTAtMjAgMTE6MzY6NTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvZGlzdHJpYnV0ZWQudHh0OiBhZGQgc29tZSBpZGVhcyBhYm91dCBkb2luZyBkaXN0cmlidXRlZCBwcm9jZXNzaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZGlzdHJpYnV0ZWQudHh0OgoJICBhZGQgc29tZSBpZGVhcyBhYm91dCBkb2luZyBkaXN0cmlidXRlZCBwcm9jZXNzaW5nCgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJICBnZXRfcnVzYWdlIGxvb2sgcHJvbWlzaW5nCgoyMDA2LTEwLTE4IDE5OjQzOjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6IEFkZCBhIGNhc3QgaW4gZXhhbXBsZSB0byBmaXggY29tcGlsZSB3YXJuaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgQWRkIGEgY2FzdCBpbiBleGFtcGxlIHRvIGZpeCBjb21waWxlIHdhcm5pbmcKCjIwMDYtMTAtMTggMTU6Mjg6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBSZWxheCBhcmcgY2hlY2tpbmcgYWdhaW4sIC0xIGlzIGFsbG93ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfbGFzdF9zdG9wKSwKCSAgKGdzdF9zZWdtZW50X3NldF9zZWVrKSwgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwpOgoJICBSZWxheCBhcmcgY2hlY2tpbmcgYWdhaW4sIC0xIGlzIGFsbG93ZWQuCgoyMDA2LTEwLTE4IDEzOjI3OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogX3NldF9sYXN0X3N0b3AoKSBtdXN0IGJlIHdpdGggYSB2YWx1ZSAhPSAtMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X2xhc3Rfc3RvcCksCgkgIChnc3Rfc2VnbWVudF9zZXRfc2VlayksIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudF9mdWxsKToKCSAgX3NldF9sYXN0X3N0b3AoKSBtdXN0IGJlIHdpdGggYSB2YWx1ZSAhPSAtMQoJICBBIF9UWVBFX1NFVCB0byAtMSBtZWFucyBzZWVrIHRvIDAuCgkgIENhbGMgbGFzdF9zdG9wIGNvcnJlY3RseSBmb3IgbmVnYXRpdmUgcmF0ZXMuCgkgIE1ha2Ugc3VyZSB3ZSB3b3JrIHdpdGggcG9zaXRpdmUgZHVyYXRpb25zIHdoZW4gdXBkYXRpbmcgYSBzZWdtZW50LgoKMjAwNi0xMC0xOCAxMzoyMTo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNtYWxsIGRvY3MgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBTbWFsbCBkb2NzIGZpeGVzLgoKMjAwNi0xMC0xOCAxMDowODo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidWZmZXIuaDogQWRkIGFuIGV4cGxpY2l0IGNhc3QgdG8gR3N0QnVmZmVyKiogdG8ga2VlcCBvbGQgY29kZSB0aGF0IGFkZGVkIGFuIGV4cGxpY2l0IGNhc3QgdG8gR3N0TWluaU9iamVjdCoqIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEFkZCBhbiBleHBsaWNpdCBjYXN0IHRvIEdzdEJ1ZmZlcioqIHRvIGtlZXAgb2xkIGNvZGUgdGhhdCBhZGRlZCBhbgoJICBleHBsaWNpdCBjYXN0IHRvIEdzdE1pbmlPYmplY3QqKiBmb3IgZ3N0X21pbmlfb2JqZWN0X3JlcGxhY2UoKQoJICBjb21waWxpbmcgd2l0aG91dCB3YXJuaW5nLgoKMjAwNi0xMC0xOCAwODo1NDozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IGNoZWNrIGZvciB2YWxpZGl0eSBvZiBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXRfZGF0ZSksIChnc3RfZGF0ZV9jb3B5KToKCSAgY2hlY2sgZm9yIHZhbGlkaXR5IG9mIGRhdGVzCgoyMDA2LTEwLTE3IDEyOjA5OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogRm9yZ290IHRoaXMgb25lLCBtYWtlcyBndGstZG9jIHNodXQgdXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEZvcmdvdCB0aGlzIG9uZSwgbWFrZXMgZ3RrLWRvYyBzaHV0IHVwLgoKMjAwNi0xMC0xNyAxMTo1NzozMiArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvZ3N0b2JqZWN0Lmg6IERvbid0IGRlZmluZSB4bWxOb2RlUHRyIHRvIGdwb2ludGVyIGlmIHRoZSBjb3JlIHdhcyBidWlsdCB3aXRoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXQgYXhpcyBjb20+CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBEb24ndCBkZWZpbmUgeG1sTm9kZVB0ciB0byBncG9pbnRlciBpZiB0aGUgY29yZSB3YXMgYnVpbHQgd2l0aAoJICAtLWRpc2FibGUtbG9hZHNhdmUgYW5kIC0tZGlzYWJsZS1yZWdpc3RyeSwgdGhpcyB3aWxsIGJyZWFrCgkgIGFwcGxpY2F0aW9ucyB0aGF0IHdhbnQgdG8gdXNlIGxpYnhtbDIgYnV0IGFyZSBidWlsZGxpbmcgYWdhaW5zdCBhCgkgIGNvcmUgdGhhdCBkb2Vzbid0IHVzZSBsaWJ4bWwyLiBVc2UgYW4gaW50ZXJtZWRpYXJ5IHR5cGUgR3N0WG1sTm9kZVB0cgoJICBpbnN0ZWFkIHNvIHdlIGRvbid0IGhhdmUgdG8gbWVzcyB3aXRoIHRoZSBsaWJ4bWwyIG5hbWVzcGFjZQoJICAoIzM2MTY3NSkuCgoyMDA2LTEwLTE3IDEwOjMwOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1ZmZlci5oOiBGaXggZ3N0X2J1ZmZlcl9yZXBsYWNlKCkgbWFjcm8gdG8gYXZvaWQgZ3N0X21pbmlfb2JqZWN0X3JlcGxhY2UoKS1yZWxhdGVkIHR5cGUtcHVubmVkIHBvaW50ZXIgd2FybmluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgRml4IGdzdF9idWZmZXJfcmVwbGFjZSgpIG1hY3JvIHRvIGF2b2lkIGdzdF9taW5pX29iamVjdF9yZXBsYWNlKCktcmVsYXRlZAoJICB0eXBlLXB1bm5lZCBwb2ludGVyIHdhcm5pbmdzLgoKMjAwNi0xMC0xNiAyMDowMjozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50Lmg6IEFkZCBjYXN0cyB0byB0aGUgY29ycmVjdCByZXR1cm4gdHlwZSB0byBzdGF0ZSA8PT4gc3RhdGUgdHJhbnNpdGlvbiBtYWNyb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIEFkZCBjYXN0cyB0byB0aGUgY29ycmVjdCByZXR1cm4gdHlwZSB0byBzdGF0ZSA8PT4gc3RhdGUgdHJhbnNpdGlvbgoJICBtYWNyb3MuCgoyMDA2LTEwLTE2IDEzOjUzOjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDogZGVzY3JpYmUgaG93dG8gaGFuZGxlIGxhdGVuY3kKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6CgkgIGRlc2NyaWJlIGhvd3RvIGhhbmRsZSBsYXRlbmN5CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJICBtb3JlIGlkZWFzCgkgICogdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6CgkgIGZpeCBsb2cgcGFyc2luZyBmb3Igc29sYXJpcywgcmVtb3ZlIHVudXNlZCBmdW5jdGlvbgoKMjAwNi0xMC0xNiAxMTo0NjowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFVwZGF0ZSBzb21lIGRvY3MgcmVnYXJkaW5nIHJldmVyc2UgcGxheWJhY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgIFVwZGF0ZSBzb21lIGRvY3MgcmVnYXJkaW5nIHJldmVyc2UgcGxheWJhY2suCgoyMDA2LTEwLTE1IDEyOjQ3OjEzICswMDAwICBNYXJjdXMgR3JhbmFkbyA8bXJjLmdyYW5AZ21haWwuY29tPgoKCSAgd2luMzIvdnM4L2dyYW1tYXIudmNwcm9qOiBFcnJvciBvdXQgd2l0aCBhIHdhcm5pbmcgaWYgZ2xpYi1nZW5tYXJzaGFsLmV4ZSBpcyBub3QgaW4gcGF0aCwgaW5zdGVhZCBvZiBjcmVhdGluZyBib2d1cyBnLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyY3VzIEdyYW5hZG8gIDxtcmMgZG90IGdyYW4gYXQgZ21haWwgY29tPgoJICAqIHdpbjMyL3ZzOC9ncmFtbWFyLnZjcHJvajoKCSAgRXJyb3Igb3V0IHdpdGggYSB3YXJuaW5nIGlmIGdsaWItZ2VubWFyc2hhbC5leGUgaXMgbm90IGluIHBhdGgsCgkgIGluc3RlYWQgb2YgY3JlYXRpbmcgYm9ndXMgZ3N0bWFyc2hhbC5bY2hdIGZpbGVzLiBGaXhlcyAjMzYxNzIwLgoKMjAwNi0xMC0xMyAxNjowOTo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IFdoZW4gc2Vla2luZyB0byBzdG9wIC0xLCBzZXQgbGFzdF9zdG9wIChjdXJyZW50IHBvc2l0aW9uKSB0byB0aGUgZHVyYXRpb24gb2YgdGhlIHNlZ21lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfc2Vlayk6CgkgIFdoZW4gc2Vla2luZyB0byBzdG9wIC0xLCBzZXQgbGFzdF9zdG9wIChjdXJyZW50IHBvc2l0aW9uKSB0byB0aGUKCSAgZHVyYXRpb24gb2YgdGhlIHNlZ21lbnQuCgoyMDA2LTEwLTEzIDEzOjI3OjQ2ICswMDAwICBZdmVzIExlZmVidnJlIDxpdmFub2hlQGFiYWNvbS5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5oOiBDbGFyaWZ5IF9OT19QUkVST0xMIGEgYml0IG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIENsYXJpZnkgX05PX1BSRVJPTEwgYSBiaXQgbW9yZS4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgRml4IGRvY3MuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9saW5rX2NoZWNrX2hpZXJhcmNoeSksCgkgIChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwgKGdzdF9wYWRfc2F2ZV90aHlzZWxmKSwKCSAgKGhhbmRsZV9wYWRfYmxvY2spLCAoZ3N0X3BhZF9wdXNoX2V2ZW50KSwgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIFBhdGNoIGJ5OiBZdmVzIExlZmVidnJlIDxpdmFub2hlIGF0IGFiYWNvbSBkb3QgY29tPiBGaXggcG9zc2libGUgZGVhZGxvY2sKCSAgZHVlIHRvIHdyb25nIGxvY2tpbmcgb3JkZXIuIEZpeGVzICMzNjE3NjkuCgkgIFJlbW92ZSBzb21lIHJlZHVuZGFudC9taXNwbGFjZWQgY2hlY2tzIGluIHBhZF9ibG9jay4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIEZvciBuZWdhdGl2ZSByYXRlcywgY291bnQgYmFja3dhcmRzIGZyb20gdGhlIGR1cmF0aW9uLgoKMjAwNi0xMC0xMyAwOTozNzo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlcnJvci5jOiBGaXggZXJyb3IgbWVzc2FnZSBmb3IgR1NUX0xJQlJBUllfRVJST1JfU0VUVElOR1MgKGZlZWwgZnJlZSB0byBjb21lIHVwIHdpdGggc29tZXRoaW5nIGJldHRlcikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOiAoX2dzdF9saWJyYXJ5X2Vycm9yc19pbml0KToKCSAgRml4IGVycm9yIG1lc3NhZ2UgZm9yIEdTVF9MSUJSQVJZX0VSUk9SX1NFVFRJTkdTIChmZWVsIGZyZWUgdG8gY29tZQoJICB1cCB3aXRoIHNvbWV0aGluZyBiZXR0ZXIpLgoKMjAwNi0xMC0xMiAyMjozNTo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyLzogRG9uJ3QgcmVmZXJlbmNlIGdsaWItY29tcGF0LmMgd2hpY2ggaXMgY3VycmVudGx5IG5vdCB1c2VkIGFuZCBub3QgZGlzdGVkOyBhZGQgZ3N0cXVhcmsuYyB3aGljaCB3YXMgcmVjZW50bHkgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSAgKiB3aW4zMi92czcvbGliZ3N0cmVhbWVyLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0cmVhbWVyLnZjcHJvajoKCSAgRG9uJ3QgcmVmZXJlbmNlIGdsaWItY29tcGF0LmMgd2hpY2ggaXMgY3VycmVudGx5IG5vdCB1c2VkIGFuZCBub3QKCSAgZGlzdGVkOyBhZGQgZ3N0cXVhcmsuYyB3aGljaCB3YXMgcmVjZW50bHkgYWRkZWQuIEZpeGVzICMzNjE3MzAuCgoyMDA2LTEwLTEyIDE2OjA5OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uLzogQWRkIGdzdF9jYXBzX21lcmdlKCkgYW5kIGEgYnVuY2ggb2Ygb3RoZXIgcmVjZW50bHktYWRkZWQgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgZ3N0X2NhcHNfbWVyZ2UoKSBhbmQgYSBidW5jaCBvZiBvdGhlciByZWNlbnRseS1hZGRlZCBmdW5jdGlvbnMuCgkgIEZpeGVzICMzNjE3MzIuCgoyMDA2LTEwLTExIDE2OjMwOjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9wbHVnaW5zLzogVXBkYXRlIGVsZW1lbnQgYXJncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkgIFVwZGF0ZSBlbGVtZW50IGFyZ3MuCgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIFNtYWxsIGNvbW1lbnQgdXBkYXRlLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2NsYXNzX2luaXQpLCAoZ3N0X3RlZV9pbml0KSwKCSAgKGdzdF90ZWVfcmVxdWVzdF9uZXdfcGFkKSwgKGdzdF90ZWVfcmVsZWFzZV9wYWQpLAoJICAoZ3N0X3RlZV9idWZmZXJfYWxsb2MpLCAoZ3N0X3RlZV9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X3RlZV9zaW5rX2FjdGl2YXRlX3B1bGwpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIFNvbWUgdGVlIGxvdmluZzoKCSAgQWRkIGRlZmF1bHQgcHJvcGVydHkgZGVmaW5lcy4KCSAgSW1wbGVtZW50IHJlbGVhc2UgcGFkIGZ1bmN0aW9uLgoJICBHaXZlIHByb3BlcnRpZXMgYmV0dGVyIGJsdWJzIGV0Yy4KCSAgQWN0aXZhdGUgcGFkcyBiZWZvcmUgYWRkaW5nIHRoZW0gdG8gYSBydW5uaW5nIHRlZS4KCSAgRG8gc2ltcGxlIGJ1ZmZlcl9hbGxvYyBvbiB0aGUgZmlyc3QgcmVxdWVzdGVkIHBhZC4KCSAgUG9zdCBlcnJvciB3aGVuIGFjdGl2YXRpb24gZmFpbHMuCgoyMDA2LTEwLTExIDEyOjE2OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBDaGVjayByZXR1cm4gdmFsdWUgb2Ygd3JpdGUoKSB0byBtYWtlIGNvbXBpbGVyIGhhcHB5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9mb3JraW5nKToKCSAgQ2hlY2sgcmV0dXJuIHZhbHVlIG9mIHdyaXRlKCkgdG8gbWFrZSBjb21waWxlciBoYXBweS4KCjIwMDYtMTAtMTEgMTA6MTA6MzcgKzAwMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZEBsdW9uLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogUmVjaGVjayBxdWV1ZSBmaWxsZWRuZXNzIGFmdGVyIHNpZ25hbGxpbmcgdGhlIG92ZXJydW4gd2hlbiB3ZSdyZSBhYm91dCB0byBsZWFrIGRvd25zdHJlYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNqb2VyZCBTaW1vbnMgPHNqb2VyZCBhdCBsdW9uIGRvdCBuZXQ+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NoYWluKToKCSAgUmVjaGVjayBxdWV1ZSBmaWxsZWRuZXNzIGFmdGVyIHNpZ25hbGxpbmcgdGhlIG92ZXJydW4gd2hlbiB3ZSdyZSBhYm91dAoJICB0byBsZWFrIGRvd25zdHJlYW0gYmVjYXVzZSB3ZSByZWxlYXNlZCB0aGUgbG9jayB3aGVuIGVtaXR0aW5nIHRoZSBzaWduYWwKCSAgYW5kIHRoZSBxdWV1ZSBjb3VsZCBiZSBlbXB0eSBhZ2Fpbi4gRml4ZXMgIzM1MjM0NS4KCjIwMDYtMTAtMTEgMDk6MTM6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogRml4IHJlZmNvdW50aW5nIGhlcmUgdG9vLCBqdXN0IGxpa2Ugd2UgZGlkIGZvciBfbmV3X3ZhbGlzdCgpIGEgZmV3IGRheXMgYWdvICgjMzUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl9uZXdfbGlzdCk6CgkgIEZpeCByZWZjb3VudGluZyBoZXJlIHRvbywganVzdCBsaWtlIHdlIGRpZCBmb3IgX25ld192YWxpc3QoKSBhIGZldwoJICBkYXlzIGFnbyAoIzM1NzE4MCkgKHRoYW5rcyB0byBSZW7DqSBTdGFkbGVyKS4gQWxzbyByZW1vdmUgYWxsIHRob3NlCgkgICdTaW5jZTogMC45JyBmcm9tIHRoZSBndGstZG9jIGJsb2JzLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoY29udHJvbGxlcl9yZWZjb3VudF9uZXdfbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIFVuaXQgdGVzdCBmb3IgdGhlIGFib3ZlLgoKMjAwNi0xMC0xMCAxNDo0Nzo0MCArMDAwMCAgU2ViYXN0aWVuIENvdGUgPHNlYmFzNjQyQHlhaG9vLmNhPgoKCSAgZ3N0L2dzdHBhZC5jOiBVcGRhdGUgc29tZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlYmFzdGllbiBDb3RlIDxzZWJhczY0MiBhdCB5YWhvbyBkb3QgY2E+CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfY2Fwc191bmxvY2tlZCksCgkgIChnc3RfcGFkX3NhdmVfdGh5c2VsZik6CgkgIFVwZGF0ZSBzb21lIGRvY3MuCgkgIFdyaXRlIHBhZCBkaXJlY3Rpb24gaW4gWE1MIG91dHB1dC4gRml4ZXMgIzM0NTQ5Ni4KCjIwMDYtMTAtMTAgMTQ6MTM6MDggKzAwMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogVGFrZSByZWYgdG8gY29udHJvbGxlZCBvYmplY3Qgc28gdGhhdCBpdCBjYW5ub3QgZGlzYXBwZWFyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJlbsOpIFN0YWRsZXIgPG1haWwgYXQgcmVuZXN0YWRsZXIgZG90IGRlPgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfbmV3X3ZhbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl9uZXdfbGlzdCksIChfZ3N0X2NvbnRyb2xsZXJfZGlzcG9zZSksCgkgIChfZ3N0X2NvbnRyb2xsZXJfZmluYWxpemUpLCAoX2dzdF9jb250cm9sbGVyX2NsYXNzX2luaXQpOgoJICBUYWtlIHJlZiB0byBjb250cm9sbGVkIG9iamVjdCBzbyB0aGF0IGl0IGNhbm5vdCBkaXNhcHBlYXIuCgkgIEZpeGVzICMzNTc0MzIuCgoyMDA2LTEwLTEwIDE0OjA5OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogQWN0aXZhdGUvZGVhY3RpdmF0ZSBwYWRzIGluIHNldHVwL3RlYXJkb3duIHJlc3BlY3RpdmVseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19zZXR1cF9zcmNfcGFkKSwKCSAgKGdzdF9jaGVja190ZWFyZG93bl9zcmNfcGFkKSwgKGdzdF9jaGVja19zZXR1cF9zaW5rX3BhZCksCgkgIChnc3RfY2hlY2tfdGVhcmRvd25fc2lua19wYWQpOgoJICBBY3RpdmF0ZS9kZWFjdGl2YXRlIHBhZHMgaW4gc2V0dXAvdGVhcmRvd24gcmVzcGVjdGl2ZWx5LgoKMjAwNi0xMC0xMCAxMjoxMjo0NCArMDAwMCAgSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCgkgIGdzdC9NYWtlZmlsZS5hbTogQ2FzdCB2YWx1ZXMgd2hlbiBtYWtpbmcgZ3N0ZW51bXR5cGVzLmguICBUaGlzIHBhY2lmaWVzIEZvcnRlIHNvIGl0IGRvZXNuJ3Qgd2FybiBhYm91dCB0aGUgfjAgYXMgR1NUXy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0xMC0xMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICBQYXRjaCBieTogSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgIENhc3QgdmFsdWVzIHdoZW4gbWFraW5nIGdzdGVudW10eXBlcy5oLiAgVGhpcyBwYWNpZmllcyBGb3J0ZQoJICBzbyBpdCBkb2Vzbid0IHdhcm4gYWJvdXQgdGhlIH4wIGFzIEdTVF9NRVNTQUdFX0FOWSBub3QgZml0dGluZwoJICBpbiB0aGUgZW51bWVyYXRpb24uCgoyMDA2LTEwLTA5IDE3OjE1OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGV2ZW50LmM6IFJlbmFtZSBzb21lIG1vcmUgQGN1ciB0byBAc3RhcnQgdG8gZml4IGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19zZWVrKSwgKGdzdF9ldmVudF9wYXJzZV9zZWVrKToKCSAgUmVuYW1lIHNvbWUgbW9yZSBAY3VyIHRvIEBzdGFydCB0byBmaXggZG9jcy4KCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspOgoJICBGaXggdHlwby4KCSAgdGltZSBhbmQgc3RhcnQgbXVzdCBhbHdheXMgc3RheSBpbiBzeW5jIGFzIGRlZmluZWQgaW4gZGVzaWduIGRvYy4KCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoZ3N0X3RhZ19saXN0X2lzX2VtcHR5KToKCSAgUmVuYW1lIHBhcmFtIHRvIGZpeCBkb2NzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIENoZWNrIHRoYXQgc3RhcnQgYW5kIHRpbWUgYXJlIGluIHN5bmMuCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICAoZ3N0X3BhcnNlX3Rlc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBBY3RpdmF0ZSBwYWQgYmVmb3JlIGFkZGluZyB0byB0aGUgZWxlbWVudC4KCjIwMDYtMTAtMDkgMTY6MzM6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6IEZpeCB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIEZpeCB0eXBvLgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBVcGRhdGUgc2VlayBldmVudCBkb2NzIHJlZ2FyZGluZyBuZWdhdGl2ZSByYXRlcy4KCSAgUmVuYW1lIEBjdXIgdG8gQHN0YXJ0LgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfc2Vlayk6CgkgICogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgVXBkYXRlIHNldF9zZWVrIGRvY3MgcmVnYXJkaW5nIG5lZ2F0aXZlIHJhdGVzLgoJICBDb3JyZWN0bHkgdXBkYXRlIGxhc3Rfc3RvcCB0byBAc3RvcCB3aGVuIGRlYWxpbmcgd2l0aCBuZWdhdGl2ZQoJICByYXRlcy4KCSAgUmVuYW1lIEBjdXIgdG8gQHN0YXJ0LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWN0aXZhdGUgcGFkcyBiZWZvcmUgdHJ5aW5nIHRvIHVzZSB0aGVtLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc2VnbWVudF9zdWl0ZSk6CgkgIEFkZCBzaW1wbGUgY2hlY2sgZm9yIHNlZ21lbnRzIGFuZCBuZWdhdGl2ZSByYXRlcy4KCjIwMDYtMTAtMDkgMTE6MjA6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBnc3RfdGFnX2xpc3RfaXNfZW1wdHkoKSAoIzM2MDQ2NykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChnc3RfdGFnX2xpc3RfaXNfZW1wdHkpOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQVBJOiBhZGQgZ3N0X3RhZ19saXN0X2lzX2VtcHR5KCkgKCMzNjA0NjcpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQW5kIGEgdGVzdCBjYXNlLgoKMjAwNi0xMC0wOSAxMTowNjo1MCArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIGdzdC9nc3RtZXNzYWdlLmg6IFJldmVydCBjaGFuZ2UgZnJvbSBlYXJsaWVyIHdydCBHU1RfTUVTU0FHRV9UWVBFX0FOWSBoYXZpbmcgYSB2YWx1ZSB0aGF0IGRvZXNuJ3QgZml0IG9uIGVudW1lcmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0xMC0wOSAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIFJldmVydCBjaGFuZ2UgZnJvbSBlYXJsaWVyIHdydCBHU1RfTUVTU0FHRV9UWVBFX0FOWSBoYXZpbmcKCSAgYSB2YWx1ZSB0aGF0IGRvZXNuJ3QgZml0IG9uIGVudW1lcmF0aW9uLgoKMjAwNi0xMC0wOSAxMDoxNDoyOCArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiBSZW1vdmUgbG9jYWwgZGVidWdnaW5nIHN5c3RlbSBhbmQgdXNlIEdzdHJlYW1lcidzIGluc3RlYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTEwLTA5ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpOgoJICBSZW1vdmUgbG9jYWwgZGVidWdnaW5nIHN5c3RlbSBhbmQgdXNlIEdzdHJlYW1lcidzIGluc3RlYWQuCgoyMDA2LTEwLTA5IDA5OjMyOjI5ICswMDAwICBKb3NlcCBUb3JyZSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoKCSAgY29tbW9uL200L2dzdC1lcnJvci5tNDogRGlzYWJsZSB3YXJuaW5nIG9mIHN0YXRlbWVudCBub3QgcmVhY2hlZCBvbiBGb3J0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMTAtMDkgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgUGF0Y2ggYnk6IEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgkgICogY29tbW9uL200L2dzdC1lcnJvci5tNDoKCSAgRGlzYWJsZSB3YXJuaW5nIG9mIHN0YXRlbWVudCBub3QgcmVhY2hlZCBvbiBGb3J0ZS4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBGaXggd2FybmluZyBvbiBGb3J0ZSAodmFsdWUgZG9lc24ndCBmaXQgb24gZW51bWVyYXRpb24pLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpOgoJICBGaXggd2FybmluZyBvbiBGb3J0ZSAodmFsdWUgZG9lc24ndCBmaXQgb24gZW51bWVyYXRpb24pLgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfdGhyZWFkKToKCSAgREVCVUcgbWFjcm8gc2F5cyBpdCB0YWtlcyBtaW5pbXVtIG9mIDIgYXJncyBhbmQgc28gRm9ydGUKCSAgY29tcGxhaW5zIGFib3V0IHRoZSB1c2Ugd2l0aCBqdXN0IDEgYXJnLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgVXNlIGNvcnJlY3QgcmV0dXJuIHR5cGUgZm9yIHRoZSB1cmkgaGFuZGxlciBpbXBsZW1lbnRhdGlvbnMuCgkgIEFsbCB0aGVzZSBmaXggd2FybmluZ3MgaW4gRm9ydGUuICBGaXhlcyBidWcgIzM2MDg2MC4KCjIwMDYtMTAtMDggMTM6Mjc6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5oOiBnY2MgdmVyc2lvbnMgcHJpb3IgdG8gZ2NjIDMuMyBhcHBhcmVudGx5IGNvbXBsYWluIGFib3V0IGEgTlVMTCBwcmludGYgZm9ybWF0IHN0cmluZywgc28gZG9uJ3QgdXNlIEcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZ2NjIHZlcnNpb25zIHByaW9yIHRvIGdjYyAzLjMgYXBwYXJlbnRseSBjb21wbGFpbiBhYm91dCBhIE5VTEwgcHJpbnRmCgkgIGZvcm1hdCBzdHJpbmcsIHNvIGRvbid0IHVzZSBHX0dOVUNfUFJJTlRGIGZvciB0aG9zZSB2ZXJzaW9ucy4KCjIwMDYtMTAtMDcgMTg6NDE6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC4qOiBNaW5vciBmaXhlcyB0byBHU1RfSVNfVEFHX0xJU1QgYW5kIGdzdF9pc190YWdfbGlzdCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoZ3N0X2lzX3RhZ19saXN0KToKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBNaW5vciBmaXhlcyB0byBHU1RfSVNfVEFHX0xJU1QgYW5kIGdzdF9pc190YWdfbGlzdCgpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF90YWdfc3VpdGUpOgoJICBTbWFsbCB0ZXN0IGZvciB0aGUgYWJvdmUuCgoyMDA2LTEwLTA3IDE4OjExOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuaDogTGVzcyB0YWJzLCBtb3JlIHNwYWNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgTGVzcyB0YWJzLCBtb3JlIHNwYWNlcy4KCjIwMDYtMTAtMDYgMTc6MjE6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby5oOiBUaG9zZSB0d28gZnVuY3Rpb24gZGVjbGFyYXRpb25zIGRvIGFjdHVhbGx5IGJlbG9uZyB0aGVyZSwgcmV2ZXJ0IGNvbW1pdCBmcm9tIHllc3RlcmRheSB0aGF0IHR1cm5lZCB0aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgVGhvc2UgdHdvIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBkbyBhY3R1YWxseSBiZWxvbmcgdGhlcmUsIHJldmVydAoJICBjb21taXQgZnJvbSB5ZXN0ZXJkYXkgdGhhdCB0dXJuZWQgdGhlbSBpbnRybyBtYWNyb3MuCgoyMDA2LTEwLTA2IDE0OjQ2OjA0ICswMDAwICBKb3NlcCBUb3JyZSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoKCSAgZ3N0L2dzdC5jOiBGaXggZW1wdHkgZGVjbGFyYXRpb24gYW5kIHR5cGUgbWlzbWF0Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTEwLTA2ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgIFBhdGNoIGJ5OiBKb3NlcCBUb3JyZSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXApOgoJICBGaXggZW1wdHkgZGVjbGFyYXRpb24gYW5kIHR5cGUgbWlzbWF0Y2guCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgIEZpeCB0eXBlIG1pc21hdGNoLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICBGaXggdHlwZSBtaXNtYXRjaGVzLgoJICAqIGdzdC9nc3RpbmZvLmM6IChnc3RfZGVidWdfY29tcGFyZV9sb2dfZnVuY3Rpb25fYnlfZnVuYyksCgkgIChnc3RfZGVidWdfcmVtb3ZlX2xvZ19mdW5jdGlvbiksIChfZ3N0X2RlYnVnX25hbWVvZl9mdW5jcHRyKToKCSAgQ2FzdCBhcyBhcHByb3ByaWF0ZS4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3RfY2xhc3Nfc2lnbmFsX2Nvbm5lY3QpOgoJICBDYXN0IGFzIGFwcHJvcHJpYXRlLiAgVGhlIGZ1bmN0aW9uIHBvaW50ZXIgcGFyYW1ldGVyIHJlYWxseQoJICBoYXMgdGhlIHdyb25nIHR5cGUgYnV0IHdvdWxkIGJyZWFrIEFQSSBpZiB3ZSBjaGFuZ2UgaXQuCgkgICogZ3N0L2dzdHF1ZXJ5LmM6CgkgIEZpeCByZWRlZmluaXRpb24gb2YgX0ZJTEVfT0ZGU0VUX0JJVFMgY2F1c2VkIG9uIFNvbGFyaXMgd3J0CgkgIG9yZGVyIG9mIGluY2x1ZGluZyBzdHJpbmcuaC4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKToKCSAgUmVtb3ZlIHVucmVhY2hhYmxlIGxpbmUuCgkgICogZ3N0L2dzdHhtbC5jOiAoZ3N0X3htbF9wYXJzZV9kb2MpOgoJICBGaXggdHlwZSBtaXNtYXRjaC4KCSAgQWxsIHRoZXNlIGNhdWdodCBieSBGb3J0ZS4KCjIwMDYtMTAtMDYgMTQ6MDA6NDkgKzAwMDAgIEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgoJICBjb21tb24vbTQvZ3N0LWVycm9yLm00OiBGaXhlZCBidWcgIzM2MDE1MS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMTAtMDYgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgUGF0Y2ggYnk6IEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgkgICogY29tbW9uL200L2dzdC1lcnJvci5tNDoKCSAgRml4ZWQgYnVnICMzNjAxNTEuCgkgIFdlIG5lZWQgdG8gZGlzYWJsZSB3YXJuaW5ncyBvbiBGb3J0ZSBmb3IgZW1wdHkgZGVjbGFyYXRpb25zCgkgIGR1ZSB0byBnc3QtaW5kZW50IGFkZGluZyA7cyB0byBsaW5lcyB0aGF0IGp1c3QgdXNlIG1hY3JvcwoJICB3aGVyZSB0aGUgbWFjcm8gYWN0dWFsbHkgZG9lc24ndCBuZWVkIGEgOyBhdCBlbmQgdG8gZW5kCgkgIHN0YXRlbWVudC4KCjIwMDYtMTAtMDYgMTM6MDE6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IEFkZCBzb21lIEZJWE1FIGZvciB0aGUgTkVXU0VHTUVOVCBoYW5kbGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19vcGVuX2ZpbGUpLAoJICAoZ3N0X2ZpbGVfc2lua19jbG9zZV9maWxlKSwgKGdzdF9maWxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICBBZGQgc29tZSBGSVhNRSBmb3IgdGhlIE5FV1NFR01FTlQgaGFuZGxpbmcuCgoyMDA2LTEwLTA1IDE1OjQ3OjQ0ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgZ3N0L3BhcnNlL2dyYW1tYXIueTogUmVtb3ZlIHN0YXRpYyBmdW5jdGlvbiBnc3RfcGFyc2VfZWxlbWVudF9sb2NrIGFzIGFsbCBpdCBkb2VzIGlzIHJldHVybi4gIExvb2tzIGxpa2UgY3J1ZnQgZnJvbSAwLjguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTEwLTA1ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgUmVtb3ZlIHN0YXRpYyBmdW5jdGlvbiBnc3RfcGFyc2VfZWxlbWVudF9sb2NrIGFzIGFsbCBpdCBkb2VzCgkgIGlzIHJldHVybi4gIExvb2tzIGxpa2UgY3J1ZnQgZnJvbSAwLjguCgoyMDA2LTEwLTA1IDE1OjMxOjE2ICswMDAwICBKb3NlcCBUb3JyZSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoKCSAgRml4IGEgY29tcGlsYXRpb24gaXNzdWUgd2l0aCBGb3J0ZSBvbiBTb2xhcmlzLiAgaW5ldF9hdG9uIGlzIGluIGxpYnJlc29sdi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMTAtMDUgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgUGF0Y2ggYnk6IEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgkgICogY29tbW9uL200L2dzdC1lcnJvci5tNDoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBGaXggYSBjb21waWxhdGlvbiBpc3N1ZSB3aXRoIEZvcnRlIG9uIFNvbGFyaXMuICBpbmV0X2F0b24gaXMgaW4KCSAgbGlicmVzb2x2LgoKMjAwNi0xMC0wNSAxNDoyNjowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFByaW50ZiBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAocHJlX2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9wbHVnaW4pOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50XzFfMCk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19vYnNlcnZlX3RpbWVzKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NyZWF0ZSk6CgkgIFByaW50ZiBmaXhlcy4KCjIwMDYtMTAtMDUgMTI6MzE6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgR1NUX1VTSU5HX1BSSU5URl9FWFRFTlNJT04gdG8gZ3N0Y29uZmlnLmggc28gdGhhdCB3ZSBrbm93IHdoZXRoZXIgd2UgY2FuIHVzZSBHX0dOVUNfUFJJTlRGIGluIG90aGVyIGhlYWRlciBmaWxlcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgQWRkIEdTVF9VU0lOR19QUklOVEZfRVhURU5TSU9OIHRvIGdzdGNvbmZpZy5oIHNvIHRoYXQgd2Uga25vdwoJICB3aGV0aGVyIHdlIGNhbiB1c2UgR19HTlVDX1BSSU5URiBpbiBvdGhlciBoZWFkZXIgZmlsZXMgYW5kIGF0CgkgIGxlYXN0IGNoZWNrIHRoZSBwcmludGYgZm9ybWF0L2FyZ3VtZW50cyBvZiBkZWJ1ZyBtZXNzYWdlcyBhbmQKCSAgR1NUX0VMRU1FTlRfRVJST1IgbWVzc2FnZXMgd2hlbiB0aGUgcHJpbnRmIGV4dGVuc2lvbiBpcyBub3QKCSAgYmVpbmcgdXNlZC4KCSAgUmVwbGFjZSBtb3JlIHRhYnMgd2l0aCBzcGFjZXMgaW4gZ3N0aW5mby5oIGFuZCByZW1vdmUgdHdvIHNwdXJpb3VzCgkgIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBpbiBHU1RfRElTQUJMRV9ERUJVRyBwYXJ0IHdpdGggbWFjcm9zLgoKMjAwNi0xMC0wMyAxOToxMzozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidXMuYzogTW9yZSBkb2NzIGZvciB0aGUgc3luYy1tZXNzYWdlIHNpZ25hbCAobWVudGlvbiB0aGF0IGl0IGlzIG5vdCBlbWl0dGVkIGJ5IGRlZmF1bHQpOyBsb2cgbWVzc2FnZSBzdHJ1Y3R1ci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2NsYXNzX2luaXQpLCAoZ3N0X2J1c19wb3N0KToKCSAgTW9yZSBkb2NzIGZvciB0aGUgc3luYy1tZXNzYWdlIHNpZ25hbCAobWVudGlvbiB0aGF0IGl0IGlzIG5vdAoJICBlbWl0dGVkIGJ5IGRlZmF1bHQpOyBsb2cgbWVzc2FnZSBzdHJ1Y3R1cmVzIG9mIG1lc3NhZ2VzIHBvc3RlZCBvbgoJICB0aGUgYnVzIGFzIHdlbGwuCgoyMDA2LTEwLTAzIDE1OjEwOjUxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3QuYzogVXNlIGEgcGlwZSBwYWlyIHRvIHJlY2VpdmUgc3RhdHVzIHJlc3VsdHMgZnJvbSB0aGUgZm9ya2VkIGNoaWxkLCBhbmQgaWdub3JlIHRoZSByZXN1bHQgZnJvbSB3YWl0cGlkLiBGaXhlcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9mb3JraW5nKToKCSAgVXNlIGEgcGlwZSBwYWlyIHRvIHJlY2VpdmUgc3RhdHVzIHJlc3VsdHMgZnJvbSB0aGUgZm9ya2VkIGNoaWxkLCBhbmQKCSAgaWdub3JlIHRoZSByZXN1bHQgZnJvbSB3YWl0cGlkLiBGaXhlcyAjMzU1NDk5CgoyMDA2LTEwLTAyIDE2OjQ2OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IEZpeCBsZWFrIGluIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9naG9zdF9wYWRfc3VpdGUpOgoJICBGaXggbGVhayBpbiBjaGVjay4KCjIwMDYtMTAtMDIgMTY6Mzc6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IEFkZCAnU2luY2U6IDAuMTAuMTEnIHRvIGdzdF9wYWRfaXNfYmxvY2tpbmcoKSBndGstZG9jIGJsdXJiLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIEFkZCAnU2luY2U6IDAuMTAuMTEnIHRvIGdzdF9wYWRfaXNfYmxvY2tpbmcoKSBndGstZG9jIGJsdXJiLgoKMjAwNi0xMC0wMiAxNjowMTo1NCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OiBGdXJ0aGVyIGV4cGxhaW4gdGhlIHVzZSBvZiBmbHVzaGluZyBvbiBibG9ja2VkIHBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJICBGdXJ0aGVyIGV4cGxhaW4gdGhlIHVzZSBvZiBmbHVzaGluZyBvbiBibG9ja2VkIHBhZHMuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2lzX2Jsb2NraW5nKSwgKGhhbmRsZV9wYWRfYmxvY2spLAoJICAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEFkZGVkIG5ldyBHc3RQYWRGbGFnIDogR1NUX1BBRF9CTE9DS0lORy4KCSAgQWRkcyB0aGUgbm90aW9uIG9mIHBhZHMgcmVhbGx5IGJsb2NraW5nLCB3aGljaCBlbmFibGVzIHRvIHByb3Blcmx5CgkgIGhhbmRsZSBGTFVTSF9TVEFSVC9GTFVTSF9TVE9QIGV2ZW50cyBvbiBibG9ja2VkIHBhZHMuCgkgIEZpeGVzICMzNTg5OTkKCSAgQVBJOiBnc3RfcGFkX2lzX2Jsb2NraW5nKCkKCSAgQVBJOiBHU1RfUEFEX0lTX0JMT0NLSU5HKCkgbWFjcm8KCSAgQVBJOiBHU1RfUEFEX0JMT0NLSU5HIEdzdFBhZEZsYWcKCjIwMDYtMTAtMDIgMTA6MDY6MTcgKzAwMDAgIG1yY2dyYW4gPG1yYy5ncmFuQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBGaWx0ZXIgdGhlIHByb3hpZWQgY2FwcyBhZ2FpbnN0IHRoZSBwYWR0ZW1wbGF0ZSBpZiB3ZSBoYXZlIG9uZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBtcmNncmFuIDxtcmMuZ3JhbiBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19nZXRjYXBzKToKCSAgRmlsdGVyIHRoZSBwcm94aWVkIGNhcHMgYWdhaW5zdCB0aGUgcGFkdGVtcGxhdGUgaWYgd2UgaGF2ZSBvbmUuCgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X3NlZ21lbnQpOgoJICBBZGQgaW5jbHVkZSBmb3IgZ3N0aW5mby5oIHNvIHRoYXQgY29tcGlsYXRpb24gd2l0aAoJICAtREdTVF9ESVNBQkxFX0dTVF9ERUJVRyB3b3JrcyBhZ2Fpbi4gRml4ZXMgIzM1ODQzNi4KCjIwMDYtMTAtMDIgMDk6NDQ6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEdpdmUgY3JlZGl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBHaXZlIGNyZWRpdAoKMjAwNi0xMC0wMiAwOTo0MTowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogU2V0IGZpbGUgdG8gTlVMTCB3aGVuIGNsb3NpbmcgZmlsZXNpbmsgc28gdGhhdCB3ZSBjYW4gc2V0IGEgbmV3IGZpbGVuYW1lIGluIFJFQURZLiBGaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2luaXQpLAoJICAoZ3N0X2ZpbGVfc2lua19zZXRfbG9jYXRpb24pLCAoZ3N0X2ZpbGVfc2lua19vcGVuX2ZpbGUpLAoJICAoZ3N0X2ZpbGVfc2lua19jbG9zZV9maWxlKSwgKGdzdF9maWxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICBTZXQgZmlsZSB0byBOVUxMIHdoZW4gY2xvc2luZyBmaWxlc2luayBzbyB0aGF0IHdlIGNhbiBzZXQgYSBuZXcgZmlsZW5hbWUKCSAgaW4gUkVBRFkuIEZpeGVzICMzNTg2MTMuCgoyMDA2LTEwLTAyIDA4OjM3OjI0ICswMDAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyb0BubnZhLm9yZz4KCgkgIGdzdC9nc3RldmVudC5jOiBGaXggZ3N0X21pbmlfb2JqZWN0X21ha2Vfd3JpdGFibGUoKSBhbmQgZ3N0X2V2ZW50X2NvcHkoKSBmb3IgZXZlbnRzIHdpdGggZXZlbnQgc3RydWN0dXJlcyBieSBzZXR0aW5nIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFsZXNzYW5kcm8gRGVjaW5hICA8YWxlc3NhbmRybyBhdCBubnZhIG9yZz4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKF9nc3RfZXZlbnRfY29weSk6CgkgIEZpeCBnc3RfbWluaV9vYmplY3RfbWFrZV93cml0YWJsZSgpIGFuZCBnc3RfZXZlbnRfY29weSgpIGZvciBldmVudHMKCSAgd2l0aCBldmVudCBzdHJ1Y3R1cmVzIGJ5IHNldHRpbmcgdGhlIHBhcmVudCByZWZjb3VudCBhZGRyZXNzIG9mIHRoZQoJICBjb3BpZWQgc3RydWN0dXJlIHRvIHRoZSBhZGRyZXNzIG9mIHRoZSByZWZjb3VudCBtZW1iZXIgb2YgdGhlIG5ld2x5CgkgIGNvcGllZCBldmVudCByYXRoZXIgdGhhbiB0aGUgYWRkcmVzcyBvZiB0aGUgcmVmY291bnQgbWVtYmVyIG9mIHRoZQoJICBvcmlnaW5hbCBldmVudC4gRml4ZXMgIzM1ODczNy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVW5pdCB0ZXN0IGZvciB0aGUgYWJvdmUuCgoyMDA2LTA5LTI5IDIwOjI5OjQ5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbTogRGlzdCBzb21lIG1vcmUgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBEaXN0IHNvbWUgbW9yZSBmaWxlcy4KCjIwMDYtMDktMjkgMTI6MzE6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogQWRkIHRlc3QgZm9yIHRoZSBwcmV2aW91cyBmaXg7IGFkZCBzb21lIG1vcmUgdGVzdHMgZm9yIGNvcnJlY3QgcmVmY291bnRpbmcgYmVoYXZpb3VyOyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIEFkZCB0ZXN0IGZvciB0aGUgcHJldmlvdXMgZml4OyBhZGQgc29tZSBtb3JlIHRlc3RzCgkgIGZvciBjb3JyZWN0IHJlZmNvdW50aW5nIGJlaGF2aW91cjsgZml4IGEgZmV3IGxlYWtzCgkgIGluIHRlc3QgY2FzZXM7IGNhbGwgZ3N0X2NvbnRyb2xsZXJfaW5pdCgpIGF0IHN0YXJ0CgkgIG9mIGFsbCB0ZXN0cy4KCjIwMDYtMDktMjkgMTI6MjQ6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogRG9uJ3QgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoKSBvbiB0aW1lZCB2YWx1ZXMgd2l0aCBpbnZhbGlkIHRpbWVzdGFtcHMgaW5zaWRlIGEgY3IuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl9uZXdfdmFsaXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX3NldF9mcm9tX2xpc3QpOgoJICBEb24ndCBnX3JldHVybl92YWxfaWZfZmFpbCgpIG9uIHRpbWVkIHZhbHVlcyB3aXRoIGludmFsaWQgdGltZXN0YW1wcwoJICBpbnNpZGUgYSBjcml0aWNhbCBzZWN0aW9uIHdpdGhvdXQgdW5sb2NraW5nIHRoZSBtdXRleC4gU3BvdHRlZCBieQoJICBSZW7DqSBTdGFkbGVyLiAoIzM1NzYxNykKCSAgQWxzbywgZml4IHVwIHJlZmNvdW50aW5nIHByb3Blcmx5OiB3aGVuIHJldHVybmluZyBhbiBleGlzdGluZwoJICBjb250cm9sbGVyLCB3ZSBzaG91bGQgaW5jcmVhc2UgdGhlIHJlZmVyZW5jZSBvbmx5IG9uY2UgYW5kIG5vdAoJICBvbmNlIHBlciBwcm9wZXJ0eSBhbmQgd2hlbiB0cnlpbmcgdG8gY29udHJvbCBhIHByb3BlcnR5IGFnYWluCgkgIHdlIHNob3VsZCBhbHNvIGluY3JlYXNlIHRoZSByZWZjb3VudC4KCjIwMDYtMDktMjkgMDg6MjI6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9uZXQvOiBTdG9wIHJlYWRpbmcgY29tbWFuZHMgd2hlbiBFT0YgYXMgd2VsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl90aHJlYWQpOgoJICBTdG9wIHJlYWRpbmcgY29tbWFuZHMgd2hlbiBFT0YgYXMgd2VsbC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KToKCSAgVW5pZnkgZGVzY3JpcHRpb24gb2YgdGhlIGR1bXAgcHJvcGVydHkuCgoyMDA2LTA5LTI4IDE3OjIwOjE3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgTWVudGlvbiBidWcgbnVtYmVyIGluIHByZXZpb3VzIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTWVudGlvbiBidWcgbnVtYmVyIGluIHByZXZpb3VzIGNvbW1pdAoKMjAwNi0wOS0yOCAxNTo1MjowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9leGFtcGxlcy9tYW51YWwvLmN2c2lnbm9yZTogT0ssIHNvIGl0J3MgYWN0dWFsbHkgY3ZzaWdub3JlIHRoYXQgbmVlZHMgY2hhbmdpbmcuIFN0b3AgbGF1Z2hpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC8uY3ZzaWdub3JlOgoJICBPSywgc28gaXQncyBhY3R1YWxseSBjdnNpZ25vcmUgdGhhdCBuZWVkcyBjaGFuZ2luZy4gU3RvcCBsYXVnaGluZy4KCjIwMDYtMDktMjggMTU6Mjc6MTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOiBHYWgsIGRlY2xhcmUgdmFycyAqYmVmb3JlKiB1c2luZyB0aGVtCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgR2FoLCBkZWNsYXJlIHZhcnMgKmJlZm9yZSogdXNpbmcgdGhlbQoKMjAwNi0wOS0yOCAxNDowMDo0MyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvOiBSZS1jb21taXQgdGhlIHJlZ2lzdHJ5IGNoYW5nZXMsIGFsb25nIHdpdGggYW4gZXh0cmEgZml4OgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3ByZSksIChzY2FuX2FuZF91cGRhdGVfcmVnaXN0cnkpLAoJICAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfbm9uZm9ya2luZyksCgkgIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9mb3JraW5nKSwgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5KSwKCSAgKGluaXRfcG9zdCksIChnc3RfZGVidWdfaGVscCksIChnc3RfZGVpbml0KToKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9maW5hbGl6ZSksCgkgIChnc3RfcmVnaXN0cnlfcmVtb3ZlX2ZlYXR1cmVzX2Zvcl9wbHVnaW5fdW5sb2NrZWQpLAoJICAoZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9wbHVnaW4pLCAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCksCgkgIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoKSwKCSAgKF9wcml2X2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyksCgkgIChfcHJpdl9nc3RfcmVnaXN0cnlfY2xlYW51cCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIFJlLWNvbW1pdCB0aGUgcmVnaXN0cnkgY2hhbmdlcywgYWxvbmcgd2l0aCBhbiBleHRyYSBmaXg6CgkgIFdoZW4gYSBjYWNoZWQgcGx1Z2luIGlzIGVuY291bnRlcmVkIGF0IGEgZGlmZmVyZW50IGZpbGUgcGF0aCwKCSAgdXBkYXRlIHRoZSBzdG9yZWQgcGF0aCBpbiB0aGUgcmVnaXN0cnkgY2FjaGUgc28gdGhhdCB0aGUgcGFyZW50CgkgIHByb2Nlc3Mga25vd3Mgd2hlcmUgaXQgYWN0dWFsbHkgaXMgbm93IHdoZW4gaXQgcmUtcmVhZHMgdGhlIHJlZ2lzdHJ5CgkgIGNhY2hlLiBGaXhlcyB0aGUgdGhpbmcgdGhhdCBicm9rZSBkaXN0Y2hlY2sgd2l0aCB0aGUgcHJldmlvdXMgY29tbWl0LgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBDbGVhbiB1cCBmaWxlcyBuYW1lZCAnY29yZScgdG9vIHdoZW4gcnVubmluZyBtYWtlIGNsZWFuLgoJICAqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgU2V0IHVwIGEgcmVnaXN0cnkgcGF0aCBmb3IgcnVubmluZyB0aGVzZSB0ZXN0cywgYW5kIGNsZWFuIGl0IHByb3Blcmx5CgkgIGZvciBkaXN0Y2hlY2suCgoyMDA2LTA5LTI4IDExOjExOjI4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogRG9uJ3QgcHVsbCBpbiBnbW9kdWxlLTIuMC5wYyBhcyBhIGRlcGVuZGVuY3kgaW4gb3VyIC5wYyBmaWxlcyAtIHdlIHdhbnQgZ21vZHVsZS1uby1leHBvcnQtMi4wLnBjIGluc3RlYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIERvbid0IHB1bGwgaW4gZ21vZHVsZS0yLjAucGMgYXMgYSBkZXBlbmRlbmN5IGluIG91ciAucGMgZmlsZXMgLSB3ZQoJICB3YW50IGdtb2R1bGUtbm8tZXhwb3J0LTIuMC5wYyBpbnN0ZWFkIHNvIHRoYXQgd2UgZG9uJ3QgZHJhZyBpbgoJICAtLWV4cG9ydC1keW5hbWljIG9uIGV2ZXJ5IHByb2plY3QgdGhhdCBsaW5rcyB0byBHU3RyZWFtZXIuCgkgIEFsc28sIG1ha2Ugb3VyIGV4cG9ydCByZWdleCBvbmx5IG1hdGNoIHRoZSBzdGFydCBvZiBzeW1ib2xzLCByYXRoZXIKCSAgdGhhbiBhbnkgc3ltYm9sIHRoYXQgY29udGFpbnMgJ19nc3QnIHNvbWV3aGVyZS4KCSAgKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgVGhlIGxpYmdzdGNoZWNrIHdlIGJ1aWxkIGRvZXMgaG93ZXZlciBuZWVkIGV4cG9ydC1keW5hbWljLCBhcyBpdAoJICBwcm9kdWNlcyBzb21lIHN5bWJvbHMgdGhhdCBkb24ndCBtYXRjaCBvdXIgX2dzdC4uLiBzdHlsZSByZWdleC4KCjIwMDYtMDktMjcgMTc6NDI6NDcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0LzogUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZSB1bnRpbCBJIGZpZ3VyZSBvdXQgd2h5IGl0IGJyZWFrcyBkaXN0Y2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcHJlKSwgKHNjYW5fYW5kX3VwZGF0ZV9yZWdpc3RyeSksCgkgIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9ub25mb3JraW5nKSwKCSAgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpLCAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnkpLAoJICAoaW5pdF9wb3N0KSwgKGdzdF9kZWJ1Z19oZWxwKSwgKGdzdF9kZWluaXQpOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2ZpbmFsaXplKSwKCSAgKGdzdF9yZWdpc3RyeV9yZW1vdmVfcGx1Z2luKSwgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpLAoJICAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aCksIChfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zKSwKCSAgKF9nc3RfcmVnaXN0cnlfY2xlYW51cCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIFJldmVydCBwcmV2aW91cyBjaGFuZ2UgdW50aWwgSSBmaWd1cmUgb3V0IHdoeSBpdCBicmVha3MgZGlzdGNoZWNrLgoKMjAwNi0wOS0yNyAxNjo1Mjo1OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0LmM6IE1ha2UgaW5pdF9wcmUgYW5kIGluaXRfcG9zdCB0YWtlIHRoZSBmdWxsIGNvbXBsZW1lbnQgb2YgR09wdGlvbkZ1bmMgYXJncyBzbyB0aGV5IGNhbiByZXR1cm4gdXNlZnVsIEdFcnJvcnMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wcmUpLCAoc2Nhbl9hbmRfdXBkYXRlX3JlZ2lzdHJ5KSwKCSAgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X25vbmZvcmtpbmcpLAoJICAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZyksIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeSksCgkgIChpbml0X3Bvc3QpLCAoZ3N0X2RlYnVnX2hlbHApLCAoZ3N0X2RlaW5pdCk6CgkgIE1ha2UgaW5pdF9wcmUgYW5kIGluaXRfcG9zdCB0YWtlIHRoZSBmdWxsIGNvbXBsZW1lbnQgb2YgR09wdGlvbkZ1bmMKCSAgYXJncyBzbyB0aGV5IGNhbiByZXR1cm4gdXNlZnVsIEdFcnJvcnMuIE1ha2UgdGhlIHJlZ2lzdHJ5IHVwZGF0aW5nCgkgIGZ1bmN0aW9ucyBkbyBzby4KCSAgQ2FsbCBfcHJpdl9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMgYWZ0ZXIgc2Nhbm5pbmcgZmlsZXMgdG8KCSAgZW5zdXJlIHRoYXQgdGhlIHJlZ2lzdHJ5IHdlJ3JlIGFib3V0IHRvIHdyaXRlIG91dCBkb2Vzbid0IGNvbnRhaW4KCSAgc3RhbGUgaW5mb3JtYXRpb24gYWJvdXQgb2xkLWRlbGV0ZWQgcGx1Z2luIGZpbGVzLgoJICBNYWtlIF9wcml2X2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyByZXR1cm4gYSBib29sZWFuIHNvCgkgIHRoYXQgZGVsZXRpb24gb2YgcGx1Z2luIGZpbGVzIGlzIGNvbnNpZGVyZWQgYSByZWdpc3RyeSBjaGFuZ2UuCgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfZmluYWxpemUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9mZWF0dXJlc19mb3JfcGx1Z2luX3VubG9ja2VkKSwKCSAgKGdzdF9yZWdpc3RyeV9yZW1vdmVfcGx1Z2luKSwgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpLAoJICAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aCksCgkgIChfcHJpdl9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMpLAoJICAoX3ByaXZfZ3N0X3JlZ2lzdHJ5X2NsZWFudXApOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBSZW5hbWUgX2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyBhbmQgX2dzdF9yZWdpc3RyeV9jbGVhbnVwCgkgIGJ5IGFkZGluZyBfcHJpdiBwcmVmaXgsIHNvIHRoYXQgdGhleSB3b24ndCBhcHBlYXIgaW4gdGhlIGdsb2JhbAoJICBzeW1ib2wgdGFibGUuIFRoZXkgc3RpbGwgZG8gYXRtIHRob3VnaCBiZWNhdXNlIG9mICMzMTgwMzEuIE1vdmUgdGhlCgkgIHByb3RvdHlwZXMgdG8gZ3N0X3ByaXZhdGUuaAoJICBXaGVuIHJlbW92aW5nIGEgcGx1Z2luLCByZW1vdmUgYWxsIGZlYXR1cmVzIGZvciB0aGF0IHBsdWdpbiB0b28uCgkgIEZpeGVzICMzNDA4NzguCgoyMDA2LTA5LTI3IDEzOjE5OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6IE1ha2UgaXQgY2xlYXIgdGhhdCB0aGUgImNvbXBpbGVkLWluIGRlc2NyaXB0aW9ucyIgcmVhbGx5IG1lYW4gdGhlIGVsZW1lbnQgZGV0YWlscy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIE1ha2UgaXQgY2xlYXIgdGhhdCB0aGUgImNvbXBpbGVkLWluIGRlc2NyaXB0aW9ucyIgcmVhbGx5IG1lYW4KCSAgdGhlIGVsZW1lbnQgZGV0YWlscy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfcHJlcm9sbCk6CgkgIFVwZGF0ZSBkb2NzLgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfd2FpdF9wbGF5aW5nKSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBBZGRlZCBmdW5jdGlvbiB0byBibG9jayB3aGlsZSB3YWl0aW5nIGZvciBQTEFZSU5HLCB0aGlzIGZ1bmN0aW9uCgkgIGlzIHVzZWQgYnkgbGl2ZSBzb3VyY2VzIHRoYXQgYmxvY2sgb24gdGhlIGNsb2NrLgoJICBBUEk6IGdzdF9iYXNlX3NyY193YWl0X3BsYXlpbmcoKQoKMjAwNi0wOS0yNyAxMDoxMzoxMyArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBNYWtlZmlsZS5hbTogZ3N0LWVsZW1lbnQtY2hlY2subTQgaXMgZ2VuZXJhdGVkIGFuZCBzaG91bGQgdGhlcmVmb3JlIGJlIGNvcGllZCBmcm9tIHRoZSBidWlsZCBkaXIgcmF0aGVyIHRoYW4gdGhlIHNvdXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBhdCBheGlzIGNvbT4KCSAgKiBNYWtlZmlsZS5hbToKCSAgZ3N0LWVsZW1lbnQtY2hlY2subTQgaXMgZ2VuZXJhdGVkIGFuZCBzaG91bGQgdGhlcmVmb3JlIGJlCgkgIGNvcGllZCBmcm9tIHRoZSBidWlsZCBkaXIgcmF0aGVyIHRoYW4gdGhlIHNvdXJjZSBkaXIgKCMzNTc1OTMpLgoJICAnbWFrZSBkaXN0Y2hlY2snIGhhc24ndCBub3RpY2VkIHRoaXMgYmVjYXVzZSB3ZSB3ZXJlIGRpc3RpbmcKCSAgdGhlIGZpbGUgYXMgd2VsbCwgc28gc3RvcCBkb2luZyB0aGF0LgoKMjAwNi0wOS0yNyAwOToyMzoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6IEFkZCBzb21lIHRlc3RzIGZvciBnc3RfY2Fwc19pbnRlcnNlY3QoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9jYXBzX3N1aXRlKToKCSAgQWRkIHNvbWUgdGVzdHMgZm9yIGdzdF9jYXBzX2ludGVyc2VjdCgpLgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBQcmludCBhbGwgYnVmZmVyaW5nIHBlcmNlbnRhZ2VzIHdlIGdldCwgZXZlbiB0aGUgMTAwJSBvbmUuCgoyMDA2LTA5LTI2IDEyOjM5OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogRml4IHByaW50aW5nIG9mIGZsYWdzIHRvIG1hdGNoIHRoZSBsb29rIG9mIGVudW1zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pLAoJICAocHJpbnRfc2lnbmFsX2luZm8pOgoJICBGaXggcHJpbnRpbmcgb2YgZmxhZ3MgdG8gbWF0Y2ggdGhlIGxvb2sgb2YgZW51bXMuCgoyMDA2LTA5LTI1IDEzOjA4OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IEZpeCB0eXBvIGluIGRvY3MgYmx1cmIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBGaXggdHlwbyBpbiBkb2NzIGJsdXJiLgoKMjAwNi0wOS0yNSAxMToxNjozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1cmkuYzogRG9uJ3QgYXNzZXJ0L2NyYXNoIGhlcmUgaWYgYSB1cmkgaGFuZGxlciBkb2Vzbid0IHJldHVybiBhbnkgc3VwcG9ydGVkIHByb3RvY29scy4gVGhlIGxpc3Qgb2YgcHJvdG9jb2xzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXJpLmM6IChzZWFyY2hfYnlfZW50cnkpOgoJICBEb24ndCBhc3NlcnQvY3Jhc2ggaGVyZSBpZiBhIHVyaSBoYW5kbGVyIGRvZXNuJ3QgcmV0dXJuIGFueQoJICBzdXBwb3J0ZWQgcHJvdG9jb2xzLiBUaGUgbGlzdCBvZiBwcm90b2NvbHMgY291bGQgYmUgZ2VuZXJhdGVkCgkgIGR5bmFtaWNhbGx5IGF0IHJ1bnRpbWUgb3IgYXQgcGx1Z2luIHJlZ2lzdHJhdGlvbiwgYW5kIGFuIGVycm9yCgkgIGluIHRoZSB1bmRlcmx5aW5nIGxpYnJhcnkgc2hvdWxkbid0IGJlIGZhdGFsICgjMzUzMzAxKS4KCjIwMDYtMDktMjUgMTA6MzY6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby5jOiBGaXggd2FybmluZyBpZiBIQVZFX1BSSU5URl9FWFRFTlNJT04gaXMgdW5kZWZpbmVkIChzcG90dGVkIGJ5IFBldGVyIEtqZWxsZXJzdGVkdCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIEZpeCB3YXJuaW5nIGlmIEhBVkVfUFJJTlRGX0VYVEVOU0lPTiBpcyB1bmRlZmluZWQKCSAgKHNwb3R0ZWQgYnkgUGV0ZXIgS2plbGxlcnN0ZWR0KS4KCjIwMDYtMDktMjMgMDk6MzA6NDAgKzAwMDAgIEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMEBnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogTWF0Y2ggX3N0YXJ0L19zdG9wIGNhbGxzIGluIHRoZSBhY3RpdmF0ZSBmdW5jdGlvbnMuIFJlbW92ZSByZWR1bmRhbnQgX3N0b3AgY2FsbCBmcm9tIHRoZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDAgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X2NoZWNrX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfc3RhcnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIE1hdGNoIF9zdGFydC9fc3RvcCBjYWxscyBpbiB0aGUgYWN0aXZhdGUgZnVuY3Rpb25zLiBSZW1vdmUgcmVkdW5kYW50CgkgIF9zdG9wIGNhbGwgZnJvbSB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uLiBGaXhlcyAjMzU2OTEwLgoJICBUdXJuIGZhaWx1cmUgREVCVUcgaW50byBFUlJPUi4KCjIwMDYtMDktMjIgMTU6Mjk6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBVcGRhdGUgZG9jcyBhYm91dCBidWZmZXJpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2J1ZmZlcmluZyksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9idWZmZXJpbmcpOgoJICBVcGRhdGUgZG9jcyBhYm91dCBidWZmZXJpbmcuCgkgICogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgRml4IHR5cG8uCgoyMDA2LTA5LTIyIDE0OjMwOjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkgIGF1ZGlvdGVzdHNyYyBpcyBub3QgcGFydCBvZiBjb3JlLCBmYWtlc3JjIGlzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhdWRpb3Rlc3RzcmMgaXMgbm90IHBhcnQgb2YgY29yZSwgZmFrZXNyYyBpcwoKMjAwNi0wOS0yMiAxMzozMjo0MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IFJlZiBpbnN0YW5jZXMgd2hlbiByZXR1cm5pbmcgdGhlbSBhZ2FpbiAoZml4ZXMgIzM1NzE4MCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl9uZXdfdmFsaXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX25ld19saXN0KToKCSAgUmVmIGluc3RhbmNlcyB3aGVuIHJldHVybmluZyB0aGVtIGFnYWluIChmaXhlcyAjMzU3MTgwKQoKMjAwNi0wOS0yMiAxMDoxNzoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBEb24ndCBmb3JnZXQgdG8gcmVsZWFzZSBwcm94eSBsb2NrIHdoZW4gdGhlcmUncyBhbiBlcnJvci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQpOgoJICBEb24ndCBmb3JnZXQgdG8gcmVsZWFzZSBwcm94eSBsb2NrIHdoZW4gdGhlcmUncyBhbiBlcnJvci4KCjIwMDYtMDktMjAgMTY6MTc6MjYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGNhcHMuaDogQWRkIGV4dHJhIGluaXRpYWxpc2VycyBmb3IgQ2FwcyB0aGluZ3MsIHRvIGZpeCBzb21lIHBsdWdpbiB3YXJuaW5ncyB3aGVuIHVzaW5nIC1XZXh0cmEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgQWRkIGV4dHJhIGluaXRpYWxpc2VycyBmb3IgQ2FwcyB0aGluZ3MsIHRvIGZpeCBzb21lIHBsdWdpbiB3YXJuaW5ncwoJICB3aGVuIHVzaW5nIC1XZXh0cmEKCjIwMDYtMDktMTggMTM6NTY6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogQWxzbyBzZXQgdGVtcGxhdGUgb24gdGhlIGludGVybmFsIHBhZCBzbyB0aGF0IGEgZ2V0Y2FwcyBmcm9tIHRoZSB0YXJnZXQgcGFkIHJldHVybnMgdGhlIHRlbXBsYXRlIGMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX25ld19mdWxsKToKCSAgQWxzbyBzZXQgdGVtcGxhdGUgb24gdGhlIGludGVybmFsIHBhZCBzbyB0aGF0IGEgZ2V0Y2FwcyBmcm9tIHRoZSB0YXJnZXQKCSAgcGFkIHJldHVybnMgdGhlIHRlbXBsYXRlIGNhcHMuCgoyMDA2LTA5LTE4IDEzOjQ0OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogVXNlIF9ERUJVR19PQkpFQ1Qgc29tZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKSwKCSAgKGdzdF9lbGVtZW50X2Rpc3Bvc2UpOgoJICBVc2UgX0RFQlVHX09CSkVDVCBzb21lIG1vcmUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIEF2b2lkIHR5cGVjaGVja3MuCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIElmIHRoZSB0b3BsZXZlbCBlbGVtZW50IGlzIG5vdCBhIEdzdFBpcGVsaW5lLCBpdCBtdXN0IGJlIHB1dCBpbiBhCgkgIHBpcGVsaW5lIHNvIHRoYXQgYSBidXMgYW5kIGNsb2NrIGlzIHNlbGVjdGVkLgoKMjAwNi0wOS0xNyAxOTozMToyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBKSVRURVIsIFJBVEUsIGFuZCBMQVRFTkNZIHF1ZXJ5IHNob3VsZCBiZSBoYW5kbGVkIGJ5IHRoZSBkZWZhdWx0IGNhc2UgYW5kIG5vdCBieSB0aGUgQ09OVi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KToKCSAgSklUVEVSLCBSQVRFLCBhbmQgTEFURU5DWSBxdWVyeSBzaG91bGQgYmUgaGFuZGxlZCBieSB0aGUKCSAgZGVmYXVsdCBjYXNlIGFuZCBub3QgYnkgdGhlIENPTlZFUlQgcXVlcnkgY29kZS4KCjIwMDYtMDktMTcgMTk6MjY6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0Zm9ybWF0LmM6IEZpeCBsb2NraW5nIG9yZGVyIChtdXN0IHRha2UgbG9jayBiZWZvcmUgdXNpbmcgbl92YWx1ZXMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Zm9ybWF0LmM6IChnc3RfZm9ybWF0X3JlZ2lzdGVyKToKCSAgRml4IGxvY2tpbmcgb3JkZXIgKG11c3QgdGFrZSBsb2NrIGJlZm9yZSB1c2luZyBuX3ZhbHVlcykuCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2VyaWFsaXplX2VudW0pLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2VudW1faXRlcl9jbXApLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2VudW0pOgoJICBGaXggc2VyaWFsaXNhdGlvbi9kZXNlcmlhbGlzYXRpb24gb2YgY3VzdG9tIHJlZ2lzdGVyZWQgR3N0Rm9ybWF0cy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIFVuaXQgdGVzdCBmb3IgY3VzdG9tIGZvcm1hdCBzZXJpYWxpc2F0aW9uL2Rlc2VyaWFsaXNhdGlvbi4KCjIwMDYtMDktMTYgMjE6Mzg6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIE1vcmUgR19PQkpFQ1QgbWFjcm8gZml4aW5nLiBBbHNvIEZpeCBzb21lIGRldGFpbHMgb24gdGhlIHBsdWdpbi1zdGFtcCBzZWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBNb3JlIEdfT0JKRUNUIG1hY3JvIGZpeGluZy4gQWxzbyBGaXggc29tZSBkZXRhaWxzIG9uIHRoZSBwbHVnaW4tc3RhbXAKCSAgc2VjdGlvbi4KCjIwMDYtMDktMTYgMTI6NDk6MDIgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQ2hlY2sgaWYgcmVxdWVzdGVkIGNhcHMgYXJlIHRoZSBzYW1lIGFzIHRoZSBzaW5rcyBjYXBzIElGCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIENoZWNrIGlmIHJlcXVlc3RlZCBjYXBzIGFyZSB0aGUgc2FtZSBhcyB0aGUgc2lua3MgY2FwcyBJRgoJICAtPmhhdmVfc2FtZV9jYXBzIGlzIFRSVUUuIElmIHRoZXkgYXJlIG5vdCwgYWN0IGFzIGlmIGhhdmVfc2FtZV9jYXBzCgkgIGlzIEZBTFNFLgoJICBUaGlzIGZpeGVzIHRoZSByZW5lZ290aWF0aW9uIGlzc3VlcyBzdGF0ZWQgaW4gIzM1MjgyNy4KCjIwMDYtMDktMTYgMTA6NDk6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgRXh0cmFjdCB0aGUgbWFudWFsIGV4YW1wbGVzIGFnYWluIGxpa2Ugd2UgdXNlZCB0byBkby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgICogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvbWFudWFsLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9leHRyYWN0LnBsOgoJICBFeHRyYWN0IHRoZSBtYW51YWwgZXhhbXBsZXMgYWdhaW4gbGlrZSB3ZSB1c2VkIHRvIGRvLgoJICBGaXggb25lIG9mIHRoZW0uCgoyMDA2LTA5LTE2IDEwOjQ3OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHdpbjMyL2NvbW1vbi9jb25maWcuaDogdXBkYXRlIGZvciB2ZXJzaW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlIGZvciB2ZXJzaW9uCgoyMDA2LTA5LTE1IDIxOjMwOjAwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZXJyb3IuYzogRG9jdW1lbnRzIGhvdyB0byByZWNlaXZlIGVycm9ycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6CgkgIERvY3VtZW50cyBob3cgdG8gcmVjZWl2ZSBlcnJvcnMuCgoyMDA2LTA5LTE1IDEwOjQzOjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBBZGRlZCBzb21lIGNvbW1lbnRzIGhlcmUgYW5kIHRoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChzaWdpbnRfaGFuZGxlcl9zaWdoYW5kbGVyKSwgKGNoZWNrX2ludHIpLAoJICAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgQWRkZWQgc29tZSBjb21tZW50cyBoZXJlIGFuZCB0aGVyZS4KCSAgUG9zdCBhbiBhcHBsaWNhdGlvbiBtZXNzYWdlIHdoZW4gYW4gaW50ZXJydXB0IGlzIGNhdWdodCBpbnN0ZWFkIG9mIGRvaW5nCgkgIGFuIHVuY29udHJvbGxlZCBzdGF0ZSBjaGFuZ2UuCgkgIENsZWFuIHVwIHRoZSBldmVudCBsb29wLgoJICBIYW5kbGUgYnVmZmVyaW5nIG1lc3NhZ2VzLCBwYXVzZS9yZXN1bWUgdGhlIHBpcGVsaW5lLgoJICBNYWtlIHNodXRkb3duIGJlY2F1c2Ugb2YgYW4gaW50ZXJydXB0IG1vcmUgcmVsaWFibGUuCgoyMDA2LTA5LTE1IDA5OjQ5OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBNYWtlIHN1cmUgdGhhdCBvdXIgaW50ZXJuYWwgc3RhdGUgaXMgY29ycmVjdCB3aGVuIHdlIGNvbW1pdCBvdXIgc3RhdGUgYXN5bmNocm9ub3VzbHkuIFRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9wcmVyb2xsKSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfb2JqZWN0KToKCSAgTWFrZSBzdXJlIHRoYXQgb3VyIGludGVybmFsIHN0YXRlIGlzIGNvcnJlY3Qgd2hlbiB3ZSBjb21taXQgb3VyIHN0YXRlCgkgIGFzeW5jaHJvbm91c2x5LiBUaGlzIHNvbHZlcyBhIHJhY2Ugd2hlcmUgYSBzdGF0ZSBjaGFuZ2UgdG8gUExBWUlORwoJICBjb3VsZCBjYXVzZSB0aGUgc2luayB0byByZW1haW4gYmxvY2tlZCBpbiBwcmVyb2xsIGluIHNvbWUgc2l0dWF0aW9ucy4KCjIwMDYtMDktMTUgMDg6NTA6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBMaXN0IGZsYWdzIGFzIGhleCBzbyBpdCdzIGVhc2llciB0byBkZWFsIHdpdGguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyksCgkgIChwcmludF9zaWduYWxfaW5mbyk6CgkgIExpc3QgZmxhZ3MgYXMgaGV4IHNvIGl0J3MgZWFzaWVyIHRvIGRlYWwgd2l0aC4KCjIwMDYtMDktMTUgMDg6NDc6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBFeHBvc2UgbG9naWMgdG8gd2FpdCBmb3IgcHJlcm9sbCBzbyB0aGF0IHN1YmNsYXNzZXMgc3VjaCBhcyBhdWRpb3NpbmsgY2FuIGFsc28gdXNlIHRoaXMgbWV0aG9kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfd2FpdF9wcmVyb2xsKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBFeHBvc2UgbG9naWMgdG8gd2FpdCBmb3IgcHJlcm9sbCBzbyB0aGF0IHN1YmNsYXNzZXMgc3VjaCBhcyBhdWRpb3NpbmsKCSAgY2FuIGFsc28gdXNlIHRoaXMgbWV0aG9kLgoJICBBUEk6IGdzdF9iYXNlX3Npbmtfd2FpdF9wcmVyb2xsKCkKCjIwMDYtMDktMTUgMDg6NDM6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBTbWFsbCBjbGVhbnVwcyBpbiBkb2NzIGFuZCBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X3NldF9wYXJlbnQpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZG9fcGlwZWxpbmVfc2Vlayk6CgkgIFNtYWxsIGNsZWFudXBzIGluIGRvY3MgYW5kIGNvZGUuCgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2NsaXApOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIGlmIHN0b3AgPT0gc3RhcnQgYW5kIHN0YXJ0IGlzIGluIHRoZSBzZWdtZW50LCBubyBjbGlwcGluZyBzaG91bGQgYmUKCSAgZG9uZS4gQWxzbyBhZGQgYSB0ZXN0IGZvciB0aGlzLgoKMjAwNi0wOS0xNSAwODozOTo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZGVkIG1ldGhvZHMgdG8gY3JlYXRlIGFuZCBwYXJzZSBCVUZGRVJJTkcgbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfYnVmZmVyaW5nKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2J1ZmZlcmluZyk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWRkZWQgbWV0aG9kcyB0byBjcmVhdGUgYW5kIHBhcnNlIEJVRkZFUklORyBtZXNzYWdlcy4KCSAgQWRkZWQgcHJlbGltaW5hcnkgZG9jcyBhYm91dCBidWZmZXJpbmcuCgkgIEFQSTogZ3N0X21lc3NhZ2VfbmV3X2J1ZmZlcmluZwoJICBBUEk6IGdzdF9tZXNzYWdlX3BhcnNlX2J1ZmZlcmluZwoKMjAwNi0wOS0xNSAwODozMjo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogVXBkYXRlIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgVXBkYXRlIGRvY3VtZW50YXRpb24uCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfcmVsZWFzZV9yZXF1ZXN0X3BhZCksIChnc3RfZWxlbWVudF9zZXRfY2xvY2spLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X2luZGV4KSwgKGdzdF9lbGVtZW50X2FkZF9wYWQpLAoJICAoZ3N0X2VsZW1lbnRfcmVtb3ZlX3BhZCksIChnc3RfZWxlbWVudF9nZXRfcmFuZG9tX3BhZCksCgkgIChnc3RfZWxlbWVudF9zZW5kX2V2ZW50KSwgKGdzdF9lbGVtZW50X2dldF9xdWVyeV90eXBlcyksCgkgIChnc3RfZWxlbWVudF9xdWVyeSksIChnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UpLAoJICAoZ3N0X2VsZW1lbnRfbWVzc2FnZV9mdWxsKSwgKGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfc2F2ZV90aHlzZWxmKSwKCSAgKGdzdF9lbGVtZW50X3Jlc3RvcmVfdGh5c2VsZik6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgUmVuYW1lIGxhc3QgYml0IG9mIHRoZSBuZXctcGFkIC0+IHBhZC1hZGRlZCBzaWduYWwgcmVuYW1lLgoJICBGaXggdGhlIGNhc2Ugd2hlcmUgYW4gZWxlbWVudCBxdWVyeSB3b3VsZCBvbmx5IHdvcmsgaWYgdGhlIHNvdXJjZQoJICBwYWQgd2FzIGxpbmtlZC4KCSAgQXZvaWQgc29tZSB1c2VsZXNzIHR5cGUgY2hlY2tpbmcgaW4gbWVzc2FnZSBoYW5kbGluZy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKMjAwNi0wOS0xNCAyMDoxMjowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgYWRkIGFuIElORk8gbGluZSBmb3Igd2hlbiB3ZSBhY3R1YWxseSB1cGRhdGUgdGhlIGZkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYW4gSU5GTyBsaW5lIGZvciB3aGVuIHdlIGFjdHVhbGx5IHVwZGF0ZSB0aGUgZmQKCjIwMDYtMDktMTQgMjA6MTE6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gdHJ1bmsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gdHJ1bmsKCj09PSByZWxlYXNlIDAuMTAuMTAgPT09CgoyMDA2LTA5LTE0IDIwOjA4OjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC4xMC4xMAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuMTAuMTAKCjIwMDYtMDktMDkgMTY6MDg6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGZpcnN0IHByZXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpcnN0IHByZXJlbGVhc2UKCjIwMDYtMDktMDkgMTY6MDc6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICB0cmFuc2xhdGlvbiB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmFuc2xhdGlvbiB1cGRhdGVzCgoyMDA2LTA5LTA1IDE0OjExOjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtcG9zaXRpb24ueG1sOiBGaXggdHlwbyBpbiBzYW1wbGUgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtcG9zaXRpb24ueG1sOgoJICBGaXggdHlwbyBpbiBzYW1wbGUgY29kZS4KCjIwMDYtMDktMDUgMDg6MzU6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9uZXQvOiBNYWtlIHN0dWZmIGNvbXBpbGUgb24gd2luZG93cy4gRml4ZXMgIzM0NTI5NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChpbmV0X2F0b24pLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfaW5pdCksIChnc3RfbmV0X2NsaWVudF9jbG9ja19maW5hbGl6ZSksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19kb19zZWxlY3QpLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOiAoZ3N0X25ldF90aW1lX3BhY2tldF9zZW5kKToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogKGluZXRfYXRvbiksCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfaW5pdCksIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfZmluYWxpemUpLAoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3RocmVhZCksIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfbmV3KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkgIE1ha2Ugc3R1ZmYgY29tcGlsZSBvbiB3aW5kb3dzLiBGaXhlcyAjMzQ1Mjk1LgoKMjAwNi0wOS0wMyAxMToxNjo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogUHJpbnQgYmV0dGVyIGRldGFpbHMgd2hlbiBjaGlsZCB3YXMgdGVybWluYXRlZCBieSBzaWduYWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpOgoJICBQcmludCBiZXR0ZXIgZGV0YWlscyB3aGVuIGNoaWxkIHdhcyB0ZXJtaW5hdGVkIGJ5IHNpZ25hbC4KCjIwMDYtMDktMDMgMTE6MDY6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogUHJpbnQgYSB3YXJuaW5nIHJhdGhlciB0aGFuIGdfYXNzZXJ0KCkgaWYgYSBwbHVnaW4gZmVhdHVyZSBpcyBhIFVSSSBoYW5kbGVyIGJ1dCByZXR1cm5zIG5vIHByb3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChnc3RfcmVnaXN0cnlfeG1sX3NhdmVfZmVhdHVyZSk6CgkgIFByaW50IGEgd2FybmluZyByYXRoZXIgdGhhbiBnX2Fzc2VydCgpIGlmIGEgcGx1Z2luIGZlYXR1cmUKCSAgaXMgYSBVUkkgaGFuZGxlciBidXQgcmV0dXJucyBubyBwcm90b2NvbHMgKCMzNTM5NzYpLgoKMjAwNi0wOS0wMiAxOToxMDo1NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6IEZpeCB0d28gdHlwb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBGaXggdHdvIHR5cG9zLgoKMjAwNi0wOS0wMiAxOTowMzo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgZG9jdW1lbnQgcHJvY2VzcyBzb21lIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvY3VtZW50IHByb2Nlc3Mgc29tZSBtb3JlCgoyMDA2LTA5LTAyIDEzOjQwOjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlcnJvci5jOgoJICBjbGFyaWZ5IGVycm9yIG1lc3NhZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNsYXJpZnkgZXJyb3IgbWVzc2FnZQoKMjAwNi0wOS0wMiAxMzozNjo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgZG9jdW1lbnQgcHJvY2VzcyBzb21lIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvY3VtZW50IHByb2Nlc3Mgc29tZSBtb3JlCgoyMDA2LTA5LTAxIDE2OjAzOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogZml4IHR5cG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBmaXggdHlwbwoKMjAwNi0wOS0wMSAxNTo1NToyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmM6IEZpeCBsb2NraW5nIG9yZGVyLCBoYW5kbGUgTlVMTCBmdW5jdGlvbiB2YWx1ZXMgcHJvcGVybHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfZ3N0X2RlYnVnX25hbWVvZl9mdW5jcHRyKToKCSAgRml4IGxvY2tpbmcgb3JkZXIsIGhhbmRsZSBOVUxMIGZ1bmN0aW9uIHZhbHVlcyBwcm9wZXJseS4KCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBGaXggZG9jcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2J1ZmZlcl9hbGxvY191bmNoZWNrZWQpOgoJICBJbml0aWFsaXNlZCB2YXJpYWJsZSBiZWZvcmUgdXNpbmcgaXQgYW5kIGZpeCBkZWJ1ZyBzdGF0ZW1lbnQgdG8KCSAgcHJpbnQgdGhlIGFkZHJlc3Mgb2YgdGhlIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBhZGRyZXNzIG9mIHRoZQoJICB2YXJpYWJsZSBvbiB0aGUgc3RhY2sgaG9sZGluZyB0aGUgYWRkcmVzcyBvZiB0aGUgZnVuY3Rpb24uCgoyMDA2LTA5LTAxIDEwOjMzOjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IE1vcmUgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19ldmVudCksCgkgIChnc3RfcHJveHlfcGFkX2RvX2J1ZmZlcmFsbG9jKSwgKGdzdF9wcm94eV9wYWRfZG9fY2hhaW4pLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19nZXRyYW5nZSksIChnc3RfcHJveHlfcGFkX2RvX2NoZWNrZ2V0cmFuZ2UpLAoJICAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0X3VubG9ja2VkKSwgKGdzdF9naG9zdF9wYWRfcGFyZW50X3NldCksCgkgIChnc3RfZ2hvc3RfcGFkX3BhcmVudF91bnNldCksCgkgIChnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2RvX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9kb19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCksIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19saW5rKSwgKGdzdF9naG9zdF9wYWRfZG9fdW5saW5rKSwKCSAgKGdzdF9naG9zdF9wYWRfaW5pdCksIChnc3RfZ2hvc3RfcGFkX2Rpc3Bvc2UpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXdfZnVsbCksIChnc3RfZ2hvc3RfcGFkX25ld19ub190YXJnZXQpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXcpLCAoZ3N0X2dob3N0X3BhZF9uZXdfZnJvbV90ZW1wbGF0ZSksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19ub190YXJnZXRfZnJvbV90ZW1wbGF0ZSksCgkgIChnc3RfZ2hvc3RfcGFkX2dldF90YXJnZXQpLCAoZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0KToKCSAgTW9yZSBjbGVhbnVwcy4KCSAgQXZvaWQgbmVlZGxlc3MgdHlwZWNoZWNraW5nIGluIG1hY3Jvcy4KCSAgU2luY2UgdGhlIGludGVybmFsIHBhZCBpcyBhbHdheXMgcHJlc2VudCBhbmQgbmV2ZXIgY2hhbmdlcywgdGhlcmUgaXMKCSAgbm8gbmVlZCB0byBsb2NraW5nIG9yIHJlZiB3aGVuIHJldHJpZXZpbmcgaXQuCgkgIEltcHJvdmUgZGVidWdnaW5nIGEgYml0LgoJICBIYW5kbGUgbGluayBlcnJvcnMgd2hlbiBzZXR0aW5nIHRoZSB0YXJnZXQuIEZpeGVzICMzNDEwMjkuCgoyMDA2LTA5LTAxIDEwOjI2OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy86IEZpeCBkb2NzIHNvbWUgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICBGaXggZG9jcyBzb21lIG1vcmUuCgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBGcmVlIHF1ZXVlZCBidWZmZXIgd2hlbiByZW1vdmluZyBhIHBhZC4KCjIwMDYtMDgtMzEgMTc6MTM6MzQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5jOiBFbnN1cmUgdGhhdCB3ZSBzZXQgYSBjYXBzZmlsdGVyIHRvIE5VTEwgaWYgd2UgZmFpbGVkIHRvIGxpbmsgaXQgd2hlbiBkb2luZyBmaWx0ZXJlZCBsaW5raW5nLCB0byBhdm9pZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2xpbmtfcGFkcyksCgkgIChnc3RfZWxlbWVudF9saW5rX3BhZHNfZmlsdGVyZWQpOgoJICBFbnN1cmUgdGhhdCB3ZSBzZXQgYSBjYXBzZmlsdGVyIHRvIE5VTEwgaWYgd2UgZmFpbGVkIHRvIGxpbmsgaXQKCSAgd2hlbiBkb2luZyBmaWx0ZXJlZCBsaW5raW5nLCB0byBhdm9pZCBjcml0aWNhbHMuCgkgIE5vIG5lZWQgdG8gY2hlY2sgZm9yIHVucmVmZmluZyBzcmNwYWQsIHdoaWNoIGlzIGV4cGxpY2x5IE5VTExlZAoJICBhYm92ZSAoYSB0cml2aWFsIGNvZGUgY2xlYW51cCkuCgoyMDA2LTA4LTMxIDE1OjE5OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6IFVwZGF0ZSBhc2NpaSBhcnQgaW4gZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6CgkgIFVwZGF0ZSBhc2NpaSBhcnQgaW4gZG9jdW1lbnRhdGlvbi4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9faW50ZXJuYWxfbGluayksCgkgIChnc3RfcHJveHlfcGFkX3NldF90YXJnZXRfdW5sb2NrZWQpLCAoZ3N0X3Byb3h5X3BhZF9pbml0KSwKCSAgKGdzdF9naG9zdF9wYWRfcGFyZW50X3NldCksIChnc3RfZ2hvc3RfcGFkX3BhcmVudF91bnNldCksCgkgIChnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2RvX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9kb19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCksIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19saW5rKSwgKGdzdF9naG9zdF9wYWRfZG9fdW5saW5rKSwKCSAgKGdzdF9naG9zdF9wYWRfZGlzcG9zZSksIChnc3RfZ2hvc3RfcGFkX25ld19mdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldCk6CgkgIFNtYWxsIGNsZWFudXBzIGFuZCBsZWFrIGZpeGVzLgoJICBSZW1vdmUgc29tZSBjaGVja3Mgbm93IHRoYXQgdGhlIGludGVybmFsIHBhZCBpcyBuZXZlciBOVUxMLgoJICBGaXggdGhlIGNhc2Ugd2hlcmUgbGlua2luZyBwYWRzIHdpdGhvdXQgYSB0YXJnZXQgd291bGQgY3JlYXRlIG5hc3R5CgkgIGNyaXRpY2Fscy4gRml4ZXMgIzM0MTAyOS4KCSAgRG9uJ3QgYXNzaWduIGEgR3N0UGFkTGlua1JldHVybiB0byBhIGdib29sZWFuIGFuZCBtZXNzIHVwIHRoZSByZXR1cm4KCSAgdmFsdWUgb2YgX3NldF90YXJnZXQoKS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9naG9zdF9wYWRfc3VpdGUpOgoJICBTb21lIG1vcmUgdGVzdHMgZm9yIGNyZWF0aW5nIGFuZCBsaW5raW5nIHVudGFyZ2V0ZWQgZ2hvc3RwYWRzLgoKMjAwNi0wOC0zMSAxMDo1OToxMSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIFJlZmFjdG9yZWQgKl9uZXcoKSBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2dldGNhcHMpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19zZXRjYXBzKSwgKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldF91bmxvY2tlZCksCgkgIChnc3RfcHJveHlfcGFkX2Rpc3Bvc2UpLCAoZ3N0X2dob3N0X3BhZF9uZXdfZnVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19ub190YXJnZXQpLCAoZ3N0X2dob3N0X3BhZF9uZXcpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXdfZnJvbV90ZW1wbGF0ZSksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19ub190YXJnZXRfZnJvbV90ZW1wbGF0ZSk6CgkgICogZ3N0L2dzdGdob3N0cGFkLmg6CgkgIFJlZmFjdG9yZWQgKl9uZXcoKSBmdW5jdGlvbnMuCgkgIFRlbXBsYXRlcyBhcmUgbm93IHVzZWQgYXMgYSBnX29iamVjdF9uZXcoKSBwYXJhbWV0ZXIuCgkgIFVzZSB0ZW1wbGF0ZSBpbiBfZG9fZ2V0Y2FwcygpIGlmIHdlIGRvbid0IGhhdmUgYSB0YXJnZXQuCgkgIFNtYWxsIGRvY3VtZW50YXRpb24gY2xlYW51cHMuCgkgIEFkZGVkIHR3byBuZXcgY29uc3RydWN0b3JzOgoJICBnc3RfZ2hvc3RfcGFkX25ld19mcm9tX3RlbXBsYXRlKCkKCSAgZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0X2Zyb21fdGVtcGxhdGUoKQoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2dob3N0X3BhZF9zdWl0ZSk6CgkgIEFkZGVkIHRlc3RzIGZvciBuZXcgZ2hvc3RwYWQgaW5zdGFuY2lhdGlvbiBmdW5jdGlvbnMuCgkgIEFQSSBhZGRpdGlvbnM6IGdzdF9naG9zdF9wYWRfbmV3X2Zyb21fdGVtcGxhdGUsCgkgIGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldF9mcm9tX3RlbXBsYXRlCgoyMDA2LTA4LTMwIDEyOjI4OjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6IElkZWFzIGFib3V0IHFvcyBwcm9maWxpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDoKCSAgSWRlYXMgYWJvdXQgcW9zIHByb2ZpbGluZy4KCjIwMDYtMDgtMjkgMTQ6Mzk6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBDb2RlIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfc3RydWN0dXJlX2lzX3N1YnNldF9maWVsZCk6CgkgIENvZGUgY2xlYW51cHMuCgkgIEZpeCBtZW1sZWFrLgoKMjAwNi0wOC0yOSAxMDo0OTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R4bWwuYzogSW1wcm92ZSBhbmQgZGV0eXBvZnkgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHhtbC5jOgoJICBJbXByb3ZlIGFuZCBkZXR5cG9meSBkb2NzLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R4bWwuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF94bWxfc3VpdGUpOgoJICBBZGQgYSBiYXNpYyB0ZXN0IHN1aXRlIGZvciBHc3RYTUwuCgoyMDA2LTA4LTI5IDA5OjU2OjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogQ2xlYXIgdGhlIHBhZCBjYXBzIHdoZW4gdGhlIGVsZW1lbnQgc2h1dCBkb3duIGFsbCBvZiB0aGUgcGFkcyBhbmQgaXMgbm90IHN0cmVhbWluZyBkYXRhIHRoYXQgY291bGQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChhY3RpdmF0ZV9wYWRzKSwgKGNsZWFyX2NhcHMpLAoJICAoaXRlcmF0b3JfYWN0aXZhdGVfZm9sZF93aXRoX3Jlc3luYyksIChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgQ2xlYXIgdGhlIHBhZCBjYXBzIHdoZW4gdGhlIGVsZW1lbnQgc2h1dCBkb3duIGFsbCBvZiB0aGUgcGFkcyBhbmQKCSAgaXMgbm90IHN0cmVhbWluZyBkYXRhIHRoYXQgY291bGQgbW9kaWZ5IHRoZSBjYXBzLgoJICBGaXhlcyAjMzUyOTU4LgoKMjAwNi0wOC0yOSAwODowMjo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIEkgZG9uJ3QgZXZlbiBrbm93IHdoaWNoIGFyY2ggdGhhdCBpcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSSBkb24ndCBldmVuIGtub3cgd2hpY2ggYXJjaCB0aGF0IGlzCgoyMDA2LTA4LTI4IDIzOjE2OjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgbW9yZSBsb2dpY2FsIHRvIGxvZyB0aGUgc2VuZGluZyBwYWQsIGFuZCB0aGUgcGFkIGl0IGlzIHNlbmRpbmcgdG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgbG9naWNhbCB0byBsb2cgdGhlIHNlbmRpbmcgcGFkLCBhbmQgdGhlIHBhZCBpdCBpcyBzZW5kaW5nIHRvCgoyMDA2LTA4LTI4IDE4OjIwOjAwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IFJldmVydCBwcmV2aW91cyBjaGFuZ2U7IEkgbWlzdW5kZXJzdG9vZCBzaW5nbGUtc2VnbWVudCBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZTsgSSBtaXN1bmRlcnN0b29kIHNpbmdsZS1zZWdtZW50IG1vZGUuCgoyMDA2LTA4LTI4IDE4OjA4OjA5ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IFVuc2V0IERJU0NPTlQgb24gYnVmZmVycyB3aGVuIHVzaW5nIHNpbmdsZS1zZWdtZW50IG1vZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBVbnNldCBESVNDT05UIG9uIGJ1ZmZlcnMgd2hlbiB1c2luZyBzaW5nbGUtc2VnbWVudCBtb2RlLgoKMjAwNi0wOC0yOCAxNjozOToyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLio6IEZpeCBkb2NzIGFuZCBpbmRlbnRhdGlvbiBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX21lcmdlX3N0cnVjdHVyZSk6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgRml4IGRvY3MgYW5kIGluZGVudGF0aW9uIGFnYWluLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggbGVhayBpbiB0ZXN0cyBhbmQgYWRkIHNvbWUgbW9yZSB0ZXN0cy4KCjIwMDYtMDgtMjggMTU6NTc6MzkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEluZm9ybSBHc3RTZWdtZW50IG9mIHRoZSBsYXN0IHN0b3AgcG9zaXRpb24gaW4gb3JkZXIgZm9yIHRoZSBjdXJyZW50IHNlZ21lbnQgdG8gaGF2ZSBhIHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyk6CgkgIEluZm9ybSBHc3RTZWdtZW50IG9mIHRoZSBsYXN0IHN0b3AgcG9zaXRpb24gaW4gb3JkZXIgZm9yIHRoZSBjdXJyZW50CgkgIHNlZ21lbnQgdG8gaGF2ZSBhIHByb3BlciBkdXJhdGlvbiBpZiBpdCBkb2Vzbid0IGhhdmUgYSBzcGVjaWZpYyBzdG9wCgkgIHBvc2l0aW9uIGZyb20gd2hpY2ggYSBkdXJhdGlvbiBjb3VsZCBiZSBjYWxjdWxhdGVkLgoJICBUaGlzIGJ1ZyB3YXMgbm90aWNlYWJsZSB3aGVuIGEgbm9uLWZsdXNoaW5nLCBub24tdXBkYXRlIG5ldyBzZWdtZW50IHdhcwoJICBmb2xsb3dlZCBieSBhbm90aGVyIHNlZ21lbnQgKGFsbCBidWZmZXJzIGZyb20gdGhlIG5ldyBzZWdtZW50IHdlcmUgYmVpbmcKCSAgZHJvcHBlZCkuCgoyMDA2LTA4LTI4IDE1OjQ4OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFNtYWxsIGNvbW1lbnQgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspOgoJICBTbWFsbCBjb21tZW50IHVwZGF0ZS4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgRHJvcC1wcm9iYWJpbGl0eSBpcyBicm9rZW4sIG1lbnRpb24gdGhpcyBpbiB0aGUgY29kZSB3aXRoIGEKCSAgRklYTUUgYW5kIGFsc28gaW4gdGhlIHByb3BlcnR5IGRlc2NyaXB0aW9uLgoJICBNYWtlIHNpbGVudCBhbHNvIGJlIHNpbGVudCBhYm91dCB0aGUgZHJvcCBtZXNzYWdlcy4KCjIwMDYtMDgtMjggMTE6MDY6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hcHBlbmRpeC13aW4zMi54bWw6IFJlbW92ZSBtZW50aW9uIG9mIHBvcHQsIHdlIGRvbid0IGRlcGVuZCBvbiB0aGF0IGFueSBsb25nZXIgKCMzNTMxMzYpLiBBZGQgc29tZSBjb21tZW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtd2luMzIueG1sOgoJICBSZW1vdmUgbWVudGlvbiBvZiBwb3B0LCB3ZSBkb24ndCBkZXBlbmQgb24gdGhhdCBhbnkKCSAgbG9uZ2VyICgjMzUzMTM2KS4gQWRkIHNvbWUgY29tbWVudHMgcG9pbnRpbmcgb3V0IHRoYXQKCSAgdGhpcyBzZWN0aW9uIGlzIHNsaWdodGx5IG91dGRhdGVkLgoKMjAwNi0wOC0yOCAwODo0NDoyOSArMDAwMCAgVG9yc3RlbiBTY2hvZW5mZWxkIDxrYWZmZWV0aXNjaEBnbXguZGU+CgoJICBJbml0aWFsaXplIHZhcmlhYmxlcyB3aGVuIGNyZWF0aW5nIGEgbmV3IHNlZ21lbnQgcXVlcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVG9yc3RlbiBTY2hvZW5mZWxkIDxrYWZmZWV0aXNjaCBhdCBnbXggZG90IGRlPgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19zZWdtZW50KToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgSW5pdGlhbGl6ZSB2YXJpYWJsZXMgd2hlbiBjcmVhdGluZyBhIG5ldyBzZWdtZW50IHF1ZXJ5LgoJICBGaXhlcyAjMzUzMTIxLgoKMjAwNi0wOC0yOCAwODozNTozMSArMDAwMCAgVG9yc3RlbiBTY2hvZW5mZWxkIDxrYWZmZWV0aXNjaEBnbXguZGU+CgoJICBDaGVjayBmb3IgTlVMTCBiZWZvcmUgX3JlZmZpbmcgdGhlIGJ1cy4gRml4ZXMgIzM1MzEyMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoIGF0IGdteCBkb3QgZGU+CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9idXMpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIENoZWNrIGZvciBOVUxMIGJlZm9yZSBfcmVmZmluZyB0aGUgYnVzLiBGaXhlcyAjMzUzMTIyLgoKMjAwNi0wOC0yNSAxNjo0NjowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOiBEb2NzIHVwZGF0ZTogZml4IHdyb25nIGNhbGxiYWNrIHJldHVybiB2YWx1ZSBleHBsYW5hdGlvbjsgYWRkIHNvbWUgbGluZXMgYWJvdXQgdGhlIGltcGxpYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgRG9jcyB1cGRhdGU6IGZpeCB3cm9uZyBjYWxsYmFjayByZXR1cm4gdmFsdWUgZXhwbGFuYXRpb247IGFkZAoJICBzb21lIGxpbmVzIGFib3V0IHRoZSBpbXBsaWNpdCByZWxhdGlvbnNoaXAgYmV0d2VlbiBtYWluIGxvb3AKCSAgYW5kIG1haW4gY29udGV4dDsgcmVtb3ZlIGR1cGxpY2F0ZSBtYWluIGxvb3AgdmFyaWFibGUgZGVjbGFyYXRpb24uCgoyMDA2LTA4LTI0IDEyOjMwOjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogRG9uJ3QgbGVhayBjYXBzIGluIHVuaXQgdGVzdDsgYWRkIGEgZmV3IG1vcmUgc2ltcGxlIGNoZWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRG9uJ3QgbGVhayBjYXBzIGluIHVuaXQgdGVzdDsgYWRkIGEgZmV3IG1vcmUgc2ltcGxlCgkgIGNoZWNrcy4KCjIwMDYtMDgtMjQgMTA6NDA6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGltcGxlbWVudCBjYXBzIG1lcmdpbmcgKGZpeGVzICMzNTI1ODApCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3N0cnVjdHVyZV9pc19zdWJzZXRfZmllbGQpLAoJICAoZ3N0X2NhcHNfc3RydWN0dXJlX2lzX3N1YnNldCksIChnc3RfY2Fwc19tZXJnZSksCgkgIChnc3RfY2Fwc19tZXJnZV9zdHJ1Y3R1cmUpOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfY2Fwc19zdWl0ZSk6CgkgIGltcGxlbWVudCBjYXBzIG1lcmdpbmcgKGZpeGVzICMzNTI1ODApCgoyMDA2LTA4LTIzIDE4OjUzOjQ0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy86IGFkZCBkZWJ1Zy1sb2cgcGxvdHRpbmcgZGV2ZWxvcGVyIHRvb2wgKCMzNDA2NzQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJICBhZGQgZGVidWctbG9nIHBsb3R0aW5nIGRldmVsb3BlciB0b29sICgjMzQwNjc0KQoKMjAwNi0wOC0yMyAxNjo1MToxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogSW1wcm92ZSBkZWJ1Z2dpbmcgZm9yIHRhc2sgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3N0YXJ0X3Rhc2spLCAoZ3N0X3BhZF9wYXVzZV90YXNrKSwKCSAgKGdzdF9wYWRfc3RvcF90YXNrKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgZm9yIHRhc2sgZnVuY3Rpb25zLgoJICAqIGdzdC9nc3R0YXNrLmM6IChnc3RfdGFza19mdW5jKSwgKGdzdF90YXNrX3NldF9sb2NrKSwKCSAgKGdzdF90YXNrX3N0YXJ0KSwgKGdzdF90YXNrX3BhdXNlKSwgKGdzdF90YXNrX2pvaW4pOgoJICBNYWtlIHN1cmUgdGhhdCB0aGUgdGFzayBmdW5jdGlvbiBzdGFydGVkIGFuZCBmaW5pc2hlZCBhZnRlciBhCgkgIGpvaW4oKS4KCSAgRG9uJ3QgdHJ5IHRvIHB1c2ggdGhlIHRhc2sgZnVuY3Rpb24gb24gdGhlIHRocmVhZHBvb2wgbXVsdGlwbGUKCSAgdGltZXMuCgkgIEltcHJvdmUgdGhlIGdfd2FybmluZyBtZXNzYWdlIHdpdGggc29tZSB1c2VmdWwgc3VnZ2VzdGlvbnMKCSAgYWJvdXQgaG93IHRvIGZpeCB0aGUgcHJvYmxlbS4KCjIwMDYtMDgtMjMgMTA6NTk6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogSGFuZGxlIFJFU1lOQyBjb3JyZWN0bHkgaW4gX3Byb3h5X2dldGNhcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9wcm94eV9nZXRjYXBzKToKCSAgSGFuZGxlIFJFU1lOQyBjb3JyZWN0bHkgaW4gX3Byb3h5X2dldGNhcHMuCgoyMDA2LTA4LTIzIDA5OjQ3OjMyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgd29yZCByZWZjb3VudGluZyBtb3JlIHByZWNpc2VseSBmb3IgZ3N0X3ZhbHVlXypfYnVmZmVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3b3JkIHJlZmNvdW50aW5nIG1vcmUgcHJlY2lzZWx5IGZvciBnc3RfdmFsdWVfKl9idWZmZXIKCjIwMDYtMDgtMjEgMTU6MTk6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0eG1sLmM6IENoYWluIHVwIHRvIHBhcmVudCBjbGFzcyBpbiBkaXNwb3NlIGZ1bmN0aW9uIGFuZCBhbHNvIHVucmVmIHRoZSBlbGVtZW50cyBpbiB0aGUgdG9wbGV2ZWxfZWxlbWVudHMgR0xpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R4bWwuYzogKGdzdF94bWxfZGlzcG9zZSksIChnc3RfeG1sX3BhcnNlX2ZpbGUpLAoJICAoZ3N0X3htbF9wYXJzZV9tZW1vcnkpLCAoZ3N0X3htbF9nZXRfZWxlbWVudCk6CgkgIENoYWluIHVwIHRvIHBhcmVudCBjbGFzcyBpbiBkaXNwb3NlIGZ1bmN0aW9uIGFuZCBhbHNvCgkgIHVucmVmIHRoZSBlbGVtZW50cyBpbiB0aGUgdG9wbGV2ZWxfZWxlbWVudHMgR0xpc3QuCgkgIERvbid0IGxlYWsgWG1sRG9jUHRyIGluIF9wYXJzZV9maWxlKCkgYW5kIF9wYXJzZV9tZW1vcnkoKS4KCSAgQWx3YXlzIHJldHVybiBhIHJlZmVyZW5jZSBpbiBnc3RfeG1sX2dldF9lbGVtZW50KCkgcmF0aGVyCgkgIHRoYW4gb25seSBzb21ldGltZXMuCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoeG1sbGF1bmNoX3BhcnNlX2NtZGxpbmUpOgoJICBEb24ndCBsZWFrIEdzdFhtbCBvYmplY3QuCgoyMDA2LTA4LTIxIDE0OjU0OjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBUEk6IEFkZCBnc3RfY2Fwc19tZXJnZSgpIGFuZCB1c2UgaXQgaW4gYmFzZXRyYW5zZm9ybSwgZml4ZXMgIzM0NTQ0NCBpbiBhIGJldHRlciB3YXkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X3N0cnVjdHVyZV9pc19lcXVhbF9mb3JlYWNoKSwKCSAgKGdzdF9jYXBzX21lcmdlKToKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKToKCSAgQVBJOiBBZGQgZ3N0X2NhcHNfbWVyZ2UoKSBhbmQgdXNlIGl0IGluIGJhc2V0cmFuc2Zvcm0sIGZpeGVzICMzNDU0NDQKCSAgaW4gYSBiZXR0ZXIgd2F5CgoyMDA2LTA4LTIxIDE0OjAzOjMzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHhtbC5jOiBJbXBsZW1lbnQgR09iamVjdDo6ZGlzcG9zZSB2aXJ0dWFsIG1ldGhvZCBpbiBHc3RYTUwgc28gd2UgY2FuIGZyZWUgdGhlIHRvcF9lbGVtZW50cyBHTGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHhtbC5jOiAoZ3N0X3htbF9jbGFzc19pbml0KSwgKGdzdF94bWxfZGlzcG9zZSk6CgkgIEltcGxlbWVudCBHT2JqZWN0OjpkaXNwb3NlIHZpcnR1YWwgbWV0aG9kIGluIEdzdFhNTCBzbyB3ZSBjYW4gZnJlZSB0aGUKCSAgdG9wX2VsZW1lbnRzIEdMaXN0LgoKMjAwNi0wOC0yMSAwOTozMDowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogQ29weSBkdXJhdGlvbi9vZmZzZXRfZW5kL2NhcHMgd2hlbiBjcmVhdGluZyBhIHN1YmJ1ZmZlciBvZiB0aGUgY29tcGxldGUgcGFyZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX21ha2VfbWV0YWRhdGFfd3JpdGFibGUpLAoJICAoZ3N0X2J1ZmZlcl9jcmVhdGVfc3ViKToKCSAgQ29weSBkdXJhdGlvbi9vZmZzZXRfZW5kL2NhcHMgd2hlbiBjcmVhdGluZyBhIHN1YmJ1ZmZlciBvZiB0aGUKCSAgY29tcGxldGUgcGFyZW50LgoJICBNYWtlIHRoZSBzdWJidWZmZXIgcmVhZC1vbmx5IHdoZW4gd2UgbWFrZSB0aGUgbWV0YWRhdGEgd3JpdGFibGUgZm9yCgkgIG5vdy4gRml4ZXMgIzM1MTc2OC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZGVkIGNoZWNrIGZvciBtZXRhZGF0YSBjb3B5IHdoZW4gY3JlYXRpbmcgc3ViYnVmZmVycy4KCjIwMDYtMDgtMjEgMDk6MjA6NDIgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogT25seSBjYWxsIGRvd25zdHJlYW0gYnVmZmVyX2FsbG9jIGlmIHRyYW5zZm9ybSBlbGVtZW50IGlzIHBhc3N0aHJvdWdoIG9yIGFsd2F5c19pbl8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgT25seSBjYWxsIGRvd25zdHJlYW0gYnVmZmVyX2FsbG9jIGlmIHRyYW5zZm9ybSBlbGVtZW50IGlzIHBhc3N0aHJvdWdoCgkgIG9yIGFsd2F5c19pbl9wbGFjZS4gQ2xvc2VzICMzNTA0NDkuCgoyMDA2LTA4LTIwIDE5OjM2OjIxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBDaGFuZ2VMb2c6IENoYW5nZUxvZyBzdXJnZXJ5IHRvIGFkZCBjb21tZW50cyB0byBwcmV2aW91cyBjaGFuZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnkgdG8gYWRkIGNvbW1lbnRzIHRvIHByZXZpb3VzIGNoYW5nZXMKCjIwMDYtMDgtMjAgMTk6MzA6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFNpbXBsaWZ5IGNhcHMgdG8gZ2V0IHJpZCBvZiBkdXBsaWNhdGVzLCBmaXhlcyAjMzQ1NDQ0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKToKCSAgU2ltcGxpZnkgY2FwcyB0byBnZXQgcmlkIG9mIGR1cGxpY2F0ZXMsIGZpeGVzICMzNDU0NDQKCjIwMDYtMDgtMjAgMTU6NTU6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS4qOiBVc2UgdGhlc2Ugb3B0aW1pemF0aW9ucyBvbmx5IGludGVybmFseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIFVzZSB0aGVzZSBvcHRpbWl6YXRpb25zIG9ubHkgaW50ZXJuYWx5LgoKMjAwNi0wOC0yMCAxNDozMDoyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLio6IFNhdmVzIHRoZSBleHBlbnNpdmUgbG9va3VwIG9mIHRoZSBjb21wYXJlIGZ1bmN0aW9uIGluIG1hbnkgY2FzZXMgKCMzNDU0NDQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2NvbXBhcmVfbGlzdCksCgkgIChnc3RfdmFsdWVfY29tcGFyZV9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2ZyYWN0aW9uX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfZnJhY3Rpb25fcmFuZ2VfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2ZyYWN0aW9uX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9mcmFjdGlvbl9yYW5nZV9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfZ2V0X2NvbXBhcmVfZnVuYyksIChnc3RfdmFsdWVfY29tcGFyZSksCgkgIChnc3RfdmFsdWVfY29tcGFyZV93aXRoX2Z1bmMpOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBTYXZlcyB0aGUgZXhwZW5zaXZlIGxvb2t1cCBvZiB0aGUgY29tcGFyZSBmdW5jdGlvbiBpbiBtYW55IGNhc2VzCgkgICgjMzQ1NDQ0KQoKMjAwNi0wOC0xOCAxMzo0MTowMiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6IERpc2FibGUgdGVzdCB0aGF0IHJlcXVpcmUgZ3N0ZGVidWcgaWYgaXQgd2Fzbid0IGJ1aWx0IGluIGNvcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6IChnc3RfaW5mb19zdWl0ZSk6CgkgIERpc2FibGUgdGVzdCB0aGF0IHJlcXVpcmUgZ3N0ZGVidWcgaWYgaXQgd2Fzbid0IGJ1aWx0IGluIGNvcmUuCgoyMDA2LTA4LTE4IDEwOjUyOjMzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL2xvZ2dpbmcudHh0OiB1cGRhdGUgaWRlYXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9sb2dnaW5nLnR4dDoKCSAgdXBkYXRlIGlkZWFzCgkgICogZ3N0L2dzdGluZm8uYzogKGdzdF9kZWJ1Z19sb2dfZGVmYXVsdCk6CgkgIHJlb3JkZXIgZmllbGRzLCBzYXZlIHNvbWUgY29sdW1ucywgYWRkIG9wdGluYWwgY29sb3IgY29kZXMgZm9yIGxvZy0KCSAgbGV2ZWxzCgoyMDA2LTA4LTE4IDA4OjA3OjEyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL2xvZ2dpbmcudHh0OiBhZGQgaWRlYXMgYWJvdXQgbWFraW5nIHRoZSBsb2dzIGFiaXQgbW9yZSB1c2VmdWwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9sb2dnaW5nLnR4dDoKCSAgYWRkIGlkZWFzIGFib3V0IG1ha2luZyB0aGUgbG9ncyBhYml0IG1vcmUgdXNlZnVsCgoyMDA2LTA4LTE3IDE4OjExOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvOiBVcGRhdGUgZm9yIDAuMTAgQVBJICgjMzQwNjI3KS4gQWRkIG15c2VsZiB0byBhdXRob3JzIGxpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLWV2ZW50cy54bWw6CgkgICogZG9jcy9wd2cvdGl0bGVwYWdlLnhtbDoKCSAgVXBkYXRlIGZvciAwLjEwIEFQSSAoIzM0MDYyNykuIEFkZCBteXNlbGYKCSAgdG8gYXV0aG9ycyBsaXN0LgoKMjAwNi0wOC0xNyAxMDo0NjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE1ha2UgZ3N0Y2hlY2sgc3R1ZmYgc2hvdyB1cCBpbiBkb2NzIChzdGlsbCBuZWVkcyB0byBiZSBkb2N1bWVudGVkIHByb3Blcmx5IHRob3VnaCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5jOgoJICBNYWtlIGdzdGNoZWNrIHN0dWZmIHNob3cgdXAgaW4gZG9jcyAoc3RpbGwgbmVlZHMgdG8KCSAgYmUgZG9jdW1lbnRlZCBwcm9wZXJseSB0aG91Z2gpLgoKMjAwNi0wOC0xNiAxMTo0Nzo1NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBBZGQgaW50ZXJuYWwgaGVscGVycyBmb3IgcHJlLXJlZ2lzdGVyaW5nIHF1YXJrcyBmcm9tIHN0YXRpYyBzdHJpbmdzIGFuZCB1c2luZyB0aGUgcXVhcmsgdmFsdWVzIGRpcmVjdGx5IGluc3RlYWQgb2YgbG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0cXVhcmsuYzogKF9wcml2X2dzdF9xdWFya3NfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHF1YXJrLmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X3Bvc2l0aW9uKSwKCSAgKGdzdF9xdWVyeV9zZXRfcG9zaXRpb24pLCAoZ3N0X3F1ZXJ5X3BhcnNlX3Bvc2l0aW9uKSwKCSAgKGdzdF9xdWVyeV9uZXdfZHVyYXRpb24pLCAoZ3N0X3F1ZXJ5X3NldF9kdXJhdGlvbiksCgkgIChnc3RfcXVlcnlfcGFyc2VfZHVyYXRpb24pLCAoZ3N0X3F1ZXJ5X25ld19jb252ZXJ0KSwKCSAgKGdzdF9xdWVyeV9zZXRfY29udmVydCksIChnc3RfcXVlcnlfcGFyc2VfY29udmVydCksCgkgIChnc3RfcXVlcnlfbmV3X3NlZ21lbnQpLCAoZ3N0X3F1ZXJ5X3NldF9zZWdtZW50KSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9zZWdtZW50KSwgKGdzdF9xdWVyeV9uZXdfc2Vla2luZyksCgkgIChnc3RfcXVlcnlfc2V0X3NlZWtpbmcpLCAoZ3N0X3F1ZXJ5X3BhcnNlX3NlZWtpbmcpOgoJICBBZGQgaW50ZXJuYWwgaGVscGVycyBmb3IgcHJlLXJlZ2lzdGVyaW5nIHF1YXJrcyBmcm9tIHN0YXRpYyBzdHJpbmdzCgkgIGFuZCB1c2luZyB0aGUgcXVhcmsgdmFsdWVzIGRpcmVjdGx5IGluc3RlYWQgb2YgbG9va2luZyB0aGVtIHVwIHdoZW4KCSAgY3JlYXRpbmcgYW5kIHBhcnNpbmcgcXVlcmllcy4gQ2FuIGJlIHVzZWQgZm9yIGV2ZW50IGNvbnN0cnVjdGlvbiB0b28uCgkgIENsb3NlcyAjMzUwNDMyLgoKMjAwNi0wOC0xNiAwODo1NDo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRml4IGJvZ3VzIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgRml4IGJvZ3VzIGRvY3MuCgoyMDA2LTA4LTE1IDE4OjQ1OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEZpeCBtZW1sZWFrICgjMzUxNTAyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9zZXRfdmFsdWVfZnJvbV9zdHJpbmcpOgoJICBGaXggbWVtbGVhayAoIzM1MTUwMikuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdXRpbHNfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciBtb3N0IG9mIGdzdF91dGlsX3NldF92YWx1ZV9mcm9tX3N0cmluZygpCgkgIChub3QgdGhhdCBvbmUgd291bGQgd2FudCB0byBlbmNvdXJhZ2UgdXNlIG9mIHRoaXMgZnVuY3Rpb24pLgoKMjAwNi0wOC0xNSAxODoyOToyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6IFVzZSBjb25zdCBnY2hhciAqIHZhcmlhYmxlcyBpbiBmYWlsX3VubGVzc19lcXVhbHNfc3RyaW5nIG1hY3JvIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmdzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBVc2UgY29uc3QgZ2NoYXIgKiB2YXJpYWJsZXMgaW4gZmFpbF91bmxlc3NfZXF1YWxzX3N0cmluZwoJICBtYWNybyB0byBhdm9pZCBjb21waWxlciB3YXJuaW5ncyAoYW5kIGRvbid0IHVzZSB0YWJzIGZvcgoJICBpbmRlbnRpbmcpLgoKMjAwNi0wOC0xNSAxMDowODozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogTW9yZSBzcGFjZSBvbiB0aGUgbGVmdCBmb3IgdGhlIHRhZyBuYW1lcywgdG8gY2F0ZXIgZm9yIHRoZSAnZXh0ZW5kZWQgY29tbWVudCcgdGFnIChub3QgdG91Y2hpbmcgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChwcmludF90YWcpOgoJICBNb3JlIHNwYWNlIG9uIHRoZSBsZWZ0IGZvciB0aGUgdGFnIG5hbWVzLCB0byBjYXRlcgoJICBmb3IgdGhlICdleHRlbmRlZCBjb21tZW50JyB0YWcgKG5vdCB0b3VjaGluZyB0aGUKCSAgc3RyaW5nIGZvciB0aGUgZmlyc3QgbGluZSBzaW5jZSBpdCdzIHRyYW5zbGF0ZWQpLgoKMjAwNi0wOC0xNSAwOTo0NDo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IGRvbid0IGZvcmdldCB0byBtZW50aW9uIHRoZSBvdGhlciBjaGFuZ2UgaW4gdGhlIENoYW5nZUxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IGRvbid0IGZvcmdldCB0byBtZW50aW9uIHRoZSBvdGhlciBjaGFuZ2UgaW4gdGhlIENoYW5nZUxvZwoKMjAwNi0wOC0xNSAwOTozMzoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6IEZpeCBBU1NFUlRfQ1JJVElDQUwgYW5kIEFTU0VSVF9XQVJOSU5HIG1hY3JvcyB0byBhY3R1YWxseSBwcmludCBzb21ldGhpbmcgd2hlbiB0aGV5IGZhaWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEZpeCBBU1NFUlRfQ1JJVElDQUwgYW5kIEFTU0VSVF9XQVJOSU5HIG1hY3JvcyB0byBhY3R1YWxseQoJICBwcmludCBzb21ldGhpbmcgd2hlbiB0aGV5IGZhaWwuCgoyMDA2LTA4LTE0IDE5OjA0OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgR1NUX1RBR19FWFRFTkRFRF9DT01NRU5UICgjMzUwOTM1KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQVBJOiBhZGQgR1NUX1RBR19FWFRFTkRFRF9DT01NRU5UICgjMzUwOTM1KS4KCjIwMDYtMDgtMTQgMTc6Mjk6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby5jOiBNYWtlIEdTVF9QVFJfRk9STUFUIHByaW50IG1lc3NhZ2VzIGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6IChnc3RfZGVidWdfcHJpbnRfb2JqZWN0KToKCSAgTWFrZSBHU1RfUFRSX0ZPUk1BVCBwcmludCBtZXNzYWdlcyBhcyB3ZWxsLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6IChwcmludGZfZXh0ZW5zaW9uX2xvZ19mdW5jKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9pbmZvX3N1aXRlKToKCSAgTW9yZSB0ZXN0cy4KCjIwMDYtMDgtMTQgMTU6MzM6MTcgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogSWYgdGhlIEdzdEVsZW1lbnRDbGFzcyBkb2Vzbid0IGhhdmUgYSBHc3RFbGVtZW50RGV0YWlscyB3aXRoIGFsbCBmaWVsZHMgdGhlbiBlcnJvciBvdXQgbmljZWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9yZWdpc3Rlcik6CgkgIElmIHRoZSBHc3RFbGVtZW50Q2xhc3MgZG9lc24ndCBoYXZlIGEgR3N0RWxlbWVudERldGFpbHMgd2l0aCBhbGwgZmllbGRzCgkgIGZpbGxlZCB1cCBjb3JyZWN0bHkgKGxvbmduYW1lLCBkZXNjcmlwdGlvbiBBTkQgYXV0aG9yKSwgdGhlbiBlcnJvciBvdXQKCSAgbmljZWx5IGluc3RlYWQgb2YgY3Jhc2hpbmcuCgoyMDA2LTA4LTE0IDEyOjM1OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBGaXggdHlwbyBpbiBkb2NzIGFuZCByZS13cmFwIGRvY3MgYmx1cmIgdG8gbm90IGV4Y2VlZCA4MCBjaGFycy9saW5lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIEZpeCB0eXBvIGluIGRvY3MgYW5kIHJlLXdyYXAgZG9jcyBibHVyYiB0byBub3QgZXhjZWVkIDgwIGNoYXJzL2xpbmUuCgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIEV4cGFuZCBvbiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGFycmF5cyBhbmQgbGlzdHMgYXMgd2UgdXNlIHRoZW0uCgoyMDA2LTA4LTE0IDA3OjQ0OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IElmIHRoZSBwYXJlbnQgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIGZhaWxlZCwgZG9uJ3QgYXNzdW1lIHdlIGNhbiBzYWZlbHkgc3RvcCB0aGUgc291cmNlLCB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIElmIHRoZSBwYXJlbnQgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIGZhaWxlZCwgZG9uJ3QgYXNzdW1lIHdlIGNhbiBzYWZlbHkKCSAgc3RvcCB0aGUgc291cmNlLCB0aGlzIHdpbGwgYmUgZG9uZSB3aGVuIHRoZSBwYWRzIGFyZSBkZWFjdGl2YXRlZC4KCjIwMDYtMDgtMTQgMDc6MzU6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBTbWFsbCBkb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICAqIGdzdC9nc3R0YXNrLmM6IChnc3RfdGFza19qb2luKToKCSAgU21hbGwgZG9jIHVwZGF0ZXMuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKSwgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcGFkX3N0b3BfdGFzayk6CgkgIFdoZW4gcGFkIChkZSlhY3RpdmF0aW9uIGZhaWxlZCBmb3Igc29tZSByZWFzb24sIHJlc3RvcmUgdGhlIG9sZAoJICBhY3RpdmF0aW9uIG1vZGUgYW5kIHNldCB0aGUgcGFkIHRvIGZsdXNoaW5nIGluc3RlYWQgb2YgYXNzdW1pbmcgdGhlCgkgIHBhZCBpcyBkZWFjdGl2YXRlZC4KCSAgSWYgdGhlIF90YXNrX2pvaW4oKSBmYWlsZWQsIHJlaW5zdGFsbCB0aGUgdGFzayBvbiB0aGUgcGFkIHNvIHRoYXQgaXQgY2FuCgkgIGJlIHN0b3BwZWQgbGF0ZXIgYW5kIHJldHVybiBhbiBlcnJvci4KCjIwMDYtMDgtMTEgMTU6MjY6MzMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIEdTVF9ESVNBQkxFX0RFUFJFQ0FURUQgaXMgb25seSBmb3IgdXNlcnMgb2YgQVBJIHRoYXQgZG9uJ3Qgd2FudCB0byBzZWUgZGVwcmVjYXRlZCBmdW5jdGlvbnMgaW4gdGhlIGhlYWRlcnM7IHBlb3BsZSB0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wOC0xMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiAoZ3N0X2RwX3BhY2tldGl6ZXJfbmV3KToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiAoZ3N0X2RwX3N1aXRlKTogR1NUX0RJU0FCTEVfREVQUkVDQVRFRAoJICBpcyBvbmx5IGZvciB1c2VycyBvZiBBUEkgdGhhdCBkb24ndCB3YW50IHRvIHNlZSBkZXByZWNhdGVkCgkgIGZ1bmN0aW9ucyBpbiB0aGUgaGVhZGVyczsgcGVvcGxlIHRoYXQgd2FudCB0byBjb21waWxlIG91dAoJICBkZXByZWNhdGVkIGNvZGUgc2hvdWxkIHBhc3MgLURHU1RfUkVNT1ZFX0RFUFJFQ0FURUQgaW50byB0aGUKCSAgQ0ZMQUdTLiBGaXhlcyB0aGUgYnVpbGQgb2YgbXVsdGlmZHNpbmssIG9yIHdpbGwgc29vbi4uCgoyMDA2LTA4LTExIDE1OjI0OjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIEdzdENsb2NrQ2xhc3Mgdm1ldGhvZCBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgR3N0Q2xvY2tDbGFzcyB2bWV0aG9kIGRvY3MuCgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgTWFyayAjZW5kaWYgd2l0aCBjb21tZW50IGZvciBhc3NvY2lhdGVkICNpZgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2lkX3dhaXQpOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBBZGQgdm1ldGhvZCB3YWl0X2ppdHRlciB0byBhdm9pZCBhbiB1bm5lZWRlZCBfZ2V0X3RpbWUoKSBmb3IKCSAgbW9zdCBjbG9jayBpbXBsZW1lbnRhdGlvbnMuCgkgIERvY3VtZW50IHZtZXRob2RzLgoJICBGbGVzaCBvdXQgZG9jcyBhYm91dCByZXNvbHV0aW9uIG1ldGhvZHMuCgkgIEFQSTogR3N0Q2xvY2tDbGFzczo6d2FpdF9qaXR0ZXIKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfY2xhc3NfaW5pdCksCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX2FzeW5jX3RocmVhZCksCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfaml0dGVyX3VubG9ja2VkKSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9qaXR0ZXIpOgoJICBVc2UgYmFzZSBjbGFzcyB3YWl0X2ppdHRlciB2YXJpYW50IGZvciBpbXByb3ZlZCBwZXJmb3JtYW5jZQoJICBkdWUgdG8gbGVzcyBjbG9jayBwb2xsaW5nLgoKMjAwNi0wOC0xMSAxNTowNzo1OCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3QuYzogU2V0IGdzdCBhcyBiZWluZyBpbml0aWFsaXplZCBiZWZvcmUgc2Nhbm5pbmcvdXBkYXRpbmcgdGhlIHJlZ2lzdHJ5LCBzaW5jZSB0aGVyZSBtaWdodCBiZSBzb21lIHBsdWdpbnMgdGhhdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdF9jaGVjayksIChpbml0X3Bvc3QpOgoJICBTZXQgZ3N0IGFzIGJlaW5nIGluaXRpYWxpemVkIGJlZm9yZSBzY2FubmluZy91cGRhdGluZyB0aGUgcmVnaXN0cnksCgkgIHNpbmNlIHRoZXJlIG1pZ2h0IGJlIHNvbWUgcGx1Z2lucyB0aGF0IGNhbGwgZ3N0X2luaXQoKSBhbmQgd2UgZG9uJ3QKCSAgd2FudCB0byBsb29wIGJhY2sgaW4uCgkgIENsb3NlcyAjMzUwODc5CgoyMDA2LTA4LTExIDEzOjEzOjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBNZW50aW9uIHRoYXQgd2UgZml4ZWQgYnVnICMzNDk5NDMgd2l0aCB0aGUgbGFzdCBjb21taXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNZW50aW9uIHRoYXQgd2UgZml4ZWQgYnVnICMzNDk5NDMgd2l0aCB0aGUgbGFzdCBjb21taXQuCgoyMDA2LTA4LTExIDEzOjA1OjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OiBCcmluZyBkb2NzIGluIGxpbmUgd2l0aCB0aGUgY29kZS4gTW9zdGx5IHRoZSBzaWduIG9mIHRoZSBqaXR0ZXIgd2FzIHdyb25nIGluIHRoZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIEJyaW5nIGRvY3MgaW4gbGluZSB3aXRoIHRoZSBjb2RlLiBNb3N0bHkgdGhlIHNpZ24gb2YgdGhlIGppdHRlciB3YXMKCSAgd3JvbmcgaW4gdGhlIGRvY3MuCgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgIEZpeCB0aGUgZG9jcyBmb3IgdGhlIGppdHRlci4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfY3VzdG9tKSwgKGdzdF9ldmVudF9uZXdfdGFnKSwKCSAgKGdzdF9ldmVudF9wYXJzZV90YWcpLCAoZ3N0X2V2ZW50X25ld19idWZmZXJfc2l6ZSksCgkgIChnc3RfZXZlbnRfcGFyc2VfYnVmZmVyX3NpemUpLCAoZ3N0X2V2ZW50X3BhcnNlX3FvcyksCgkgIChnc3RfZXZlbnRfbmV3X3NlZWspLCAoZ3N0X2V2ZW50X3BhcnNlX3NlZWspLAoJICAoZ3N0X2V2ZW50X25ld19uYXZpZ2F0aW9uKToKCSAgTWFrZSBzdXJlIHRoZSBHc3RTdHJ1Y3R1cmUgaGFzIG5vIHBhcmVudCB3aGVuIGNyZWF0aW5nIGN1c3RvbQoJICBldmVudHMuCgkgIEFkZCBzb21lIG1vcmUgYXJndW1lbnQgY2hlY2tpbmcgc28gdGhhdCB3ZSBhdm9pZCAwLjAgcmF0ZXMuCgkgIEZsZXNoIG91dCB0aGUgZG9jcyBmb3IgdGhlIFFvUyBldmVudCBzb21lIG1vcmUuCgoyMDA2LTA4LTExIDEwOjIxOjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBGb3Jnb3QgdG8gbWVudGlvbiBmaXhlZCBidWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGb3Jnb3QgdG8gbWVudGlvbiBmaXhlZCBidWcuCgoyMDA2LTA4LTExIDEwOjE5OjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCksIChnc3RfaW5pdF9jaGVjayksCgkgIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9mb3JraW5nKSwgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5KSwKCSAgKHBhcnNlX29uZV9vcHRpb24pLCAocGFyc2VfZ29wdGlvbl9hcmcpLCAoZ3N0X2RlaW5pdCksCgkgIChnc3RfcmVnaXN0cnlfZm9ya19pc19lbmFibGVkKSwgKGdzdF9yZWdpc3RyeV9mb3JrX3NldF9lbmFibGVkKToKCSAgKiBnc3QvZ3N0Lmg6CgkgIERvYyB1cGRhdGVzLgoJICBBZGRlZCBBUEkgYW5kIGNvbW1hbmQgbGluZSBvcHRpb24gdG8gZGlzYWJsZSByZWdpc3RyeSBmb3JraW5nIGluCgkgIGFkZGl0aW9uIHRvIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCSAgQ29uc3RpZnkgc29tZSBzdGF0aWMgYXJyYXlzLgoJICBBZGRlZCBzb21lIG1vcmUgZGVidWcuCgkgIERvbid0IGRlaW5pdCB0d2ljZS4KCSAgQVBJOiBnc3RfcmVnaXN0cnlfZm9ya19pc19lbmFibGVkKCkKCSAgQVBJOiBnc3RfcmVnaXN0cnlfZm9ya19zZXRfZW5hYmxlZCgpCgkgIEFQSTogLS1nc3QtZGlzYWJsZS1yZWdpc3RyeS1mb3JrIGNvbW1hbmQgbGluZSBvcHRpb24KCjIwMDYtMDgtMTEgMDk6NTk6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IEZpeCB0eXBvIGluIGVycm9yIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0KToKCSAgRml4IHR5cG8gaW4gZXJyb3IgbWVzc2FnZS4KCjIwMDYtMDgtMTAgMjA6MDU6MzAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOiBmaXggQUJJIHNpemUtY29ycmVjdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgZml4IEFCSSBzaXplLWNvcnJlY3Rpb24KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiAoZ3N0X2RwX3N1aXRlKToKCSAgbWFrZSB0ZXN0cyB0aGF0IHVzZSBkZXByZWNhdGVkIEFQSSBjb25kaXRpb25hbAoKMjAwNi0wOC0xMCAxOTo0NjoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQVBJOiBhZGQgZ3N0X29iamVjdF97cyxnfWV0X2NvbnRyb2xfcmF0ZSgpLCBhZGQgcHJpdmF0ZSBkYXRhIHNlY3Rpb24sIGZpeCBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChfZ3N0X2NvbnRyb2xsZXJfZ2V0X3Byb3BlcnR5KSwgKF9nc3RfY29udHJvbGxlcl9zZXRfcHJvcGVydHkpLAoJICAoX2dzdF9jb250cm9sbGVyX2luaXQpLCAoX2dzdF9jb250cm9sbGVyX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6IChnc3Rfb2JqZWN0X2dldF9jb250cm9sX3JhdGUpLAoJICAoZ3N0X29iamVjdF9zZXRfY29udHJvbF9yYXRlKToKCSAgQVBJOiBhZGQgZ3N0X29iamVjdF97cyxnfWV0X2NvbnRyb2xfcmF0ZSgpLCBhZGQgcHJpdmF0ZSBkYXRhIHNlY3Rpb24sCgkgIGZpeCBkb2NzCgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiAoZ3N0X2RwX3BhY2tldGl6ZXJfbmV3KToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgIGFkZCBkZXByZWNhdGlvbiBndWFyZHMgdG8gbWFrZSBndGstZG9jIGhhcHB5IGFuZCBhbGxvdyBkaXNhYmxpbmcgY3J1ZnQKCjIwMDYtMDgtMDkgMTU6MjY6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay86IExldCdzIGVuYWJsZSB0aGUgbmV3IHVuaXQgdGVzdCBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgTGV0J3MgZW5hYmxlIHRoZSBuZXcgdW5pdCB0ZXN0IGFzIHdlbGwuCgoyMDA2LTA4LTA5IDE1OjEzOjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgR1NUX1NFR01FTlRfRk9STUFULCB3aGljaCBpcyBhIHByaW50ZiBleHRlbnNpb24gd2UgcmVnaXN0ZXIgdGhhdCBsZXRzIHVzIGVhc2lseSBkdW1wIEdzdFNlZ21lbnRzIGludG8gZGVidWcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX2dzdF9kZWJ1Z19pbml0KSwgKGdzdF9kZWJ1Z19wcmludF9zZWdtZW50KSwKCSAgKF9nc3RfaW5mb19wcmludGZfZXh0ZW5zaW9uX3B0ciksCgkgIChfZ3N0X2luZm9fcHJpbnRmX2V4dGVuc2lvbl9zZWdtZW50KToKCSAgQVBJOiBhZGQgR1NUX1NFR01FTlRfRk9STUFULCB3aGljaCBpcyBhIHByaW50ZiBleHRlbnNpb24gd2UKCSAgcmVnaXN0ZXIgdGhhdCBsZXRzIHVzIGVhc2lseSBkdW1wIEdzdFNlZ21lbnRzIGludG8gZGVidWcKCSAgbG9ncyAoIzM1MDQxOSkuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzogKHNlZ21lbnRfcHJpbnRmX2V4dGVuc2lvbl9sb2dfZnVuYyksCgkgIChpbmZvX3NlZ21lbnRfZm9ybWF0X3ByaW50Zl9leHRlbnNpb24pLCAoZ3N0X2luZm9fc3VpdGUpOgoJICBBZGQgc2ltcGxlIHVuaXQgdGVzdCB0aGF0IGxvZ3MgYSBidW5jaCBvZiBkaWZmZXJlbnQgc2VnbWVudHMgKG5vdAoJICB2YWxncmluZGVkIGF0IHRoZSBtb21lbnQgYmVjYXVzZSBvZiBsZWFrcyBpbiBnc3RfZGVidWdfYWRkX2xvZ19mdW5jdGlvbikuCgoyMDA2LTA4LTA5IDExOjAxOjIwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEV2ZW4gaWYgd2UgY2FuJ3QgZmlndXJlIG91dCB0aGUgcHJvcGVyIGZvcm1hdCB0byByZXF1ZXN0IGRvd25zdHJlYW0sIGNhbGwgYnVmZmVyX2FsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIEV2ZW4gaWYgd2UgY2FuJ3QgZmlndXJlIG91dCB0aGUgcHJvcGVyIGZvcm1hdCB0byByZXF1ZXN0IGRvd25zdHJlYW0sCgkgIGNhbGwgYnVmZmVyX2FsbG9jKCkgZG93bnN0cmVhbSB3aXRoIHRoZSBpbnB1dCBwYXJhbWV0ZXJzIHdpdGhvdXQgc2V0dGluZwoJICB0aGUgY2FwcyBvbiB0aGUgc3JjcGFkLiBUaGlzIHdpbGwgZm9yY2UgbmVnb3RpYXRpb24gaW4gdGhlIGNoYWluCgkgIGZ1bmN0aW9uLgoJICBDbG9zZXMgIzM1MDQ0OQoKMjAwNi0wOC0wOCAxNjoyNDo1OCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBVbmxpbmtpbmcgZnJvbSBhIHBhZCB3aXRob3V0IGEgdGFyZ2V0IGlzIG5vdyBhIHBlcmZlY3RseSB2YWxpZCBjYXNlIHdoaWNoIHNob3VsZCBOT1QgcmFpc2UgYW4gYXNzZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfZG9fdW5saW5rKToKCSAgVW5saW5raW5nIGZyb20gYSBwYWQgd2l0aG91dCBhIHRhcmdldCBpcyBub3cgYSBwZXJmZWN0bHkgdmFsaWQgY2FzZQoJICB3aGljaCBzaG91bGQgTk9UIHJhaXNlIGFuIGFzc2VydGlvbi4KCSAgVGhpcyBjYXNlIHdvdWxkIGhhcHBlbiBpZiBhIGxpbmtlZCBnaG9zdHBhZCBpdHMgdGFyZ2V0IHNldCB0byBOVUxMIGFmdGVyCgkgIGl0IHdhcyBwcmV2aW91c2x5IGxpbmtlZC4KCjIwMDYtMDgtMDggMDk6NTY6NDUgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiBBbHNvIGNvbW1lbnQgb3V0IHRoZSB0ZXN0IChzZWUgYmVsb3cpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJICBBbHNvIGNvbW1lbnQgb3V0IHRoZSB0ZXN0IChzZWUgYmVsb3cpLgoKMjAwNi0wOC0wOCAwOTowNzozNCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IFVzZSB0aGUgYXJjaGl0ZWN0dXJlIGluZm9ybWF0aW9uIGZyb20gY29uZmlnLmggYW5kIG5vdCBnY2MgbWFjcm9zIGluIG9yZGVyIHRvIHByb3Blcmx5IGRpc2FibC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiAoZ3N0X2RwX3N1aXRlKToKCSAgVXNlIHRoZSBhcmNoaXRlY3R1cmUgaW5mb3JtYXRpb24gZnJvbSBjb25maWcuaCBhbmQgbm90IGdjYyBtYWNyb3MKCSAgaW4gb3JkZXIgdG8gcHJvcGVybHkgZGlzYWJsZSBhIHRlc3QgdGhhdCBmYWlscyBvbiBQUEM2NC4KCjIwMDYtMDgtMDQgMTU6MTU6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBEb24ndCBjcmFzaCBwcmludGluZyB0aGUgd2FybmluZyBpZiB0aGUgcGFkIGhhcyBubyBwYXJlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9yZW1vdmVfcGFkKToKCSAgRG9uJ3QgY3Jhc2ggcHJpbnRpbmcgdGhlIHdhcm5pbmcgaWYgdGhlIHBhZCBoYXMgbm8gcGFyZW50LgoKMjAwNi0wOC0wMiAxNToxOTozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogTWFrZSBkZWJ1ZyBjYXRlZ29yeSBzdGF0aWMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX2hlYWRlcl9mcm9tX2J1ZmZlcl9hbnkpLCAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHNfYW55KSwKCSAgKGdzdF9kcF9jcmMpLCAoZ3N0X2RwX2hlYWRlcl9wYXlsb2FkX2xlbmd0aCksCgkgIChnc3RfZHBfaGVhZGVyX3BheWxvYWRfdHlwZSksIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnQpLAoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50XzFfMCksIChnc3RfZHBfYnVmZmVyX2Zyb21faGVhZGVyKSwKCSAgKGdzdF9kcF9jYXBzX2Zyb21fcGFja2V0KSwgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldF8wXzIpLAoJICAoZ3N0X2RwX2V2ZW50X2Zyb21fcGFja2V0KSwgKGdzdF9kcF92YWxpZGF0ZV9oZWFkZXIpLAoJICAoZ3N0X2RwX3ZhbGlkYXRlX3BheWxvYWQpOgoJICBNYWtlIGRlYnVnIGNhdGVnb3J5IHN0YXRpYwoJICBDb25zdGlmeSB0aGUgY3JjIHRhYmxlLgoJICBEbyBzb21lIG1vcmUgYXJnIGNoZWNraW5nIGluIHB1YmxpYyBmdW5jdGlvbnMuCgkgIEZpeCBzb21lIGRvY3MgYW5kIGRvIHNvbWUgc21hbGwgY2xlYW51cHMuCgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9kcF9zdWl0ZSk6CgkgIEFkZCBzb21lIG1vcmUgY2hlY2tzIHRvIHNlZSBpZiBHRFAgZGVhbHMgd2l0aCBib2d1cyBpbnB1dC4KCjIwMDYtMDctMzEgMTY6MzQ6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYzogRml4IEdzdFZhbHVlTGlzdCBjb21wYXJpc29uIGNvZGUuIEZpeGVzICMzNDcyOTMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2NvbXBhcmVfbGlzdCk6CgkgIEZpeCBHc3RWYWx1ZUxpc3QgY29tcGFyaXNvbiBjb2RlLiBGaXhlcyAjMzQ3MjkzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBDaGVjayB0byB0ZXN0IEdzdFZhbHVlTGlzdCBjb21wYXJpc29uLgoKMjAwNi0wNy0zMSAxNToxMjo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBVc2UgT0JKRUNUX0xPQ0sgYW5kIHJlZmNvdW50aW5nIHRvIGdldCB0aGUgcGFkIGNhcHMgaW4gdGhlIGJ1ZmZlcl9hbGxvYyBmdW5jdGlvbiBiZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBVc2UgT0JKRUNUX0xPQ0sgYW5kIHJlZmNvdW50aW5nIHRvIGdldCB0aGUgcGFkIGNhcHMgaW4gdGhlCgkgIGJ1ZmZlcl9hbGxvYyBmdW5jdGlvbiBiZWNhdXNlIHRoZSBjYXBzIGNvdWxkIGNoYW5nZSB3aGlsZSB3ZSBhcmUKCSAgYnVzeSB3aXRoIHRoZW0uIEZpeGVzICMzNDkxMDUKCjIwMDYtMDctMzEgMTU6MTI6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogUmVtb3ZlIHVubmVjZXNzYXJ5IHJlZi91bnJlZiBwYWlyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jcmVhdGUpOgoJICBSZW1vdmUgdW5uZWNlc3NhcnkgcmVmL3VucmVmIHBhaXIKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBNYWtlIHN1cmUgdG8gZnJlZSB0aGUgcGFyc2UgYnVmZmVyIG9uIGFsbCBjb2RlIHBhdGhzLgoJICBNb3ZlIGEgZ19mcmVlIHVwIHRvIHRoZSBlcnJvciBoYW5kbGVyIHdoZXJlIGl0J3MgZWFzaWVyIHRvIHNlZS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKHRlc3RfZXZlbnQpOgoJICBFeHRlbmRpbmcgdGltZW91dCBmb3IgZG93bnN0cmVhbSB0cmF2ZWxsaW5nIGV2ZW50cyB0byAxMCBzZWNvbmRzIHRvCgkgIGhvcGVmdWxseSBhdm9pZCBpbnRlcm1pdHRlbnQgZmFpbHVyZSBvbiB0aGUgYnVpbGRib3RzLgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKHJ1bl9kZWxheWVkX3Rlc3QpOgoJICBEb24ndCBtYW51YWxseSBzZXQgdGhlIHN0YXRlIG9mIHRoZSBzcmMgZWxlbWVudCAtIGl0IHdpbGwgaGFwcGVuIGFzIGEKCSAgbmF0dXJhbCBjb25zZXF1ZW5jZSBvZiB0aGUgcGlwZWxpbmUgY2hhbmdpbmcgc3RhdGUsIGFuZCB0aGF0IHdheSBpdAoJICB3aWxsIGRvIGl0IGluIHRoZSByaWdodCBvcmRlciB0b28uCgoyMDA2LTA3LTMxIDE1OjA3OjMwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBSZW1vdmUgdW5uZWNlc3NhcnkgcmVmL3VucmVmIHBhaXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSk6CgkgIFJlbW92ZSB1bm5lY2Vzc2FyeSByZWYvdW5yZWYgcGFpcgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIE1ha2Ugc3VyZSB0byBmcmVlIHRoZSBwYXJzZSBidWZmZXIgb24gYWxsIGNvZGUgcGF0aHMuCgkgIE1vdmUgYSBnX2ZyZWUgdXAgdG8gdGhlIGVycm9yIGhhbmRsZXIgd2hlcmUgaXQncyBlYXNpZXIgdG8gc2VlLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAodGVzdF9ldmVudCk6CgkgIEV4dGVuZGluZyB0aW1lb3V0IGZvciBkb3duc3RyZWFtIHRyYXZlbGxpbmcgZXZlbnRzIHRvIDEwIHNlY29uZHMgdG8KCSAgaG9wZWZ1bGx5IGF2b2lkIGludGVybWl0dGVudCBmYWlsdXJlIG9uIHRoZSBidWlsZGJvdHMuCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAocnVuX2RlbGF5ZWRfdGVzdCk6CgkgIERvbid0IG1hbnVhbGx5IHNldCB0aGUgc3RhdGUgb2YgdGhlIHNyYyBlbGVtZW50IC0gaXQgd2lsbCBoYXBwZW4gYXMgYQoJICBuYXR1cmFsIGNvbnNlcXVlbmNlIG9mIHRoZSBwaXBlbGluZSBjaGFuZ2luZyBzdGF0ZSwgYW5kIHRoYXQgd2F5IGl0CgkgIHdpbGwgZG8gaXQgaW4gdGhlIHJpZ2h0IG9yZGVyIHRvby4KCjIwMDYtMDctMzEgMTQ6MjM6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogUHJvdGVjdCBfUEFEX0NBUFMgd2l0aCBPQkpFQ1RfTE9DSy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX2dldF9maXhlZF9jYXBzX2Z1bmMpOgoJICBQcm90ZWN0IF9QQURfQ0FQUyB3aXRoIE9CSkVDVF9MT0NLLgoKMjAwNi0wNy0zMSAxNDoyMToxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogVXNlIF9ERUJVR19PQkpFQ1Qgd2hlbiBpdCBtYWtlcyBzZW5zZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jbGFzc19pbml0KSwgKGdzdF9wYWRfZGlzcG9zZSksCgkgIChnc3RfcGFkX2dldF9wcm9wZXJ0eSksIChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKSwgKGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpLAoJICAoZ3N0X3BhZF9zZXRfYWN0aXZhdGVfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfYWN0aXZhdGVwdWxsX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2FjdGl2YXRlcHVzaF9mdW5jdGlvbiksIChnc3RfcGFkX3NldF9jaGFpbl9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9nZXRyYW5nZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9jaGVja2dldHJhbmdlX2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X2V2ZW50X2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X3F1ZXJ5X2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X3F1ZXJ5X3R5cGVfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfaW50ZXJuYWxfbGlua19mdW5jdGlvbiksIChnc3RfcGFkX3NldF9saW5rX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X3VubGlua19mdW5jdGlvbiksIChnc3RfcGFkX3NldF9nZXRjYXBzX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2FjY2VwdGNhcHNfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfZml4YXRlY2Fwc19mdW5jdGlvbiksIChnc3RfcGFkX3NldF9zZXRjYXBzX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2J1ZmZlcmFsbG9jX2Z1bmN0aW9uKSwgKGdzdF9wYWRfbGlua19jaGVja19oaWVyYXJjaHkpLAoJICAoZ3N0X3BhZF9nZXRfY2Fwc191bmxvY2tlZCksIChnc3RfcGFkX2dldF9jYXBzKSwKCSAgKGdzdF9wYWRfcGVlcl9nZXRfY2FwcyksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwKCSAgKGdzdF9wYWRfcGVlcl9hY2NlcHRfY2FwcyksIChnc3RfcGFkX3NldF9jYXBzKSwKCSAgKGdzdF9wYWRfY29uZmlndXJlX3NpbmspLCAoZ3N0X3BhZF9jb25maWd1cmVfc3JjKSwKCSAgKGdzdF9wYWRfZ2V0X2FsbG93ZWRfY2FwcyksIChnc3RfcGFkX2dldF9uZWdvdGlhdGVkX2NhcHMpLAoJICAoZ3N0X3BhZF9idWZmZXJfYWxsb2NfdW5jaGVja2VkKSwgKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpLAoJICAoZ3N0X3BhZF9xdWVyeSksIChnc3RfcGFkX2xvYWRfYW5kX2xpbmspLCAoaGFuZGxlX3BhZF9ibG9jayksCgkgIChnc3RfcGFkX2NoYWluX3VuY2hlY2tlZCksIChnc3RfcGFkX3B1c2gpLCAoZ3N0X3BhZF9nZXRfcmFuZ2UpLAoJICAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgVXNlIF9ERUJVR19PQkpFQ1Qgd2hlbiBpdCBtYWtlcyBzZW5zZS4KCSAgUHJvdGVjdCBHU1RfUEFEX0NBUFMgd2l0aCB0aGUgT0JKRUNUX0xPQ0suCgkgIFNtYWxsIGNsZWFudXBzIGFuZCBjb2RlIHJlZmxvd3MuCgkgIEF2b2lkIGNhcHMgcmVmY291bnRpbmcgaW4gX2FjY2VwdF9jYXBzLgoJICBSZWZhY3RvciBhbGxvY19idWZmZXIgc28gdGhhdCB0aGUgY29kZSBwZXJmb3JtZWQgb24gdGhlIHBlZXIgaXMgaW4gYQoJICBzZXBhcmF0ZSBmdW5jdGlvbi4gQWxzbyBpZiB0aGUgcGFkIGRvZXMgbm90IGltcGxlbWVudCBhIGJ1ZmZlciBhbGxvYwoJICBmdW5jdGlvbiwgd2Ugc2hvdWxkIHN0aWxsIGNoZWNrIGlmIHRoZSBwYWQgaXMgZmx1c2hpbmcgYmVmb3JlIGZhbGxpbmcKCSAgYmFjayB0byB0aGUgZGVmYXVsdCBhbGxvY2F0b3IuCgoyMDA2LTA3LTMwIDIyOjIwOjQyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogTWFrZSBhbGwgdXNlcyBvZiBpZGVudGl0eSBhbmQgZmFrZXNpbmsgaGF2ZSBzaWxlbnQ9dHJ1ZSB0byBhdm9pZCBzZXJpYWxpc2luZyBldi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2UgYWxsIHVzZXMgb2YgaWRlbnRpdHkgYW5kIGZha2VzaW5rIGhhdmUgc2lsZW50PXRydWUgdG8gYXZvaWQKCSAgc2VyaWFsaXNpbmcgZXZlcnkgcGFzc2luZyBkYXRhIHN0cnVjdHVyZSwgd2hpY2ggaXMgYnJlYWtpbmcgdGVzdHMKCSAgb24gRkM0IGZvciBzb21lIHVua25vd24gcmVhc29uLgoKMjAwNi0wNy0zMCAxODo1ODoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L3BhcnNlLzogUmV2ZXJ0ZWQgcHJldmlvdXMgcGF0Y2ggYXMgaXQgcmVxdWlyZWQgdG8gYnVtcCB0aGUgZmxleCBkZXBlbmRlbmN5IHRvIDIuNS4zMSwgd2hlcmUgZmM0LzUgc2VlbSB0byBzaGlwIG9uLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIGdzdC9wYXJzZS9wYXJzZS5sOgoJICBSZXZlcnRlZCBwcmV2aW91cyBwYXRjaCBhcyBpdCByZXF1aXJlZCB0byBidW1wIHRoZSBmbGV4IGRlcGVuZGVuY3kgdG8KCSAgMi41LjMxLCB3aGVyZSBmYzQvNSBzZWVtIHRvIHNoaXAgb25seSB0aGUgYW5jaWVudCAyLjUuNGEgOigKCjIwMDYtMDctMzAgMTg6MzI6NDkgKzAwMDAgIE1hcmMtQW5kcmUgTHVyZWF1IDxtYXJjYW5kcmUubHVyZWF1QGdtYWlsLmNvbT4KCgkgIGdzdC9wYXJzZS86IHB1c2ggJiBwb3AgdGhlIHN0YXRlIG9mIHRoZSBsZXhlciBmb3IgcmVlbnRyYW50IHVzZSBjYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyYy1BbmRyZSBMdXJlYXUgPG1hcmNhbmRyZS5sdXJlYXVAZ21haWwuY29tPgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIGdzdC9wYXJzZS9wYXJzZS5sOgoJICBwdXNoICYgcG9wIHRoZSBzdGF0ZSBvZiB0aGUgbGV4ZXIgZm9yIHJlZW50cmFudCB1c2UgY2FzZQoJICBGaXhlcyAjMzQ5MTgwCgoyMDA2LTA3LTI5IDEzOjQ1OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6IE5vdGUgaW4gdGhlIGRvY3MgdGhhdCB0aGUgOjpuZXdzZWdtZW50IHZmdW5jIGlzIG5vdCBhY3R1YWxseSB1c2VkIGJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBOb3RlIGluIHRoZSBkb2NzIHRoYXQgdGhlIDo6bmV3c2VnbWVudCB2ZnVuYyBpcyBub3QgYWN0dWFsbHkgdXNlZCBieQoJICBHc3RCYXNlU3JjLgoKMjAwNi0wNy0yOCAxNDowOToxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogV2hlbiBmbHVzaGluZyBhIHBhZCwgYWxzbyBjbGVhciB0aGUgcXVldWVkIGJ1ZmZlciBzbyB0aGF0IHdlIGRvbid0IGFjY2lkZW50YWxseSB1c2UgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIChnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaGluZ191bmxvY2tlZCksIChnc3RfY29sbGVjdF9wYWRzX3BvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NsZWFyKSwgKGdzdF9jb2xsZWN0X3BhZHNfZmx1c2gpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCksIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKToKCSAgV2hlbiBmbHVzaGluZyBhIHBhZCwgYWxzbyBjbGVhciB0aGUgcXVldWVkIGJ1ZmZlciBzbyB0aGF0IHdlIGRvbid0CgkgIGFjY2lkZW50YWxseSB1c2UgaXQgd2hlbiB3ZSBzaG91bGRuJ3QuCgkgIEZpeCBsZWFrcyBieSBpbnJlZmZpbmcgaW5jb21taW5nIGJ1ZmZlci4KCSAgRmx1c2ggb3V0IHF1ZXVlZCBidWZmZXJzIGluIGNhc2Ugb2YgZXJyb3JzLgoJICBGaXhlcyAjMzQ3NDUyLgoKMjAwNi0wNy0yOCAxMDoxNzo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcmFuZG9tL3Bob25vbi1nc3Q6IFJhbmRvbSBub3RlcyBhYm91dCBhIFBob25vbiBiYWNrZW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9waG9ub24tZ3N0OgoJICBSYW5kb20gbm90ZXMgYWJvdXQgYSBQaG9ub24gYmFja2VuZC4KCjIwMDYtMDctMjcgMTQ6MzI6MDEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEV4dHJhIGRlYnVnIG91dHB1dAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKToKCSAgRXh0cmEgZGVidWcgb3V0cHV0CgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzogKGdzdF9kcF9zdWl0ZSk6CgkgIFRha2UgYSB3aGFjayBhdCBmaXhpbmcgdGhlIHBwYyBjb21waWxlIHVzaW5nIGEgZGlmZmVyZW50IGRlZmluZSB0bwoJICBkaXNhYmxlIHRoZSBicm9rZW4gdGVzdC4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFJlbW92ZSBleGNlc3MgZ19wcmludCgpCgoyMDA2LTA3LTI3IDEzOjQ0OjIyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogT29wcywgbWVhbnQgdG8gdW5jb21tZW50IHRoaXMgbGluZSB0b28gdG8gZGFtcGVuIHRoZSBub2lzZSBhIGJpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAoZXhwZWN0ZWRfZmFpbF9waXBlKToKCSAgT29wcywgbWVhbnQgdG8gdW5jb21tZW50IHRoaXMgbGluZSB0b28gdG8gZGFtcGVuIHRoZSBub2lzZSBhIGJpdC4KCjIwMDYtMDctMjcgMTM6MjY6MjcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgRml4IHNvbWUgb2YgdGhlIGxlYWtzIGV4cG9zZWQgYnkgZXh0ZW5kaW5nIHRoZSBwYXJzZS1sYXVuY2ggdGVzdHN1aXRlLCBhbmQgbW92ZSB0aGUgMyBJIGNhbid0IGZpZ3VyZSBvdXQgaW50byBhIHNlcGFyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogZ3N0L3BhcnNlL3BhcnNlLmw6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAoZXhwZWN0ZWRfZmFpbF9waXBlKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKHBhcnNlX3N1aXRlKToKCSAgRml4IHNvbWUgb2YgdGhlIGxlYWtzIGV4cG9zZWQgYnkgZXh0ZW5kaW5nIHRoZSBwYXJzZS1sYXVuY2ggdGVzdHN1aXRlLAoJICBhbmQgbW92ZSB0aGUgMyBJIGNhbid0IGZpZ3VyZSBvdXQgaW50byBhIHNlcGFyYXRlIHRlc3QgdGhhdCB3b24ndCBydW4KCSAgdGhlIHBpcGVsaW5lcyB1bmxlc3MgdGhlIGFwcHJvcHJpYXRlIGxpbmUgaXMgdW5jb21tZW50ZWQuCgoyMDA2LTA3LTI3IDEyOjM5OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IFJlcXVlc3RpbmcgMCBieXRlcyBiZWZvcmUgdGhlIGVuZCBvZiB0aGUgZmlsZSBzaG91bGQgcmVzdWx0IGluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NyZWF0ZV9yZWFkKToKCSAgUmVxdWVzdGluZyAwIGJ5dGVzIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSBmaWxlIHNob3VsZCByZXN1bHQgaW4KCSAgRkxPV19PSyBhbmQgYW4gZW1wdHkgYnVmZmVyLCBub3QgRkxPV19VTkVYUEVDVEVELiBUaGFuayB5b3UKCSAgdW5pdCB0ZXN0LgoKMjAwNi0wNy0yNyAxMTowMDoyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IEZpeCB1c2VsZXNzIGFzc2VydCwgYSB1aW50IGlzIGFsd2F5cyBwb3NpdGl2ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9zdGF0aWNfY2Fwc19nZXQpLCAoZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZSk6CgkgIEZpeCB1c2VsZXNzIGFzc2VydCwgYSB1aW50IGlzIGFsd2F5cyBwb3NpdGl2ZS4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX250aF9maWVsZF9uYW1lKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfZm9yZWFjaCksIChnc3Rfc3RydWN0dXJlX21hcF9pbl9wbGFjZSk6CgkgIENoZWNrIGlucHV0IGFyZ3VtZW50cyBmb3IgcHVibGljIGZ1bmN0aW9ucyB0byBhdm9pZCBvYnZpb3VzIGNyYXNoZXMuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19yZW5kZXIpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSAgRG8gbGVzcyB1c2VsZXNzIHR5cGVjaGVja2luZy4KCjIwMDYtMDctMjcgMTA6NTQ6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogRG8gbm90IHVzZSBtbWFwKCkgYnkgZGVmYXVsdCBzaW5jZSB0aGVyZSBhcmUgYSBudW1iZXIgb2YgZXJyb3IgY29uZGl0aW9ucyB0aGF0IHdlIHdvdWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCk6CgkgIERvIG5vdCB1c2UgbW1hcCgpIGJ5IGRlZmF1bHQgc2luY2UgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIGVycm9yCgkgIGNvbmRpdGlvbnMgdGhhdCB3ZSB3b3VsZCBsaWtlIHRvIGhhbmRsZSBpbiBhIG5vbi1mYXRhbCB3YXkgdGhhdAoJICB3aWxsIHJlc3VsdCBpbiBhIFNJR0JVUyBpZiB3ZSB1c2UgbW1hcCgpLiBFeGFtcGxlczogZXh0ZXJuYWwKCSAgZGV2aWNlcyAoVVNCIGhhcmRkcml2ZSwgcG9ydGFibGUgbXVzaWMgcGxheWVyKSBiZWluZyB1bnBsdWdnZWQKCSAgd2hpbGUgaW4gdXNlOyBmaWxlIG9uIG1vdW50ZWQgQ0QvRFZEIHRoYXQgY2FuJ3QgYmUgcmVhZCBiZWNhdXNlCgkgIHRoZSBtZWRpdW0gaXMgcGFydGx5IGRhbWFnZWQuIEZpeGVzICMzNDg0NTUgYW5kICMzNDg0NzUuCgoyMDA2LTA3LTI2IDIyOjU5OjE5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RxdWVyeS5oOiBEZWxldGUgdW51c2VkIGFuZCBtaXNsZWFkaW5nIGRlZmluZSBvZiBHU1RfUVVFUllfVFlQRV9SQVRFX0RFTiAtIHJhdGVzIGFyZSBhIGdkb3VibGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIERlbGV0ZSB1bnVzZWQgYW5kIG1pc2xlYWRpbmcgZGVmaW5lIG9mIEdTVF9RVUVSWV9UWVBFX1JBVEVfREVOIC0KCSAgcmF0ZXMgYXJlIGEgZ2RvdWJsZQoKMjAwNi0wNy0yNiAyMDozMDo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IE1vdmUgYmlnIGRvY3VtZW50YXRpb24gY29tbWVudCBpbnRvIGNsYXNzIHNlY3Rpb24gaGVhZGVyLCBzbyB0aGF0IGl0IGFwcGVhcnMgaW4gdGhlIEFQSSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgTW92ZSBiaWcgZG9jdW1lbnRhdGlvbiBjb21tZW50IGludG8gY2xhc3Mgc2VjdGlvbiBoZWFkZXIsIHNvIHRoYXQgaXQKCSAgYXBwZWFycyBpbiB0aGUgQVBJIGRvY3MuCgoyMDA2LTA3LTI2IDE3OjE4OjI1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IE9vcHMuIENvbW1pdCB0aGUgZG9jcyBhZGRpdGlvbnMgdG9vIGZvciBuZXcgQVBJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBPb3BzLiBDb21taXQgdGhlIGRvY3MgYWRkaXRpb25zIHRvbyBmb3IgbmV3IEFQSS4KCSAgQWxzbywgcmVtb3ZlIHRoZSBtZW50aW9uIG9mIHRoZSBub24tZXhpc3RlbnQgR1NUX1FVRVJZX1RZUEVfUkFURV9ERU4KCjIwMDYtMDctMjYgMTc6MDQ6NDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS4qOiBBZGQgQVBJIGZvciBzZXR0aW5nIHZhbHVlcyBpbnRvIHN0cnVjdHVyZXMgd2l0aG91dCBwZXJmb3JtaW5nIGEgcXVhcmsgbG9va3VwLCBpZiB0aGUgYXBwcm9wcmlhdGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfaWRfc2V0KSwKCSAgKGdzdF9zdHJ1Y3R1cmVfaWRfc2V0X3ZhbGlzdCk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBBZGQgQVBJIGZvciBzZXR0aW5nIHZhbHVlcyBpbnRvIHN0cnVjdHVyZXMgd2l0aG91dCBwZXJmb3JtaW5nCgkgIGEgcXVhcmsgbG9va3VwLCBpZiB0aGUgYXBwcm9wcmlhdGUgcXVhcmsgaXMgYWxyZWFkeSBrbm93bi4KCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2lkX3NldAoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfaWRfc2V0X3ZhbGlzdAoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogZ3N0L3BhcnNlL3BhcnNlLmw6CgkgIFJlbW92ZSBzb21lIGRlYWQgY29kZSBzaG93biBieSB0aGUgY292ZXJhZ2UgaW5mb3JtYXRpb24uCgkgIERvbid0IHRocm93IGEgY3JpdGljYWwgZ193YXJuaW5nIHdoZW4gZW5jb3VudGVyaW5nIGEgc3ludGF4IGVycm9yLAoJICBqdXN0IHdhcm4gYW5kIGxldCB0aGUgbm9ybWFsIGVycm9yIHBhdGggaGFuZGxlIGl0LgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgQnVtcCB0aGUgcmFuayBvZiBmaWxlc2luayB1cCB0byBQUklNQVJZIHNvIHRoYXQgaXQgaXMgcHJlZmVycmVkIG92ZXIKCSAgZ25vbWV2ZnNzaW5rIGZvciBmaWxlOi8vIHNpbmsgdXJpJ3MKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChleHBlY3RlZF9mYWlsX3BpcGUpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAocnVuX2RlbGF5ZWRfdGVzdCksCgkgIChnc3RfcGFyc2VfdGVzdF9lbGVtZW50X2Jhc2VfaW5pdCksCgkgIChnc3RfcGFyc2VfdGVzdF9lbGVtZW50X2NsYXNzX2luaXQpLCAoZ3N0X3BhcnNlX3Rlc3RfZWxlbWVudF9pbml0KSwKCSAgKGdzdF9wYXJzZV90ZXN0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9yZWdpc3Rlcl9wYXJzZV9lbGVtZW50KSwgKHBhcnNlX3N1aXRlKToKCSAgQmVlZiB1cCB0aGUgdGVzdHMgZm9yIHBhcnNlIHN5bnRheCB0byBjaGVjayB0aGF0IG1vcmUgZXJyb3IgY2FzZXMKCSAgZmFpbCBhcyB0aGV5IGFyZSBzdXBwb3NlZCB0by4gSW5jcmVhc2VzIHRoZSB0ZXN0IGNvdmVyYWdlIGEgYml0LgoKMjAwNi0wNy0yNiAxMTo0MzoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6IEZpeCBnc3RfZWxlbWVudF9saW5rKCkgZXhhbXBsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSAgRml4IGdzdF9lbGVtZW50X2xpbmsoKSBleGFtcGxlLgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBNZW50aW9uIGluIEFQSSBkb2NzIHRoYXQgb25lIHNob3VsZCB1c3VhbGx5IGdzdF9iaW5fYWRkKCkKCSAgZWxlbWVudHMgdG8gYSBiaW4gb3IgcGlwZWxpbmUgYmVmb3JlIGRvaW5nIHRoZSBsaW5raW5nLgoKMjAwNi0wNy0yNiAxMDo0NzoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGJhY2sgdG8gMzIgYml0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIDMyIGJpdAoKMjAwNi0wNy0yNiAxMDozOTo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogQXZvaWQgZnVuY3Rpb24gY2FsbCBmb3Iga25vd24gdHlwZXMgYnkga2VlcGluZyB0aGUgYnVmZmVyIGFuZCBzdWJidWZmZXIgR1R5cGUgZ2xvYmFsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2dldF90eXBlKSwgKGdzdF9idWZmZXJfbmV3KSwKCSAgKGdzdF9zdWJidWZmZXJfZ2V0X3R5cGUpLCAoZ3N0X2J1ZmZlcl9jcmVhdGVfc3ViKToKCSAgQXZvaWQgZnVuY3Rpb24gY2FsbCBmb3Iga25vd24gdHlwZXMgYnkga2VlcGluZyB0aGUgYnVmZmVyIGFuZAoJICBzdWJidWZmZXIgR1R5cGUgZ2xvYmFsLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NyZWF0ZV9yZWFkKToKCSAgUmFuZG9tIHNpbGx5IG9wdGltaXNhdGlvbnMgaW4gcmVhZCgpIHBhdGguCgoyMDA2LTA3LTI2IDA2OjE4OjQ0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogSWYgdGhlIHRvcC1sZXZlbCBvZiB0aGUgcGFyc2UgaXMgYSBub3JtYWwgYmluLCBpdCBkb2Vzbid0IGRvIHRoZSByaWdodCBsb2dpYyB0byBydW4gYXMgYSB0b3AtbGV2ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgSWYgdGhlIHRvcC1sZXZlbCBvZiB0aGUgcGFyc2UgaXMgYSBub3JtYWwgYmluLCBpdCBkb2Vzbid0IGRvIHRoZQoJICByaWdodCBsb2dpYyB0byBydW4gYXMgYSB0b3AtbGV2ZWwgZWxlbWVudCwgc28gcGxhY2UgaXQgaW5zaWRlIGEKCSAgcGlwZWxpbmUuCgoyMDA2LTA3LTI1IDE5OjM3OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IFJlbW92ZSBzdXBlcmZsdW91cyBnX29iamVjdF9ub3RpZnkoKSBjYWxscywgR09iamVjdCBkb2VzIHRoYXQgZm9yIHVzIGF1dG9tYXRpY2FsbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3NldF9wcm9wZXJ0eSk6CgkgIFJlbW92ZSBzdXBlcmZsdW91cyBnX29iamVjdF9ub3RpZnkoKSBjYWxscywgR09iamVjdCBkb2VzCgkgIHRoYXQgZm9yIHVzIGF1dG9tYXRpY2FsbHkuCgoyMDA2LTA3LTI1IDE1OjA3OjU4ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgYWRkIGxhdGVzdCAuaCBhZGRpdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGxhdGVzdCAuaCBhZGRpdGlvbgoKMjAwNi0wNy0yNSAxMzowNjoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGluZm8uaDogTW92ZSB0aGUgV2luMzIgdmVyc2lvbiBmcm9tIGdzdC1wbHVnaW5zLWdvb2QvZ3N0L2F2aS9hdmlkZW11eC5jIHRvIGhlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIE1vdmUgdGhlIFdpbjMyIHZlcnNpb24gZnJvbSBnc3QtcGx1Z2lucy1nb29kL2dzdC9hdmkvYXZpZGVtdXguYyB0bwoJICBoZXJlLgoKMjAwNi0wNy0yNCAxNjozMzozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0LmM6IEFsbG93IG1vcmUgdGhhbiBvbmUgR1NUX1RBR19JTUFHRSBwZXIgdGFnbGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpOgoJICBBbGxvdyBtb3JlIHRoYW4gb25lIEdTVF9UQUdfSU1BR0UgcGVyIHRhZ2xpc3QuCgoyMDA2LTA3LTI0IDA3OjQwOjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IHVwZGF0ZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIHVwZGF0ZSBkb2NzCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2ZkX3NyY19jcmVhdGUpOgoJICBsb2cgcmVjdXJyaW5nIGV2ZW50cyBhdCBMT0cgbGV2ZWwKCSAgYWRkIG1vcmUgZGVidWcgZm9yIHdoZW4gdGhlIGZkIGdldHMgc2V0CgoyMDA2LTA3LTI0IDA3OjM3OjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgcmVtb3ZlIC0tZW5hYmxlLWRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSAtLWVuYWJsZS1kb2NzCgoyMDA2LTA3LTIzIDA5OjQxOjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBhZGQgYnVnIHJlZmVyZW5jZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IGFkZCBidWcgcmVmZXJlbmNlCgoyMDA2LTA3LTIxIDE4OjUyOjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGFyc2UuYzogQWxzbyByZW1vdmUgcmVlbnRyYW5jZSBjaGVja3MgaWYgZmxleCBpcyBNVCBzYXZlICgjMzQ4MTc5KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFyc2UuYzogKGdzdF9wYXJzZV9sYXVuY2gpOgoJICBBbHNvIHJlbW92ZSByZWVudHJhbmNlIGNoZWNrcyBpZiBmbGV4IGlzIE1UIHNhdmUgKCMzNDgxNzkpCgkgIEZpeCBteSBlbXB0eSBDaGFuZ2VMb2cgZW50cnkgYmVsb3cKCjIwMDYtMDctMjEgMTY6MDE6MzQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEF0dGVtcHQgdG8gcGFjaWZ5IGJ1aWxkYm90LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNy0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBdHRlbXB0IHRvIHBhY2lmeSBidWlsZGJvdC4KCjIwMDYtMDctMjEgMTU6NDg6MDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtIChsaWJnc3RjaGVja19AR1NUX01BSk9STUlOT1JAaW5jbHVkZV9IRUFERVJTKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNy0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbQoJICAobGliZ3N0Y2hlY2tfQEdTVF9NQUpPUk1JTk9SQGluY2x1ZGVfSEVBREVSUykKCSAgKGxpYmdzdGNoZWNrX0BHU1RfTUFKT1JNSU5PUkBfbGFfU09VUkNFUyk6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuaDoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5jOiBBZGQgc29tZSBuZXcgaHlwZSB0ZXN0aW5nCgkgIGZ1bmN0aW9ucywgdGh1cyBwcm92aW5nIEkgYW0gc3RpbGwgYSBHU3RyZWFtZXIgaGF4b3IuIE9LIEkgd3JvdGUKCSAgdGhlbSBhIGxvbmcgdGltZSBhZ28sIGJ1dCBhbnl3YXlzLgoKMjAwNi0wNy0yMSAxMzoxMTozMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHBhcnNlLmM6CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOiAqIGNvbmZpZ3VyZS5hYzogKiBnc3QvZ3N0cGFyc2UuYzogKGdzdF9wYXJzZV9sYXVuY2gpOgoKMjAwNi0wNy0yMSAxMDo0MDoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYXJzZS5jOiBQcm90ZWN0IHJlY3Vyc2l2ZSBjYWxscyB0byBfcGFyc2Ugd2l0aCBhIHJlY3Vyc2l2ZSBtdXRleCBhbmQgYnVzeSBmbGFnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFyc2UuYzogKGdzdF9wYXJzZV9sYXVuY2gpOgoJICBQcm90ZWN0IHJlY3Vyc2l2ZSBjYWxscyB0byBfcGFyc2Ugd2l0aCBhIHJlY3Vyc2l2ZSBtdXRleAoJICBhbmQgYnVzeSBmbGFnLgoKMjAwNi0wNy0yMSAxMDozODo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogRml4IGxlYWsgaW4gdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggbGVhayBpbiB0ZXN0LgoKMjAwNi0wNy0yMCAyMDowMjo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBhcnNlLmM6IERvIG5vdCBoYW5nZSBvbiByZWN1cnNpdmUgdWFzZ2Ugb2YgZ3N0X3BhcnNlX2xhdW5jaCgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYXJzZS5jOiAoZ3N0X3BhcnNlX2xhdW5jaCk6CgkgIERvIG5vdCBoYW5nZSBvbiByZWN1cnNpdmUgdWFzZ2Ugb2YgZ3N0X3BhcnNlX2xhdW5jaCgpCgoyMDA2LTA3LTIwIDE2OjEwOjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogQWRkIHNvbWUgbW9yZSBkb2NzLCBjb21tZW50cyBhbmQgRklYTUUgMC4xMXMgaGVyZSBhbmQgdGhlcmUgYW5kICBhbHNvIGZpeCBzb21lIHR5cG9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBBZGQgc29tZSBtb3JlIGRvY3MsIGNvbW1lbnRzIGFuZCBGSVhNRSAwLjExcyBoZXJlIGFuZCB0aGVyZQoJICBhbmQgIGFsc28gZml4IHNvbWUgdHlwb3MuCgoyMDA2LTA3LTIwIDEwOjUwOjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHNlZ21lbnQuaDogQ29udmVydCB0YWJzIHRvIHNwYWNlcyBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBDb252ZXJ0IHRhYnMgdG8gc3BhY2VzIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkuCgoyMDA2LTA3LTIwIDEwOjI1OjI4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgdGVzdHMvY2hlY2svbGlicy9nZHAuYzogdGhlIHRlc3RfYnVmZmVyIHRlc3QgZmFpbHMgYXQgbGluZSAxNDAgb24gcHBjNjQgYXQgdGhlIGZvbGxvd2luZyBjaGVjazogIkdTVF9CVUZGRVJfSU5fQ0FQUyBmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IChnc3RfZHBfc3VpdGUpOgoJICB0aGUgdGVzdF9idWZmZXIgdGVzdCBmYWlscyBhdCBsaW5lIDE0MCBvbiBwcGM2NCBhdCB0aGUgZm9sbG93aW5nCgkgIGNoZWNrOgoJICBmYWlsX3VubGVzcyAoR1NUX0JVRkZFUl9GTEFHX0lTX1NFVCAobmV3YnVmZmVyLCBHU1RfQlVGRkVSX0ZMQUdfSU5fQ0FQUyksCgkgICJHU1RfQlVGRkVSX0lOX0NBUFMgZmxhZyBzaG91bGQgaGF2ZSBiZWVuIGNvcGllZCAhIik7CgkgIFNlZSBidWcgIzM0ODExNCBmb3IgbW9yZSBkZXRhaWxzLgoKMjAwNi0wNy0xOSAxMjo0MDo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEZpeCB0eXBvcyAoIzM0ODAwMCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgRml4IHR5cG9zICgjMzQ4MDAwKS4KCjIwMDYtMDctMTggMjA6Mzg6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOiBGaXggd3JvbmcgbGlua3MgKCMzNDc5MjcpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJICBGaXggd3JvbmcgbGlua3MgKCMzNDc5MjcpLgoKMjAwNi0wNy0xOCAxOTowMToyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbWFrZSAtLWRpc2FibGUtaW5kZXggd29yayAoIzM0MjU2NCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3htbF9yZWFkX2NhY2hlKSwgKGdzdF9yZWdpc3RyeV94bWxfc2F2ZV9mZWF0dXJlKToKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIG1ha2UgLS1kaXNhYmxlLWluZGV4IHdvcmsgKCMzNDI1NjQpCgoyMDA2LTA3LTE4IDA5OjQyOjMxICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGdzdC86IFRoZSBhdHRhY2hlZCBwYXRjaCBhZGRzIHR3byBtaXNzaW5nIGRlZmluZXMgdG8gZ3N0dHJhY2UuaCB3aGVuIHRyYWNpbmcgaXMgZGlzYWJsZWQuICBJdCBhbHNvIGNvcnJlY3RzIG9uZSBleGlzdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF0IGF4aXMgZG90IGNvbT4KCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdHRyYWNlLmg6CgkgIFRoZSBhdHRhY2hlZCBwYXRjaCBhZGRzIHR3byBtaXNzaW5nIGRlZmluZXMgdG8gZ3N0dHJhY2UuaCB3aGVuIHRyYWNpbmcKCSAgaXMgZGlzYWJsZWQuICBJdCBhbHNvIGNvcnJlY3RzIG9uZSBleGlzdGluZyBkZWZpbmUuCgkgIEZpeGVzICMzNDc3NTYuCgoyMDA2LTA3LTE3IDE3OjQwOjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIHR3byBmdW5jdGlvbnMgdG8gY2hlY2sgYW5kIGNoYW5nZSB0aGUgU0lHU0VHViBiZWhhdmlvdXIgd2hlbiBsb2FkaW5nIHBsdWdpbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X3NlZ3RyYXBfaXNfZW5hYmxlZCksIChnc3Rfc2VndHJhcF9zZXRfZW5hYmxlZCk6CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKF9nc3RfcGx1Z2luX2ZhdWx0X2hhbmRsZXJfcmVzdG9yZSk6CgkgIEFkZCB0d28gZnVuY3Rpb25zIHRvIGNoZWNrIGFuZCBjaGFuZ2UgdGhlIFNJR1NFR1YgYmVoYXZpb3VyCgkgIHdoZW4gbG9hZGluZyBwbHVnaW5zLgoJICBEb24ndCBtZXNzIHdpdGggdGhlIFNJR1NFR1YgaGFuZGxlciB3aGVuIHdlIHdlcmUgdG9sZCBub3QgdG8uCgkgIEZpeGVzICMzNDc3OTQuCgkgIEFQSTogZ3N0X3NlZ3RyYXBfaXNfZW5hYmxlZAoJICBBUEk6IGdzdF9zZWd0cmFwX3NldF9lbmFibGVkCgoyMDA2LTA3LTE0IDE2OjQyOjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgUmV2ZXJ0IGZpeCBmb3IgcmVncmVzc2lvbiBpbiAjMzQ3NDA4IGFmdGVyIHJlbGVhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3VwZGF0ZV9sZW5ndGgpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgUmV2ZXJ0IGZpeCBmb3IgcmVncmVzc2lvbiBpbiAjMzQ3NDA4IGFmdGVyIHJlbGVhc2UuCgoyMDA2LTA3LTE0IDE2OjIwOjE4ICswMDAwICBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDBAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEZyZWUgaXRlcmF0b3Igd2hlbiBkb25lICgjMzQ3MzExKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDAgYXQgZ21haWwgY29tPgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfdW5saW5rKToKCSAgRnJlZSBpdGVyYXRvciB3aGVuIGRvbmUgKCMzNDczMTEpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3V0aWxzX3N1aXRlKToKCSAgQW5kIGFkZCBhIHRlc3QgY2FzZSBmb3IgdGhpcy4KCjIwMDYtMDctMTQgMTU6NTI6NTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCdW1wIG5hbm8gYmFjayB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCdW1wIG5hbm8gYmFjayB0byBDVlMKCj09PSByZWxlYXNlIDAuMTAuOSA9PT0KCjIwMDYtMDctMTQgMTU6NTA6MTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiByZWxlYXNpbmcgMC4xMC45LCAiT24gdGhlIHJvYWQgYWdhaW4iCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA3LTEzICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIHJlbGVhc2luZyAwLjEwLjksICJPbiB0aGUgcm9hZCBhZ2FpbiIKCjIwMDYtMDctMTMgMTk6NDc6MTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA2LTA3LTEzIDE1OjUxOjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgUmV2ZXJ0IHB1bGwtMCBmaXggZm9yIHJlbGVhc2UuIERpc2FibGUgY2hlY2suIEZpeGVzICMzNDc0MDguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3VwZGF0ZV9sZW5ndGgpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgUmV2ZXJ0IHB1bGwtMCBmaXggZm9yIHJlbGVhc2UuIERpc2FibGUgY2hlY2suIEZpeGVzICMzNDc0MDguCgoyMDA2LTA3LTEzIDE0OjAyOjE2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogRml4ZXMgIzM0NzMzNzogZmFpbHVyZSB0byBkZXNlcmlhbGl6ZSBldmVudCBwYWNrZXRzIHdpdGggZW1wdHkgcGF5bG9hZCAob25seSBldi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXRfMV8wKToKCSAgRml4ZXMgIzM0NzMzNzogZmFpbHVyZSB0byBkZXNlcmlhbGl6ZSBldmVudCBwYWNrZXRzIHdpdGgKCSAgZW1wdHkgcGF5bG9hZCAob25seSBldmVudCB0eXBlKQoKMjAwNi0wNy0xMyAxMzo1NzozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvTWFrZWZpbGUuYW06IGRvIG5vdCBpbnN0YWxsIGEgLmMgZmlsZSBpbiB0aGUgaGVhZGVyIGRpcmVjdG9yeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgIGRvIG5vdCBpbnN0YWxsIGEgLmMgZmlsZSBpbiB0aGUgaGVhZGVyIGRpcmVjdG9yeQoKMjAwNi0wNy0xMyAxMDo0NzowMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBHaG9zdFBhZCBubyBsb25nZXIgaW1wbGljaXRlbHkgdXNlIHRoZSBwYWR0ZW1wbGF0ZXMgb2YgdGhlIHRhcmdldHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0X3VubG9ja2VkKToKCSAgR2hvc3RQYWQgbm8gbG9uZ2VyIGltcGxpY2l0ZWx5IHVzZSB0aGUgcGFkdGVtcGxhdGVzIG9mIHRoZSB0YXJnZXRzLgoJICBGaXhlcyAjMzQ3Mzg0CgoyMDA2LTA3LTExIDIyOjU1OjQwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNi0wNy0xMSAyMDo0NDo0NiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIE1lbnRpb24gYnVnICMzNDEwMjkgZml4ZWQgYnkgYmlsYm9lZCdzIHByZXZpb3VzIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTWVudGlvbiBidWcgIzM0MTAyOSBmaXhlZCBieSBiaWxib2VkJ3MgcHJldmlvdXMgY29tbWl0CgoyMDA2LTA3LTExIDIwOjE0OjIwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIE1ha2UgR3N0VmFsdWVBcnJheSBjb21wYXJpc29uIGJlIG9yZGVyIGRlcGVuZGVudCBhcyBkZXNpZ25lZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29tcGFyZV9saXN0KSwKCSAgKGdzdF92YWx1ZV9jb21wYXJlX2FycmF5KSwgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2UgR3N0VmFsdWVBcnJheSBjb21wYXJpc29uIGJlIG9yZGVyIGRlcGVuZGVudCBhcyBkZXNpZ25lZC4KCSAgQWRkIGNoZWNrcyBmb3IgdmFsdWUgbGlzdHMgYW5kIHZhbHVlIGFycmF5IGNvbXBhcmlzb25zLgoJICBGaXhlcyAjMzQ3MjIxCgoyMDA2LTA3LTExIDE2OjIwOjA5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiAoZGUpYWN0aXZhdGUgc3JjIHBhZHMgYmVmb3JlIGNhbGxpbmcgc3RhdGVfY2hhbmdlIG9uIHRoZSBjaGlsZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGFjdGl2YXRlX3BhZHMpLAoJICAoaXRlcmF0b3JfYWN0aXZhdGVfZm9sZF93aXRoX3Jlc3luYyksIChnc3RfYmluX3NyY19wYWRzX2FjdGl2YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICAoZGUpYWN0aXZhdGUgc3JjIHBhZHMgYmVmb3JlIGNhbGxpbmcgc3RhdGVfY2hhbmdlIG9uIHRoZSBjaGlsZHMuCgkgIFRoaXMgaXMgdG8gYXZvaWQgdGhlIGNhc2Ugd2hlcmUgYSBzcmMgZ2hvc3RwYWQgaXMgYmxvY2tlZCAoaG9sZGluZyB0aGUKCSAgc3RyZWFtIGxvY2spLCB3aGljaCB3b3VsZCBibG9jayB0aGUgZGVhY3RpdmF0aW9uIG9mIHRoZSBnaG9zdHBhZCdzCgkgIHRhcmdldCBwYWQuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX3F1ZXJ5X3R5cGUpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19ldmVudCksIChnc3RfcHJveHlfcGFkX2RvX3F1ZXJ5KSwKCSAgKGdzdF9wcm94eV9wYWRfZG9faW50ZXJuYWxfbGluayksIChnc3RfcHJveHlfcGFkX2RvX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fY2hhaW4pLCAoZ3N0X3Byb3h5X3BhZF9kb19nZXRyYW5nZSksCgkgIChnc3RfcHJveHlfcGFkX2RvX2NoZWNrZ2V0cmFuZ2UpLCAoZ3N0X3Byb3h5X3BhZF9kb19nZXRjYXBzKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fYWNjZXB0Y2FwcyksIChnc3RfcHJveHlfcGFkX2RvX2ZpeGF0ZWNhcHMpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19zZXRjYXBzKSwgKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldF91bmxvY2tlZCksCgkgIChnc3RfcHJveHlfcGFkX3NldF90YXJnZXQpLCAoZ3N0X3Byb3h5X3BhZF9nZXRfaW50ZXJuYWwpLAoJICAoZ3N0X3Byb3h5X3BhZF9kaXNwb3NlKSwgKGdzdF9wcm94eV9wYWRfaW5pdCksCgkgIChnc3RfZ2hvc3RfcGFkX3BhcmVudF9zZXQpLCAoZ3N0X2dob3N0X3BhZF9wYXJlbnRfdW5zZXQpLAoJICAoZ3N0X2dob3N0X3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfZG9fYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2RvX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2xpbmspLCAoZ3N0X2dob3N0X3BhZF9kb191bmxpbmspLAoJICAoZ3N0X2dob3N0X3BhZF9kaXNwb3NlKSwgKGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldCksCgkgIChnc3RfZ2hvc3RfcGFkX25ldyksIChnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQpOgoJICBHaG9zdFBhZHMgbm93IGNyZWF0ZSB0aGVpciBpbnRlcm5hbCBHc3RQcm94eVBhZCBhdCBjcmVhdGlvbiAoYW5kIG5vdAoJICB3aGVuIHRoZXkncmUgbGlua2VkLCBhcyBpdCB3YXMgYmVpbmcgZG9uZSBwcmV2aW91c2x5KS4KCSAgVGhlIGludGVybmFsIGFuZCB0YXJnZXQgcGFkcyBhcmUgbGlua2VkIHN0cmFpZ2h0IGF3YXkuCgkgIFRoZSBkYXRhIHdpbGwgYWxzbyB0cmF2ZWwgdGhyb3VnaCB0aGUgb3RoZXIgcGFkIGluIG9yZGVyIHRvIG1ha2UKCSAgcGFkIGJsb2NraW5nIGFuZCBwcm9iZXMgbm9uLWhhY2tpc2ggKHRoZSBwcm9iZS9ibG9jayBub3cgcmVhbGx5IGhhcHBlbnMKCSAgb24gdGhlIEdob3N0UGFkIGFuZCBub3Qgb24gdGhlIHRhcmdldCkuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luYyksCgkgIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksIChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICBSZW1vdmUgcHJldmlvdXMgZ2hvc3RwYWQgY3J1ZnQuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX2FkZF9kYXRhX3Byb2JlKSwKCSAgKGdzdF9wYWRfYWRkX2V2ZW50X3Byb2JlKSwgKGdzdF9wYWRfYWRkX2J1ZmZlcl9wcm9iZSksCgkgIChnc3RfcGFkX3JlbW92ZV9kYXRhX3Byb2JlKSwgKGdzdF9wYWRfcmVtb3ZlX2V2ZW50X3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2J1ZmZlcl9wcm9iZSk6CgkgIFJlbW92ZSBwcmV2aW91cyBnaG9zdCBwYWQgY3J1ZnQuCgkgIEFkZGVkIG1vcmUgZGV0YWlsZWQgZGVidWcgc3RhdGVtZW50cy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IHRoZSB0ZXN0c3VpdGUgZm9yIHJlZmNvdW50aW5nIGNoYW5nZXMuCgkgIFRoZSBjb21tZW50cyBhYm91dCB3aG8gaGFzIHJlZmVyZW5jZXMgd2VyZSBjb3JyZWN0LCBidXQgdGhlIHJlZmNvdW50CgkgIGJlaW5nIGNoZWNrZWQgd2Fzbid0IHRoZSBzYW1lICghPyEpLgoKMjAwNi0wNy0xMCAxOTozNTozMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTW9yZSBkb2NzIGZvciBjb25maWd1cmF0aW9uIG9wdGlvbnMsIGFkZCBkb2NzIHRvIGd0ay1kb2MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBNb3JlIGRvY3MgZm9yIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgYWRkIGRvY3MgdG8gZ3RrLWRvYy4KCjIwMDYtMDctMTAgMTg6Mjc6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEZpeCBidWlsZCB3aGVuIGRpc2FibGluZyB0cmFjaW5nIChmaXhlcyAjMzQ0MDE2KS4gQWxzbyBzdGFydCB0byBkb2N1bWVudCB0aGUgZGVmaW5lcyB0aGF0IGRpc2FibGUgdGhlIHN1Yi1zeXN0ZW1zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgRml4IGJ1aWxkIHdoZW4gZGlzYWJsaW5nIHRyYWNpbmcgKGZpeGVzICMzNDQwMTYpLiBBbHNvIHN0YXJ0IHRvIGRvY3VtZW50CgkgIHRoZSBkZWZpbmVzIHRoYXQgZGlzYWJsZSB0aGUgc3ViLXN5c3RlbXMuCgoyMDA2LTA3LTEwIDA5OjQyOjIwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdC5jOiBsZXQncyBtYWtlIHZhbGdyaW5kIGhhcHB5Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpOgoJICBsZXQncyBtYWtlIHZhbGdyaW5kIGhhcHB5Li4uCgoyMDA2LTA3LTA5IDE2OjU2OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogQmV0dGVyIHBhZCBhY3RpdmF0aW9uIGNvZGU6IFJlc2V0IHRoZSBjb2xsZWN0IHZhbHVlIHRvbyBvbiByZXN5bmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChhY3RpdmF0ZV9wYWRzKSwKCSAgKGl0ZXJhdG9yX2FjdGl2YXRlX2ZvbGRfd2l0aF9yZXN5bmMpLCAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgIEJldHRlciBwYWQgYWN0aXZhdGlvbiBjb2RlOiBSZXNldCB0aGUgY29sbGVjdCB2YWx1ZSB0b28gb24gcmVzeW5jLgoJICBBZGQgc29tZSBjb21tZW50cy4KCjIwMDYtMDctMDkgMTM6MjY6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFVzZSBzb21lIG1vcmUgbWFjcm9zIHdoZXJlIGl0IG1ha2VzIHNlbnNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpLCAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCk6CgkgIFVzZSBzb21lIG1vcmUgbWFjcm9zIHdoZXJlIGl0IG1ha2VzIHNlbnNlLgoJICBBbGxvdyBwYWQgbW9kZSBzd2l0Y2hpbmcgaW5zdGVhZCBvZiBhc3NlcnRpbmcuIFdoZW4gYSBwYWQKCSAgaXMgYWN0aXZhdGVkIGluIG9uZSBtb2RlIGFuZCB3ZSBhY3RpdmF0ZSBpdCBpbiBhbm90aGVyLAoJICBkZWFjdGl2YXRlIGl0IGZpcnN0IGJlZm9yZSBhY3RpdmF0aW5nIGl0IGluIGEgZGlmZmVyZW50IG1vZGUuCgkgIEZpeGVzICMzMjkxOTguCgoyMDA2LTA3LTA4IDEzOjIyOjMyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmMgKG1haW4pOiBIYW5kbGUgZXJyID09IE5VTEwuIGdzdC9nc3QuYyAoaW5pdF9wb3N0LCBlbnN1cmVfY3VycmVudF9yZWdpc3RyeSkgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDctMDggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jIChtYWluKTogSGFuZGxlIGVyciA9PSBOVUxMLgoJICAqIGdzdC9nc3QuYyAoaW5pdF9wb3N0LCBlbnN1cmVfY3VycmVudF9yZWdpc3RyeSkKCSAgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpCgkgIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9ub25mb3JraW5nKTogUmVkdWNlICNpZmRlZiByYXRuZXN0IGJ5CgkgIGZhY3RvcmluZyBvdXQgdGhlIHJlZ2lzdHJ5IHNjYW5uaW5nIGludG8gc2VwYXJhdGUgZnVuY3Rpb25zLiBEb24ndAoJICBmb3JrIGZvciB0aGUgcmVzY2FuIGlzIEdTVF9SRUdJU1RSWV9GT1JLPW5vOyB1c2VmdWwgaW4gZGVidWdnaW5nLgoJICBCZXR0ZXIgZW52aXJvbm1lbnQgdmFyIG5hbWUvaW50ZXJmYWNlIHN1Z2dlc3Rpb25zIGFjY2VwdGVkLgoKMjAwNi0wNy0wNyAxNzoxNjoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RvYmplY3QuYzogUmFuZG9tIG1pY3JvLW9wdGltaXNhdGlvbjogZG9uJ3QgdXNlIGEgaGFzaCB0YWJsZSB3aXRoIHN0cmluZ3MgYXMga2V5cyBhbmQgdGhlIHVzdWFsIHN0cmR1cC9zdHJjbXAgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X3NldF9uYW1lX2RlZmF1bHQpLAoJICAoZ3N0X29iamVjdF9zZXRfbmFtZSk6CgkgIFJhbmRvbSBtaWNyby1vcHRpbWlzYXRpb246IGRvbid0IHVzZSBhIGhhc2ggdGFibGUKCSAgd2l0aCBzdHJpbmdzIGFzIGtleXMgYW5kIHRoZSB1c3VhbCBzdHJkdXAvc3RyY21wCgkgIGludm9sdmVkLCBidXQgcmF0aGVyIGp1c3QgdXNlIHRoZSBHUXVhcmsgb2YgdGhlCgkgIHR5cGUgbmFtZSBhcyBrZXksIHNpbmNlIGl0IG5lZWRzIHRvIGJlIGxvb2tlZCB1cAoJICBhbnl3YXkgdG8gZ2V0IHRoZSB0eXBlIG5hbWUgc3RyaW5nLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IHZhcmlvdXMgbGVha3MuCgoyMDA2LTA3LTA3IDE1OjQyOjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBDYW4ndCB1c2UgR1BPSU5URVJfVE9fSU5UIGFuZCBHSU5UX1RPX1BPSU5URVIgd2l0aCBHVHlwZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGNvbXBhcmVfaW50ZXJmYWNlKSwgKGdzdF9iaW5fZ2V0X2J5X2ludGVyZmFjZSksCgkgIChnc3RfYmluX2l0ZXJhdGVfYWxsX2J5X2ludGVyZmFjZSk6CgkgIENhbid0IHVzZSBHUE9JTlRFUl9UT19JTlQgYW5kIEdJTlRfVE9fUE9JTlRFUiB3aXRoIEdUeXBlcy4KCSAgR1R5cGVzIGFyZSBndWxvbmdzIGFuZCB0aHVzIHRoZSB0b3AgNCBieXRlcyBtaWdodCBiZSBjdXQKCSAgb2ZmIG9uIHNvbWUgcGxhdGZvcm1zIHdoZW4gZG9pbmcgR1BPSU5URVJfVE9fSU5ULCBsZWFkaW5nCgkgIHRvIGludmFsaWQgR1R5cGVzIGFuZCBiYWQgdGhpbmdzIGhhcHBlbmluZy4KCSAgQWxzbyBhZGQgYSBjaGVjayB0byBtYWtlIHN1cmUgdGhlIHR5cGUgcGFzc2VkIGluIGlzIHJlYWxseQoJICBhbiBpbnRlcmZhY2UgdHlwZS4KCjIwMDYtMDctMDcgMDk6NDc6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICAuY3ZzaWdub3JlOiBJZ25vcmUgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogLmN2c2lnbm9yZToKCSAgSWdub3JlIG1vcmUuCgoyMDA2LTA3LTA3IDA5OjA5OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTWFrZSBnc3QtZWxlbWVudC1jaGVjay0kVkVSU0lPTi5tNCBjYWxsIGdzdC1pbnNwZWN0LSRWRVJTSU9OIGluc3RlYWQgb2YgdGhlIHVudmVyc2lvbmVkIGdzdC1pbnNwZWN0ICgjMzI0MTc2LCAjMTY4NjU5KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC1lbGVtZW50LWNoZWNrLm00OgoJICAqIGdzdC1lbGVtZW50LWNoZWNrLm00LmluOgoJICBNYWtlIGdzdC1lbGVtZW50LWNoZWNrLSRWRVJTSU9OLm00IGNhbGwgZ3N0LWluc3BlY3QtJFZFUlNJT04KCSAgaW5zdGVhZCBvZiB0aGUgdW52ZXJzaW9uZWQgZ3N0LWluc3BlY3QgKCMzMjQxNzYsICMxNjg2NTkpLgoKMjAwNi0wNy0wNiAxNjoxNzoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtZXNzYWdlLmg6IFVzZSBhIHZhbGlkIGludCBmb3IgdGhlIF9NRVNTQUdFX0FOWSBlbnVtIHZhbHVlIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBVc2UgYSB2YWxpZCBpbnQgZm9yIHRoZSBfTUVTU0FHRV9BTlkgZW51bSB2YWx1ZSB0byBhdm9pZCBjb21waWxlcgoJICB3YXJuaW5ncy4KCjIwMDYtMDctMDYgMTU6NDY6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogVXBkYXRlIGRvY3MuIGJsb2Nrc2l6ZSA9PSAwIG5vdyBtZWFucyB0aGUgZGVmYXVsdCBibG9ja3NpemUgd2hlbiB3b3JraW5nIGluIHB1c2ggYmFzZWQgbW9kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfd2FpdCksIChnc3RfYmFzZV9zcmNfdXBkYXRlX2xlbmd0aCksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19kZWZhdWx0X2NoZWNrX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfY2hlY2tfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19wYWRfY2hlY2tfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19zdGFydCksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVsbCk6CgkgIFVwZGF0ZSBkb2NzLgoJICBibG9ja3NpemUgPT0gMCBub3cgbWVhbnMgdGhlIGRlZmF1bHQgYmxvY2tzaXplIHdoZW4gd29ya2luZyBpbiBwdXNoCgkgIGJhc2VkIG1vZGUuCgkgIFJlbW92ZSBzb21lIHBvaW50bGVzcyBhc3NlcnRzIGluIF93YWl0IGZ1bmN0aW9uLgoJICBGaXggb2Zmc2V0L2xlbmd0aCBjYWxjdWxhdGlvbnMgYW5kIEVPUyBoYW5kbGluZy4gV2UgY2FuIG5vdyBwdWxsIDAKCSAgYnl0ZXMgYXMgd2VsbCwgd2hpY2ggaXMgYWxsb3dlZC4KCSAgdXNlIF9jaGVja19nZXRfcmFuZ2UoKSB0byBkZWNpZGUgaWYgd2UgY2FuIG9wZXJhdGUgaW4gX3B1bGwgYmFzZWQKCSAgbW9kZS4KCSAgRml4IHJlZmNvdW50aW5nIGxlYWsgd2hlbiBjaGVja19nZXRfcmFuZ2UgZnVuY3Rpb24gd2FzIG5vdAoJICBpbXBsZW1lbnRlZC4KCSAgQVBJIEdzdEJhc2VTcmM6OmJsb2Nrc2l6ZSByYW5nZSBjYW4gYmUgMCB0b28gbm93IChkZWZhdWx0KQoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGZpbGVzcmNfc3VpdGUpOgoJICBBZGRlZCBjaGVjayB0byB0ZXN0IF9nZXRfcmFuZ2UoKSBiZWhhdmlvdXIuCgoyMDA2LTA3LTA2IDE1OjIxOjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC4qOiBMb3RzIG9mIGNvbW1lbnRzIGFuZCBkb2NzIGFkZGVkIHRvIHRoZSBwYWQgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NoYWluX3VuY2hlY2tlZCksIChnc3RfcGFkX2NoYWluKSwKCSAgKGdzdF9wYWRfcHVzaCksIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpLCAoZ3N0X3BhZF9nZXRfcmFuZ2UpLAoJICAoZ3N0X3BhZF9wdWxsX3JhbmdlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIExvdHMgb2YgY29tbWVudHMgYW5kIGRvY3MgYWRkZWQgdG8gdGhlIHBhZCBmdW5jdGlvbnMuCgkgIEZsZXNoIG91dCB0aGUgZXhwZWN0ZWQgYmVoYXZpb3VyIG9mIHRoZSBnZXRfcmFuZ2UoKSBmdW5jdGlvbnMuCgoyMDA2LTA3LTA2IDA5OjIxOjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogUmVtb3ZlIGNvbW1hIGF0IGVuZCBvZiBlbnVtZXJhdG9yIGxpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgIFJlbW92ZSBjb21tYSBhdCBlbmQgb2YgZW51bWVyYXRvciBsaXN0LgoKMjAwNi0wNy0wNSAxOTo1NjowOCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvY29tbW9uLzogQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0ZGF0YXByb3RvY29sLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGlic2d0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMuCgoyMDA2LTA3LTA1IDE4OjIwOjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6IEFkZCBzb21lIG1vcmUgZG9jcyBoZXJlIGFuZCB0aGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6IChnc3RfcHVzaF9zcmNfY2hlY2tfZ2V0X3JhbmdlKToKCSAgQWRkIHNvbWUgbW9yZSBkb2NzIGhlcmUgYW5kIHRoZXJlLgoKMjAwNi0wNy0wNSAxODoxODo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogV2hlbiBvcGVyYXRpbmcgaW4gcHVsbCBtb2RlIHVwZGF0ZSB0aGUgb2Zmc2V0IHNvIHRoYXQgd2UgcmVhZCBzZXF1ZW50aWFsbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19sb29wKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgV2hlbiBvcGVyYXRpbmcgaW4gcHVsbCBtb2RlIHVwZGF0ZSB0aGUgb2Zmc2V0IHNvIHRoYXQgd2UKCSAgcmVhZCBzZXF1ZW50aWFsbHkuCgoyMDA2LTA3LTA1IDE4OjE3OjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IEF2b2lkIHN0cmR1cC4gKHdpbGwgaGFwcGVuIGluIGxpYnhtbCwgYnV0IGhleSEpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAocmVhZF9zdHJpbmcpOgoJICBBdm9pZCBzdHJkdXAuICh3aWxsIGhhcHBlbiBpbiBsaWJ4bWwsIGJ1dCBoZXkhKQoJICAqIGdzdC9nc3R1cmkuYzoKCSAgQWRkIHNvbWUgbW9yZSBkb2NzLgoKMjAwNi0wNy0wNSAxNzowOToxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIE5vIHBvaW50IGluIGNoZWNraW5nIGlmIHRoZSBzaXplIG9mIHRoZSBzdWJidWZmZXIgPiAwLCB0aGUgY29kZSBoYW5kbGVzIGl0IGNvcnJlY2x0eSBhcyBkZW1vbnN0cmF0ZWQgYnkgdW5pdCB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChfZ3N0X2J1ZmZlcl9jb3B5KSwgKGdzdF9idWZmZXJfY3JlYXRlX3N1Yik6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2J1ZmZlcl9zdWl0ZSk6CgkgIE5vIHBvaW50IGluIGNoZWNraW5nIGlmIHRoZSBzaXplIG9mIHRoZSBzdWJidWZmZXIgPiAwLCB0aGUKCSAgY29kZSBoYW5kbGVzIGl0IGNvcnJlY2x0eSBhcyBkZW1vbnN0cmF0ZWQgYnkgdW5pdCB0ZXN0LgoJICBBbHNvIGFkZCBhIHVuaXQgdGVzdCBmb3IgdGhlIHplcm8gc2l6ZWQgX25ld19hbmRfYWxsb2MgYW5kCgkgIF9jb3B5LiBGaXhlcyAjMzQ2NjYzLgoKMjAwNi0wNy0wNSAwODoxNjoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBNYWtlIHN1cmUgdGhlIGJ1ZmZlciB3ZSBwYXNzIHRvIHRyYW5zZm9ybV9pcCBoYXMgYSByZWZjb3VudCBvZiAxIGFuZCB0aHVzIGlzIHdyaXRhYi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgIE1ha2Ugc3VyZSB0aGUgYnVmZmVyIHdlIHBhc3MgdG8gdHJhbnNmb3JtX2lwIGhhcyBhIHJlZmNvdW50IG9mCgkgIDEgYW5kIHRodXMgaXMgd3JpdGFibGUuIEZpeGVzICMzNDMxOTYKCjIwMDYtMDctMDQgMDk6MDE6NTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLio6IEFkZCAic2VxdWVudGlhbCIgcHJvcGVydHksIG9mZiBieSBkZWZhdWx0LCB0byB1c2UgbWFkdmlzZSBhbmQgaGludCB0byB0aGUga2VybmVsIHRoYXQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZpbGVfc3JjX2luaXQpLCAoZ3N0X2ZpbGVfc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmlsZV9zcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9maWxlX3NyY19tYXBfcmVnaW9uKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSAgQWRkICJzZXF1ZW50aWFsIiBwcm9wZXJ0eSwgb2ZmIGJ5IGRlZmF1bHQsIHRvIHVzZSBtYWR2aXNlIGFuZCBoaW50CgkgIHRvIHRoZSBrZXJuZWwgdGhhdCBzZXF1ZW50aWFsIGFjY2VzcyBpcyBkZXNpcmVkLgoJICBUb3VjaCBhbGwgcmV0cmlldmVkIHBhZ2VzIGJ5IGRlZmF1bHQgdG8gZW5zdXJlIHRoZXkgYXJlIHB1bGxlZAoJICBpbnRvIG1lbW9yeS4gKENsb3NlcyAjMzQ1NzIwKQoKMjAwNi0wNy0wMyAxNzo0NDowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogU21hbGwgZG9jcyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWR5bmFtaWMudHh0OgoJICBTbWFsbCBkb2NzIHVwZGF0ZXMuCgoyMDA2LTA3LTAzIDE2OjU3OjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogVXNlIEdTbGljZSB3aGVuIHRoZSBnbGliIHdlIGJ1aWxkIGFnYWluc3QgaXMgPj0gMi4xMAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfbmV3X2VtcHR5KSwgKF9nc3RfY2Fwc19mcmVlKSwKCSAgKGdzdF9jYXBzX3VucmVmKSwgKGdzdF9zdGF0aWNfY2Fwc19nZXQpLAoJICAoZ3N0X2NhcHNfYXBwZW5kX3N0cnVjdHVyZSk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZW50cnlfbmV3KSwgKF9nc3RfY2xvY2tfaWRfZnJlZSk6CgkgIFVzZSBHU2xpY2Ugd2hlbiB0aGUgZ2xpYiB3ZSBidWlsZCBhZ2FpbnN0IGlzID49IDIuMTAKCjIwMDYtMDctMDMgMTY6NDY6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBTbWFsbCBjbGVhbnVwIGluIHBhZCBhY3RpdmF0aW9uIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgU21hbGwgY2xlYW51cCBpbiBwYWQgYWN0aXZhdGlvbiBjb2RlLgoKMjAwNi0wNy0wMyAxNDoxNDo0OCArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBUaGUgYXR0YWNoZWQgcGF0Y2ggd2lsbCBtYWtlIHRoZSBpbmNsdXNpb24gb2YgZ2V0dGV4dC5oIHVuY29uZGl0aW9uYWwgaW4gZ3N0L2dzdC1pMThuLWFwcC5oIGFuZCBnc3QvZ3N0LWkxOG4tbGliLmgsIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBhdCBheGlzIGRvdCBjb20+CgkgICogZ3N0L2dzdC1pMThuLWFwcC5oOgoJICAqIGdzdC9nc3QtaTE4bi1saWIuaDoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfc2lnbmFsX2luZm8pOgoJICBUaGUgYXR0YWNoZWQgcGF0Y2ggd2lsbCBtYWtlIHRoZSBpbmNsdXNpb24gb2YgZ2V0dGV4dC5oIHVuY29uZGl0aW9uYWwgaW4KCSAgZ3N0L2dzdC1pMThuLWFwcC5oIGFuZCBnc3QvZ3N0LWkxOG4tbGliLmgsIGFuZCBpdCB3aWxsIHJlbW92ZSB0aGUgaW5jbHVzaW9uIG9mCgkgIGxpYmludGwuaCBpbiB0b29scy9nc3QtaW5zcGVjdC5jLgoJICBUaGlzIGFsbG93cyB1c2Ugb2YgLS1kaXNhYmxlLW5scyBhZ2FpbiBhbmQgZml4ZXMgIzM0NDY0Mi4KCjIwMDYtMDctMDMgMTE6MTA6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBmaXggbGVhawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGxlYWsKCjIwMDYtMDctMDMgMTA6MzA6NDkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEltcGxlbWVudCBwYWQgYmxvY2tpbmcgb24gZXZlbnRzIGFjY29yZGluZyB0byBwYXJ0LWJsb2NrLnR4dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoaGFuZGxlX3BhZF9ibG9jayksIChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICBJbXBsZW1lbnQgcGFkIGJsb2NraW5nIG9uIGV2ZW50cyBhY2NvcmRpbmcgdG8gcGFydC1ibG9jay50eHQuCgkgIE1vcmUgY29tbWVudHMgb24gYmVoYXZpb3VyLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAodGVzdF9ldmVudCk6CgkgIFNlbmQgZXZlbnQgdG8gcGVlciBwYWQgb2YgYmxvY2tlZCBwYWQgKGVsc2UgaXQgd2lsbCBibG9jaykuCgoyMDA2LTA3LTAyIDIzOjIyOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IGlmIHdlIGdldCB0aGUgd3JvbmcgbWVzc2FnZSwgZ2l2ZSB1cyB0aGUgdHlwZXMgYXMgc3RyaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfbWVzc2FnZV9lcnJvciksCgkgIChnc3RfY2hlY2tfcnVuX3N1aXRlKToKCSAgaWYgd2UgZ2V0IHRoZSB3cm9uZyBtZXNzYWdlLCBnaXZlIHVzIHRoZSB0eXBlcyBhcyBzdHJpbmcKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19zdGFydCk6CgkgIEZpeCBhIHRyYW5zbGF0YWJsZQoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgYWRkIGEgdGVzdCBmb3IgdHJ5aW5nIHRvIG9wZW4gYSBub24tZXhpc3RpbmcgZmlsZQoKMjAwNi0wNy0wMiAyMjo0NDoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBhZGQgbWFjcm9zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbWFjcm9zCgoyMDA2LTA3LTAyIDIyOjI4OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICByZW1vdmUgZG91YmxlIHZhcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGRvdWJsZSB2YXIKCjIwMDYtMDctMDIgMjI6Mjc6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgY2xlYW4gbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2xlYW4gbW9yZQoKMjAwNi0wNy0wMiAyMjoyMDoyMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC8uZ2l0aWdub3JlOgoJKiBkb2NzL2xpYnMvLmdpdGlnbm9yZToKCSogdGVzdHMvYmVuY2htYXJrcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvbGF1bmNoLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3F1ZXVlLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3htbC8uZ2l0aWdub3JlOgoJICBtb2FwIGlnbm9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9hcCBpZ25vcmUKCjIwMDYtMDctMDIgMjI6MTc6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiBhZGQgYSB0ZXN0IGZvciBhZGRpbmcgc2VsZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfYmluX3N1aXRlKToKCSAgYWRkIGEgdGVzdCBmb3IgYWRkaW5nIHNlbGYKCjIwMDYtMDctMDIgMjI6MDU6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDogYWRkIHNvbWUgYXNzZXJ0XyBhcyBhbGlhcyBmb3IgZmFpbF91bmxlc3NfKgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBhZGQgc29tZSBhc3NlcnRfIGFzIGFsaWFzIGZvciBmYWlsX3VubGVzc18qCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3N1aXRlKToKCSAgaW5jcmVhc2UgdGVzdCBjb3ZlcmFnZQoKMjAwNi0wNy0wMiAyMTo1NDo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBNYWtlZmlsZS5hbTogaW5jbHVkZSBsY292Lm1hayBmb3IgbGNvdiBjb3ZlcmFnZSBnZW5lcmF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICBpbmNsdWRlIGxjb3YubWFrIGZvciBsY292IGNvdmVyYWdlIGdlbmVyYXRpb24KCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgYWRkIHRvIENMRUFORklMRVMKCjIwMDYtMDctMDIgMjE6NTI6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgd2hpdGVzcGFjZS9kb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UvZG9jIGZpeGVzCgoyMDA2LTA3LTAyIDE2OjI3OjE0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZTogbW9hcGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICBtb2FwaW5nCgoyMDA2LTA3LTAyIDE0OjM5OjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogZG9uJ3Qgc2V0IENGTEFHUyBhbmQgZnJpZW5kcyBmb3IgZ2NvdiwgZG9uZSBmcm9tIEdTVF9HQ09WIG5vdwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIGRvbid0IHNldCBDRkxBR1MgYW5kIGZyaWVuZHMgZm9yIGdjb3YsIGRvbmUgZnJvbSBHU1RfR0NPViBub3cKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2xlYW4gdXAgZ2NvdiBmaWxlcwoKMjAwNi0wNy0wMiAxNDozNzoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Y2Fwcy5jOiByZW1vdmUgZ3N0X2NhcHNfc2ltcGxpZnk7IGl0IHdhcyBub3QgZGVjbGFyZWQgYW5kIG5vdCB1c2VkIGFuZCBkZXByZWNhdGVkIGluIDAuOAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfcmVtb3ZlX2FuZF9nZXRfc3RydWN0dXJlKToKCSAgcmVtb3ZlIGdzdF9jYXBzX3NpbXBsaWZ5OyBpdCB3YXMgbm90IGRlY2xhcmVkIGFuZCBub3QgdXNlZAoJICBhbmQgZGVwcmVjYXRlZCBpbiAwLjgKCjIwMDYtMDctMDIgMTQ6MDU6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBkb24ndCBwdXQgZW1wdHkgcGF0aHMgb24gUFlUSE9OUEFUSAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGRvbid0IHB1dCBlbXB0eSBwYXRocyBvbiBQWVRIT05QQVRICgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgcmVtb3ZlIHNvbWUgc3ltYm9scyB0aGF0IGFyZSBub3QgdGhlcmUKCjIwMDYtMDctMDIgMTI6NTc6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgdW5icmVhayB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1bmJyZWFrIHRlc3QKCjIwMDYtMDctMDIgMTI6NTQ6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGNhcHMuYzogd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfY29tcGFyZV9zdHJ1Y3R1cmVzKToKCSAgd2hpdGVzcGFjZSBmaXhlcwoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2NhcHNfc3VpdGUpOgoJICBhZGQgbW9yZSB0ZXN0cwoKMjAwNi0wNy0wMiAxMjo1MjowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA2LTA3LTAyIDA5OjA0OjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbTogYnVpbGQgZGF0YXByb3RvY29sIHRlc3QgYnkgbGlua2luZyB0byB0aGUgbGliLCBpbnN0ZWFkIG9mIGNvbXBpbGluZyB0aGUgc291cmNlLCBzby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkgIGJ1aWxkIGRhdGFwcm90b2NvbCB0ZXN0IGJ5IGxpbmtpbmcgdG8gdGhlIGxpYiwgaW5zdGVhZCBvZgoJICBjb21waWxpbmcgdGhlIHNvdXJjZSwgc28gd2UgZ2V0IGNvdmVyYWdlCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoZXZlbnRfZnVuYyksIChzZXR1cF9maWxlc3JjKSwKCSAgKGNsZWFudXBfZmlsZXNyYyksIChHU1RfU1RBUlRfVEVTVCksIChmaWxlc3JjX3N1aXRlKToKCSAgYWRkIGEgdGVzdCBmb3IgZmlsZXNyYwoKMjAwNi0wNy0wMiAwODoyNjo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IFB1c2ggY292ZXJhZ2UgZnJvbSA1OS4wNCUgdG8gNzAuMDAlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfc3VpdGUpOgoJICBQdXNoIGNvdmVyYWdlIGZyb20gNTkuMDQlIHRvIDcwLjAwJQoKMjAwNi0wNy0wMiAwMDo0MDo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IFB1c2ggY292ZXJhZ2UgZnJvbSA1OS4wNCUgdG8gNzAuMDAlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfc3VpdGUpOgoJICBQdXNoIGNvdmVyYWdlIGZyb20gNTkuMDQlIHRvIDcwLjAwJQoKMjAwNi0wNy0wMiAwMDozOToyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2NoZWNrLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC8uZ2l0aWdub3JlOgoJICBtb2FwIGlnbm9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9hcCBpZ25vcmUKCjIwMDYtMDctMDIgMDA6Mzg6MzUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9nc3QvYmFzZS8uZ2l0aWdub3JlOgoJICBtb2FwIGlnbm9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9hcCBpZ25vcmUKCjIwMDYtMDctMDIgMDA6MzM6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IGdzdC1pbnNwZWN0IGV2ZXJ5IGVsZW1lbnQ7IHRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIGFsc28gZ2V0IGNvdmVyYWdlIG9uIGVsZW1lbnQncyBnZXQvc2V0IGZ1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBnc3QtaW5zcGVjdCBldmVyeSBlbGVtZW50OyB0aGlzIG1ha2VzIHN1cmUgdGhhdCB3ZSBhbHNvIGdldAoJICBjb3ZlcmFnZSBvbiBlbGVtZW50J3MgZ2V0L3NldCBmdW5jdGlvbnMKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc3RydWN0dXJlX3N1aXRlKToKCSAgUHVzaCBjb3ZlcmFnZSBmcm9tIDU5LjA0JSB0byA3MC4wMCUKCjIwMDYtMDctMDEgMjM6MjY6MDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBzZXQgQ0ZMQUdTIGFuZCBmcmllbmRzIHRvIC1PMCBpZiBnY292IGlzIGJlaW5nIHVzZWQgYWRkIEdDT1YgTElCUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIHNldCBDRkxBR1MgYW5kIGZyaWVuZHMgdG8gLU8wIGlmIGdjb3YgaXMgYmVpbmcgdXNlZAoJICBhZGQgR0NPViBMSUJTCgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSAgYWRkIG1ha2VmaWxlIHJ1bGVzIHRvIGdlbmVyYXRlIGdjb3YgZGF0YSBhbmQgY2xlYW4gdXAKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgYWRkIGEgY292ZXJhZ2UgdGFyZ2V0IHRoYXQgZ2VuZXJhdGVzIGFuIGh0bWwgb3ZlcnZpZXcKCSAgb2YgY292ZXJhZ2UgZGF0YQoKMjAwNi0wNy0wMSAyMzoxOToyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBmaXggZG9jcyBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRvY3MgYnVpbGQKCjIwMDYtMDctMDEgMjA6NTY6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svOiB1c2UgdGhlIG5ldyBtYWNybwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoZ3N0X3NpbmtzX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzogKGdzdF9idXNfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6IChnc3RfaXRlcmF0b3Jfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6IChnc3RfdGFza19zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IChnc3RfZHBfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOiAobGlic2FiaV9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOiAoc3RyZXNzX3N1aXRlKToKCSAgdXNlIHRoZSBuZXcgbWFjcm8KCjIwMDYtMDctMDEgMjA6NTQ6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suKjogY3JlYXRlIGEgbWFjcm8gYW5kIGZ1bmN0aW9uIHNvIHRoYXQgdGhlIHNpbXBsZSB1bml0IHRlc3QgY2FzZSBjYW4gYmUganVzdCBvbmUgbWFjcm8gdG8gY3JlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfcnVuX3N1aXRlKToKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjcmVhdGUgYSBtYWNybyBhbmQgZnVuY3Rpb24gc28gdGhhdCB0aGUgc2ltcGxlIHVuaXQgdGVzdAoJICBjYXNlIGNhbiBiZSBqdXN0IG9uZSBtYWNybyB0byBjcmVhdGUgbWFpbigpCgoyMDA2LTA2LTMwIDEzOjE3OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogRml4IGRlc2VyaWFsaXNhdGlvbiBmcm9tIFhNTC4gU2V0IHBhcmVudCBtYW51YWxseSBpbnN0ZWFkIG9mIHVzaW5nIGdzdF9iaW5fYWRkKCksIHNpbmNlIGdzdF9iaW5fYWRkKCkgd2lsbCB1bmxpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVzdG9yZV90aHlzZWxmKToKCSAgKiBnc3QvZ3N0eG1sLmM6IChnc3RfeG1sX21ha2VfZWxlbWVudCk6CgkgIEZpeCBkZXNlcmlhbGlzYXRpb24gZnJvbSBYTUwuIFNldCBwYXJlbnQgbWFudWFsbHkKCSAgaW5zdGVhZCBvZiB1c2luZyBnc3RfYmluX2FkZCgpLCBzaW5jZSBnc3RfYmluX2FkZCgpCgkgIHdpbGwgdW5saW5rIGFsbCBwYWRzIG9mIHRoZSBlbGVtZW50IGJlaW5nIGFkZGVkLgoJICBGaXhlcyAjMzQxNjY3LgoKMjAwNi0wNi0yOCAxNToxOTowOCArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvZ3N0LmM6IEZpeCBtaXNzaW5nIGdfc3RyZHVwKCkgYW5kIGRvdWJsZSBmcmVlIHdoZW4gdXNpbmcgdGhlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXQgYXhpcyBjb20+CgkgICogZ3N0L2dzdC5jOiAocHJlcGFyZV9mb3JfbG9hZF9wbHVnaW5fZnVuYyksIChzcGxpdF9hbmRfaXRlcmF0ZSk6CgkgIEZpeCBtaXNzaW5nIGdfc3RyZHVwKCkgYW5kIGRvdWJsZSBmcmVlIHdoZW4gdXNpbmcgdGhlCgkgIC0tZ3N0LXBsdWdpbi1sb2FkIGNvbW1hbmQgbGluZSBvcHRpb24gKCMzNDYwOTcpLgoKMjAwNi0wNi0yMyAxMzoxNjo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmM6IFByb21vdGUgR1NUX0RFQlVHX0NBVEVHT1JZX1NUQVRJQyBpbiBleGFtcGxlIGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIFByb21vdGUgR1NUX0RFQlVHX0NBVEVHT1JZX1NUQVRJQyBpbiBleGFtcGxlIGluIGRvY3MuCgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBVc2UgR1NUX0RFQlVHX0NBVEVHT1JZX1NUQVRJQyBoZXJlIHRvbyAoIzM0MjUwMykuCgoyMDA2LTA2LTIzIDEwOjMwOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6IEZpeCBidWZmZXIgcHJvYmUgZXhhbXBsZSBjb21waWxhdGlvbiBpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgRml4IGJ1ZmZlciBwcm9iZSBleGFtcGxlIGNvbXBpbGF0aW9uIGluCgkgIEFETSAoIzM0NTcwOCkuCgoyMDA2LTA2LTIyIDE3OjA5OjEzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogV2UgbmVlZCB0byBkZWFjdGl2YXRlIHNyYyBwYWRzIGZpcnN0IGFuZCB0aGVuIHNpbmsgcGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICBXZSBuZWVkIHRvIGRlYWN0aXZhdGUgc3JjIHBhZHMgZmlyc3QgYW5kIHRoZW4gc2luayBwYWRzLgoJICBUaGUgcmVhc29uIGlzIHRoZSBzcmMgcGFkcyBtaWdodCBiZSBibG9ja2luZyB3aGlsZSBob2xkaW5nIHRoZSBzdHJlYW1pbmcKCSAgbG9jaywgc28gd2UgbmVlZCB0byBkZWFjdGl2YXRlIHRoZW0gZmlyc3Qgc28gdGhhdCBkZWFjdGl2YXRpbmcgdGhlIHNpbmsKCSAgcGFkcyBkb2Vzbid0IGJsb2NrIChzaW5jZSBpdCB3aWxsIHJlcXVpcmUgdGhlIHN0cmVhbWluZyBsb2NrKS4KCjIwMDYtMDYtMjIgMTU6MTI6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRm9yZ290IHRvIHJlbW92ZSB0d28gdW5uZWVkZWQgdW5yZWZzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBGb3Jnb3QgdG8gcmVtb3ZlIHR3byB1bm5lZWRlZCB1bnJlZnMuCgkgIFNpbXBsaWZ5IGEgY2hlY2sgX2lzX2VxdWFsIGFsbHJlYWR5IGNoZWNrcyB0aGUgb2J2aW91cyBjYXNlLgoKMjAwNi0wNi0yMiAxNDowOTo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OiBTb21lIGRvY3MgYWJvdXQgd2hhdCBwYWRfYmxvY2sgc2hvdWxkIGRvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSAgU29tZSBkb2NzIGFib3V0IHdoYXQgcGFkX2Jsb2NrIHNob3VsZCBkby4KCjIwMDYtMDYtMjIgMTM6NTE6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBGaXggY3Jhc2hlciB3aGVuIHBhc3NlZCBOVUxMLiBEb2MgY2xhcmlmaWNhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3JlcGxhY2UpOgoJICBGaXggY3Jhc2hlciB3aGVuIHBhc3NlZCBOVUxMLiBEb2MgY2xhcmlmaWNhdGlvbi4KCSAgT3B0aW1pemUgZm9yIHRoZSB0cml2aWFsIGNhc2UuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgU21hbGwgY2xlYW51cHMuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIFNtYWxsIGRvY3VtZW50YXRpb24gY2xlYW51cC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBEb24ndCB1c2Ugc2lsbHkgZ3N0X3BhZF9nZXRfbmVnb3RpYXRlZF9jYXBzLCBHU1RfUEFEX0NBUFMKCSAgaXMgd2hhdCB3ZSBuZWVkIGFuZCBpdCBhdm9pZHMgYSB3aG9sZSBsb3Qgb2YgcmVkdW5kYW50CgkgIHJlZmNvdW50IG9wZXJhdGlvbnMuCgoyMDA2LTA2LTIyIDA4OjUzOjQwICswMDAwICBQaGlsaXAgSsOkZ2Vuc3RlZHQgPHBoaWxpcEBseXNhdG9yLmxpdS5zZT4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOiBGaXggJ0VtYmVkZGluZyBzdGF0aWMgZWxlbWVudHMnIHNlY3Rpb24gdG8gdXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGhpbGlwIErDpGdlbnN0ZWR0ICA8cGhpbGlwIGF0IGx5c2F0b3IgbGl1IHNlPgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBGaXggJ0VtYmVkZGluZyBzdGF0aWMgZWxlbWVudHMnIHNlY3Rpb24gdG8gdXNlCgkgIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQyAoIzM0NTYwNykuCgoyMDA2LTA2LTIxIDExOjEyOjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzogQXR0ZW1wdCB0byAnZml4JyBzcHVyaW91c2x5IGZhaWxpbmcgdGVzdCBjYXNlOiBpdCBzZWVtcyBsaWtlIHRoZSB0aW1lb3V0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6ICh0ZXN0X3N0b3BfZnJvbV9hcHApOgoJICBBdHRlbXB0IHRvICdmaXgnIHNwdXJpb3VzbHkgZmFpbGluZyB0ZXN0IGNhc2U6IGl0IHNlZW1zIGxpa2UgdGhlCgkgIHRpbWVvdXQgb2YgaGFsZiBhIHNlY29uZCBpcyBzaW1wbHkgdG9vIHNtYWxsIHdoZW4gdGhlIHN5c3RlbSBpcyB1bmRlcgoJICBsb2FkIG90aGVyd2lzZSwgYW5kIHRoZSB0aW1lb3V0IGRvZXNuJ3QgcmVhbGx5IHNlZW0gdG8gc2VydmUgYW55CgkgIHBhcnRpY3VsYXIgcHVycG9zZSBoZXJlLiBHaXZlIHRoZSBwaXBlbGluZSBhIGZldyBzZWNvbmRzIHRvIHByZXJvbGwKCSAgZmlyc3QsIGFuZCB0aGVuIGdpdmUgaXQgYW5vdGhlciBoYWxmIGEgc2Vjb25kIHRvIGdvIGZyb20gUEFVU0VEIHRvCgkgIFBMQVlJTkcgYW5kIG1hcnNoYWwgdGhlIG1lc3NhZ2UgaW50byB0aGUgbWFpbiB0aHJlYWQuCgoyMDA2LTA2LTIxIDEwOjE0OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWZlZWRiYWNrLW0ubTogRG9uJ3Qgb25seSB1c2UgdW52ZXJzaW9uZWQgdG9vbHMsIHRyeSB2ZXJzaW9uZWQgdG9vbHMgYXMgd2VsbCAoIzM0NTA4NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1mZWVkYmFjay1tLm06CgkgIERvbid0IG9ubHkgdXNlIHVudmVyc2lvbmVkIHRvb2xzLCB0cnkgdmVyc2lvbmVkIHRvb2xzIGFzIHdlbGwKCSAgKCMzNDUwODYpLgoKMjAwNi0wNi0yMSAxMDowMTo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidXMuYzogRml4IHNvbWUgdHlwb3MsIG1ha2UgZG9jcyBtb3JlIGV4cGxpY2l0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2NsYXNzX2luaXQpOgoJICBGaXggc29tZSB0eXBvcywgbWFrZSBkb2NzIG1vcmUgZXhwbGljaXQuCgoyMDA2LTA2LTIwIDA4OjQwOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IEFkZGVkIHNvbWUgbW9yZSBnaG9zdHBhZCB0ZXN0cywgbWFpbmx5IGJsb2NraW5nIGFuZCBwcm9iZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoYmxvY2tfY2FsbGJhY2spLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2dob3N0X3BhZF9zdWl0ZSk6CgkgIEFkZGVkIHNvbWUgbW9yZSBnaG9zdHBhZCB0ZXN0cywgbWFpbmx5IGJsb2NraW5nCgkgIGFuZCBwcm9iZXMuCgoyMDA2LTA2LTE5IDA4OjU2OjQ4ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgbGF0ZXN0IHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGxhdGVzdCB1cGRhdGVzCgoyMDA2LTA2LTE2IDE2OjI4OjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay4qOiBDaGVjayBpZiB3ZSBjYW4gc2VlayBpbiB0aGUgZmlsZSBpbnN0ZWFkIG9mIGFzc3VtaW5nIHdlIGFsd2F5cyBjYW4uIFBvc3QgYW4gZXJyb3Igd2hlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3Npbmtfb3Blbl9maWxlKSwKCSAgKGdzdF9maWxlX3NpbmtfY2xvc2VfZmlsZSksIChnc3RfZmlsZV9zaW5rX2RvX3NlZWspLAoJICAoZ3N0X2ZpbGVfc2lua19ldmVudCksIChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJICBDaGVjayBpZiB3ZSBjYW4gc2VlayBpbiB0aGUgZmlsZSBpbnN0ZWFkIG9mIGFzc3VtaW5nCgkgIHdlIGFsd2F5cyBjYW4uIFBvc3QgYW4gZXJyb3Igd2hlbiB3ZSBhcmUgYXNrZWQgdG8gc2VlayBpbiBhCgkgIG5vbi1zZWVrYWJsZSBmaWxlIChsaWtlIGEgZmlmbykuIEZpeGVzICMzNDMzMTIuCgkgIFNvbWUgY2xlYW51cHMuCgoyMDA2LTA2LTE2IDE0OjMxOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluOiBVbi1nYXJibGUgKGZvdXJjYykgYml0IGluIGZpbHRlcmVkIGNhcHMgc2VjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBVbi1nYXJibGUgKGZvdXJjYykgYml0IGluIGZpbHRlcmVkIGNhcHMgc2VjdGlvbi4KCjIwMDYtMDYtMTYgMDk6Mzk6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC86IERvbid0IGxlYWsgYnVzIHJlZmVyZW5jZSBpbiBzYW1wbGUgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICBEb24ndCBsZWFrIGJ1cyByZWZlcmVuY2UgaW4gc2FtcGxlIGNvZGUuCgoyMDA2LTA2LTE2IDA4OjMwOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgYXV0b2dlbi5zaDogQWRkIGRlZmF1bHQgZm9yIG5ldyAtLWVuYWJsZS1wbHVnaW4tZG9jcyBzd2l0Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGF1dG9nZW4uc2g6CgkgIEFkZCBkZWZhdWx0IGZvciBuZXcgLS1lbmFibGUtcGx1Z2luLWRvY3Mgc3dpdGNoLgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgVXNlIG5ldyBHU1RfUExVR0lOX0RPQ1MgbWFjcm8gdG8gY2hlY2sgZm9yIHB5eG1sIGV0Yy4KCSAgRml4ZXMgIzM0NDAzOS4KCSAgKiBkb2NzL01ha2VmaWxlLmFtOgoJICBVc2UgbmV3IEVOQUJMRV9QTFVHSU5fRE9DUyBjb25kaXRpb25hbC4KCjIwMDYtMDYtMTQgMTA6MzQ6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IE1ha2UgaXQgY2xlYXIgd2l0aCBhIEZJWE1FIGFuZCBhIHJlYWwgZGVmaW5lIHdoYXQgdGhlICNpZiAwIHByZXZpb3VzbHkgZGlzYWJsZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9xdWVyeV9kdXJhdGlvbl9kb25lKSwgKGdzdF9iaW5fcXVlcnkpOgoJICBNYWtlIGl0IGNsZWFyIHdpdGggYSBGSVhNRSBhbmQgYSByZWFsIGRlZmluZSB3aGF0IHRoZSAjaWYgMAoJICBwcmV2aW91c2x5IGRpc2FibGVkLgoKMjAwNi0wNi0xNCAxMDozMTo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvOiBEb24ndCByYW5kb21seSBhbmQgc2lsZW50bHkgcmVzZXQgYSBzZWdtZW50IHdoZW4gdGhlIGZvcm1hdCBjaGFuZ2VzIGFzIHRoaXMgaXMgYSBidWcgc29tZXdoZXJlIHVwc3RyZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbmZpZ3VyZV9zZWdtZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfZXZlbnRmdW5jKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KToKCSAgRG9uJ3QgcmFuZG9tbHkgYW5kIHNpbGVudGx5IHJlc2V0IGEgc2VnbWVudCB3aGVuIHRoZSBmb3JtYXQKCSAgY2hhbmdlcyBhcyB0aGlzIGlzIGEgYnVnIHNvbWV3aGVyZSB1cHN0cmVhbS4gRml4ZXMgIzMzMDM3OS4KCjIwMDYtMDYtMTQgMDg6MjY6NTMgKzAwMDAgIFdvdXRlciBQYWVzZW4gPHdvdXRlckBrYW5nYXJvb3QubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IEZpeCBjb250cm9sbGluZyBvZiBmbG9hdCBwcm9wZXJ0aWVzICgjMzQ0ODQ5KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBXb3V0ZXIgUGFlc2VuICA8d291dGVyIGF0IGthbmdhcm9vdCBuZXQ+CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpOgoJICBGaXggY29udHJvbGxpbmcgb2YgZmxvYXQgcHJvcGVydGllcyAoIzM0NDg0OSkuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIChnc3RfdGVzdF9tb25vX3NvdXJjZV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3Rlc3RfbW9ub19zb3VyY2Vfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF90ZXN0X21vbm9fc291cmNlX2NsYXNzX2luaXQpLCAoR1NUX1NUQVJUX1RFU1QpOgoJICBXaGlsZSB3ZSdyZSBhdCBpdCwgYWRkIHNvbWUgZmxvYXQgc3R1ZmYgdG8gdW5pdCB0ZXN0LgoKMjAwNi0wNi0xMyAxOToyNDozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzLzogYWRkIGEgZ2RwIGltYWdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICAqIGRvY3MvaW1hZ2VzL2dkcC1oZWFkZXIuc3ZnOgoJICBhZGQgYSBnZHAgaW1hZ2UKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL2dkcC1oZWFkZXIucG5nOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgYWRkIGl0IHRvIHRoZSBBUEkgZG9jcwoJICAqIGRvY3MvbWFudWFsL2ludHJvLW1vdGl2YXRpb24ueG1sOgoJICBmaXggdHlwbwoKMjAwNi0wNi0xMyAxNjo0MTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogSWYgdGhlIGZvcmsoKSdlZCBjaGlsZCBwcm9jZXNzIGNhbid0IHdyaXRlIHRoZSB1cGRhdGVkIHJlZ2lzdHJ5IGNhY2hlIGZpbGUgdG8gZGlzayBmb3Igc29tZSByZWFzb24sIG1ha2UgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChzY2FuX2FuZF91cGRhdGVfcmVnaXN0cnkpLCAoaW5pdF9wb3N0KToKCSAgSWYgdGhlIGZvcmsoKSdlZCBjaGlsZCBwcm9jZXNzIGNhbid0IHdyaXRlIHRoZSB1cGRhdGVkIHJlZ2lzdHJ5IGNhY2hlCgkgIGZpbGUgdG8gZGlzayBmb3Igc29tZSByZWFzb24sIG1ha2UgaXQgZXhpdCB3aXRoIGEgZmFpbHVyZSBleGl0IGNvZGUsCgkgIHNvIHRoYXQgdGhlIHBhcmVudCBjYW4gdGhlbiByZS1zY2FuIHRoZSBwbHVnaW5zIGl0c2VsZiBhbmQgdXBkYXRlIHRoZQoJICByZWdpc3RyeSBzdHJ1Y3R1cmVzIGluIG1lbW9yeSBhbmQgd29yayB3aXRoIHRoYXQgKHJhdGhlciB0aGFuIGZhaWxpbmcKCSAgd2hlbiBjcmVhdGluZyBlbGVtZW50cyBiZWNhdXNlIHNlZW1pbmdseSBubyBwbHVnaW5zIGFyZSBhdmFpbGFibGUpLgoJICBSZWZhY3RvciByZWdpc3RyeSBzY2FubmluZyBjb2RlIGludG8gc2VwYXJhdGUgZnVuY3Rpb24gZm9yIHRoaXMgYW5kCgkgIGFsc28gc2VwYXJhdGUgZm9yaygpIGFuZCBub24tZm9yaygpIGNvZGUgcGF0aHMuIEZpeGVzICMzNDQ3NDguCgoyMDA2LTA2LTEzIDE2OjI0OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6IEZpeCB3cm9uZyBQbHVnaW5EZXNjLiBGaXhlcyAjMzQ0NzU1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgRml4IHdyb25nIFBsdWdpbkRlc2MuIEZpeGVzICMzNDQ3NTUuCgoyMDA2LTA2LTEzIDEzOjMwOjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IEZpeCBzaWxseSBidWcgdGhhdCBwcmV2ZW50ZWQgdXMgZnJvbSBjcmVhdGluZyB+Ly5nc3RyZWFtZXItMC4xMCBhbmQgd3JpdGluZyB0aGUgcmVnaXN0cnkgaW4gb25lLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAoZ3N0X3JlZ2lzdHJ5X3htbF93cml0ZV9jYWNoZSk6CgkgIEZpeCBzaWxseSBidWcgdGhhdCBwcmV2ZW50ZWQgdXMgZnJvbSBjcmVhdGluZwoJICB+Ly5nc3RyZWFtZXItMC4xMCBhbmQgd3JpdGluZyB0aGUgcmVnaXN0cnkgaW4gb25lCgkgIGdvICh0aGUgZmlyc3QgY2FsbCB0byBnX21rc3RlbXAoKSB3b3VsZCBvdmVyd3JpdGUgdGhlCgkgIHBsYWNlaG9sZGVyIGluIHRoZSB0ZW1wbGF0ZSBzdHJpbmcsIHNvIHRoZSBzZWNvbmQgY2FsbAoJICB0byBnX21rc3RlbXAoKSBhZnRlciBjcmVhdGluZyB0aGUgbWlzc2luZyBkaXJlY3RvcnkKCSAgd291bGQgdGhlbiBlcnJvciBvdXQgd2l0aCAnaW52YWxpZCBhcmd1bWVudCcpLgoKMjAwNi0wNi0xMyAxMToxNzowMiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3QuYzogRnJlZSBzdHJpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIEZyZWUgc3RyaW5nLgoKMjAwNi0wNi0xMyAwODoyMDoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiByZW1vdmUgR0xpYiAyLjYgY29tcGF0aWJpbGl0eSBjb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6CgkgICogZ3N0L2dsaWItY29tcGF0Lmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2VyaWFsaXplX2ZsYWdzKToKCSAgcmVtb3ZlIEdMaWIgMi42IGNvbXBhdGliaWxpdHkgY29kZQoKMjAwNi0wNi0xMiAxNjo1MDowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9wYXJzZS9NYWtlZmlsZS5hbTogRml4IGJ1aWxkIHdpdGggJ21ha2UgLWogTicgZXZlbiBtb3JlICgjMzQwMDE2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBGaXggYnVpbGQgd2l0aCAnbWFrZSAtaiBOJyBldmVuIG1vcmUgKCMzNDAwMTYpLgoKMjAwNi0wNi0xMiAwOTozNzo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEZpeCBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBGaXggZG9jcy4KCjIwMDYtMDYtMTIgMDk6Mjk6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBVc2UgR19VTkxJS0VMWSB0byBoZWxwIHRoZSBjb21waWxlciBhIGJpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9kdXJhdGlvbiksCgkgIChnc3Rfc2VnbWVudF9zZXRfbGFzdF9zdG9wKSwgKGdzdF9zZWdtZW50X3NldF9zZWVrKSwKCSAgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwpLCAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLAoJICAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKSwgKGdzdF9zZWdtZW50X2NsaXApOgoJICBVc2UgR19VTkxJS0VMWSB0byBoZWxwIHRoZSBjb21waWxlciBhIGJpdC4KCjIwMDYtMDYtMTIgMDk6Mjg6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHNvbmljcHVsc2UuZGU+CgoJICBnc3QvOiBjb25zdGlmeSBxdWFyayByZWdpc3RyYXRpb24gc3RyaW5ncy4gRml4ZXMgIzM0NDExNQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFN0ZWZhbiBLb3N0IDxlbnNvbmljIGF0IHNvbmljcHVsc2UgZG90IGRlPgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2hhaW5fdW5jaGVja2VkKSwgKGdzdF9wYWRfY2hhaW4pLAoJICAoZ3N0X3BhZF9wdXNoKToKCSAgY29uc3RpZnkgcXVhcmsgcmVnaXN0cmF0aW9uIHN0cmluZ3MuIEZpeGVzICMzNDQxMTUKCSAgQXZvaWQgdW5uZWVkZWQgdHlwZSBjaGVja2luZyBpcyBfcGFkX3B1c2goKSBieSBpbnRlcm5hbGx5CgkgIGNhbGxpbmcgZ3N0X3BhZF9jaGFpbl91bmNoZWNrZWQoKS4KCjIwMDYtMDYtMTIgMDk6MjM6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IEluaXQgX3R5cGUgZm9yIGNvbnNpc3RlbmN5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2dldF90eXBlKSwgKGdzdF9idWZmZXJfZmluYWxpemUpLAoJICAoX2dzdF9idWZmZXJfY29weSksIChnc3RfYnVmZmVyX2lzX21ldGFkYXRhX3dyaXRhYmxlKSwKCSAgKGdzdF9zdWJidWZmZXJfZmluYWxpemUpLCAoZ3N0X2J1ZmZlcl9jcmVhdGVfc3ViKSwKCSAgKGdzdF9idWZmZXJfaXNfc3Bhbl9mYXN0KSwgKGdzdF9idWZmZXJfc3Bhbik6CgkgIEluaXQgX3R5cGUgZm9yIGNvbnNpc3RlbmN5LgoJICBVc2UgX0ZMQUdTIG1hY3JvIHRvIGF2b2lkIHR5cGUgY2hlY2suCgkgIEF2b2lkIHVubmVlZGVkIHR5cGUgY2hlY2tzIGluIHN1YmJ1ZmVyIGNvZGUuCgoyMDA2LTA2LTEyIDA5OjE3OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogVXNlIF9DQVNUIG1hY3JvcyB0byBhdm9pZCB1bm5lZWRlZCB0eXBlIGNoZWNraW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfZGVidWdfaGVscCk6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9maW5hbGl6ZSksIChnc3RfcGx1Z2luX2xpc3RfZnJlZSk6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9maW5hbGl6ZSksCgkgIChnc3RfcGx1Z2luX2ZlYXR1cmVfbGlzdF9mcmVlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9hZGRfZmVhdHVyZSksIChnc3RfcmVnaXN0cnlfcGx1Z2luX2ZpbHRlciksCgkgIChnc3RfcmVnaXN0cnlfZmVhdHVyZV9maWx0ZXIpLCAoZ3N0X3JlZ2lzdHJ5X2ZpbmRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9maW5kX2ZlYXR1cmUpLCAoZ3N0X3JlZ2lzdHJ5X2dldF9wbHVnaW5fbGlzdCksCgkgIChnc3RfcmVnaXN0cnlfbG9va3VwX2ZlYXR1cmVfbG9ja2VkKSwgKGdzdF9yZWdpc3RyeV9sb29rdXBfbG9ja2VkKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfeG1sX3JlYWRfY2FjaGUpLCAoZ3N0X3JlZ2lzdHJ5X3htbF93cml0ZV9jYWNoZSk6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF91bnJlZiksCgkgIChnc3RfbWluaV9vYmplY3RfcmVwbGFjZSksIChnc3RfdmFsdWVfbWluaV9vYmplY3RfZnJlZSksCgkgIChnc3RfdmFsdWVfbWluaV9vYmplY3RfY29weSk6CgkgIFVzZSBfQ0FTVCBtYWNyb3MgdG8gYXZvaWQgdW5uZWVkZWQgdHlwZSBjaGVja2luZy4KCSAgQWRkZWQgc29tZSBtb3JlIEdfVU5MSUtFTFkuCgoyMDA2LTA2LTEyIDA5OjExOjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5oOiBBdm9pZCB1bm5lZWRlZCB0eXBlIGNoZWNraW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEF2b2lkIHVubmVlZGVkIHR5cGUgY2hlY2tpbmcuCgkgIEFQSTogR1NUX0JVRkZFUl9JU19ESVNDT05UCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgQXZvaWQgdHlwZSBjaGVjayBpbiBmbGFnIGFjY2Vzc29yLgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICBBZGQgX0NBU1QgbWFjcm9zLgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfQ0FTVAoJICBBUEk6IEdTVF9QTFVHSU5fQ0FTVAoJICBBUEk6IEdTVF9QTFVHSU5fRkVBVFVSRV9DQVNUCgoyMDA2LTA2LTEyIDA5OjA2OjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBBZGQgR19VTkxJS0VMWSBpbiB0eXBlIHJlZ2lzdHJhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9nZXRfdHlwZSksIChnc3Rfb2JqZWN0X3JlZiksCgkgIChnc3Rfb2JqZWN0X3VucmVmKToKCSAgQWRkIEdfVU5MSUtFTFkgaW4gdHlwZSByZWdpc3RyYXRpb24uCgkgIEF2b2lkIHR5cGUgY2hlY2sgaW4gX3JlZi9fdW5yZWYgc2luY2UgdGhhdCBpcyBhbHNvCgkgIGRvbmUgaW4gZ2xpYi4KCjIwMDYtMDYtMTIgMDg6NTU6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgR19VTkxJS0VMWSBpbiB0eXBlIHJlZ2lzdHJhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6IChnc3RfZ19lcnJvcl9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IChnc3RfcGFkX3RlbXBsYXRlX2dldF90eXBlKSwKCSAgKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoZ3N0X3RhZ19saXN0X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6IChnc3RfdGFnX3NldHRlcl9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0dXJpLmM6IChnc3RfdXJpX2hhbmRsZXJfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X2RhdGVfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3R4bWwuYzogKGdzdF94bWxfZ2V0X3R5cGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3R5cGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3R5cGUpOgoJICBBZGQgR19VTkxJS0VMWSBpbiB0eXBlIHJlZ2lzdHJhdGlvbi4KCjIwMDYtMDYtMTIgMDg6NTE6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBQcm9wZXJseSBwcmludCBlbnVtIHZhbHVlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X3NpZ25hbF9pbmZvKToKCSAgUHJvcGVybHkgcHJpbnQgZW51bSB2YWx1ZXMuCgoyMDA2LTA2LTEyIDA4OjQ3OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGluZm8uKjogQWRkIHNvbWUgR19bVU5dTElLRUxZLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoZ3N0X2RlYnVnX3NldF9hY3RpdmUpLAoJICAoZ3N0X2RlYnVnX2NhdGVnb3J5X3NldF90aHJlc2hvbGQpLCAoX2dzdF9kZWJ1Z19uYW1lb2ZfZnVuY3B0cik6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgQWRkIHNvbWUgR19bVU5dTElLRUxZLgoJICBNYWludGFpbiBfX2dzdF9kZWJ1Z19taW4gdG8gYXZvaWQgZm9ybWF0dGluZyB0aGUgYXJndW1lbnRzIG9mCgkgIGRlYnVnIG1lc3NhZ2VzIHRoYXQgd2lsbCBiZSBkcm9wcGVkIGFueXdheSB0byBhdm9pZCBhIGxvdCBvZgoJICBvdmVyaGVhZCBmcm9tIHRoZSBkZWJ1Z2dpbmcgc3lzdGVtLgoKMjAwNi0wNi0xMSAyMDozNzo0MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcG8vUE9URklMRVMuKjogYWRkIG1pc3NpbmcgZmlsZXMgY29udGFpbmluZyB0cmFuc2xhdGFibGUgc3RyaW5ncywgdGVsbCBpbnRsdG9vbCBhYm91dCBvbmUgZXhjZXB0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL1BPVEZJTEVTLmluOgoJICAqIHBvL1BPVEZJTEVTLnNraXA6CgkgIGFkZCBtaXNzaW5nIGZpbGVzIGNvbnRhaW5pbmcgdHJhbnNsYXRhYmxlIHN0cmluZ3MsIHRlbGwgaW50bHRvb2wgYWJvdXQKCSAgb25lIGV4Y2VwdGlvbgoKMjAwNi0wNi0xMSAxNzoyODoxOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svbGlicy8uY3ZzaWdub3JlOiBhZGQgdGVzdC1iaW5hcnkgdG8gaWdub3JlIGxpc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy8uY3ZzaWdub3JlOgoJICBhZGQgdGVzdC1iaW5hcnkgdG8gaWdub3JlIGxpc3QKCjIwMDYtMDYtMTEgMTc6MDM6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6IHJlb3JkZXIgKHB1dCBkcCBpbnRvIGEgY2hhcHRlcikgYW5kIGluZGVudAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICByZW9yZGVyIChwdXQgZHAgaW50byBhIGNoYXB0ZXIpIGFuZCBpbmRlbnQKCjIwMDYtMDYtMTEgMTE6NTY6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBkb2NzL3JhbmRvbS9hdXRvdG9vbHM6CgkgIGFkZCBub3RlcyBvbiBvdXIgYXV0b3Rvb2xzIHNldHVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbm90ZXMgb24gb3VyIGF1dG90b29scyBzZXR1cAoKMjAwNi0wNi0xMCAxNzozMjo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC4xMC44ID09PQoKMjAwNi0wNi0xMCAxNzowNjozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuMTAuOAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuMTAuOAoKMjAwNi0wNi0xMCAxMTo1MTo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0LmM6IG1vdmUgcGlkIGRlY2xhcmF0aW9uIHRvIGRlY2xhcmF0aW9uIGJsb2NrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIG1vdmUgcGlkIGRlY2xhcmF0aW9uIHRvIGRlY2xhcmF0aW9uIGJsb2NrCgoyMDA2LTA2LTEwIDExOjQ3OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3QuYzogdXNlIF9leGl0KCkgaW5zdGVhZCBvZiBleGl0KCkgaW4gb3VyIGZvcmtlZCBjaGlsZDsgdGhpcyBlbnN1cmVzIHRoYXQgbm9uZSBvZiB0aGUgcmVnaXN0ZXJlZCBleGl0IGhhbmRsZXJzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICB1c2UgX2V4aXQoKSBpbnN0ZWFkIG9mIGV4aXQoKSBpbiBvdXIgZm9ya2VkIGNoaWxkOyB0aGlzIGVuc3VyZXMKCSAgdGhhdCBub25lIG9mIHRoZSByZWdpc3RlcmVkIGV4aXQgaGFuZGxlcnMgZnJvbSB3aGF0ZXZlciBpcyB1c2luZwoJICBHU3RyZWFtZXIgZ2V0IGV4ZWN1dGVkLiAgVGhpcyBmaXhlcyBnbm9tZS1taXhlci1hcHBsZXQgZmFpbGluZwoJICB0byBsb2FkLCBiZWNhdXNlIE9SQml0IHdvdWxkIHNodXQgZG93bi4KCSAgU3BvdHRlZCBieTogRWR3YXJkIEhlcnZleSAgPGVkd2FyZEBmbHVlbmRvLmNvbT4KCSAgRml4IHN1Z2dlc3RlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICBGaXhlcyAjMzQ0NDc0CgoyMDA2LTA2LTA5IDE4OjUyOjAyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogYmFjayB0byBUUlVOSwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNi0wOSAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gVFJVTksKCj09PSByZWxlYXNlIDAuMTAuNyA9PT0KCjIwMDYtMDYtMDkgMTg6NDk6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuc2lnbmFsczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjEwLjcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjEwLjcKCjIwMDYtMDYtMDcgMTA6NDY6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgMC4xMC42LjIgcHJlcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogcG8vYWYucG86CgkgICogcG8vYXoucG86CgkgICogcG8vYmcucG86CgkgICogcG8vY2EucG86CgkgICogcG8vY3MucG86CgkgICogcG8vZGUucG86CgkgICogcG8vZW5fR0IucG86CgkgICogcG8vZnIucG86CgkgICogcG8vaXQucG86CgkgICogcG8vbmIucG86CgkgICogcG8vbmwucG86CgkgICogcG8vcnUucG86CgkgICogcG8vc3EucG86CgkgICogcG8vc3IucG86CgkgICogcG8vc3YucG86CgkgICogcG8vdHIucG86CgkgICogcG8vdWsucG86CgkgICogcG8vdmkucG86CgkgICogcG8vemhfQ04ucG86CgkgICogcG8vemhfVFcucG86CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAwLjEwLjYuMiBwcmVyZWxlYXNlCgoyMDA2LTA2LTA3IDA4OjM4OjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRml4IGxlYWsgc3BvdHRlZCBieSBjb3Zlcml0eSBjaGVja2VyLiBGaXhlcyAjMzQzODI3CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2d0eXBlX3Jlc29sdmVyKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAocHJpbnRfcGx1Z2luX2luZm8pOgoJICBGaXggbGVhayBzcG90dGVkIGJ5IGNvdmVyaXR5IGNoZWNrZXIuIEZpeGVzICMzNDM4MjcKCSAgRml4IGFub3RoZXIgb3RoZXIgbGVhayBmb3VuZCBieSBwYW9sbyBib3JlbGxpLgoKMjAwNi0wNi0wNiAxNjo1Mjo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIGlmZGVmIExPQURTQVZFCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZmRlZiBMT0FEU0FWRQoKMjAwNi0wNi0wNiAxNToxODoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2xpYnMvdG1wbC9nc3Rjb250cm9sLnNnbWw6CgkgIHJlbW92ZSBvbGQgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG9sZCBkb2NzCgoyMDA2LTA2LTA2IDE0OjUxOjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICB0ZXJtaW5hdGUgaWZkZWYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlcm1pbmF0ZSBpZmRlZgoKMjAwNi0wNi0wNiAxNDozMjo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RieXRlc3RyZWFtLnNnbWw6CgkgIHJlbW92ZSB1bnVzZWQgdG1wbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHVudXNlZCB0bXBsCgoyMDA2LTA2LTA2IDE0OjI5OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIGFkZCBub3RlIHRvIGRvY3MgYWJvdXQgR0RQIHZlcnNpb25pbmc7IHJlbW92ZSB0bXBsIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBub3RlIHRvIGRvY3MgYWJvdXQgR0RQIHZlcnNpb25pbmc7IHJlbW92ZSB0bXBsIGZpbGUKCjIwMDYtMDYtMDYgMTQ6MjQ6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC4qOiBBUEk6IGFkZCBhIEdzdERQUGFja2V0aXplciBvYmplY3QsIGFuZCBjcmVhdGUvZnJlZSBmdW5jdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX2hlYWRlcl9mcm9tX2J1ZmZlcl9hbnkpLCAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHNfYW55KSwKCSAgKGdzdF9kcF92ZXJzaW9uX2dldF90eXBlKSwgKGdzdF9kcF9pbml0KSwKCSAgKGdzdF9kcF9oZWFkZXJfZnJvbV9idWZmZXIpLCAoZ3N0X2RwX2hlYWRlcl9mcm9tX2J1ZmZlcl8xXzApLAoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHMpLCAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHNfMV8wKSwKCSAgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCksIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnRfMV8wKSwKCSAgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldF8wXzIpLCAoZ3N0X2RwX2V2ZW50X2Zyb21fcGFja2V0XzFfMCksCgkgIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXQpLCAoZ3N0X2RwX3BhY2tldGl6ZXJfbmV3KSwKCSAgKGdzdF9kcF9wYWNrZXRpemVyX2ZyZWUpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgQVBJOiBhZGQgYSBHc3REUFBhY2tldGl6ZXIgb2JqZWN0LCBhbmQgY3JlYXRlL2ZyZWUgZnVuY3Rpb25zCgkgIEFQSTogYWRkIEdzdERQVmVyc2lvbiBlbnVtCgkgIEFkZCAxLjAgZXZlbnQgZnVuY3Rpb24gdGhhdCB1c2VzIHRoZSBzdHJpbmcgc2VyaWFsaXphdGlvbgoJICBTZXJpYWxpemUgbW9yZSB1c2VmdWwgYnVmZmVyIGZsYWdzCgkgIEZpeGVzICMzNDM5ODgKCjIwMDYtMDYtMDYgMTQ6MjE6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkgIGFkZCBzeW1ib2wKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBzeW1ib2wKCjIwMDYtMDYtMDYgMTQ6MTY6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICB3aWR0aCByZXNwZWN0YXRpb25pemluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2lkdGggcmVzcGVjdGF0aW9uaXppbmcKCjIwMDYtMDYtMDYgMTQ6MTA6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svOiBhZGQgcHBjNjQgc3RydWN0dXJlIHNpemVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjNjQuaDoKCSAgYWRkIHBwYzY0IHN0cnVjdHVyZSBzaXplcwoKMjAwNi0wNi0wNiAxMzo1OToxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay86IGdlbmVyYXRlIGFuZCBhZGQgc3RydWN0dXJlIHNpemUgbGlzdHMgZm9yIHg4Nl82NAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF94ODZfNjQuaDoKCSAgZ2VuZXJhdGUgYW5kIGFkZCBzdHJ1Y3R1cmUgc2l6ZSBsaXN0cyBmb3IgeDg2XzY0CgoyMDA2LTA2LTA2IDEzOjUzOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNvc21ldGljcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29zbWV0aWNzCgoyMDA2LTA2LTA2IDEzOjQ4OjIwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLio6IGZhY3RvciBvdXQgdGhlIG1ldGhvZCBmcm9tIHRlc3RzIHRoYXQgY2hlY2tzIHNpemUgb2Ygc3RydWN0dXJlcywgYW5kIGFkZCBjb2RlIHRvIGdlbmVyYXRlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX2FiaV9saXN0KToKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBmYWN0b3Igb3V0IHRoZSBtZXRob2QgZnJvbSB0ZXN0cyB0aGF0IGNoZWNrcyBzaXplIG9mIHN0cnVjdHVyZXMsCgkgIGFuZCBhZGQgY29kZSB0byBnZW5lcmF0ZSB0aGUgaGVhZGVyIGNvbnRhaW5pbmcgdGhlc2Ugc2l6ZXMKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaTM4Ni5oOgoJICB1c2UgaXQKCjIwMDYtMDYtMDYgMTM6MTE6MDMgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RzZWdtZW50Lmg6IERvbid0IHVzZSBjKystc3R5bGUgY29tbWVudHMsIGZpeGVzICMzNDM5MjkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgRG9uJ3QgdXNlIGMrKy1zdHlsZSBjb21tZW50cywgZml4ZXMgIzM0MzkyOQoKMjAwNi0wNi0wNiAwOTo0Nzo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICB3aGl0ZXNwYWNlL3dpZHRoIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlL3dpZHRoIGZpeGVzCgoyMDA2LTA2LTA2IDA4OjUwOjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSBmaXhlcwoKMjAwNi0wNi0wNiAwODo1MDoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGdzdC9nc3RlcnJvci5jOgoJICByZW1vdmUgYW4gZXh0cmEgc3BhY2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBhbiBleHRyYSBzcGFjZQoKMjAwNi0wNi0wNSAxMzowNTozNyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3QuYzogcGx1Z2luX3BhdGhzIGlzIG5vdCB1c2VkIGlmIHdlIGJ1aWxkIHdpdGhvdXQgcmVnaXN0cnkgc3VwcG9ydC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBwbHVnaW5fcGF0aHMgaXMgbm90IHVzZWQgaWYgd2UgYnVpbGQgd2l0aG91dCByZWdpc3RyeSBzdXBwb3J0LgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9jb3B5KToKCSAgX2NvcHkoKSB3YXMgYWx3YXlzIHJldHVybmluZyBOVUxMLi4uCgoyMDA2LTA2LTA1IDEyOjU1OjU4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogX2NvcHkoKSB3YXMgYWx3YXlzIHJldHVybmluZyBOVUxMLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9jb3B5KToKCSAgX2NvcHkoKSB3YXMgYWx3YXlzIHJldHVybmluZyBOVUxMLi4uCgoyMDA2LTA2LTAyIDE2OjQ2OjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogZmFjdG9yIG91dCBDUkMgY29kZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyKSwgKGdzdF9kcF9wYWNrZXRfZnJvbV9jYXBzKSwKCSAgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCk6CgkgIGZhY3RvciBvdXQgQ1JDIGNvZGUKCjIwMDYtMDYtMDIgMTY6NDU6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogbWFrZSBzdXJlIHdlIHVuc2V0IGNhcHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja190ZWFyZG93bl9zcmNfcGFkKToKCSAgbWFrZSBzdXJlIHdlIHVuc2V0IGNhcHMKCjIwMDYtMDYtMDIgMTY6NDE6MDIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLio6IEFkZCBhIGNvbmQvbXV0ZXggdG8gdGhlIGNoZWNrIHN1cHBvcnQgbGliLCBzaWduYWwgdGhpcyB3aGVuZXZlciB3ZSBhZGQgdG8gdGhlIGJ1ZmZlcnMgbGlzdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX2luaXQpLAoJICAoZ3N0X2NoZWNrX2NoYWluX2Z1bmMpOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEFkZCBhIGNvbmQvbXV0ZXggdG8gdGhlIGNoZWNrIHN1cHBvcnQgbGliLCBzaWduYWwgdGhpcyB3aGVuZXZlciB3ZQoJICBhZGQgdG8gdGhlIGJ1ZmZlcnMgbGlzdC4gVGhpcyB3aWxsIGFsbG93IHRlc3RzIHRvIG5vdCBidXN5LXdhaXQgb24KCSAgdGhlIGJ1ZmZlci1saXN0LgoKMjAwNi0wNi0wMiAxMDo1ODo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IGZhY3RvciBvdXQgc29tZSBjb21tb24gaGVhZGVyIGluaXQgY29kZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyKSwgKGdzdF9kcF9wYWNrZXRfZnJvbV9jYXBzKSwKCSAgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCk6CgkgIGZhY3RvciBvdXQgc29tZSBjb21tb24gaGVhZGVyIGluaXQgY29kZQoKMjAwNi0wNi0wMiAxMDowODozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBBUEk6IG1ha2UgZ3N0X2RwX2NyYygpIHB1YmxpYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogKGdzdF9kcF9jcmMpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgQVBJOiBtYWtlIGdzdF9kcF9jcmMoKSBwdWJsaWMKCjIwMDYtMDYtMDIgMDk6MTM6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGRlYnVnIGNoYW5nZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGVidWcgY2hhbmdlCgoyMDA2LTA2LTAxIDE4OjMwOjE5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6IGNvbmRpdGlvbmFsbHkgcmVnaXN0ZXIgZmlsZWluZGV4ZXIgKGZpeGVzICMzNDM1OTgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzogKHBsdWdpbl9pbml0KToKCSAgY29uZGl0aW9uYWxseSByZWdpc3RlciBmaWxlaW5kZXhlciAoZml4ZXMgIzM0MzU5OCkKCjIwMDYtMDYtMDEgMTg6MjI6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R0YWdzZXR0ZXIuaDogQ2FuJ3QgY2FzdCBpZmFjZXMgdG8gYSBjbGFzcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkgIENhbid0IGNhc3QgaWZhY2VzIHRvIGEgY2xhc3MKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5oOgoJICBGaXggbW9yZSBnb2JqZWN0IG1hY3Jvczogb2JqPC0+a2xhc3MsIEdzdFhYWDwtPkdzdFhYWENsYXNzCgoyMDA2LTA2LTAxIDExOjEzOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogbWFrZSBzdXJlIHdlIHplcm8gdGhlIHdob2xlIEFCSS1jb21wYXRpYmxlIGFyZWEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX2hlYWRlcl9mcm9tX2J1ZmZlcik6CgkgIG1ha2Ugc3VyZSB3ZSB6ZXJvIHRoZSB3aG9sZSBBQkktY29tcGF0aWJsZSBhcmVhCgoyMDA2LTA2LTAxIDA5OjAyOjIzICswMDAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyb0BubnZhLm9yZz4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogTWFrZSBzdXJlIHRoZSBFT1MgZmxhZyBpcyBjbGVhcmVkIGZyb20gcGFkcyBhZnRlciBhIGZsdXNoIG9yIHN0b3AuIEZpeGVzICMzNDM1MzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8gYXQgbm52YSBkb3Qgb3JnPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCk6CgkgIE1ha2Ugc3VyZSB0aGUgRU9TIGZsYWcgaXMgY2xlYXJlZCBmcm9tIHBhZHMgYWZ0ZXIgYSBmbHVzaAoJICBvciBzdG9wLiBGaXhlcyAjMzQzNTM4LgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3VpdGUpOgoJICBBZGRlZCB0ZXN0IGZvciBjb2xsZWN0cGFkcyByZXVzYWdlIGFmdGVyIEVPUy4KCjIwMDYtMDUtMzAgMjA6MjU6MDMgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3QuYzogc2V0ICNpbmNsdWRlIDxzeXMvd2FpdC5oPiBpbiBhICNpZmRlZiAjaWZkZWYgSEFWRV9GT1JLCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgc2V0ICNpbmNsdWRlIDxzeXMvd2FpdC5oPiBpbiBhICNpZmRlZiAjaWZkZWYgSEFWRV9GT1JLCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBleHBvcnQgZ3N0X2NvbGxlY3RfcGFkc19zZXRfZmx1c2hpbmcKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXhwb3J0IGdzdF9wYWRfc2V0X2FjY2VwdGNhcHNfZnVuY3Rpb24sIGdzdF9zdHJ1Y3R1cmVfZW1wdHlfbmV3LAoJICBnc3RfdmFsdWVfZnJhY3Rpb25fbXVsdGlwbHkKCSAgKiB3aW4zMi92czYvZ3N0X2luc3BlY3QuZHNwOgoJICBhZGQgYSBsaW5rIHRvIGludGwubGliCgoyMDA2LTA1LTMwIDE1OjU1OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgYSBwYWQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBjb2xsZWN0aW9uIHRoYXQgY291bGQgY2F1c2UgdGhlIG90aGVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKToKCSAgSGFuZGxlIHRoZSBjYXNlIHdoZXJlIGEgcGFkIGlzIHJlbW92ZWQgZnJvbSB0aGUgY29sbGVjdGlvbgoJICB0aGF0IGNvdWxkIGNhdXNlIHRoZSBvdGhlciBwYWRzIHRvIGJlY29tZSBjb2xsZWN0YWJsZS4KCjIwMDYtMDUtMzAgMTU6NTM6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBDbGFyaWZ5IHRoZSB1c2Ugb2YgX3JlbGVhc2VfcmVxdWVzdF9wYWQoKSBhbmQgX2dldF9yZXF1ZXN0X3BhZCgpIGEgYml0IGJldHRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgQ2xhcmlmeSB0aGUgdXNlIG9mIF9yZWxlYXNlX3JlcXVlc3RfcGFkKCkgYW5kCgkgIF9nZXRfcmVxdWVzdF9wYWQoKSBhIGJpdCBiZXR0ZXIuCgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9wZWVrKSwKCSAgKGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKToKCSAgRml4IHNvbWUgZG9jIGFuZCBjb21tZW50IHR5cG9zLgoKMjAwNi0wNS0zMCAxNDo0MzozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzLzogYWRkIGRlY2xhcmVkIHN5bWJvbHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBhZGQgZGVjbGFyZWQgc3ltYm9scwoKMjAwNi0wNS0zMCAxNDo0MToxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHVwZGF0ZSBwbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHBvIGZpbGVzCgoyMDA2LTA1LTMwIDE0OjQwOjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBmaXggYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBidWlsZAoKMjAwNi0wNS0zMCAxNDowMzo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGFkZGVkIEhBVkVfRk9SSwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkZWQgSEFWRV9GT1JLCgoyMDA2LTA1LTMwIDEyOjA0OjI5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiBBZGQgZGVidWcgdGhhdCBjYW4gYmUgZW5hYmxlZCB1c2luZyBhICNkZWZpbmUgYXQgdGhlIHRvcCBvZiB0aGUgZmlsZSwgZm9yIGR1bXBpbmcgc3RhdHMgYWJvdXQgaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF91bmxvY2tlZCk6CgkgIEFkZCBkZWJ1ZyB0aGF0IGNhbiBiZSBlbmFibGVkIHVzaW5nIGEgI2RlZmluZSBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlLAoJICBmb3IgZHVtcGluZyBzdGF0cyBhYm91dCBob3cgbGF0ZS9lYXJseSB3ZSB3ZXJlIHdoZW4gd2FraW5nIHVwIGZyb20KCSAgd2FpdGluZyBvbiB0aGUgY2xvY2suCgoyMDA2LTA1LTMwIDExOjQzOjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBXaGVuIHJlYnVpbGRpbmcgdGhlIHBhZCBsaXN0LCBkb24ndCBsZWFrIHRoZSBwcmV2aW91cyBsaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2NoZWNrX3BhZHMpOgoJICBXaGVuIHJlYnVpbGRpbmcgdGhlIHBhZCBsaXN0LCBkb24ndCBsZWFrIHRoZSBwcmV2aW91cyBsaXN0LgoKMjAwNi0wNS0zMCAxMDo1Nzo0NCArMDAwMCAgTHV0eiBNdWVsbGVyIDxsdXR6QHRvcGZyb3NlLmRlPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFB1Ymxpc2ggc3VwcG9ydGVkIHF1ZXJ5IHR5cGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEx1dHogTXVlbGxlciA8bHV0eiBhdCB0b3Bmcm9zZSBkb3QgZGU+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3F1ZXJ5X3R5cGVzKSwgKGdzdF9iYXNlX3NyY191cGRhdGVfbGVuZ3RoKToKCSAgUHVibGlzaCBzdXBwb3J0ZWQgcXVlcnkgdHlwZXMuCgkgIFVwZGF0ZSBsYXN0X3N0b3AgZmllbGQgaW4gZ2V0X3JhbmdlIG1vZGUgc28gdGhlIHBvc2l0aW9uCgkgIHF1ZXJ5IHdvcmtzLiBGaXhlcyAjMzQyMzIxLgoKMjAwNi0wNS0zMCAxMDoxMjowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIEdTVF9UQUdfUFJFVklFV19JTUFHRSAoIzM0MzM0MSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFQSTogYWRkIEdTVF9UQUdfUFJFVklFV19JTUFHRSAoIzM0MzM0MSkuCgoyMDA2LTA1LTMwIDA5OjQyOjA5ICswMDAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyb0BubnZhLm9yZz4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogVW5sb2NrIG11dGV4IHdoZW4gcmVtb3ZpbmcgYW4gdW5rbm93biBwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8gYXQgbm52YSBkb3Qgb3JnPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCk6CgkgIFVubG9jayBtdXRleCB3aGVuIHJlbW92aW5nIGFuIHVua25vd24gcGFkLgoJICBGaXhlcyAjMzQzMzM0LgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzogKGNvbGxlY3RlZF9jYiksIChwdXNoX2J1ZmZlciksCgkgIChwdXNoX2V2ZW50KSwgKHNldHVwKSwgKHRlYXJkb3duKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3VpdGUpLCAobWFpbik6CgkgIEFkZGVkIGNvbGxlY3BhZHMgY2hlY2ssIGRpc2FibGVkIGZvciBub3cgYXMgY2hlY2sgY3Jhc2hlcyBmb3IKCSAgc29tZSByZWFzb24uCgoyMDA2LTA1LTI5IDE3OjIwOjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBEb24ndCBsZWFrIHBhZHMgbGlzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfZmluYWxpemUpOgoJICBEb24ndCBsZWFrIHBhZHMgbGlzdHMuCgoyMDA2LTA1LTI5IDE2OjAwOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQVBJOiBnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc2V0X2ZsdXNoaW5nX3VubG9ja2VkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc2V0X2ZsdXNoaW5nKSwgKGdzdF9jb2xsZWN0X3BhZHNfc3RhcnQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdG9wKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIEFQSTogZ3N0X2NvbGxlY3RfcGFkc19zZXRfZmx1c2hpbmcKCSAgQWRkZWQgYXBpIHRvIHNldCB0aGUgcGFkcyB0byBmbHVzaGluZywgdXNlZnVsbCBmb3Igc2Vla2luZwoJICBjb2RlIGluIGVsZW1lbnRzIHVzaW5nIGNvbGxlY3RwYWRzLgoJICBDbGVhciBzZWdtZW50IHdoZW4gcmVjZWl2aW5nIGEgZmx1c2guCgoyMDA2LTA1LTI5IDExOjUyOjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBEb24ndCBzY2FuIHJlZ2lzdHJ5IHBhdGhzIHBhc3NlZCB2aWEgLS1nc3QtcGx1Z2luLS1wYXRoIGltbWVkaWF0ZWx5ICh3aWxsIGNyYXNoLCBiZWNhdXNlIGFic29sdXRlbHkgbm90aGluLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGFkZF9wYXRoX2Z1bmMpLCAoaW5pdF9wb3N0KToKCSAgRG9uJ3Qgc2NhbiByZWdpc3RyeSBwYXRocyBwYXNzZWQgdmlhIC0tZ3N0LXBsdWdpbi0tcGF0aCBpbW1lZGlhdGVseQoJICAod2lsbCBjcmFzaCwgYmVjYXVzZSBhYnNvbHV0ZWx5IG5vdGhpbmcgaXMgc2V0IHVwIGFuZCBubyB0eXBlcyBhcmUKCSAgcmVnaXN0ZXJlZCBldGMuKTsgZG8gdGhpcyBsYXRlciBpbiBpbml0X3Bvc3QoKS4gRml4ZXMgIzM0MzA1Ny4KCjIwMDYtMDUtMjggMDk6MDk6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdC5jOiBpZiB3ZSBoYXZlIGZvcmssIGZvcmsgd2hpbGUgcmVhZGluZy9yZWJ1aWxkaW5nIHRoZSByZWdpc3RyeSBzbyB0aGUgcGFyZW50IGRvZXNuJ3QgdGFrZSB0aGUgaGl0IG9mIGhhdmluZyBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIGlmIHdlIGhhdmUgZm9yaywgZm9yayB3aGlsZSByZWFkaW5nL3JlYnVpbGRpbmcgdGhlIHJlZ2lzdHJ5CgkgIHNvIHRoZSBwYXJlbnQgZG9lc24ndCB0YWtlIHRoZSBoaXQgb2YgaGF2aW5nIGFsbCBwbHVnaW5zIGxvYWRlZAoJICBpbiBtZW1vcnkuICBGaXhlcyAjMzQyNzc3LgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQ2hlY2sgaWYgd2UgaGF2ZSBmb3JrKCkKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIG5vIGZvcmsoKSBvbiB3aW4zMgoKMjAwNi0wNS0yNiAxMzo1MjowMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogQWRkIGEgdXNlLW1tYXAgcHJvcGVydHkgdG8gZW5hYmxlIGVhc2llciB0ZXN0aW5nIG9mIGFsbCBjb2RlIHBhdGhzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmlsZV9zcmNfaW5pdCksIChnc3RfZmlsZV9zcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9maWxlX3NyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2ZpbGVfc3JjX3N0YXJ0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSAgQWRkIGEgdXNlLW1tYXAgcHJvcGVydHkgdG8gZW5hYmxlIGVhc2llciB0ZXN0aW5nIG9mIGFsbCBjb2RlIHBhdGhzLgoJICBCdW1wIHJhbmsgdG8gUFJJTUFSWSwgc28gZmlsZXNyYyBpcyB0aGUgcHJlZmVycmVkIGZpbGUgcmVhZGVyIGFuZCB1c2VkCgkgIGluIHRoZSBhYnNlbmNlIG9mIGdub21ldmZzc3JjLiAoQ2xvc2VzICMzNDA1MDEpCgoyMDA2LTA1LTI2IDEwOjM1OjM0ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogQWRkIG1pc3NpbmcgaW5jbHVkZSwgcmVtb3ZlcyB3YXJuaW5nIG9mIG5nZXR0ZXh0IG5vdCBiZWluZyBkZWZpbmVkIG9uIHNvbWUgYXJjaGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNS0yNiAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIEFkZCBtaXNzaW5nIGluY2x1ZGUsIHJlbW92ZXMgd2FybmluZyBvZiBuZ2V0dGV4dCBub3QgYmVpbmcgZGVmaW5lZCBvbgoJICBzb21lIGFyY2hlcy4KCjIwMDYtMDUtMjYgMDk6MTk6MjQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IEhhbmRsZSBOVUxMIGlucHV0IGFuZCBvdXRwdXQgcG9pbnRlcnMgc2lsZW50bHkgYXMgYSBmYWlsZWQgY29udmVyc2lvbiwgcmF0aGVyIHRoYW4gZ193YXJuaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZnJhY3Rpb24pOgoJICBIYW5kbGUgTlVMTCBpbnB1dCBhbmQgb3V0cHV0IHBvaW50ZXJzIHNpbGVudGx5IGFzIGEgZmFpbGVkIGNvbnZlcnNpb24sCgkgIHJhdGhlciB0aGFuIGdfd2FybmluZ3MuCgoyMDA2LTA1LTI1IDE1OjUyOjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IEluaXRpYWxpemUgdmFyaWFibGUgYmVmb3JlIHVzaW5nLiBGaXhlcyAjMzQyODIwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3N0YXJ0KToKCSAgSW5pdGlhbGl6ZSB2YXJpYWJsZSBiZWZvcmUgdXNpbmcuIEZpeGVzICMzNDI4MjAuCgoyMDA2LTA1LTI0IDE3OjExOjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBGaXggb2ZmLWJ5LW9uZSBidWcgdGhhdCB3b3VsZCBvbmx5IGFsbG93IHBlZWtzIG9mIE4tMSBieXRlcyBmcm9tIHRoZSBzdGFydCBldmVuIGlmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGJ1Zl9oZWxwZXJfZmluZF9wZWVrKToKCSAgRml4IG9mZi1ieS1vbmUgYnVnIHRoYXQgd291bGQgb25seSBhbGxvdyBwZWVrcyBvZiBOLTEgYnl0ZXMKCSAgZnJvbSB0aGUgc3RhcnQgZXZlbiBpZiB0aGUgYnVmZmVyIHRvIHR5cGVmaW5kIG9uIGNvbnRhaW5zCgkgIGluIGZhY3QgTiBieXRlcyBvZiBkYXRhIChtYWtlcyB2b3JiaXMgdHlwZWZpbmRpbmcgZnJvbSBhCgkgIHZvcmJpcyBpZGVudGlmaWNhdGlvbiBoZWFkZXIgYnVmZmVyIHdvcmspLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfdHlwZWZpbmRoZWxwZXJfc3VpdGUpLCAobWFpbiksIChmb29iYXJfdHlwZWZpbmQpLAoJICAocGx1Z2luX2luaXQpOgoJICBBZGQgdmVyeSBiYXNpYyB1bml0IHRlc3QgZm9yIGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9idWZmZXIoKQoJICB0aGF0IGNoZWNrcyBmb3IgdGhlIHByb2JsZW0gZml4ZWQgYWJvdmUuCgoyMDA2LTA1LTI0IDA5OjAwOjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJICBkb2MgaW5kZW50IGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jIGluZGVudCBmaXgKCjIwMDYtMDUtMjQgMDk6MDA6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBtYXJrIG1vcmUgc3RyaW5ncyBmb3IgdHJhbnNsYXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1hcmsgbW9yZSBzdHJpbmdzIGZvciB0cmFuc2xhdGlvbgoKMjAwNi0wNS0yMyAxNDoyMzo0OSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBNYWtlIG5ldyBHU1RfRkxPV19JU19TVUNDRVNTIG1hY3JvIHZpc2libGUgaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKdWxpZW4gTW91dHRlICA8anVsaWVuIGF0IG1vdXR0ZSBuZXQ+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgTWFrZSBuZXcgR1NUX0ZMT1dfSVNfU1VDQ0VTUyBtYWNybyB2aXNpYmxlIGluIGRvY3MuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlX3NpbmtfcHJlcm9sbCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJICBBZGQgbmV3IDo6cHJlcm9sbC1oYW5kb2ZmIHNpZ25hbCAoIzMzNzEwMCkuCgoyMDA2LTA1LTIzIDExOjEzOjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC4qOiBBZGRlZCBfQ1VTVE9NIGVycm9yIGFuZCBzdWNjZXNzIEdzdEZsb3dSZXR1cm4gdGhhdCBjYW4gYmUgdXNlZCBiZSBlbGVtZW50cyBpbnRlcm5hbGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfZmxvd19nZXRfbmFtZSksIChnc3RfZmxvd190b19xdWFyayk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBBZGRlZCBfQ1VTVE9NIGVycm9yIGFuZCBzdWNjZXNzIEdzdEZsb3dSZXR1cm4gdGhhdCBjYW4gYmUKCSAgdXNlZCBiZSBlbGVtZW50cyBpbnRlcm5hbGx5LgoJICBBZGRlZCBtYWNybyB0byBjaGVjayBmb3IgU1VDQ0VTUyBmbG93cmV0dXJucy4KCSAgQVBJOiBHU1RfRkxPV19DVVNUT01fU1VDQ0VTUwoJICBBUEk6IEdTVF9GTE9XX0NVU1RPTV9FUlJPUgoJICBBUEk6IEdTVF9GTE9XX0lTX1NVQ0NFU1MKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfcGFkX3N1aXRlKToKCSAgQWRkZWQgY2hlY2sgZm9yIEdzdEZsb3dSZXR1cm4gc2FuaXR5LgoKMjAwNi0wNS0yMyAwOTo0MDoxNCArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogY2xlYXIvcmVzZXQgc2VnbWVudCBpbmZvIGluIEZMVVNIX1NUT1AuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3IGF0IHNreW5ldCBkb3QgYmU+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpOgoJICBjbGVhci9yZXNldCBzZWdtZW50IGluZm8gaW4gRkxVU0hfU1RPUC4KCSAgRml4ZXMgIzMzNjkyOS4KCjIwMDYtMDUtMjIgMTY6MzA6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogRmx1c2ggcXVldWVkIGJ1ZmZlciBvbiBfc3RvcCgpLCBmaXhlcyBwbGF5aW5nIGFnYWluICgjMzQyNDU0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3N0b3ApLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jaGVja19jb2xsZWN0ZWQpOgoJICBGbHVzaCBxdWV1ZWQgYnVmZmVyIG9uIF9zdG9wKCksIGZpeGVzIHBsYXlpbmcgYWdhaW4gKCMzNDI0NTQpCgoyMDA2LTA1LTIyIDEzOjM0OjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogYWRkIGEgdGVzdCBmb3IgYSBjb21wbGV0ZSBzdHJ1Y3R1cmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3N0cnVjdHVyZV9zdWl0ZSk6CgkgIGFkZCBhIHRlc3QgZm9yIGEgY29tcGxldGUgc3RydWN0dXJlCgoyMDA2LTA1LTIyIDEzOjMxOjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGRlYnVnZ2luZyBjaGFuZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkZWJ1Z2dpbmcgY2hhbmdlcwoKMjAwNi0wNS0xOSAxNTozNTo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZmFxLzogU29tZSBtaW5vciBGQVEgdXBkYXRlcyB0aGF0IHdvbid0IGNoYW5nZSB0aGUgZmFjdCB0aGF0IG91ciBGQVEgaXMgYmFkbHkgc3RydWN0dXJlZCwgZnVsbCBvZiBpbmZvcm1hdGlvbiBoYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSAgKiBkb2NzL2ZhcS9mYXEueG1sOgoJICAqIGRvY3MvZmFxL3Ryb3VibGVzaG9vdGluZy54bWw6CgkgICogZG9jcy9mYXEvdXNpbmcueG1sOgoJICBTb21lIG1pbm9yIEZBUSB1cGRhdGVzIHRoYXQgd29uJ3QgY2hhbmdlIHRoZSBmYWN0IHRoYXQKCSAgb3VyIEZBUSBpcyBiYWRseSBzdHJ1Y3R1cmVkLCBmdWxsIG9mIGluZm9ybWF0aW9uIGhhcmRseQoJICBhbnlvbmUgbmV3IHRvIEdTdHJlYW1lciBuZWVkcyB0byBrbm93IGFuZCBsYWNraW5nIGxvdHMKCSAgb2YgaW5mb3JtYXRpb24gcGVvcGxlIGNvbnN0YW50bHkgYXNrIGZvci4KCjIwMDYtMDUtMTkgMTM6NDY6MTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBTaG9ydC1jaXJjdWl0IGdzdF9wYWRfc2V0X2NhcHMgaWYgc2V0dGluZyB0aGUgZXhpc3RpbmcgY2FwcyBwb2ludGVyIGFnYWluLCBhbmQgYXZvaWQgcHJpbnRpbmcgZGVidWcgYW5kLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2NhcHMpOgoJICBTaG9ydC1jaXJjdWl0IGdzdF9wYWRfc2V0X2NhcHMgaWYgc2V0dGluZyB0aGUgZXhpc3RpbmcKCSAgY2FwcyBwb2ludGVyIGFnYWluLCBhbmQgYXZvaWQgcHJpbnRpbmcgZGVidWcgYW5kCgkgIHJlZmZpbmcvdW5yZWZmaW5nIHRoZSBjYXBzLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9wdXNoX29uZSk6CgkgIFRoZXJlJ3MgYWN0dWFsbHkgbm8gbmVlZCB0byBzZXQgdGhlIGNhcHMgYmVmb3JlIHB1c2hpbmcgLQoJICB0aGUgYWNjZXB0Y2FwcyBtZXRob2Qgd2lsbCBoYW5kbGUgaXQgYW55d2F5LgoKMjAwNi0wNS0xOSAxMDoyOTowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIGdzdF9lbGVtZW50X3NlZWtfc2ltcGxlKCkgKCMzNDIyMzgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfc2Vla19zaW1wbGUpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBUEk6IGFkZCBnc3RfZWxlbWVudF9zZWVrX3NpbXBsZSgpICgjMzQyMjM4KS4KCjIwMDYtMDUtMTggMTQ6MjU6MDAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0dHlwZWZpbmQuKjogQWRkZWQgR1NUX1RZUEVfVFlQRV9GSU5EIGFuZCBnc3RfdHlwZV9maW5kX2dldF90eXBlKCkgc28gYSBHVHlwZSBnZXRzIHJlZ2lzdGVyZWQgZm9yIEdzdFR5cGVGaW5kIHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6IChnc3RfdHlwZV9maW5kX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSAgQWRkZWQgR1NUX1RZUEVfVFlQRV9GSU5EIGFuZCBnc3RfdHlwZV9maW5kX2dldF90eXBlKCkgc28gYSBHVHlwZSBnZXRzCgkgIHJlZ2lzdGVyZWQgZm9yIEdzdFR5cGVGaW5kIHBvaW50ZXJzLiBUaGlzIGFsbG93cyB3cmFwcGluZyB0aGUgc3RydWN0dXJlCgkgIGluIGJpbmRpbmdzIChpLmUuIGdzdC1weXRob24pLgoKMjAwNi0wNS0xOCAxNDowMTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdzZXR0ZXIuYzogRG9jcyBhZGRpdGlvbnMgYW5kIGZpeGVzIChzZWUgIzMzOTkxOCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgRG9jcyBhZGRpdGlvbnMgYW5kIGZpeGVzIChzZWUgIzMzOTkxOCkuCgoyMDA2LTA1LTE4IDA5OjA3OjU1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBUaGUgY2FwcyBpbnRlcnNlY3Rpb24gYWxnb3JpdGhtIGNhbiBwcm9kdWNlIG11bHRpcGxlIGNvcGllcyBvZiB0aGUgY2Fwcy4gVW50aWwgdGhhdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgVGhlIGNhcHMgaW50ZXJzZWN0aW9uIGFsZ29yaXRobSBjYW4gcHJvZHVjZSBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlCgkgIGNhcHMuIFVudGlsIHRoYXQgaXMgZml4ZWQsIHdlIG5lZWQgdG8gc2ltcGxpZnkgdGhlIHJlc3VsdCB0byBiZQoJICBzdXJlIHdoZXRoZXIgdGhlIGFsbG93ZWQgY2FwcyBhcmUgZml4ZWQgb3Igbm90LgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KSwKCSAgKGdzdF9xdWV1ZV9idWZmZXJhbGxvYyksIChnc3RfcXVldWVfYWNjZXB0Y2FwcyksCgkgIChnc3RfcXVldWVfcHVzaF9vbmUpOgoJICBQcm94aWVkIGJ1ZmZlciBhbGxvYyBzaG91bGQgbm90IHNldCB0aGUgY2FwcyBvbiB0aGUgc291cmNlIHBhZC4KCSAgV2hlbiBwdXNoaW5nIGJ1ZmZlcnMsIHdlIGFsd2F5cyBhY2NlcHQgdGhlIGNhcHMgY2hhbmdlIHRoYXQgdHJpZ2dlcnMuCgkgIFRoaXMgcHJldmVudHMgbmVnb3RpYXRpb24gZXJyb3JzIGNhdXNlZCBieSBjYXBzIGNoYW5naW5nIG1pZC1zdHJlYW0KCSAgYW5kIHRoZW4gYmVpbmcgcmVmdXNlZCBvbiBvdXIgc291cmNlIHBhZCAoYmVjYXVzZSB1cHN0cmVhbSBpcyBub3cKCSAgcmVmdXNpbmcgdGhvc2UgY2FwcykuCgoyMDA2LTA1LTE4IDA4OjQ4OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6IE11c3QgcGx1ZyBhdWRpb2NvbnZlcnQgYW5kIGF1ZGlvcmVzYW1wbGUgYmV0d2VlbiBkZWNvZGVyIGFuZCBhdWRpbyBzaW5rLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzogKG1haW4pOgoJICBNdXN0IHBsdWcgYXVkaW9jb252ZXJ0IGFuZCBhdWRpb3Jlc2FtcGxlIGJldHdlZW4gZGVjb2RlcgoJICBhbmQgYXVkaW8gc2luay4KCjIwMDYtMDUtMTcgMTQ6MTg6MTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBNZW50aW9uIGJ1ZyBmaXhlZCBieSBwcmV2aW91cyBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1lbnRpb24gYnVnIGZpeGVkIGJ5IHByZXZpb3VzIGNvbW1pdAoKMjAwNi0wNS0xNyAxNDowMTozMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogQWxsb3cgZW1wdHkgc3RyaW5ncyBmb3Igc29tZSBvZiB0aGUgcGx1Z2luIGZpZWxkcyBzbyB3ZSBkb24ndCBkcm9wIHZhbGlkIHBsdWdpbiBlbnRyaWVzIHRoYXQgd2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChyZWFkX3N0cmluZyksIChsb2FkX3BhZF90ZW1wbGF0ZSksCgkgIChsb2FkX2ZlYXR1cmUpLCAobG9hZF9wbHVnaW4pOgoJICBBbGxvdyBlbXB0eSBzdHJpbmdzIGZvciBzb21lIG9mIHRoZSBwbHVnaW4gZmllbGRzIHNvIHdlIGRvbid0CgkgIGRyb3AgdmFsaWQgcGx1Z2luIGVudHJpZXMgdGhhdCB3ZXJlIHdyaXR0ZW4gb3V0IGNvcnJlY3RseS4KCjIwMDYtMDUtMTcgMTM6NDA6MjAgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBVc2UgZ19yZW1vdmUgYW5kIGdfcmVuYW1lIGluc3RlYWQgb2YgcmVtb3ZlIGFuZCByZW5hbWUgdGhhdCBkb24ndCBoYW5kbGUgdXRmOCBjaGFyYWN0ZXJzLiByZW5hbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGdzdF9yZWdpc3RyeV94bWxfd3JpdGVfY2FjaGUpOgoJICBVc2UgZ19yZW1vdmUgYW5kIGdfcmVuYW1lIGluc3RlYWQgb2YgcmVtb3ZlIGFuZCByZW5hbWUgdGhhdCBkb24ndAoJICBoYW5kbGUgdXRmOCBjaGFyYWN0ZXJzLiByZW5hbWUgd2FzIGZhaWxpbmcgZm9yIHVzZXJzIHdobyBoYWQgc3BlY2lmaWMKCSAgY2hhcmFjdGVycyBpbiB0aGVpciBuYW1lIHRoZW4gdGhlIHJlZ2lzdHJ5IHdhcyBidWlsdCBhdCBlYWNoIGdzdHJlYW1lciBpbml0LgoJICAqIHdpbjMyL3ZzNi9nc3RfaW5zcGVjdC5kc3A6CgkgICogd2luMzIvdnM2L2dzdF9sYXVuY2guZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RiYXNlLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0Y29yZWVsZW1lbnRzLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSAgVXNlIGEgZGVidWcgdmVyc2lvbiBvZiBsaWJ4bWwyIChsaWJ4bWwyRC5saWIsbGlieG1sMkQuZGxsKSBmb3IgREVCVUcgYnVpbGQKCSAgb2YgbGliZ3N0cmVhbWVyIGFuZCBjbGVhbiB1bnVzZWQgbGlicmFyaWVzIGluIHByb2plY3QgbGlua3Mgc2V0dGluZ3MuCgoyMDA2LTA1LTE3IDA5OjI0OjM0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBUaGUgcXVldWUgaXMgbm90IHJlc3BvbnNpYmxlIGZvciBwdXNoaW5nIGFuIEVPUyB3aGVuIHJlY2VpdmluZyBhIGZhdGFsIGZsb3cgZXJyb3IuIEl0J3MgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9wdXNoX29uZSk6CgkgIFRoZSBxdWV1ZSBpcyBub3QgcmVzcG9uc2libGUgZm9yIHB1c2hpbmcgYW4gRU9TIHdoZW4gcmVjZWl2aW5nIGEgZmF0YWwKCSAgZmxvdyBlcnJvci4gSXQncyB1cCB0byB0aGUgcmVhbCBlbGVtZW50IGRyaXZpbmcgdGhlIHBpcGVsaW5lIHRvIGRvIHRoYXQuCgoyMDA2LTA1LTE2IDE3OjE1OjAyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBUaGUgcXVldWUgd2FzIHBvc3RpbmcgYSBub24tbmVlZGVkIEdTVF9NRVNTQUdFX0VSUk9SIHdoZW4gcHVzaGluZyBhIGJ1ZmZlciByZXR1cm5lZCBhIGZhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9wdXNoX29uZSk6CgkgIFRoZSBxdWV1ZSB3YXMgcG9zdGluZyBhIG5vbi1uZWVkZWQgR1NUX01FU1NBR0VfRVJST1Igd2hlbiBwdXNoaW5nIGEKCSAgYnVmZmVyIHJldHVybmVkIGEgZmF0YWwgZXJyb3IuIEl0IHNob3VsZCBqdXN0IHNlbmQgYW4gRU9TIGFuZCBzdG9wCgkgIGl0J3MgdGFzay4KCSAgVXBzdHJlYW0gZWxlbWVudHMgd2lsbCB0aGVuIHByb3Blcmx5IHJlY2VpdmUgdGhlIEdTVF9GTE9XX1VORVhQRUNURUQKCSAgd2hlbiBwdXNoaW5nIGJ1ZmZlcnMgb24gdGhlIHF1ZXVlIGFuZCB3aWxsIGJlIGFibGUgdG8gaGFuZGxlIHRoZSBldmVudC4KCjIwMDYtMDUtMTYgMTY6MTA6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC86IEZpeCB0eXBvcyBhbmQgbWlub3IgZXJyb3JzIGluIHNhbXBsZSBjb2RlICgjMzQxODU2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1pbml0LnhtbDoKCSAgRml4IHR5cG9zIGFuZCBtaW5vciBlcnJvcnMgaW4gc2FtcGxlIGNvZGUgKCMzNDE4NTYpLgoKMjAwNi0wNS0xNiAxMzozMTozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDogRml4IGluZGV4ZXMgaW4gZm9ybXVsYXMgdG8gbWFrZSBtb3JlIHNlbnNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIEZpeCBpbmRleGVzIGluIGZvcm11bGFzIHRvIG1ha2UgbW9yZSBzZW5zZS4KCjIwMDYtMDUtMTUgMTE6NTQ6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IHJlcG9ydCBQT1NJVElPTiBiYXNlZCBvbiBjbG9jayB0aW1lIGlmIHN5bmMgaXMgZGlzYWJsZWQgaW4gYSBzaW5rLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIERvbid0IHJlcG9ydCBQT1NJVElPTiBiYXNlZCBvbiBjbG9jayB0aW1lIGlmIHN5bmMgaXMKCSAgZGlzYWJsZWQgaW4gYSBzaW5rLgoKMjAwNi0wNS0xNSAwODoxNjowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RvYmplY3QuaDogQWRkIGNhc3QgdG8gbWFrZSBjb21waWxlciBoYXBweSAtIHJlZmNvdW50IHZhcmlhYmxlIHdhcyBhIGdpbnQgaW4gR3N0T2JqZWN0IGJ1dCBpcyBhIGd1aW50IGluIEdPYmplYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIEFkZCBjYXN0IHRvIG1ha2UgY29tcGlsZXIgaGFwcHkgLSByZWZjb3VudCB2YXJpYWJsZSB3YXMgYSBnaW50CgkgIGluIEdzdE9iamVjdCBidXQgaXMgYSBndWludCBpbiBHT2JqZWN0IGFuZCBnX2F0b21pY19pbnRfZ2V0KCkKCSAgd2FudHMgYSBnaW50ICouCgoyMDA2LTA1LTE0IDIzOjIzOjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBmaXggcGFyYWxsZWwgbWFrZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHBhcmFsbGVsIG1ha2UKCjIwMDYtMDUtMTQgMjE6MTg6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgY29uZmlnLmgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBjb25maWcuaAoKMjAwNi0wNS0xNCAyMToxNjo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCjIwMDYtMDUtMTQgMjE6MTY6NTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vc3RyZWFtaGVhZGVyOgoJICBzb21lIHN0cmVhbWhlYWRlciB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzb21lIHN0cmVhbWhlYWRlciB1cGRhdGVzCgoyMDA2LTA1LTE0IDE5OjI1OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTWlub3IgZG9jcyBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBNaW5vciBkb2NzIGZpeGVzLgoKMjAwNi0wNS0xNCAxNjowMzoyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhY2sgdG8gQ1ZTCgo9PT0gcmVsZWFzZSAwLjEwLjYgPT09CgoyMDA2LTA1LTE0IDE1OjIwOjI0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogcmVsZWFzaW5nIDAuMTAuNiwgIlRha2UgdGhlIGNhbm5vbGkiCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA1LTE0ICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIHJlbGVhc2luZyAwLjEwLjYsICJUYWtlIHRoZSBjYW5ub2xpIgoKMjAwNi0wNS0xNCAxNToxODowMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDYtMDUtMTMgMTc6NTA6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IEZpeCB1c2Ugb2YgdW5pbml0aWFsaXplZCB2YXJpYWJsZSBpbiB0aGUgaHlwb3RoZXRpY2FsIGNhc2UgdGhhdCBzb21lIGJyb2tlbiBwbHVnaW4gY3JlYXRlcyBhIEdTVF8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAocHJpbnRfdGFnKToKCSAgRml4IHVzZSBvZiB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGluIHRoZSBoeXBvdGhldGljYWwKCSAgY2FzZSB0aGF0IHNvbWUgYnJva2VuIHBsdWdpbiBjcmVhdGVzIGEgR1NUX1RBR19JTUFHRQoJICB0YWcgY29udGFpbmluZyBhIE5VTEwgYnVmZmVyICgjMzQxNjY3KS4KCjIwMDYtMDUtMTIgMTY6NTA6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IFByaW50IHNvbWV0aGluZyBtb3JlIGludGVsbGlnaWJsZSBmb3IgaW1hZ2UgdGFncyB3aGVuIHVzaW5nIHRoZSAtdCBzd2l0Y2ggKCMzNDE1NTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChwcmludF90YWcpOgoJICBQcmludCBzb21ldGhpbmcgbW9yZSBpbnRlbGxpZ2libGUgZm9yIGltYWdlIHRhZ3Mgd2hlbgoJICB1c2luZyB0aGUgLXQgc3dpdGNoICgjMzQxNTU2KS4KCjIwMDYtMDUtMTIgMTQ6NTM6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgTWFrZWZpbGUuYW06IHVwZGF0ZXMgZm9yIHdpbjMyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICB1cGRhdGVzIGZvciB3aW4zMgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgZGVmaW5lIEdTVF9NQUpPUk1JTk9SIHNvIHdlIGhhdmUgaXQgYXZhaWxhYmxlIGluIHdpbjMyL2NvbW1vbi9jb25maWcuaAoJICBQb3NzaWJseSByZW1vdmUgaXQgZnJvbSBvdXIgTWFrZWZpbGUuYW0gZmlsZXMgbGF0ZXIKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBhZGRlZCBHU1RfTUFKT1JNSU5PUgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzogKHJlZ2lzdGVyX2dzdF9yZXNvdXJjZV9lcnJvcik6CgkgICogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgdXBkYXRlZAoKMjAwNi0wNS0xMiAxMzo0Mjo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9zdHJlYW1oZWFkZXI6CgkgIGFkZGluZyBub3RlcyBhYm91dCBjdXJyZW50IGltcGxlbWVudGF0aW9uIGFuZCBpZGVhcyBhYm91dCBzdHJlYW1oZWFkZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGluZyBub3RlcyBhYm91dCBjdXJyZW50IGltcGxlbWVudGF0aW9uIGFuZCBpZGVhcyBhYm91dCBzdHJlYW1oZWFkZXIKCjIwMDYtMDUtMTIgMTA6NTA6NDIgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL01BTklGRVNUOiBVcGRhdGUgd2luMzIgZmlsZXMgbGlzdGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvTUFOSUZFU1Q6CgkgIFVwZGF0ZSB3aW4zMiBmaWxlcyBsaXN0aW5nLgoJICAqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEFkZCBHU1RfTUFKT1JNSU5PUiBkZWZpbml0aW9uLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucy4KCjIwMDYtMDUtMTIgMDk6Mjg6MjIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uYzogSWYgYW4gc28gZmlsZSBoYXMgbm8gcGx1Z2luIGVudHJ5IHBvaW50LCB1bmxvYWQgdGhlIG1vZHVsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICBJZiBhbiBzbyBmaWxlIGhhcyBubyBwbHVnaW4gZW50cnkgcG9pbnQsIHVubG9hZCB0aGUgbW9kdWxlLgoKMjAwNi0wNS0xMSAxOTowNzo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogRG9uJ3QgZm9yZ2V0IHRvIHNpZ25hbCB0aGUgX2NoYWluIG9yIF9sb29wIGZ1bmN0aW9uIHdoZW4gdGhlIHF1ZXVlIHNpemUgb3IgdGhyZXNob2xkcyBjaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX2xvb3ApLAoJICAoZ3N0X3F1ZXVlX3NldF9wcm9wZXJ0eSk6CgkgIERvbid0IGZvcmdldCB0byBzaWduYWwgdGhlIF9jaGFpbiBvciBfbG9vcCBmdW5jdGlvbgoJICB3aGVuIHRoZSBxdWV1ZSBzaXplIG9yIHRocmVzaG9sZHMgY2hhbmdlIHNpbmNlIHRoYXQgbWlnaHQKCSAgY2F1c2UgdGhlbSB0byBtYWtlIHByb2dyZXMgYWdhaW4uCgoyMDA2LTA1LTExIDE4OjEwOjM0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBHX09CSkVDVF9DTEFTUyBtYWNybyB1c2FnZSBiYXRjaCBjbGVhbnVwLCBmaXhlcyAjMzM3NzQ3IGZvciBjb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9jbGFzc19pbml0KToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmM6IChnc3RfZXhhbXBsZV9jbGFzc19pbml0KToKCSAgKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvc2lnbmFscy5jOiAoZ3N0X3Rlc3RfY2xhc3NfaW5pdCk6CgkgIEdfT0JKRUNUX0NMQVNTIG1hY3JvIHVzYWdlIGJhdGNoIGNsZWFudXAsIGZpeGVzICMzMzc3NDcgZm9yIGNvcmUKCjIwMDYtMDUtMTEgMTA6MzU6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IFJlZ2lzdGVyIHN1YmJ1ZmVyIGFsb25nIHdpdGggdGhlIGJ1ZmZlciB0eXBlIHNvIHRoYXQgaXQgZG9lcyBub3QgYWNjaWRlbnRhbGx5IGdldHMgcmVnaXN0ZXJlZCBmcm9tIE4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoX2dzdF9idWZmZXJfaW5pdGlhbGl6ZSk6CgkgIFJlZ2lzdGVyIHN1YmJ1ZmVyIGFsb25nIHdpdGggdGhlIGJ1ZmZlciB0eXBlIHNvIHRoYXQKCSAgaXQgZG9lcyBub3QgYWNjaWRlbnRhbGx5IGdldHMgcmVnaXN0ZXJlZCBmcm9tIE4KCSAgZGlmZmVyZW50IHN0cmVhbWluZyB0aHJlYWRzIGluIGEgbm9uIHRocmVhZHNhZmUgd2F5LgoKMjAwNi0wNS0xMCAxNjo0NDoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IE1ha2UgZ3RrLWRvYyBnZW5lcmF0ZSBkb2NzIGZvciBvdXIgaW5saW5lZCBnc3RfYnVmZmVyX3JlZigpLCBnc3RfZXZlbnRfcmVmKCkgYW5kIGdzdF9tZXNzYWdlX3JlZigpIGZ1bmN0aW9ucyBhZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgTWFrZSBndGstZG9jIGdlbmVyYXRlIGRvY3MgZm9yIG91ciBpbmxpbmVkIGdzdF9idWZmZXJfcmVmKCksCgkgIGdzdF9ldmVudF9yZWYoKSBhbmQgZ3N0X21lc3NhZ2VfcmVmKCkgZnVuY3Rpb25zIGFnYWluCgkgICh1Z2x5IGhhY2ssIHBsZWFzZSBkbyBmaXggaWYgdGhlcmUncyBhIGJldHRlciB3YXkgYmVzaWRlcwoJICBvdmVycmlkZXMudHh0LCB3aGljaCBkb2Vzbid0IHNlZW0gdG8gd29yaykuCgoyMDA2LTA1LTEwIDE1OjQ5OjMwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6IGFkZCBhbiBhc3NlcnQgZm9yIHNldHRpbmcgc3RhdGUgdG8gYXZvaWQgbG90cyBvZiByZXBldGl0aXZlIGNvZGUgaW4gdGhlIGZ1dHVyZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNS0xMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBhZGQgYW4gYXNzZXJ0IGZvciBzZXR0aW5nIHN0YXRlIHRvIGF2b2lkIGxvdHMgb2YgcmVwZXRpdGl2ZSBjb2RlCgkgIGluIHRoZSBmdXR1cmUKCjIwMDYtMDUtMTAgMTU6Mzg6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IGZpeCBhIGxlYWsgaWYgbm8gZmxhZ3MgYXJlIHNldAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXJpYWxpemVfZmxhZ3MpOgoJICBmaXggYSBsZWFrIGlmIG5vIGZsYWdzIGFyZSBzZXQKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgZml4IGxlYWsgaW4gdGVzdHMKCjIwMDYtMDUtMTAgMTU6MDA6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6IEV4cGFuZCBhIGJpdCBvbiBjYXBzIGFuZCBmaWx0ZXJlZCBsaW5rcyBhbmQgdXBkYXRlIGV4YW1wbGVzIHRoYXQgd2VyZSBzdGlsbCB1c2luZyB0aGUgbm8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICBFeHBhbmQgYSBiaXQgb24gY2FwcyBhbmQgZmlsdGVyZWQgbGlua3MgYW5kIHVwZGF0ZQoJICBleGFtcGxlcyB0aGF0IHdlcmUgc3RpbGwgdXNpbmcgdGhlIG5vIGxvbmdlciBleGlzdGluZwoJICBnc3RfcGFkX2xpbmtfZmlsdGVyZWQoKSAoIzMzODIwNikuCgoyMDA2LTA1LTEwIDE0OjUxOjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy4qOiBObyBuZWVkIHRvIGNhbGwgX3N0b3AgaW4gX2ZpbmFsaXplLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2ZpbmFsaXplKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCksIChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zZXRfZmx1c2hpbmcpLCAoZ3N0X2NvbGxlY3RfcGFkc19zdGFydCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N0b3ApOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgTm8gbmVlZCB0byBjYWxsIF9zdG9wIGluIF9maW5hbGl6ZS4KCSAgSXRlcmF0ZSB0aGUgbWFpbiBwYWQgbGlzdCBpbiBfZmluYWxpemUuCgkgIEFkZGVkIHNvbWUgbW9yZSBkZWJ1Zy4KCSAgRnJlZSBsaXN0cyBhbmQgZGF0YSBpbiB0aGUgcmlnaHQgb3JkZXIuCgkgIEFsc28gZnJlZSBkYXRhIHdoZW0gZG9pbmcgX3JlbW92ZV9wYWQgd2hlbiBzdG9wcGVkIGZvcgoJICBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHByb3RlY3QgOjpzdGFydGVkIHdpdGggUEFEX0xPQ0sgYXMKCSAgd2VsbC4KCjIwMDYtMDUtMTAgMTQ6MTI6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBhZGQgc29tZSBjb21tZW50cyByZW5hbWUgYSBtZXRob2Qgc28gdGhhdCBpdCBhY3R1YWxseSBzYXlzIHdoYXQgaXQgZG9lcyBiZXR0ZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9ndHlwZV9mcm9tX2FiYnIpLAoJICAoZ3N0X3N0cnVjdHVyZV9wYXJzZV92YWx1ZSk6CgkgIGFkZCBzb21lIGNvbW1lbnRzCgkgIHJlbmFtZSBhIG1ldGhvZCBzbyB0aGF0IGl0IGFjdHVhbGx5IHNheXMgd2hhdCBpdCBkb2VzIGJldHRlcgoKMjAwNi0wNS0xMCAxNDowNTo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBtYWtlIHN1cmUgc29tZSBlc3NlbnRpYWwgdHlwZXMgdXNlZCBieSBldmVudHMgYXJlIHJlZ2lzdGVyZWQgYXMgcGFydCBvZiBnc3RfaW5pdCgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOiAoX2dzdF9ldmVudF9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0Zm9ybWF0LmM6IChfZ3N0X2Zvcm1hdF9pbml0aWFsaXplKToKCSAgbWFrZSBzdXJlIHNvbWUgZXNzZW50aWFsIHR5cGVzIHVzZWQgYnkgZXZlbnRzIGFyZSByZWdpc3RlcmVkCgkgIGFzIHBhcnQgb2YgZ3N0X2luaXQoKQoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mbGFncyk6CgkgIGlmIG5vIGZsYWdzIGFyZSBzZXQsIHNlcmlhbGl6ZSB0aGVtIHRvIGEgdmFsdWUgdGhhdCByZXByZXNlbnRzIE5PTkUKCSAgc28gdGhhdCBkZXNlcmlhbGl6aW5nIHRoZW0gd29ya3MKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIGFkZCB0ZXN0cyBmb3Igc2VyaWFsaXphdGlvbiBhbmQgZGVzZXJpYWxpemF0aW9uIG9mIGZsYWdzCgoyMDA2LTA1LTEwIDEzOjUzOjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIGxpbWl0IHRvIDgwIGNoYXJzIGFkZCBub3RlIGFib3V0IGNoYW5naW5nIGRpdmlkZXIgZm9yIGZsYWdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBsaW1pdCB0byA4MCBjaGFycwoJICBhZGQgbm90ZSBhYm91dCBjaGFuZ2luZyBkaXZpZGVyIGZvciBmbGFncwoKMjAwNi0wNS0xMCAxMToyNDo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogVXBkYXRlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfY29sbGVjdCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NvbGxlY3RfcmFuZ2UpLCAoZ3N0X2NvbGxlY3RfcGFkc19hdmFpbGFibGUpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jaGVja19wYWRzKSwgKGdzdF9jb2xsZWN0X3BhZHNfY2hlY2tfY29sbGVjdGVkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpLCAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6CgkgIFVwZGF0ZSBkb2NzLgoJICBCZXR0ZXIgZGVidWcgaW5mby4KCSAgQ2F0Y2ggYW5kIHJldHVybiBlcnJvcnMgZnJvbSB0aGUgY29sbGVjdCBmdW5jdGlvbgoJICBSZWZ1c2UgZGF0YSBvbiBlb3MgcGFkcy4KCjIwMDYtMDUtMTAgMTA6MjY6NTUgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0aW50ZXJmYWNlLmg6IEdTVF9JTVBMRU1FTlRTX0lOVEVSRkFDRSBhbmQgR1NUX0lTX0lNUExFTUVOVFNfSU5URVJGQUNFIHVzZSB0aGUgbm9ybWFsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbnRlcmZhY2UuaDoKCSAgR1NUX0lNUExFTUVOVFNfSU5URVJGQUNFIGFuZCBHU1RfSVNfSU1QTEVNRU5UU19JTlRFUkZBQ0UgdXNlIHRoZSBub3JtYWwKCSAgR0ludGVyZmFjZSB0eXBlIGNoZWNraW5nLgoJICBUaGV5IHdlcmUgcHJldmlvdXNseSB1c2luZyBub24tZGVmaW5lZCBtYWNyb3MuCgoyMDA2LTA1LTA5IDIwOjQ3OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy4qOiBDbGVhbiB1cCB0aGUgbWVzcyB0aGF0IGlzIGNvbGxlY3RwYWRzLCBhZGQgY29tbWVudHMgYW5kCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfaW5pdCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2ZpbmFsaXplKSwgKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLCAoZ3N0X2NvbGxlY3RfcGFkc19zZXRfZmx1c2hpbmcpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdGFydCksIChnc3RfY29sbGVjdF9wYWRzX3N0b3ApLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19wZWVrKSwgKGdzdF9jb2xsZWN0X3BhZHNfcG9wKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfYXZhaWxhYmxlKSwgKGdzdF9jb2xsZWN0X3BhZHNfcmVhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2ZsdXNoKSwgKGdzdF9jb2xsZWN0X3BhZHNfY2hlY2tfcGFkcyksCgkgIChnc3RfY29sbGVjdF9wYWRzX2lzX2NvbGxlY3RlZCksIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgQ2xlYW4gdXAgdGhlIG1lc3MgdGhhdCBpcyBjb2xsZWN0cGFkcywgYWRkIGNvbW1lbnRzIGFuZAoJICBGSVhNRXMgd2hlcmUgbmVlZGVkLgoJICBNYWludGFpbiBhIHNlcGFyYXRlIHBhZCBsaXN0IHNvIHdlIGNhbiBhZGQgcGFkcyB3aGlsZQoJICBjb2xsZWN0aW5nIHRoZSBvdGhlciBvbmVzLiBGb3IgdGhpcyB3ZSBuZWVkIGEgbmV3IHNlcGFyYXRlCgkgIGxvY2sgKHNlZSBjb21pY3MpLgoJICBGaXggbWVtb3J5IGxlYWsgaW4gZmluYWxpemUuCgkgIFJlZmFjdG9yIHNvbWUgd2VpcmQgY29kZSB0byBzZXQvdW5zZXQgcGFkIGZsdXNoaW5nIGZsYWdzLCBtYXJrCgkgIHdpdGggY29tbWVudHMuCgkgIERvbid0IGNyYXNoIGluIF9hdmFpbGFibGUsIF9yZWFkLCBfZmx1c2ggd2hlbiB3ZSdyZSBFT1MuCgkgICogdGVzdHMvY2hlY2svbGlicy8uY3ZzaWdub3JlOgoJICBJZ25vcmUgYWRhcHRlciBjaGVjayBiaW5hcnkuCgoyMDA2LTA1LTA5IDE5OjE0OjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBkb2Mgd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jIHdoaXRlc3BhY2UgZml4ZXMKCjIwMDYtMDUtMDkgMTc6NTg6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBDb25zdC1pZnkgR0VudW1WYWx1ZSBhcnJheXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X3Jlc29sdmVyX2dldF90eXBlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIChnc3RfZmFrZV9zaW5rX3N0YXRlX2Vycm9yX2dldF90eXBlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19kYXRhX2dldF90eXBlKSwKCSAgKGdzdF9mYWtlX3NyY19zaXpldHlwZV9nZXRfdHlwZSksIChnc3RfZmFrZV9zcmNfZmlsbHR5cGVfZ2V0X3R5cGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKHF1ZXVlX2xlYWt5X2dldF90eXBlKToKCSAgQ29uc3QtaWZ5IEdFbnVtVmFsdWUgYXJyYXlzLgoKMjAwNi0wNS0wOSAxMzoyMzowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogQWRkIHRlc3QgY2FzZSBmb3IgZmxhZ3MgKyBnc3RfYnVmZmVyX21ha2VfbWV0YWRhdGFfd3JpdGFibGUoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgdGVzdCBjYXNlIGZvciBmbGFncyArIGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSgpLgoKMjAwNi0wNS0wOSAxMjowMTozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidWZmZXIuYzogZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKCkgc2hvdWxkIG1haW50YWluIHRoZSBidWZmZXIgZmxhZ3MgKHRob3NlIHRoYXQgbWFrZSBzZW5zZSBhdCBsZWFzdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX21ha2VfbWV0YWRhdGFfd3JpdGFibGUpOgoJICBnc3RfYnVmZmVyX21ha2VfbWV0YWRhdGFfd3JpdGFibGUoKSBzaG91bGQgbWFpbnRhaW4gdGhlCgkgIGJ1ZmZlciBmbGFncyAodGhvc2UgdGhhdCBtYWtlIHNlbnNlIGF0IGxlYXN0KSAoc2VlICMzNDA4NTkpLgoKMjAwNi0wNS0wOSAxMDo1MzoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzLzogRml4IHVwIGluY2x1ZGVzOiBuZWVkIHRvIGluY2x1ZGUgc3RkbGliLmggaW4gdG9vbHMuaCBmb3IgZXhpdCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICAqIHRvb2xzL3Rvb2xzLmg6CgkgIEZpeCB1cCBpbmNsdWRlczogbmVlZCB0byBpbmNsdWRlIHN0ZGxpYi5oIGluIHRvb2xzLmggZm9yIGV4aXQoKS4KCjIwMDYtMDUtMDkgMTA6MDI6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC4qOiBBUEk6IGFkZCBHU1RfVEFHX0lNQUdFIHRhZyAoIzM0MDcyMSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBUEk6IGFkZCBHU1RfVEFHX0lNQUdFIHRhZyAoIzM0MDcyMSkuCgoyMDA2LTA1LTA4IDE3OjEyOjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1ZXJ5LmM6IEFkZGVkIHNvbWUgZG9jcyBmb3IgdGhlIHNlZ21lbnQgcXVlcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWVyeS5jOgoJICBBZGRlZCBzb21lIGRvY3MgZm9yIHRoZSBzZWdtZW50IHF1ZXJ5LgoKMjAwNi0wNS0wOCAxNzowMzoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBBbHdheXMgcHVzaCBub24tZmx1c2hpbmcgc2VyaWFsaXplZCBldmVudHMgaW4gdGhlIHN0cmVhbWluZyB0aHJlYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgQWx3YXlzIHB1c2ggbm9uLWZsdXNoaW5nIHNlcmlhbGl6ZWQgZXZlbnRzIGluIHRoZSBzdHJlYW1pbmcKCSAgdGhyZWFkLgoKMjAwNi0wNS0wOCAxNTo1MzoxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgIHdoaXRlc3BhY2UsIGNvbW1lbnQsIGRvYyBmaXh1cAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSwgY29tbWVudCwgZG9jIGZpeHVwCgoyMDA2LTA1LTA4IDE1OjUyOjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RlcnJvci5jOiBBZGQgYSBtaXNzaW5nIGVycm9yIHN0cmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6IChfZ3N0X3N0cmVhbV9lcnJvcnNfaW5pdCk6CgkgIEFkZCBhIG1pc3NpbmcgZXJyb3Igc3RyaW5nLgoKMjAwNi0wNS0wOCAxNDo1NToyNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEFkZCBhcHBsaWVkX3JhdGUgdG8gdGhlIGRlYnVnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29uZmlndXJlX3NlZ21lbnQpOgoJICBBZGQgYXBwbGllZF9yYXRlIHRvIHRoZSBkZWJ1ZwoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2Vlayk6CgkgIENvcHkgYXBwbGllZF9yYXRlIGludG8gdGhlIG91dGdvaW5nIE5FV1NFR01FTlQgZXZlbnQKCjIwMDYtMDUtMDggMTE6NDk6NDMgKzAwMDAgIFBoaWxpcHBlIFJvdXF1aWVyIDxwaGlsaXBwZXJvQGxpYmVydHlzdXJmLmZyPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBjYWxsIDo6dW5sb2NrIGJlZm9yZSB0YWtpbmcgdGhlIFBSRVJPTExfTE9DSyBzbyB3ZSBjYW4gc2FmZWx5IGhhbmRsZSBlbGVtZW50cyB0aGF0IGxvY2sgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGhpbGlwcGUgUm91cXVpZXIgPHBoaWxpcHBlcm8gYXQgbGliZXJ0eXN1cmYgZG90IGZyPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfc2V0X2ZsdXNoaW5nKSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgY2FsbCA6OnVubG9jayBiZWZvcmUgdGFraW5nIHRoZSBQUkVST0xMX0xPQ0sgc28gd2UgY2FuIHNhZmVseQoJICBoYW5kbGUgZWxlbWVudHMgdGhhdCBsb2NrIGluIDo6cmVuZGVyLgoJICBGaXhlcyAjMzQwMTc0LgoKMjAwNi0wNS0wOCAxMTo0MzoxOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGF1dG9nZW4uc2g6IERhcndpbidzIGxpYnRvb2xpemUgaXMgaW4gZmFjdCBjYWxsZWQgZ2xpYnRvb2xpemUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGF1dG9nZW4uc2g6IChDT05GSUdVUkVfREVGX09QVCk6CgkgIERhcndpbidzIGxpYnRvb2xpemUgaXMgaW4gZmFjdCBjYWxsZWQgZ2xpYnRvb2xpemUuCgkgIEFkZGluZyBnbGlidG9vbGl6ZSB0byB0aGUgbGlzdCBvZiBhY2NlcHRlZCBuYW1lcyBmb3IgbGlidG9vbGl6ZS4KCjIwMDYtMDUtMDggMTE6MzU6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogVW5pZnkgZXJyb3IgaGFuZGxpbmcsIGRvbid0IHBvc3QgYW4gZXJyb3IgbWVzc2FnZSB3aGVuIGEgcHVzaCgpIHJldHVybnMgRU9TIGJ1dCBwZXJmb3JtIG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIFVuaWZ5IGVycm9yIGhhbmRsaW5nLCBkb24ndCBwb3N0IGFuIGVycm9yIG1lc3NhZ2UKCSAgd2hlbiBhIHB1c2goKSByZXR1cm5zIEVPUyBidXQgcGVyZm9ybSBvdXIgbm9ybWFsIEVPUwoJICBoYW5kbGluZyBjb2RlLiBGaXhlcyAjMzQwNzcyLgoKMjAwNi0wNS0wOCAwOTo1MjozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OiBNYWtlIHVwc3RlYW0vZG93bnN0cmVhbSBjb25jZXB0cyBtb3JlIGNsZWFyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgTWFrZSB1cHN0ZWFtL2Rvd25zdHJlYW0gY29uY2VwdHMgbW9yZSBjbGVhci4KCSAgR2l2ZSBhbiBleGFtcGxlIG9mIHNlcmlhbGl6ZWQvbm9uLXNlcmlhbGl6ZWQgZXZlbnRzLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJICBNZW50aW9uIGFwcGxpZWRfcmF0ZS4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBNZW50aW9uIGFwcGxpZWQgcmF0ZSwgZmxlc2ggb3V0IHNvbWUgbW9yZSB1c2UgY2FzZXMuCgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X25ld19zZWdtZW50KSwKCSAgKGdzdF9ldmVudF9wYXJzZV9uZXdfc2VnbWVudCksIChnc3RfZXZlbnRfbmV3X25ld19zZWdtZW50X2Z1bGwpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX25ld19zZWdtZW50X2Z1bGwpLCAoZ3N0X2V2ZW50X25ld190YWcpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3RhZyksIChnc3RfZXZlbnRfbmV3X2J1ZmZlcl9zaXplKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9idWZmZXJfc2l6ZSksIChnc3RfZXZlbnRfbmV3X3FvcyksCgkgIChnc3RfZXZlbnRfcGFyc2VfcW9zKSwgKGdzdF9ldmVudF9wYXJzZV9zZWVrKSwKCSAgKGdzdF9ldmVudF9uZXdfbmF2aWdhdGlvbik6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEFkZCBhcHBsaWVkX3JhdGUgZmllbGQgdG8gTkVXU0VHTUVOVCBldmVudC4KCSAgQVBJOiBnc3RfZXZlbnRfbmV3X25ld19zZWdtZW50X2Z1bGwoKQoJICBBUEk6IGdzdF9ldmVudF9wYXJzZV9uZXdfc2VnbWVudF9mdWxsKCkKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfaW5pdCksIChnc3Rfc2VnbWVudF9zZXRfc2VlayksCgkgIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudCksIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudF9mdWxsKSwKCSAgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSk6CgkgICogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgQWRkIGFwcGxpZWRfcmF0ZSB0byBHc3RTZWdtZW50IHN0cnVjdHVyZS4KCSAgTWFrZSBjYWxjdWxhdGlvbiBvZiBzdHJlYW1fdGltZSBhbmQgcnVubmluZ190aW1lIG1vcmUgY29ycmVjdAoJICB3cnQgcmF0ZS9hcHBsaWVkX3JhdGUuCgkgIEFkZCBzb21lIG1vcmUgZG9jcy4KCSAgQVBJOiBHc3RTZWdtZW50OjphcHBsaWVkX3JhdGUgZmllbGQKCSAgQVBJOiBnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudF9mdWxsKCk7CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb25maWd1cmVfc2VnbWVudCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2V2ZW50ZnVuYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgIFBhcnNlIGFuZCB1c2UgYXBwbGllZF9yYXRlIGluIHRoZSBHc3RTZWdtZW50IGZpZWxkLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgY2hlY2sgZm9yIGFwcGxpZWRfcmF0ZSBmaWVsZC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0c2VnbWVudHNfc3VpdGUpOgoJICBBZGQgbW9yZSBjaGVja3MgZm9yIHZhcmlvdXMgR3N0U2VnbWVudCBvcGVyYXRpb25zLgoKMjAwNi0wNS0wOCAwOToxNjowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU3RvcmUgdGhlIHN5bmMgdGltZSBvZiB0aGUgYnVmZmVyIGVuZCBwb3NpdGlvbiBzZXBhcmF0bHkgaW4gYSBuZXcgdmFyaWFibGUgZW9zX3J0aW1lIHNvIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgU3RvcmUgdGhlIHN5bmMgdGltZSBvZiB0aGUgYnVmZmVyIGVuZCBwb3NpdGlvbiBzZXBhcmF0bHkgaW4gYQoJICBuZXcgdmFyaWFibGUgZW9zX3J0aW1lIHNvIHdlIGNhbiBwcm9wZXJseSBzeW5jIHRoZSBFT1MgZXZlbnQuCgkgIEZpeGVzICMzNDA2OTcuCgkgIEZpeCB0aGUgZG9jcyBmb3IgZ3N0X2Jhc2Vfc2lua19zZXRfcW9zX2VuYWJsZWQoKS4KCSAgRG9uJ3Qgc2V0IHNlZ21lbnQgc3RhcnQgdG8gaW52YWxpZCB2YWx1ZSB3aGVuIHdlIHJlY2VpdmUgYQoJICBub24gVElNRSBuZXdzZWdtZW50LgoJICBnZXQgY2xvc2VyIHRvIGhhbmRsaW5nIHBvc2l0aW9uIHJlcG9ydGluZyBmb3IgbmVnYXRpdmUgcmF0ZXMKCSAgY29ycmVjdGx5LgoKMjAwNi0wNS0wNyAxOTo1Nzo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGNhcHMuYzogRG9jcyBhYm91dCBob3cgdG8gcHJpbnQgY2FwcyBmb3IgZGVidWcgcHVycG9zZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgIERvY3MgYWJvdXQgaG93IHRvIHByaW50IGNhcHMgZm9yIGRlYnVnIHB1cnBvc2VzLgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0KToKCSAgdXNlIGdzdF9jYXBzX21ha2Vfd3JpdGFibGUgaW5zdGVhZCBvZiBnc3RfY2Fwc19jb3B5LCBGaXhlcyAjMzQwNjA4CgoyMDA2LTA1LTA2IDIxOjQ1OjI3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiB1c2UgZnVsbCBlbnVtIG5hbWVzIGFuZCBwcmVwcmVuZCBhICclJyBpbiBkb2NzIHN0cmluZ3MgdG8gbWFrZSByZWNlbnQgZ3RrLWRvYyB0dXJuIHRoYXQgaW50byBhIGxpbmsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgdXNlIGZ1bGwgZW51bSBuYW1lcyBhbmQgcHJlcHJlbmQgYSAnJScgaW4gZG9jcyBzdHJpbmdzIHRvIG1ha2UgcmVjZW50CgkgIGd0ay1kb2MgdHVybiB0aGF0IGludG8gYSBsaW5rCgoyMDA2LTA1LTA1IDIxOjQ0OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvOiBTb21lIHR5cG8gZml4ZXMsIHNvbWUgYWRkaXRpb25zLCBzb21lIGNsYXJpZmljYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICBTb21lIHR5cG8gZml4ZXMsIHNvbWUgYWRkaXRpb25zLCBzb21lIGNsYXJpZmljYXRpb25zLgoKMjAwNi0wNS0wNSAxNzo0NTo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzLzogVXNlIHRoZSBzdHJpbmcgcGFzc2VkIHRvIGdfb3B0aW9uX2NvbnRleHRfbmV3KCkgZm9yIHdoYXQgaXQncyBpbnRlbmRlZCBmb3IgLSB0aGUgcHJvZ3JhbSBuYW1lIGlzIGFscmVhZHkgcHJpbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXJ1bi5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAobWFpbik6CgkgIFVzZSB0aGUgc3RyaW5nIHBhc3NlZCB0byBnX29wdGlvbl9jb250ZXh0X25ldygpIGZvcgoJICB3aGF0IGl0J3MgaW50ZW5kZWQgZm9yIC0gdGhlIHByb2dyYW0gbmFtZSBpcyBhbHJlYWR5CgkgIHByaW50ZWQgZWxzZXdoZXJlLgoKMjAwNi0wNS0wNSAxNzowNzo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzLzogQWRkIGJhY2sgLS12ZXJzaW9uIGNvbW1hbmQgbGluZSBvcHRpb24gKCMzNDA0NjApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKG1haW4pOgoJICAqIHRvb2xzL3Rvb2xzLmg6CgkgIEFkZCBiYWNrIC0tdmVyc2lvbiBjb21tYW5kIGxpbmUgb3B0aW9uICgjMzQwNDYwKS4KCSAgKiB0b29scy9nc3QtdHlwZWZpbmQuYzogKGhhdmVfdHlwZV9oYW5kbGVyKSwgKHR5cGVmaW5kX2ZpbGUpLCAobWFpbik6CgkgIEFkZCAtLXZlcnNpb24gb3B0aW9uIGFuZCB1c2UgR09wdGlvbiBmb3IgYXJndW1lbnQgcGFyc2luZzsgcmVmYWN0b3IgYQoJICBiaXQ7IGFjY2VwdCBkaXJlY3RvcmllcyBhcyBhcmd1bWVudHMgYW5kIHJlY3Vyc2UgaW50byB0aGVtOyBsYXN0bHksCgkgIHByaW50IGEgZGVjZW50IGVycm9yIG1lc3NhZ2Ugd2hlbiB0aGluZ3MgZ28gd3JvbmcuCgoyMDA2LTA1LTA1IDE0OjM4OjAxICswMDAwICBNYWNpZWogS2F0YWZpYXN6IDxtYXRocmlja0BtYXRocmljay5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSAgRG9uJ3QgbWVudGlvbiBHc3RUaHJlYWQgKCMzNDA2MTEpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBEb24ndCBtZW50aW9uIEdzdFRocmVhZCAoIzM0MDYxMSkKCSAgVXBkYXRlIGxpbmsgdG8gR09iamVjdCB0dXRvcmlhbCAoIzM0MDYwNykKCjIwMDYtMDUtMDUgMTQ6Mjc6MzEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBZGQgbm90ZSBhYm91dCByZWZjb3VudGluZyBhbmQgbWluaW9iamVjdC9idWZmZXIgd3JpdGVhYmlsaXR5IHRvIGRvY3MuIEZpeGVzICMzNDA2MDQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIEFkZCBub3RlIGFib3V0IHJlZmNvdW50aW5nIGFuZCBtaW5pb2JqZWN0L2J1ZmZlciB3cml0ZWFiaWxpdHkKCSAgdG8gZG9jcy4gRml4ZXMgIzM0MDYwNAoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBBZGRlZCBzb21lIGV4cGxhbmF0aW9uIGFib3V0IEBrbGFzcy4KCjIwMDYtMDUtMDUgMTQ6MDk6MjEgKzAwMDAgIE1hY2llaiBLYXRhZmlhc3ogPG1hdGhyaWNrQG1hdGhyaWNrLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9tYW51YWwvaW50cm8tbW90aXZhdGlvbi54bWw6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgIEF2b2lkIENPUkJBICYgQm9ub2JvIHJlZmVyZW5jZXMgKCMzNDA1OTgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBdm9pZCBDT1JCQSAmIEJvbm9ibyByZWZlcmVuY2VzICgjMzQwNTk4KQoKMjAwNi0wNS0wNSAxMzo1MzoyOCArMDAwMCAgTWFjaWVqIEthdGFmaWFzeiA8bWF0aHJpY2tAbWF0aHJpY2sub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICBGaXggdXAgc29tZSBpbmFjY3VyYWNpZXMgYW5kIG9taXNzaW9ucyBpbiBBRE0gKCMzNDA2MDkpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXggdXAgc29tZSBpbmFjY3VyYWNpZXMgYW5kIG9taXNzaW9ucyBpbiBBRE0gKCMzNDA2MDkpCgoyMDA2LTA1LTA1IDEyOjUzOjMzICswMDAwICBNYWNpZWogS2F0YWZpYXN6IDxtYXRocmlja0BtYXRocmljay5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBTbWFsbCB0eXBvIGluIGRvY3MgKCMzNDA2MjUpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBTbWFsbCB0eXBvIGluIGRvY3MgKCMzNDA2MjUpCgoyMDA2LTA1LTA1IDA5OjAxOjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3BhcnNlL01ha2VmaWxlLmFtOiBNYWtlICdtYWtlIC1qJyBwcm9vZiAoc2VlICMzNDA2OTgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIE1ha2UgJ21ha2UgLWonIHByb29mIChzZWUgIzM0MDY5OCkuCgoyMDA2LTA1LTA1IDA4OjU2OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBSZXF1aXJlIEdMaWItMi44IGhlcmUgYXMgd2VsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBSZXF1aXJlIEdMaWItMi44IGhlcmUgYXMgd2VsbC4KCjIwMDYtMDUtMDUgMDg6MTc6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBSZW1vdmUgcHJlIGdsaWIyLjggY29tcGF0aWJpbGl0eSwgZml4ZXMgIzM0MDUwOAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3ByZSk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9pbml0KSwgKGdzdF9vYmplY3RfcmVmKSwKCSAgKGdzdF9vYmplY3RfdW5yZWYpLCAoZ3N0X29iamVjdF9yZXBsYWNlKSwgKGdzdF9vYmplY3RfZGlzcG9zZSksCgkgIChnc3Rfb2JqZWN0X2Rpc3BhdGNoX3Byb3BlcnRpZXNfY2hhbmdlZCk6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAoZ3N0X3JlZ2lzdHJ5X3htbF9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3NldF92YWxpc3QpOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X2RhdGVfZ2V0X3R5cGUpLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgUmVtb3ZlIHByZSBnbGliMi44IGNvbXBhdGliaWxpdHksIGZpeGVzICMzNDA1MDgKCjIwMDYtMDUtMDQgMTg6MTQ6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5oOiBNZW50aW9uIHR5cGUgb2YgdGFncyBpbiBkb2MgYmx1cmJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBNZW50aW9uIHR5cGUgb2YgdGFncyBpbiBkb2MgYmx1cmJzLgoKMjAwNi0wNS0wNCAxNjozNDoyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFJlc3RvcmUgYWNjZXB0Y2FwcyBjaGVja2luZyBiZWhhdmlvdXIgbm93IHRoYXQgZ29vZCBwbHVnaW5zIGhhdmUgYmVlbiByZWxlYXNlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KSwgKGdzdF9wYWRfY29uZmlndXJlX3NpbmspLAoJICAoZ3N0X3BhZF9jb25maWd1cmVfc3JjKSwgKGdzdF9wYWRfcHVzaCk6CgkgIFJlc3RvcmUgYWNjZXB0Y2FwcyBjaGVja2luZyBiZWhhdmlvdXIgbm93IHRoYXQgZ29vZCBwbHVnaW5zIGhhdmUKCSAgYmVlbiByZWxlYXNlZC4KCjIwMDYtMDUtMDQgMTU6MjA6MTQgKzAwMDAgIEphbWVzIEFuZHJld2FydGhhIDx0cnM4MEB0YXJ0YXJ1cy51d2EuZWR1LmF1PgoKCSAgTWFrZSBzdXJlIGdzdHByaXZhdGUuaCBhbmQvb3IgY29uZmlnLmggYXJlIGFsd2F5cyBpbmNsdWRlZCBmaXJzdCwgb3RoZXJ3aXNlIHNvbWUgb2Ygb3VyIGRlZmluZXMgKGxpa2UgX0ZJTEVfT0ZGU0VUX0JJLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSmFtZXMgQW5kcmV3YXJ0aGEgPHRyczgwIGF0IHRhcnRhcnVzIHV3YSBlZHUgYXU+CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RidXMuYzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0Zm9ybWF0LmM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0cGFyc2UuYzoKCSAgKiBnc3QvZ3N0cXVlcnkuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgTWFrZSBzdXJlIGdzdHByaXZhdGUuaCBhbmQvb3IgY29uZmlnLmggYXJlCgkgIGFsd2F5cyBpbmNsdWRlZCBmaXJzdCwgb3RoZXJ3aXNlIHNvbWUgb2Ygb3VyCgkgIGRlZmluZXMgKGxpa2UgX0ZJTEVfT0ZGU0VUX0JJVFMpIG1pZ2h0IGJlCgkgIHJlZGVmaW5lZCBpbiB0aGUgc3lzdGVtIGhlYWRlcnMuIEZpeGVzIGJ1aWxkCgkgIG9uIG9wZW5zb2xhcmlzICgjMzQwMDE2KS4KCjIwMDYtMDUtMDQgMTQ6MTk6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBUEk6IGFkZGl0aW9uOiBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcigpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFQSTogYWRkaXRpb246IGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKCkKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX3B1c2gpLAoJICAoZ3N0X2FkYXB0ZXJfcGVlayksIChnc3RfYWRhcHRlcl90YWtlKSwgKGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKSwKCSAgKGdzdF9hZGFwdGVyX2F2YWlsYWJsZV9mYXN0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgUHJlcGFyZSBmb3Igb3B0aW1pemluZyB0aGUgaGVsbCBvdXQgb2YgdGhpcyBodWdlbHkgaW5lZmZpY2llbnQKCSAgcGllY2Ugb2YgY29kZS4KCSAgQWRkZWQgZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIoKSBzbyB3ZSBjYW4gYXQgbGVhc3Qgc3RhcnQgdGhpbmtpbmcKCSAgYWJvdXQgc3ViYnVmZmVyaW5nIGFuZCBtZXJnaW5nLgoJICBBZGRlZCBzb21lIGNvbW1lbnRzLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2FkYXB0ZXJfc3VpdGUpLCAobWFpbik6CgkgIEFkZGVkIEdzdEFkYXB0ZXIgY2hlY2suCgoyMDA2LTA1LTA0IDEzOjMwOjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6IEZpeCBzb21lIHR5cG9zLCBhZGQgYmx1cmIgYWJvdXQgYnVmZmVyIGZsYWdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgRml4IHNvbWUgdHlwb3MsIGFkZCBibHVyYiBhYm91dCBidWZmZXIgZmxhZ3MuCgoyMDA2LTA1LTAzIDE2OjQ1OjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IG1ha2Ugc3VyZSBHc3RCYXNlVHJhbnNmb3JtQ2xhc3Mgc2hvd3MgdXAgaW4gdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgbWFrZSBzdXJlIEdzdEJhc2VUcmFuc2Zvcm1DbGFzcyBzaG93cyB1cCBpbiB0aGUgZG9jcwoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBtb3ZlIGRvY3Mgc28gZ3RrLWRvYyBwaWNrcyBpdCB1cCBub3cKCjIwMDYtMDUtMDMgMTY6NDI6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIHdoaXRlc3BhY2UgcmVtb3ZhbCBhbmQgd2lkdGggY29lcmNpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgcmVtb3ZhbCBhbmQgd2lkdGggY29lcmNpb24KCjIwMDYtMDUtMDMgMTY6NDA6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogTWFrZWZpbGUuYW06CgkgIHdoaXRlc3BhY2UgbW92aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIG1vdmluZwoKMjAwNi0wNS0wMiAxNzoyOTowNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogYWRkIG1pc3Npbmcgc3ltYm9scyB0byBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGFkZCBtaXNzaW5nIHN5bWJvbHMgdG8gZG9jcwoKMjAwNi0wNS0wMiAxNzoxNzoyMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBiYWNrIG91dCB0aGUgbmV3c2VnbWVudCBoYW5kbGluZyBjaGFuZ2UsIHNlZSAjMzQwMDYwIGZvciBvbmdvaW5nIGRpc2N1c3Npb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCk6CgkgIGJhY2sgb3V0IHRoZSBuZXdzZWdtZW50IGhhbmRsaW5nIGNoYW5nZSwgc2VlICMzNDAwNjAgZm9yIG9uZ29pbmcKCSAgZGlzY3Vzc2lvbgoKMjAwNi0wNC0yOSAyMzoxNTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1ydW4uYzogRml4IHdyb25nIGdfZmlsZV90ZXN0KCkgdXNhZ2UgKHNlZSBnbGliIGRvY3MgZm9yIHdoeSBpdCBkb2Vzbid0IHdvcmspOyBmaXggdHlwbyBpbiBlcnJvciBtZXNzYWdlLiBGaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtcnVuLmM6IChnZXRfY2FuZGlkYXRlcyksIChtYWluKToKCSAgRml4IHdyb25nIGdfZmlsZV90ZXN0KCkgdXNhZ2UgKHNlZSBnbGliIGRvY3MgZm9yIHdoeSBpdCBkb2Vzbid0CgkgIHdvcmspOyBmaXggdHlwbyBpbiBlcnJvciBtZXNzYWdlLiBGaXhlcyAjMzQwMDc5LgoKMjAwNi0wNC0yOSAwMDozODowNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3BsdWdpbnMvdG1wbC8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDYtMDQtMjkgMDA6MzY6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbW92ZSB1cGxvYWQubWFrIHRvIGNvbW1vbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vTWFrZWZpbGUuYW06CgkgICogZG9jcy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2ZhcS9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcHdnL01ha2VmaWxlLmFtOgoJICAqIGRvY3Mvc2xpZGVzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvdXBsb2FkLm1hazoKCSAgKiBjb21tb24vdXBsb2FkLm1hazoKCSAgbW92ZSB1cGxvYWQubWFrIHRvIGNvbW1vbgoKMjAwNi0wNC0yOSAwMDozNTo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgYWRkIG1vcmUgbm90ZXMgb24gbW92aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbW9yZSBub3RlcyBvbiBtb3ZpbmcKCjIwMDYtMDQtMjkgMDA6MzM6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IGFkZCBtb3JlIGFzc2VydHMgb24gcmVmY291bnRzIGRvIG1vcmUgY2xlYW51cCBhdCBlbmQgb2YgdGVzdHMgZml4IHRlc3QgbGVha3Mgc2hvd2luZyBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA0LTI5ICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBhZGQgbW9yZSBhc3NlcnRzIG9uIHJlZmNvdW50cwoJICBkbyBtb3JlIGNsZWFudXAgYXQgZW5kIG9mIHRlc3RzCgkgIGZpeCB0ZXN0IGxlYWtzIHNob3dpbmcgaW4gRkM1CgoyMDA2LTA0LTI4IDIyOjU2OjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiByZXZlcnRlZCB3cm9uZyBjaGFuZ2UgYW5kIHJlZmxvd2VkIGNvZGUgdG8gYXZvaWQgb3RoZXJzIGZhbGxpbmcgaW50byB0aGlzIHRyYXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICByZXZlcnRlZCB3cm9uZyBjaGFuZ2UgYW5kIHJlZmxvd2VkIGNvZGUgdG8gYXZvaWQgb3RoZXJzIGZhbGxpbmcgaW50bwoJICB0aGlzIHRyYXAKCjIwMDYtMDQtMjggMjA6NTU6MzMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogZml4IGNoYW5nZWxvZyBlbnRyeSBhYm91dCBsYXN0IGNvbGxlY3RwYWRzIGNoYW5nZSwgYWRkIG5vdGVzIGFib3V0IHByb3BlciBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCk6CgkgIGZpeCBjaGFuZ2Vsb2cgZW50cnkgYWJvdXQgbGFzdCBjb2xsZWN0cGFkcyBjaGFuZ2UsCgkgIGFkZCBub3RlcyBhYm91dCBwcm9wZXIgZml4CgoyMDA2LTA0LTI4IDIwOjQ3OjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBvbmx5IHdyaXRlIG91dCByZWdpc3RyeSBpZiBpdCBoYXMgY2hhbmdlZCwgZml4ZXMgIzMzODMzOQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKSwKCSAgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGgpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBvbmx5IHdyaXRlIG91dCByZWdpc3RyeSBpZiBpdCBoYXMgY2hhbmdlZCwgZml4ZXMgIzMzODMzOQoKMjAwNi0wNC0yOCAyMDo0NDoyMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0Lzogb25seSB3cml0ZSBvdXQgcmVnaXN0cnkgaWYgaXQgaGFzIGNoYW5nZWQsIGZpeGVzICMzMzgzMzkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCksCgkgIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgb25seSB3cml0ZSBvdXQgcmVnaXN0cnkgaWYgaXQgaGFzIGNoYW5nZWQsIGZpeGVzICMzMzgzMzkKCjIwMDYtMDQtMjggMTg6NTU6MTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1ha2UgR3N0RWxlbWVudERldGFpbHMgY29uc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KToKCSAgbWFrZSBHc3RFbGVtZW50RGV0YWlscyBjb25zdAoKMjAwNi0wNC0yOCAxODo0ODozOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS86IG1vcmUgZGV0YWlsZWQgZGVidWcgYW5kIGZvcm1hdHRpbmcgY2xlYW51cAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2V2ZW50KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2Jhc2VfaW5pdCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2lzX2NvbGxlY3RlZCksIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KToKCSAgbW9yZSBkZXRhaWxlZCBkZWJ1ZyBhbmQgZm9ybWF0dGluZyBjbGVhbnVwCgoyMDA2LTA0LTI4IDE3OjUyOjEzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuYzogY2xlYW51cCBkb3VibGUgY29kZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2xpbmtfcGFkcyk6CgkgIGNsZWFudXAgZG91YmxlIGNvZGUKCjIwMDYtMDQtMjggMTc6MzM6NDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBzb21lIGxpdHRsZSB0dW5pbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlcl9zeW5jX3ZhbHVlcyk6CgkgIHNvbWUgbGl0dGxlIHR1bmluZwoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICBhIG5ldyB0ZXN0IGZvciBsaXZlIHZhbHVlIGhhbmRsaW5nCgoyMDA2LTA0LTI4IDE1OjUxOjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBHaXZlIGNyZWRpdCB0byBUYXBpIFBhYXZvbGEgZm9yIGxhc3QgcGF0Y2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEdpdmUgY3JlZGl0IHRvIFRhcGkgUGFhdm9sYSBmb3IgbGFzdCBwYXRjaAoKMjAwNi0wNC0yOCAxNTo0ODo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBBZGRlZCBzb21lIG1vcmUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChwdXNoX2FuZF9yZWYpOgoJICBBZGRlZCBzb21lIG1vcmUgZG9jcy4KCSAgRml4IHJlZmNvdW50IGlzc3VlIHdoaXRoIGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3MoKSBoZWxwZXIKCSAgZnVuY3Rpb24uIEZpeGVzICMzMzgzMzUKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF91dGlsc19zdWl0ZSk6CgkgIEFkZGVkIHRlc3RzdWl0ZSBmb3IgZ3N0X2VsZW1lbnRfZm91bmRfdGFncygpLgoKMjAwNi0wNC0yOCAxMzo1MTowMCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IEF2b2lkIE5VTEwgZGVyZWZlcmVuY2Ugd2hlbiB0cnlpbmcgdG8gc2VyaWFsaXplIGZsYWdzIGNvbnRhaW5pbmcgaW52YWxpZCB2YWx1ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mbGFncyk6CgkgIEF2b2lkIE5VTEwgZGVyZWZlcmVuY2Ugd2hlbiB0cnlpbmcgdG8gc2VyaWFsaXplIGZsYWdzIGNvbnRhaW5pbmcKCSAgaW52YWxpZCB2YWx1ZXMuCgoyMDA2LTA0LTI4IDEzOjQ0OjIwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgc21hbGwgZG9jIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc21hbGwgZG9jIGZpeAoKMjAwNi0wNC0yOCAxMzo0MzowMyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogSWYgd2UgZ2V0IEVPUyBiZWZvcmUgYW55IGRhdGEgaXMgYWNjdW11bGF0ZWQsIGRvbid0IHVzZSB1bmluaXRpYWxpc2VkIGxvY2FsIHZhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KToKCSAgSWYgd2UgZ2V0IEVPUyBiZWZvcmUgYW55IGRhdGEgaXMgYWNjdW11bGF0ZWQsIGRvbid0IHVzZQoJICB1bmluaXRpYWxpc2VkIGxvY2FsIHZhcmlhYmxlcy4KCjIwMDYtMDQtMjggMTM6NDA6MTUgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogRml4ZXMgaW4gcmVhZGluZy93cml0aW5nIGV2ZW50cyBvdmVyIEdEUCAobm90IGN1cnJlbnRseSB1c2VkPykgLSBkZXJlZmVyZW5jaW5nIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnQpLAoJICAoZ3N0X2RwX2V2ZW50X2Zyb21fcGFja2V0KToKCSAgRml4ZXMgaW4gcmVhZGluZy93cml0aW5nIGV2ZW50cyBvdmVyIEdEUCAobm90IGN1cnJlbnRseSB1c2VkPykgLQoJICBkZXJlZmVyZW5jaW5nIE5VTEwgZXZlbnRzIGZvciB1bmtub3duL2ludmFsaWQgZXZlbnQgdHlwZXMsIG1lbW9yeQoJICBsZWFrLCBhbmQgY2hhbmdlIGdfd2FybmluZyB0byBHU1RfV0FSTklORy4KCjIwMDYtMDQtMjggMTM6MjU6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFdoZW4gZnJhbWUgZHJvcHBpbmcgaXMgZW5hYmxlZCwgd2Ugc2hvdWxkIG5vdCBpZ25vcmUgZnJhbWVzIHdpdGhvdXQgYSBkdXJhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19pc190b29fbGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3JlbmRlcl9zdGF0cyksIChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBXaGVuIGZyYW1lIGRyb3BwaW5nIGlzIGVuYWJsZWQsIHdlIHNob3VsZCBub3QgaWdub3JlIGZyYW1lcwoJICB3aXRob3V0IGEgZHVyYXRpb24uCgkgIFVwZGF0ZSBzb21lIGRvY3VtZW50YXRpb24uCgoyMDA2LTA0LTI4IDEzOjE4OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IERvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgoyMDA2LTA0LTI4IDEzOjE2OjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogaGFuZGxlIEVBR0FJTiwgRUlOVFIgYW5kIHNob3J0IHdyaXRlcyBjb3JyZWN0bHkuIEFsc28gY2xlYW4gdXAgc29tZSBlcnJvciBjYXNlcywgYXZvaWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19yZW5kZXIpLAoJICAoZ3N0X2ZkX3NpbmtfY2hlY2tfZmQpLCAoZ3N0X2ZkX3NpbmtfdXBkYXRlX2ZkKToKCSAgaGFuZGxlIEVBR0FJTiwgRUlOVFIgYW5kIHNob3J0IHdyaXRlcyBjb3JyZWN0bHkuIEFsc28gY2xlYW4KCSAgdXAgc29tZSBlcnJvciBjYXNlcywgYXZvaWQgYSBkZWFkbG9jayBvbiBiYWQgZmlsZSBkZXNjcmlwdG9ycyBhbmQKCSAgdXNlIEdTVF9ERUJVR19PQkpFQ1QuCgkgIEZpeGVzICMzMzk4NDMKCjIwMDYtMDQtMjggMTM6MTM6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYzogRG9uJ3QgdHJ5IHRvIHNlcmlhbGl6ZSBhIEdWYWx1ZSB3aXRoIGEgTlVMTCBidWZmZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9idWZmZXIpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2J1ZmZlcik6CgkgIERvbid0IHRyeSB0byBzZXJpYWxpemUgYSBHVmFsdWUgd2l0aCBhIE5VTEwgYnVmZmVyLgoJICBGaXhlcyAjMzM5ODIxLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgQWRkZWQgY2hlY2sgZm9yIHNlcmlhbGlzYXRpb24gb2YgTlVMTCBidWZmZXJzLgoKMjAwNi0wNC0yOCAxMzoxMDowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IFRha2luZyBhIE5VTEwgbWluaW9iamVjdCBpcyB2YWxpZCwgZml4IHRoZSBjYXNlIHdoZXJlIHdlIHRyeSB0byB1bnJlZiB0aGUgTlVMTCBtaW5pb2JqZWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X3ZhbHVlX3Rha2VfbWluaV9vYmplY3QpOgoJICBUYWtpbmcgYSBOVUxMIG1pbmlvYmplY3QgaXMgdmFsaWQsIGZpeCB0aGUgY2FzZSB3aGVyZQoJICB3ZSB0cnkgdG8gdW5yZWYgdGhlIE5VTEwgbWluaW9iamVjdC4KCjIwMDYtMDQtMjggMTM6MDU6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgd2luMzIgY29uZmlnLmgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB3aW4zMiBjb25maWcuaAoKMjAwNi0wNC0yOCAxMzowNDowNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAc29uaWNwdWxzZS5kZT4KCgkgIGdzdC9nc3RiaW4uYzogVXBkYXRlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU3RlZmFuIEtvc3QgPGVuc29uaWMgYXQgc29uaWNwdWxzZSBkb3QgZGU+CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgVXBkYXRlIGRvY3MuCgkgIERvbid0IGxlYWsgYmluIHJlZmNvdW50IHdoZW4gYSBzdGF0ZSByZWNhbGMgaXMKCSAgaW4gcHJvZ3Jlc3MgYW5kIHdlIGRlbGF5IGFub3RoZXIgb25lICMzMzk4MDguCgoyMDA2LTA0LTI4IDEyOjU4OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogTWVudGlvbiBRb1MgYXMgYW4gb25nb2luZyB3b3JrIGl0ZW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIE1lbnRpb24gUW9TIGFzIGFuIG9uZ29pbmcgd29yayBpdGVtLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgTmV3IGRvYyBhYm91dCBidWZmZXJpbmcgdGhhdCBuZWVkcyB0byBiZSBmbGVzaGVkIG91dAoJICBhdCBzb21lIHBvaW50LgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgTW9yZSBRb1MgcG9saWN5IGZvciBkZWNvZGVycy9kZW11eGVycy90cmFuc2Zvcm1zCgkgICogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgU21hbGwgdXBkYXRlLgoKMjAwNi0wNC0yOCAxMDo1NjowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIEhFQUQKCj09PSByZWxlYXNlIDAuMTAuNSA9PT0KCjIwMDYtMDQtMjggMTA6NTM6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuMTAuNQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuMTAuNQoKMjAwNi0wNC0yOCAwOTo0ODowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuc2lnbmFsczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBkb2NzL3VwbG9hZC5tYWs6CgkgIGZpeCB1cGxvYWQubWFrOyBzaG91bGQgbW92ZSB0byBjb21tb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB1cGxvYWQubWFrOyBzaG91bGQgbW92ZSB0byBjb21tb24KCjIwMDYtMDQtMjggMDk6MjA6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvTUFOSUZFU1Q6CgkgIGFkZGluZyBtaXNzaW5nIGRzcCBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkaW5nIG1pc3NpbmcgZHNwIGZpbGVzCgoyMDA2LTA0LTI2IDEzOjU0OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBwcmVyZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwcmVyZWxlYXNlCgoyMDA2LTA0LTIyIDIxOjM0OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IGludGVybmFsIGRhdGEgZmxvdyBlcnJvcnMuICBGaXhlcyAjMzM4NzExLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IFdpbSBUYXltYW5zCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KSwgKGdzdF9wYWRfY29uZmlndXJlX3NpbmspLAoJICAoZ3N0X3BhZF9jb25maWd1cmVfc3JjKSwgKGdzdF9wYWRfcHVzaCk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfaW5pdCk6CgkgIEZpeCBpbnRlcm5hbCBkYXRhIGZsb3cgZXJyb3JzLiAgRml4ZXMgIzMzODcxMS4KCjIwMDYtMDQtMTIgMTE6NTg6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiBEb24ndCBsZWFrIHRoZSBmYWN0b3J5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBEb24ndCBsZWFrIHRoZSBmYWN0b3J5LgoKMjAwNi0wNC0xMiAxMTowNjo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9iZy5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX1RXLnBvOgoJICB1cGRhdGVkIHRyYW5zbGF0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlZCB0cmFuc2xhdGlvbnMKCjIwMDYtMDQtMTIgMTE6MDQ6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHVwZGF0ZSBsaWJ0b29sIHZlcnNpb25pbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBsaWJ0b29sIHZlcnNpb25pbmcKCjIwMDYtMDQtMTIgMTA6NTc6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcHJlcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcHJlcmVsZWFzZQoKMjAwNi0wNC0xMiAxMDoyODo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBGcmVlIGFsbG9jYXRlZCBHc3RUaW1lZFZhbHVlcyB3aGVuIGZyZWVpbmcgbGlzdCBub2Rlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl91bnNldCksCgkgIChnc3RfY29udHJvbGxlcl91bnNldF9hbGwpOgoJICBGcmVlIGFsbG9jYXRlZCBHc3RUaW1lZFZhbHVlcyB3aGVuIGZyZWVpbmcgbGlzdCBub2Rlcy4KCSAgU2hvdWxkIGZpeCBsZWFrcyAnbWFrZSBjaGVjay12YWxncmluZCcgY29tcGxhaW5zIGFib3V0LgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgQWRkIGdzdF9jb250cm9sbGVyX3Vuc2V0X2FsbC4KCjIwMDYtMDQtMTIgMTA6MTU6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJICBmaXggQ2hhbmdlTG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggQ2hhbmdlTG9nCgoyMDA2LTA0LTExIDIxOjA3OjI2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGRlZCBuZXcgbWV0aG9kIF91bnNldF9hbGwoKSBhbmQgZml4ZWQgX3Vuc2V0KCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX3Vuc2V0KSwKCSAgKGdzdF9jb250cm9sbGVyX3Vuc2V0X2FsbCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIEFkZGVkIG5ldyBtZXRob2QgX3Vuc2V0X2FsbCgpIGFuZCBmaXhlZCBfdW5zZXQoKQoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICBBZGRlZCB0d28gdGVzdGNhc2VzIGZvciBuZXcgYW5kIGZpeGVkIG1ldGhvZAoKMjAwNi0wNC0xMSAxODo0MzowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6IE1TR19ET05UV0FJVCBpcyBub3QgZGVmaW5lZCBvbiBDeWd3aW4sIHNvIHdvcmsgYXJvdW5kIHRoYXQgKGZpeGVzICMzMTcwNDgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOiAoZ3N0X25ldF90aW1lX3BhY2tldF9zZW5kKToKCSAgTVNHX0RPTlRXQUlUIGlzIG5vdCBkZWZpbmVkIG9uIEN5Z3dpbiwgc28gd29yawoJICBhcm91bmQgdGhhdCAoZml4ZXMgIzMxNzA0OCkuCgoyMDA2LTA0LTExIDE0OjQ4OjM0ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZml4IHZlcnNpb25pbmcgbWFjcm8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB2ZXJzaW9uaW5nIG1hY3JvCgoyMDA2LTA0LTExIDExOjQ3OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IFNvbWUgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfcmVnaXN0ZXIpLAoJICAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jcmVhdGUpLCAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKToKCSAgU29tZSBjbGVhbnVwcy4KCSAgRml4ZWQgYSBGSVhNRS4KCSAgVXBkYXRlZCBkb2NzIChGaXhlcyAjMTMxMDc5KQoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfbG9hZCk6CgkgIFNtYWxsIGNsZWFudXBzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfZWxlbWVudF9zdWl0ZSk6CgkgIEFkZGVkIHRlc3RjYXNlIGZvciBlbGVtZW50ZmFjdG9yeSBjbGFzcyBmaWVsZC4KCjIwMDYtMDQtMTAgMTA6NDY6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBBZGRlZCBzb21lIG1vcmUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgQWRkZWQgc29tZSBtb3JlIGRvY3MuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wZXJmb3JtX3FvcyksCgkgIChnc3RfYmFzZV9zaW5rX3Jlc2V0X3Fvcyk6CgkgIENhbGN1bGF0ZSBtb3JlIGFjY3VyYXRlIHJhdGUgdmFsdWVzLgoKMjAwNi0wNC0wOSAxNjo1NzozNCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdF9wcml2YXRlLmg6IGFkZCBhIG5ldyAjaWZkZWYgdG8gdXNlIF9fZGVjbHNwZWMoZGxsaW1wb3J0KSBvbmx5IGZvciBvdGhlciBtb2R1bGVzIGFuZCBub3QgZm9yIGdzdHJlYW1lciBjb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICBhZGQgYSBuZXcgI2lmZGVmIHRvIHVzZSBfX2RlY2xzcGVjKGRsbGltcG9ydCkgb25seSBmb3IKCSAgb3RoZXIgbW9kdWxlcyBhbmQgbm90IGZvciBnc3RyZWFtZXIgY29yZQoJICAqIGdzdC9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wZXJmb3JtX3Fvcyk6CgkgIHVzZSBnc3RfZ3VpbnQ2NF90b19nZG91YmxlIGZvciBjb252ZXJzaW9uCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zCgkgICogd2luMzIvdnM2L2dzdF9pbnNwZWN0LmRzcDoKCSAgKiB3aW4zMi92czYvZ3N0X2xhdW5jaC5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3Rjb250cm9sbGVyLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0Y29yZWVsZW1lbnRzLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0ZGF0YXByb3RvY29sLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0bmV0LmRzcDoKCSAgdXBkYXRlIHByb2plY3QgZmlsZXMKCjIwMDYtMDQtMDggMjA6NTc6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEZpeCAjMzM3MzY1IChnX3R5cGVfY2xhc3NfcmVmIDwtPiBnX3R5cGVfY2xhc3NfcGVla19wYXJlbnQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9zdWJidWZmZXJfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzogKGdzdF9pbmRleF9mYWN0b3J5X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfY2xhc3NfaW5pdCksCgkgIChnc3Rfc2lnbmFsX29iamVjdF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiAoZ3N0X3BhZF90ZW1wbGF0ZV9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0dGFzay5jOiAoZ3N0X3Rhc2tfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHhtbC5jOiAoZ3N0X3htbF9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoX2dzdF9jb250cm9sbGVyX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzogKGdzdF9maWxlX2luZGV4X2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzogKGdzdF9tZW1faW5kZXhfY2xhc3NfaW5pdCk6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5jOiAoZ3N0X2V4YW1wbGVfY2xhc3NfaW5pdCk6CgkgICogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3NpZ25hbHMuYzogKGdzdF90ZXN0X2NsYXNzX2luaXQpOgoJICBGaXggIzMzNzM2NSAoZ190eXBlX2NsYXNzX3JlZiA8LT4gZ190eXBlX2NsYXNzX3BlZWtfcGFyZW50KQoKMjAwNi0wNC0wOCAxODoxMTo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogTXVzdCBzZXQgcGVlciBwYWRzIGJlZm9yZSBjYWxsaW5nIHRoZSBsaW5rIGZ1bmN0aW9uLCBvdGhlcndpc2UgYSB0YXNrIHN0YXJ0ZWQgZnJvbSBhIGxpbmsgZnVuY3Rpb24gbWlnaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xpbmspOgoJICBNdXN0IHNldCBwZWVyIHBhZHMgYmVmb3JlIGNhbGxpbmcgdGhlIGxpbmsgZnVuY3Rpb24sIG90aGVyd2lzZQoJICBhIHRhc2sgc3RhcnRlZCBmcm9tIGEgbGluayBmdW5jdGlvbiBtaWdodCBnZXQgYSBmbG93LW5vdC1saW5rZWQKCSAgcmVzdWx0IHdoZW4gdHJ5aW5nIHRvIHB1c2ggYmVjYXVzZSB0aGUgb3RoZXIgdGhyZWFkIHdoZXJlIHRoZQoJICBsaW5raW5nIGhhcHBlbnMgaGFzbid0IGhhZCBhIGNoYW5jZSB0byBzZXQgdGhlIHBlZXJzIHlldC4gVGhpcwoJICBtaWdodCBoYXBwZW4gZm9yIGV4YW1wbGUgd2hlbiBhIHF1ZXVlIGdldHMgbGlua2VkIHRvIGEgZG93bnN0cmVhbQoJICBlbGVtZW50LCBhcyBxdWV1ZSBzdGFydHMgYSBzdHJlYW1pbmcgdGFzayB3aGVuIGl0cyBzb3VyY2UgcGFkCgkgIGdldHMgbGlua2VkLiBIYXBwZW5zIGluIHJlYWwgbGlmZSB3aGVuIHBsYXlpbmcgYmFjayBmbGFjL211c2VwYWNrCgkgIGZpbGVzIGluIHBsYXliaW4gKCMzMzIzOTApLgoKMjAwNi0wNC0wOCAxODowNToxNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRml4IGJyb2tlbiBHT2JqZWN0IG1hY3JvcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5kZXguaDoKCSAgKiBnc3QvZ3N0eG1sLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSAgRml4IGJyb2tlbiBHT2JqZWN0IG1hY3JvcwoKMjAwNi0wNC0wNyAxNToxOTowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSW5pdGlhbGl6ZSBzdGFydCBhbmQgc3RvcCB0aW1lcywgdGhhbmtzIHZhbGdyaW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKToKCSAgSW5pdGlhbGl6ZSBzdGFydCBhbmQgc3RvcCB0aW1lcywgdGhhbmtzIHZhbGdyaW5kLgoKMjAwNi0wNC0wNyAxNDo1MDowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQmUgYSBiaXQgbmljZXIgdG8gYmFkbHkgYmVoYXZpbmcgdXBzdHJlYW0gZWxlbWVudHMgdGhhdCBleHBlY3QgdXMgdG8gZGVhbCB3aXRoIG5vbiBUSU1FIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKToKCSAgQmUgYSBiaXQgbmljZXIgdG8gYmFkbHkgYmVoYXZpbmcgdXBzdHJlYW0gZWxlbWVudHMgdGhhdCBleHBlY3QKCSAgdXMgdG8gZGVhbCB3aXRoIG5vbiBUSU1FIHNlZ21lbnRzIGFuZCB0aW1lc3RhbXBzIChzdWNoIGFzIGZha2VzcmMKCSAgaW4gdGhlIHRlc3RzdWl0ZSkuCgoyMDA2LTA0LTA3IDE0OjAyOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBTbWFsbCBkb2N1bWVudGF0aW9uIGNsYXJpZmljYXRpb24gYWJvdXQgdGhlIHNpZ25hbCB3YXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIGNsYXJpZmljYXRpb24gYWJvdXQgdGhlIHNpZ25hbCB3YXRjaC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19wZXJmb3JtX3FvcyksIChnc3RfYmFzZV9zaW5rX3Jlc2V0X3FvcyksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3JlbmRlcl9zdGF0cyksIChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fbGFzdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9wYXVzZWQpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBDb252ZXJ0IGFuZCBzdG9yZSB0aW1lc3RhbXBzIGluIHN0cmVhbSB0aW1lIGFuZCBydW5uaW5nIHRpbWUsIHRoZQoJICByYXcgdGltZXN0YW1wcyBhcmUgbm90IHVzZWZ1bGwsIGFsc28gZG9jdW1lbnQgdGhpcyBiZXR0ZXIuCgkgIFVzZSBkaWZmZXJlbnQgd2luZG93IHNpemVzIGZvciBnb29kIGFuZCBiYWQgUW9TIG9ic2VydmF0aW9ucyBzbwoJICB3ZSByZWFjdCB0byBiYWRuZXNzIGEgbGl0dGxlIHF1aWNrZXIuCgkgIEtlZXAgdHJhY2sgb2YgdGhlIGFtb3VudCBvZiByZW5kZXJlZCBhbmQgZHJvcHBlZCBidWZmZXJzLgoJICBTZW5kIFFvUyB0aW1lc3RhbXBzIGluIHJ1bm5pbmcgdGltZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2V2ZW50ZnVuYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgIENvbXBhcmUgUW9TIHRpbWVzdGFtcHMgYWdhaW5zdCBydW5uaW5nIHRpbWUuCgoyMDA2LTA0LTA2IDE3OjM2OjI3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgYWRkIGdub25saW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBnbm9ubGluCgoyMDA2LTA0LTA2IDE1OjQ2OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBUeXBvIGZpeGVzIGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgVHlwbyBmaXhlcyBpbiBkb2NzLgoKMjAwNi0wNC0wNiAxNTowNzoxMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHBhZC5jOiBVc2UgZ192YWx1ZV9nZXRfb2JqZWN0KCkgaW5zdGVhZCBvZiBnX3ZhbHVlX2R1cF9nc3Rfb2JqZWN0KCksIHRvIGF2b2lkIGRvdWJsZS1yZWZmaW5nIHRoZSBwYWQgdGVtcGxhdGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X3Byb3BlcnR5KToKCSAgVXNlIGdfdmFsdWVfZ2V0X29iamVjdCgpIGluc3RlYWQgb2YgZ192YWx1ZV9kdXBfZ3N0X29iamVjdCgpLAoJICB0byBhdm9pZCBkb3VibGUtcmVmZmluZyB0aGUgcGFkIHRlbXBsYXRlICh3aGljaCB3ZSB0aGVuIHNpbmssCgkgIHNvIHRoaXMgd29ya2VkIHByZXZpb3VzbHkgaWYgKGFuZCBvbmx5IGlmKSB0aGUgcGFkIHRlbXBsYXRlCgkgIHdhcyBmbG9hdGluZy4KCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogKGdzdF9wYWRfdGVtcGxhdGVfaW5pdCksCgkgIChnc3RfcGFkX3RlbXBsYXRlX3BhZF9jcmVhdGVkKToKCSAgTmV2ZXIgcmV0dXJuIGZsb2F0aW5nIHJlZmVyZW5jZXMgdG8gcGFkIHRlbXBsYXRlcywgY3JlYXRlCgkgIHRoZW0gYXMgaW5pdGlhbGx5LXN1bmtlbi4KCSAgRG9jdW1lbnQgYW4gZXh0cmEgZnVuY3Rpb24gKGFuZCBtYWtlIHRoaXMgc3RvcCBzaW5raW5nIG91cgoJICBwYWQgdGVtcGxhdGUsIHNpbmNlIHRoYXQgaXMgbm93IGd1YXJhbnRlZWQgdG8gZG8gbm90aGluZywKCSAgc2luY2Ugd2UgY3JlYXRlZCBpdCBzdW5rZW4pLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBGaXggZG9jcyB0eXBvLgoKMjAwNi0wNC0wNiAxMToyNzoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmM6IEFkZCBzb21lIG5ld2xpbmVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX19nc3RfaW5fdmFsZ3JpbmQpOgoJICBBZGQgc29tZSBuZXdsaW5lcy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKToKCSAgRG9uJ3QgbGVhayBidWZmZXIgY2Fwcy4KCjIwMDYtMDQtMDYgMTA6Mzg6NTQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9wYXJzZS9ncmFtbWFyLnk6IEZpeCBhIGxlYWsgaW4gcGFyc2UtbGF1bmNoIGZvciBhbnkgc291cmNlLW9yLXNpbmsgbmFtZWQgZWxlbWVudCByZWZlcmVuY2VzIHVzZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIEZpeCBhIGxlYWsgaW4gcGFyc2UtbGF1bmNoIGZvciBhbnkgc291cmNlLW9yLXNpbmsgbmFtZWQgZWxlbWVudAoJICByZWZlcmVuY2VzIHVzZWQuCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAoZXhwZWN0ZWRfZmFpbF9waXBlKToKCSAgVW5yZWYgdGhlIHBpcGVsaW5lIGlmIGl0IGV4aXN0cyBhZnRlciB3ZSd2ZSBmYWlsZWQgcGFyc2luZy4KCjIwMDYtMDQtMDUgMTU6NDY6MDAgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBXaGVuIHdlIGNyZWF0ZSBhIHBpcGVsaW5lIGJ1cywgaW5pdGlhbGx5IGNyZWF0ZSBpdCBpbiBmbHVzaGluZyBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9pbml0KToKCSAgV2hlbiB3ZSBjcmVhdGUgYSBwaXBlbGluZSBidXMsIGluaXRpYWxseSBjcmVhdGUgaXQgaW4gZmx1c2hpbmcgbW9kZS4KCSAgRml4ZXMgbGVha3MgaW4gYXQgbGVhc3Qgb25lIHRlc3QsIGFuZCBtYWtlcyBhIG5ldyBwaXBlbGluZSB3b3JrIHRoZQoJICBzYW1lIGFzIG9uZSB0aGF0IGhhcyBnb25lIHRvIFJFQURZIGFuZCB0aGVuIGJhY2sgdG8gTlVMTC4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBUeXBvIGZpeCBpbiBkb2NzLgoKMjAwNi0wNC0wNSAxNToxMjozOSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IFVucmVmIGEgcGFkIHdlIHJlZmZlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVucmVmIGEgcGFkIHdlIHJlZmZlZC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVW5yZWYgYmlucwoKMjAwNi0wNC0wNSAxMzoxODoyOSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdHF1ZXJ5LmM6IEZpeCBsZWFraW5nIEdWYWx1ZXMgaW4gcXVlcmllcywgYXMgc2hvd24gYnkgdmFsZ3JpbmQvdGVzdHN1aXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9zZXRfZm9ybWF0cyksCgkgIChnc3RfcXVlcnlfc2V0X2Zvcm1hdHN2KToKCSAgRml4IGxlYWtpbmcgR1ZhbHVlcyBpbiBxdWVyaWVzLCBhcyBzaG93biBieSB2YWxncmluZC90ZXN0c3VpdGUuCgoyMDA2LTA0LTA1IDEyOjExOjIwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IEZpeCBhIHZhcmlldHkgb2YgbWVtbGVha3MgaW4gc2lua3MgY2hlY2ssIHdoaWNoIGFyZSBvbmx5IHNvbWV0aW1lcyBzaG93biBieSBydW5uaW5nIHRoZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggYSB2YXJpZXR5IG9mIG1lbWxlYWtzIGluIHNpbmtzIGNoZWNrLCB3aGljaCBhcmUgb25seSBzb21ldGltZXMKCSAgc2hvd24gYnkgcnVubmluZyB0aGUgdGVzdHMgdW5kZXIgdmFsZ3JpbmQgKHdlaXJkPykuCgoyMDA2LTA0LTA1IDExOjA0OjE5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvdmVyc2lvbi5lbnRpdGllcy5pbjogRml4IHRoZSBzdWJzdGl0dXRlZCBlbnRpdHkgbmFtZSBhZnRlciB0aG9tYXMnIGNoYW5nZXMgb24gdGhlIHdlZWtlbmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvdmVyc2lvbi5lbnRpdGllcy5pbjoKCSAgRml4IHRoZSBzdWJzdGl0dXRlZCBlbnRpdHkgbmFtZSBhZnRlciB0aG9tYXMnIGNoYW5nZXMgb24gdGhlCgkgIHdlZWtlbmQuCgoyMDA2LTA0LTA1IDEwOjMxOjIwICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgZ3N0L2dzdGluZm8uYzogVXNlIHByaW50ZiBpbnN0ZWFkIG9mCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA0LTA1ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogZ3N0L2dzdGluZm8uYzogKF9fZ3N0X2luX3ZhbGdyaW5kKTogVXNlIHByaW50ZiBpbnN0ZWFkIG9mCgkgIFZBTEdSSU5EX1BSSU5URgoKMjAwNi0wNC0wNSAxMDoyNjoyOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKTogTW9yZSBkZWJ1Zy4gbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDQtMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKTogTW9yZSBkZWJ1Zy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfZXZlbnRmdW5jKTogV2hlbiByZXNldHRpbmcgb3VyIHNlZ21lbnQgb24KCSAgRkxVU0hfU1RPUCwgYWxzbyB1cGRhdGUgdGhlIGZsYWcgc2F5aW5nIHdlIGhhdmVuJ3Qgc2VlbiBhCgkgIG5ld3NlZ21lbnQuCgoyMDA2LTA0LTA0IDE4OjAyOjA3ICswMDAwICBQYW9sbyBCb3JlbGxpIDxwYm9yZWxsaUBrYXRhbWFpbC5jb20+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IG1pbm9yIGNsZWFuLXVwczogR19ERUZJTkVfVFlQRSBhbHJlYWR5IHRha2VzIGNhcmUgb2YgdGhlIHBhcmVudF9jbGFzcyBzdHVmZiwgbm8gbmVlZCB0byBkbyBpdCB0d2ljZS4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQYW9sbyBCb3JlbGxpICA8cGJvcmVsbGkgYXQga2F0YW1haWwgZG90IGNvbT4KCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2ZpbmFsaXplKSwgKGdzdF9wbHVnaW5fY2xhc3NfaW5pdCksCgkgIChnc3RfcGx1Z2luX2NoZWNrX2xpY2Vuc2UpOgoJICBtaW5vciBjbGVhbi11cHM6IEdfREVGSU5FX1RZUEUgYWxyZWFkeSB0YWtlcyBjYXJlIG9mIHRoZQoJICBwYXJlbnRfY2xhc3Mgc3R1ZmYsIG5vIG5lZWQgdG8gZG8gaXQgdHdpY2UuIE1hcmsgYXJyYXkgb2YKCSAgbGljZW5zZSBzdHJpbmdzIGFzIGNvbnN0YW50LiAoIzMzNzEwMykKCjIwMDYtMDQtMDQgMTc6NTQ6MzAgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEZyZWUgdGhlIHJpZ2h0IHBsdWdpbiBsaXN0OyBmaXhlcyBhIG1lbW9yeSBsZWFrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9saXN0KToKCSAgRnJlZSB0aGUgcmlnaHQgcGx1Z2luIGxpc3Q7IGZpeGVzIGEgbWVtb3J5IGxlYWsuCgoyMDA2LTA0LTA0IDE1OjQ1OjM2ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBEb24ndCBlcnJvciBvdXQgb24gZW1wdHkgYnVmZmVycyAoIzMzNjk0NSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyAgPG1hbmF1dyBhdCBza3luZXQgZG90IGJlPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgRG9uJ3QgZXJyb3Igb3V0IG9uIGVtcHR5IGJ1ZmZlcnMgKCMzMzY5NDUpLgoKMjAwNi0wNC0wNCAxNDo1ODo1MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuIE1ha2UgQmFzZVNpbmsgYW5kIEJhc2VTcmMgZG9jcyBjb250YWluIHRoZSBjbGFzcyBzdHJ1Y3R1cmUgc28gdGhhdCBwZW9wbGUgY2FuIGFjdHVhbGx5IHNlZSB0aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4gTWFrZSBCYXNlU2luayBhbmQgQmFzZVNyYyBkb2NzIGNvbnRhaW4gdGhlCgkgIGNsYXNzIHN0cnVjdHVyZSBzbyB0aGF0IHBlb3BsZSBjYW4gYWN0dWFsbHkgc2VlIHRoZSBwcm90b3R5cGVzIGZvcgoJICB2aXJ0dWFsIGZ1bmN0aW9ucyB0aGV5J3JlIHN1cHBvc2VkIHRvIGJlIG92ZXJyaWRpbmcuCgoyMDA2LTA0LTA0IDA4OjU1OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogTW9yZSBkZWJ1ZyBpbmZvOyB3aGVuIHNraXBwaW5nIHR5cGVmaW5kaW5nLCBzZW5kIGNhY2hlZCBldmVudHMgaW4gYWxsIGNhc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKToKCSAgTW9yZSBkZWJ1ZyBpbmZvOyB3aGVuIHNraXBwaW5nIHR5cGVmaW5kaW5nLCBzZW5kIGNhY2hlZAoJICBldmVudHMgaW4gYWxsIGNhc2VzLgoKMjAwNi0wNC0wMyAxNzowNTozMSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBGaXggdHlwbyBpbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRml4IHR5cG8gaW4gZG9jcy4KCjIwMDYtMDQtMDMgMDg6NTk6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlIHdpbjMyIGNvbW1vbiBkaXI7IHVwZGF0ZSB1bmluc3RhbGxlZCBzY3JpcHQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB3aW4zMiBjb21tb24gZGlyOyB1cGRhdGUgdW5pbnN0YWxsZWQgc2NyaXB0CgoyMDA2LTA0LTAxIDE1OjMwOjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBkaXNhYmxlIHVzZSBvZiBBU19MSUJUT09MX1RBR1MsIGl0IGRvZXNuJ3Qgd29yayBjb3JyZWN0bHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRpc2FibGUgdXNlIG9mIEFTX0xJQlRPT0xfVEFHUywgaXQgZG9lc24ndCB3b3JrIGNvcnJlY3RseQoKMjAwNi0wNC0wMSAwOTo0MTo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IHVzZSBuZXcgQVNfVkVSU0lPTiBhbmQgQVNfTkFOTyBtYWNyb3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICB1c2UgbmV3IEFTX1ZFUlNJT04gYW5kIEFTX05BTk8gbWFjcm9zCgkgICogZ3N0L2dzdC1pMThuLWxpYi5oOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIHVwZGF0ZSBhY2NvcmRpbmdseQoKMjAwNi0wMy0zMSAxNToyNjowNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogRG8gbm90IHR5cGVmaW5kIGNvbnRlbnQgaWYgdGhlIGJ1ZmZlcnMgYWxyZWFkeSBoYXZlIGNhcHMuIGFuZCB0aGUgcmlnaHQgdGhpbmcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pOgoJICBEbyBub3QgdHlwZWZpbmQgY29udGVudCBpZiB0aGUgYnVmZmVycyBhbHJlYWR5IGhhdmUgY2Fwcy4KCSAgTmVjY2VzYXJ5IGZvciBpY3lkZW11eCAoIzMzMzY1NyksIGFuZCB0aGUgcmlnaHQgdGhpbmcgdG8gZG8gYW55d2F5LgoKMjAwNi0wMy0zMCAxNjozNjoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogTW9yZSBRb1MgbWVhc3VyZW1lbnRzIGFzIGRlc2NyaWJlZCBpbiB0aGUgZGVzaWduIGRvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZmluYWxpemUpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfcW9zX2VuYWJsZWQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pc19xb3NfZW5hYmxlZCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19yZWNvcmRfcW9zX29ic2VydmF0aW9uKSwKCSAgKGdzdF9iYXNlX3NpbmtfcGVyZm9ybV9xb3MpLCAoZ3N0X2Jhc2Vfc2lua19yZXNldF9xb3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19pc190b29fbGF0ZSksIChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBNb3JlIFFvUyBtZWFzdXJlbWVudHMgYXMgZGVzY3JpYmVkIGluIHRoZSBkZXNpZ24gZG9jLgoJICBHZXQgcmlkIG9mIHJpbmdidWZmZXIgd2l0aCBvYnNlcnZhdGlvbnMsIHJ1bm5pbmcgYXZlcmFnZSBpcwoJICBtb3JlIHNpbXBsZSBhbmQgZXF1YWxseSBnb29kLgoJICBDYWxjdWxhdGVzIHZhbGlkIHByb3BvcnRpb24gbm93LgoJICBBZGRlZCBiZWdpbm5pbmcgb2YgZmxvb2QgbWVhc3VyZW1lbnQuCgoyMDA2LTAzLTI5IDEzOjQ1OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU21hbGwgZG9jdW1lbnRhdGlvbiB1cGRhdGVzIGFuZCBhZGRpdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgU21hbGwgZG9jdW1lbnRhdGlvbiB1cGRhdGVzIGFuZCBhZGRpdGlvbnMuCgoyMDA2LTAzLTI5IDEzOjM5OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFBlcmZvcm0gdGhlIEVPUyBsb2dpYyB3aGVuIHdlIHJlYWNoIHRoZSBzZWdtZW50IHN0b3AgcG9zaXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2ZpbmFsaXplKSwKCSAgKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KSwgKGdzdF9iYXNlX3NyY19sb29wKSwKCSAgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBQZXJmb3JtIHRoZSBFT1MgbG9naWMgd2hlbiB3ZSByZWFjaCB0aGUgc2VnbWVudCBzdG9wIHBvc2l0aW9uLgoJICBGaXggY29tcGlsYXRpb24gb24gZ2NjNC4xCgoyMDA2LTAzLTI5IDExOjAyOjMzICswMDAwICBUb21taSBNecO2aMOkbmVuIDxleHQtdG9tbWkubXlvaGFuZW5Abm9raWEuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS4qOiBJbiBxdWV1ZSwgd2hlbiBFT1MgaXMgcmVjZWl2ZWQsIGlmIG1pbmltdW0gdGhyZXNob2xkID4gbWF4X3NpemUgLSBjdXJyZW50X2xldmVsLCB0aGVyZSBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieSBUb21taSBNecO2aMOkbmVuIDxleHQtdG9tbWkgZG90IG15b2hhbmVuIGF0IG5va2lhIGRvdCBjb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9mbHVzaCksIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX3NldF9wcm9wZXJ0eSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBJbiBxdWV1ZSwgd2hlbiBFT1MgaXMgcmVjZWl2ZWQsIGlmIG1pbmltdW0gdGhyZXNob2xkID4gbWF4X3NpemUgLQoJICBjdXJyZW50X2xldmVsLCB0aGVyZSBpcyBjaGFuY2UgdGhhdCBxdWV1ZSBibG9ja3MgZm9yZXZlciBpbiBjb25kaXRpb25hbCBpdGVtCgkgIGRlbCB3YWl0LiBUaGlzIGlzIGJlY2F1c2UgdGhlIHF1ZXVlIGlzIG5vdCBlbXB0aWVkIGNvbXBsZXRlbHkgZHVlIHRvIG1pbmltdW0KCSAgdGhyZXNob2xkLgoJICBIZXJlIGlzIGFub3RoZXIgYXBwcm9hY2guIEluc3RlYWQgb2Ygc2V0dGluZyBjdXJfbGV2ZWxzIHRvIG1heCBpbiBFT1MsIGp1c3QKCSAgemVybyBhbGwgbWluaW11bSB0aHJlc2hvbGQgbGV2ZWxzLiBUaGlzIHNob3VsZCBtYWtlIHN1cmUgdGhhdCBxdWV1ZSBnaXZlcyBvdXQKCSAgYWxsIGRhdGEuIFdoZW4gZ29pbmcgdG8gUkVBRFkgKHN0b3ApIHN0YXRlLCBqdXN0IHJlc2V0IHRoZSBvcmlnaW5hbCBtaW5pbXVtCgkgIHRocmVzaG9sZCBsZXZlbHMuCgkgIEZpeGVzICMzMzYzMzYuCgoyMDA2LTAzLTI5IDEwOjMzOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuKjogV2hlbiB0eXBlZmluZGluZyBpcyBkb25lIGluIHB1c2ggbW9kZSwgd2Ugc2hvdWxkIGNhY2hlIGV2ZW50cyB3ZSByZWNlaXZlIGR1cmluLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChzdG9wX3R5cGVmaW5kaW5nKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NlbmRfY2FjaGVkX2V2ZW50cyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICBXaGVuIHR5cGVmaW5kaW5nIGlzIGRvbmUgaW4gcHVzaCBtb2RlLCB3ZSBzaG91bGQgY2FjaGUKCSAgZXZlbnRzIHdlIHJlY2VpdmUgZHVyaW5nIHR5cGVmaW5kaW5nIGluc3RlYWQgb2YganVzdAoJICBkcm9wcGluZyB0aGVtIChlLmcuIG5ld3NlZ21lbnQsIGN1c3RvbSBldmVudHMgZnJvbQoJICBkdmRyZWFkc3JjIGV0Yy4pIGFuZCB0aGVuIHNlbmQgdGhlbSBvdXQgb25jZSB3ZSd2ZQoJICBkZXRlcm1pbmVkIHRoZSB0eXBlIG9mIHRoZSBzdHJlYW0gKGFuZCBkZWNvZGViaW4KCSAgaGFzIGhhZCBhIGNoYW5jZSB0byBwbHVnIGluIGEgZGVjb2Rlci9kZW11eGVyKS4KCjIwMDYtMDMtMjcgMTg6Mzg6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6IEZpcnN0IFFvUyBpZGVhcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBGaXJzdCBRb1MgaWRlYXMuCgoyMDA2LTAzLTI3IDExOjQ4OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEhhbmRsZSBlbGVtZW50IHNlZWsgY29ycmVjdGx5IHdoZW4gd2UgYXJlIHN0cmVhbWluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEluc3BpcmVkIGJ5IGEgcGF0Y2ggb2Y6IEx1dHogTXVlbGxlciA8bHV0eiBhdCB0b3Bmcm9zZSBkb3QgZGU+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZmluYWxpemUpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIEhhbmRsZSBlbGVtZW50IHNlZWsgY29ycmVjdGx5IHdoZW4gd2UgYXJlIHN0cmVhbWluZy4KCSAgRml4ZXMgIzMyNjk5OC4KCjIwMDYtMDMtMjQgMTg6Mzg6MTIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogU2V0IHVwIExEX0xJQlJBUllfUEFUSCB0byBwb2ludCBhdCBhbGwgdGhlIGdzdHJlYW1lciBsaWJzLiBUaGlzIHdpbGwgYWxsb3cgeW91IHRvIGNvcnJlY3RseS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIFNldCB1cCBMRF9MSUJSQVJZX1BBVEggdG8gcG9pbnQgYXQgYWxsIHRoZSBnc3RyZWFtZXIgbGlicy4gVGhpcyB3aWxsCgkgIGFsbG93IHlvdSB0byBjb3JyZWN0bHkgcnVuIGludGFsbGVkIGFwcGxpY2F0aW9ucyBidWlsdCBhZ2FpbnN0IG9sZCAgICAgICAgICAgY29yZSwgdXNpbmcgcGx1Z2lucyB0aGF0IHJlcXVpcmUgdXBkYXRlZCBjb3JlIChlLmcuIHJ1bm5pbmcKCSAgaW5zdGFsbGVkIHRvdGVtIGFnYWluc3QgYSBmdWxsIHVuaW5zdGFsbGVkIGdzdHJlYW1lciBzdGFjaykKCjIwMDYtMDMtMjQgMTc6Mjk6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJICBhZGQgQVBJOiBtYXJrZXIgaW4gQ2hhbmdlTG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgQVBJOiBtYXJrZXIgaW4gQ2hhbmdlTG9nCgoyMDA2LTAzLTI0IDE3OjEwOjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IG1vcmUgZGVidWcgZGV0YWlscwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2lzX2NvbGxlY3RlZCk6CgkgIG1vcmUgZGVidWcgZGV0YWlscwoKMjAwNi0wMy0yNCAxMTowMjo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFJlYXJyYW5nZSB0aGUgb3JkZXIgb2YgdGhlIG1ldGhvZHMgc28gdGhhdCByZWxhdGVkIG1ldGhvZHMgYXJlIGdyb3VwZWQgdG9nZXRoZXIgaW4gcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBSZWFycmFuZ2UgdGhlIG9yZGVyIG9mIHRoZSBtZXRob2RzIHNvIHRoYXQgcmVsYXRlZCBtZXRob2RzCgkgIGFyZSBncm91cGVkIHRvZ2V0aGVyIGluIHNlY3Rpb25zLgoKMjAwNi0wMy0yNCAxMDo0NDoxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogTGl0dGxlIGNsYXJpZmljYXRpb24gaW4gdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgTGl0dGxlIGNsYXJpZmljYXRpb24gaW4gdGhlIGRvY3MKCjIwMDYtMDMtMjQgMTA6Mzg6MjAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvUkVBRE1FOiBmb3JtYXR0aW5nIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgZm9ybWF0dGluZyBmaXgKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgR1NUX0VMRU1FTlRfREVUQUlMUyBmb3JtYXR0aW5nCgoyMDA2LTAzLTI0IDA5OjQ4OjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOiBPbmx5IGFkZCBmaWVsZHMsIG5vdCBpbnNlcnQgb3Igd2UgYnJlYWsgQUJJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIE9ubHkgYWRkIGZpZWxkcywgbm90IGluc2VydCBvciB3ZSBicmVhayBBQkkuCgoyMDA2LTAzLTIzIDE4OjUxOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uLzogVXBkYXRlLCBhZGQgcmVjZW50bHkgYWRkZWQgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFVwZGF0ZSwgYWRkIHJlY2VudGx5IGFkZGVkIGZ1bmN0aW9ucy4KCjIwMDYtMDMtMjMgMTg6NDU6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBzb21lIG5ldyB1dGlsaXR5IGZ1bmN0aW9uczoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYWRfcXVlcnlfcGVlcl9wb3NpdGlvbiksCgkgIChnc3RfcGFkX3F1ZXJ5X3BlZXJfZHVyYXRpb24pLCAoZ3N0X3BhZF9xdWVyeV9wZWVyX2NvbnZlcnQpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBUEk6IGFkZCBzb21lIG5ldyB1dGlsaXR5IGZ1bmN0aW9uczoKCSAgLSBnc3RfcGFkX3F1ZXJ5X3BlZXJfcG9zaXRpb24KCSAgLSBnc3RfcGFkX3F1ZXJ5X3BlZXJfZHVyYXRpb24KCSAgLSBnc3RfcGFkX3F1ZXJ5X3BlZXJfY29udmVydAoKMjAwNi0wMy0yMyAxNjozMjo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgRm9yZ290IHRvIG1lbnRpb24gdGhlIHByZXZpb3VzIGNvbW1pdCBmaXhlZCAjMzI2MzExCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGb3Jnb3QgdG8gbWVudGlvbiB0aGUgcHJldmlvdXMgY29tbWl0IGZpeGVkICMzMjYzMTEKCjIwMDYtMDMtMjMgMTY6MjA6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERlY291cGxlIG1heC1sYXRlbmVzcyBhbmQgdGhlIGZhY3QgdGhhdCBRb1MgbWVzc2FnZXMgYXJlIGdlbmVyYXRlZCB3aXRoIGEgbmV3IHByb3BlcnR5ICguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfaW5pdCksIChnc3RfYmFzZV9zaW5rX2ZpbmFsaXplKSwKCSAgKGdzdF9iYXNlX3Npbmtfc2V0X3Fvc19lbmFibGVkKSwgKGdzdF9iYXNlX3NpbmtfaXNfcW9zX2VuYWJsZWQpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2spLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfYWRkX3Fvc19vYnNlcnZhdGlvbiksIChnc3RfYmFzZV9zaW5rX3NlbmRfcW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfcGVyZm9ybV9xb3MpLCAoZ3N0X2Jhc2Vfc2lua19yZXNldF9xb3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19pc190b29fbGF0ZSksIChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fbGFzdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9wYXVzZWQpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIERlY291cGxlIG1heC1sYXRlbmVzcyBhbmQgdGhlIGZhY3QgdGhhdCBRb1MgbWVzc2FnZXMgYXJlIGdlbmVyYXRlZAoJICB3aXRoIGEgbmV3IHByb3BlcnR5IChxb3MpLgoJICBBZGQgdm1ldGhvZCBzbyBzdWJjbGFzc2VzIGNhbiBiZSBub3RpZmllZCBvZiBBU1lOQyBwbGF5aW5nCgkgIHN0YXRlIGNoYW5nZXMuCgkgIENvbGxlY3QgdGltZXN0YW1wIHN0YXJ0IGFuZCBzdG9wIHRvIHJlcG9ydCBiZXR0ZXIgY3VycmVudAoJICBwb3NpdGlvbiBpbiBFT1MvUExBWUlORy9QQVVTRUQvUkVBRFkvTlVMTC4KCSAgUmVmYWN0b3IgUW9TL2ZyYW1lIGRyb3BwaW5nIGFuZCBvdGhlciBtZWFzdXJlbWVudHMuCgkgIEFQSTogR3N0QmFzZVNyYzo6cW9zCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBZGRlZCBQcml2YXRlIHN0cnVjdC4KCSAgQVBJOiBnc3RfYmFzZV9zaW5rX3NldF9xb3NfZW5hYmxlZAoJICBBUEk6IGdzdF9iYXNlX3NpbmtfaXNfcW9zX2VuYWJsZWQKCjIwMDYtMDMtMjMgMTE6NTQ6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogSWYgY29tcGlsaW5nIGFnYWluc3QgR0xpYi0yLjggb3IgbmV3ZXIsIHRyeSB0byByZWFkIHRoZSByZWdpc3RyeSBmaWxlIHVzaW5nIEdNYXBwZWRGaWxlIGZpcnN0IGIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChnc3RfcmVnaXN0cnlfeG1sX3JlYWRfY2FjaGUpOgoJICBJZiBjb21waWxpbmcgYWdhaW5zdCBHTGliLTIuOCBvciBuZXdlciwgdHJ5IHRvIHJlYWQgdGhlCgkgIHJlZ2lzdHJ5IGZpbGUgdXNpbmcgR01hcHBlZEZpbGUgZmlyc3QgYmVmb3JlIGZhbGxpbmcgYmFjawoJICB0byBmb3BlbigpICsgZnJlYWQoKSAoIzMzMjE1MSkuCgoyMDA2LTAzLTIyIDE4OjI1OjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGluZm8uYzogRGlzYWJsZSBkZWJ1Z2dpbmcgdW5sZXNzIGV4cGxpY2l0bHkgYWN0aXZhdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoZ3N0X2RlYnVnX3NldF9hY3RpdmUpLAoJICAoZ3N0X2RlYnVnX2NhdGVnb3J5X3NldF90aHJlc2hvbGQpOgoJICBEaXNhYmxlIGRlYnVnZ2luZyB1bmxlc3MgZXhwbGljaXRseSBhY3RpdmF0ZWQuCgkgIEZpeGVzICMzMzU0ODAuCgoyMDA2LTAzLTIyIDEzOjEwOjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogQ2xlYW51cCB0aGUgZXJyb3IgY2FzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9sb2NrZWRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfZGlzcG9zZSk6CgkgIENsZWFudXAgdGhlIGVycm9yIGNhc2UuCgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9kaXNwb3NlKToKCSAgcHJpbnQgYSBjcml0aWNhbCB3aGVuIHNvbWUgb2JqZWN0IHdhcyBkaXNwb3NlZCB3aXRoCgkgIGEgcGFyZW50LCBhbHNvIHJldml2ZSB0aGUgb2JqZWN0IHNpbmNlIGl0IG1pZ2h0CgkgIGNyYXNoIHRoZSBwYXJlbnQuCgoyMDA2LTAzLTIyIDA5OjAzOjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluOiBGaXggYW5vdGhlciB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIEZpeCBhbm90aGVyIHR5cG8uCgoyMDA2LTAzLTIxIDE5OjI3OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRpc2FibGUgc29tZSB0ZXN0cyB3aGVuIHdlIGRvbid0IGhhdmUgYSByZWdpc3RyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGRpc2FibGUgc29tZSB0ZXN0cyB3aGVuIHdlIGRvbid0IGhhdmUgYSByZWdpc3RyeQoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxzX3N1aXRlKToKCSAgZG9uJ3QgYnVpbGQgdGhlIHBhcnQgdGhhdCBuZWVkcyBwYXJzaW5nCgoyMDA2LTAzLTIxIDE3OjI1OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9NYWtlZmlsZS5hbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW0KCSAgKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgZml4IC0tZGlzYWJsZS1wYXJzZSBidWlsZAoKMjAwNi0wMy0yMSAxNzoyNDozMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgIHRoZSAuaW4gZmlsZSBpcyBpbiBjdnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRoZSAuaW4gZmlsZSBpcyBpbiBjdnMKCjIwMDYtMDMtMjEgMTU6NDI6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtZmVlZGJhY2suMS5pbjogRml4IHR5cG86IHMvZmVlYmFjay9mZWVkYmFjay8gKCMxMzM0OTQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtZmVlZGJhY2suMS5pbjoKCSAgRml4IHR5cG86IHMvZmVlYmFjay9mZWVkYmFjay8gKCMxMzM0OTQpLgoKMjAwNi0wMy0yMSAxNTowNDoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzLzogQWRkIEZJTEVTIHNlY3Rpb24gYW5kIGNvcnJlY3QgZW50cnkgYWJvdXQgR1NUX1JFR0lTVFJZX1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUgKCMxMzM0OTU7ICMxMzM0OTQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIEFkZCBGSUxFUyBzZWN0aW9uIGFuZCBjb3JyZWN0IGVudHJ5IGFib3V0IEdTVF9SRUdJU1RSWV9QQVRICgkgIGVudmlyb25tZW50IHZhcmlhYmxlICgjMTMzNDk1OyAjMTMzNDk0KS4KCjIwMDYtMDMtMjEgMTQ6NDE6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy86IFJlbW92ZSBnc3QtbWQ1c3VtIGFuZCBtYW4gcGFnZSAodGhlIG1kNXNpbmsgZWxlbWVudCByZXF1aXJlZCB3YXMgcmVtb3ZlZCBhZ2VzIGFnbykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvZ3N0LW1kNXN1bS4xLmluOgoJICAqIHRvb2xzL2dzdC1tZDVzdW0uYzoKCSAgUmVtb3ZlIGdzdC1tZDVzdW0gYW5kIG1hbiBwYWdlICh0aGUgbWQ1c2luayBlbGVtZW50CgkgIHJlcXVpcmVkIHdhcyByZW1vdmVkIGFnZXMgYWdvKQoKMjAwNi0wMy0yMSAxNDoyNDo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogTWFrZSBzdXJlIHRoYXQgc3RyaW5nIGZpZWxkcyBpbiBzdHJ1Y3R1cmVzL3RhZ2xpc3RzIGNvbnRhaW4gdmFsaWQgVVRGLTggLSB3ZSBkb24ndCB3YW50IHRvIHBhc3Mgci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2lkX3NldF92YWx1ZSk6CgkgIE1ha2Ugc3VyZSB0aGF0IHN0cmluZyBmaWVsZHMgaW4gc3RydWN0dXJlcy90YWdsaXN0cwoJICBjb250YWluIHZhbGlkIFVURi04IC0gd2UgZG9uJ3Qgd2FudCB0byBwYXNzIHJ1YmJpc2ggdG8KCSAgYXBwbGljYXRpb25zIGJlY2F1c2Ugb2YgYSBidWdneSBwbHVnaW4gKGNwLiAjMzM0MTY3KS4KCjIwMDYtMDMtMjEgMTQ6MTQ6NDkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBTZXJpZXMgb2YgZml4ZXMgZm9yIGRlcmVmZXJlbmNlZCBwb2ludGVycyB0aGF0IGdjYyA0LjEgY29tcGxhaW5zIGFib3V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2aWV3ZWQgYnk6IDxkZWxldGUgaWYgbm90IHVzaW5nIGEgYnVkZHk+CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9kaXNwb3NlKSwgKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZGlzcG9zZSksIChnc3RfY2xvY2tfc2V0X21hc3Rlcik6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9jbG9jayksIChnc3RfZWxlbWVudF9kaXNwb3NlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9idXNfZnVuYyk6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2Rpc3Bvc2UpOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfdmFsdWVfc2V0X21pbmlfb2JqZWN0KSwKCSAgKGdzdF92YWx1ZV90YWtlX21pbmlfb2JqZWN0KToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9wYWRfdGVtcGxhdGUpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2Rpc3Bvc2UpLAoJICAoZ3N0X3BpcGVsaW5lX3VzZV9jbG9jayksIChnc3RfcGlwZWxpbmVfYXV0b19jbG9jayk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19wb3ApLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3NldF9wcm9wZXJ0eSk6CgkgIFNlcmllcyBvZiBmaXhlcyBmb3IgZGVyZWZlcmVuY2VkIHBvaW50ZXJzIHRoYXQgZ2NjIDQuMSBjb21wbGFpbnMgYWJvdXQuCgkgIEl0J3MgaW4gZmFjdCBhbGwgaXNzdWVzIHdpdGggZ3N0XypvYmplY3RfcmVwbGFjZSgpLgoKMjAwNi0wMy0yMSAxMzo1NTo0NCArMDAwMCAgTG/Dr2MgTWluaWVyIDxsb29sLmdub21lQHZpYS5lY3AuZnI+CgoJICBwa2djb25maWcvOiBVc2UgQENIRUNLX0xJQlNAIGhlcmUgaW5zdGVhZCBvZiBoYXJkLWNvZGluZyAtbGNoZWNrICgjMzM0MTA5KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBMb8OvYyBNaW5pZXIgIDxsb29sICsgZ25vbWUgYXQgdmlhIGRvdCBlY3AgZG90IGZyPgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSAgVXNlIEBDSEVDS19MSUJTQCBoZXJlIGluc3RlYWQgb2YgaGFyZC1jb2RpbmcgLWxjaGVjayAoIzMzNDEwOSkuCgoyMDA2LTAzLTIxIDEzOjUwOjUyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0LzogZ3N0X1tidWZmZXJ8ZXZlbnR8bWVzc2FnZV1fcmVmKCkgbWFjcm9zIGFyZSByZXBsYWNlZCBieSBhIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb25zIGJlY2F1c2UgZ2NjLTQuMSB3aWxsIGFib3V0IGlmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBnc3RfW2J1ZmZlcnxldmVudHxtZXNzYWdlXV9yZWYoKSBtYWNyb3MgYXJlIHJlcGxhY2VkIGJ5IGEgc3RhdGljCgkgIGlubGluZSBmdW5jdGlvbnMgYmVjYXVzZSBnY2MtNC4xIHdpbGwgYWJvdXQgaWYgdGhlIHJldHVybiB2YWx1ZQoJICBpc24ndCB1c2VkLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAoZXZlbnRfcHJvYmUpOgoJICBnc3RfZXZlbnRfcmVmIG5vdyBoYXMgdG8gYmUgZ2l2ZW4gYSBHc3RFdmVudCogLCBmaXggY2hlY2sgYWNjb3JkaW5nbHkuCgoyMDA2LTAzLTIwIDE2OjQ3OjM1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIGRvY3MvcGx1Z2lucy90bXBsLy5naXRpZ25vcmU6CgkgIFJlbW92ZSBpcnJpdGF0aW5nIGZpbGUgdGhhdCBrZWVwcyBicmVha2luZyBteSBjaGVja291dHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbW92ZSBpcnJpdGF0aW5nIGZpbGUgdGhhdCBrZWVwcyBicmVha2luZyBteSBjaGVja291dHMKCjIwMDYtMDMtMjAgMTY6NDU6MTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmg6IEFkZCBHX1VOTElLRUxZIHRvIG91ciBib2lsZXJwbGF0ZSB0byBvcHRpbWlzZSB0aGUgJ2FscmVhZHkgcmVnaXN0ZXJlZCB0aGUgdHlwZScgY2FzZS4gKENsb3NlczogIzMzNTE5Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBZGQgR19VTkxJS0VMWSB0byBvdXIgYm9pbGVycGxhdGUgdG8gb3B0aW1pc2UgdGhlICdhbHJlYWR5IHJlZ2lzdGVyZWQKCSAgdGhlIHR5cGUnIGNhc2UuIChDbG9zZXM6ICMzMzUxOTUgZm9yIG5vdykuIEluIHRoZSBmdXR1cmUsIHdoZW4gd2UKCSAgZGVwZW5kIG9uIEdMaWIgMi4xMCwgd2UgY291bGQgYWxzbyBpbnRlcm4gdGhlIHR5cGUgbmFtZSB1c2luZwoJICBnX2ludGVybl9zdGF0aWNfc3RyaW5nKCkKCjIwMDYtMDMtMjAgMTA6NTY6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFBvc2l0aW9uIHF1ZXJ5IHNob3VsZCBhbHNvIHRha2UgbWF4IG9mIGFsbCBzdHJlYW1zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpLAoJICAoYmluX3F1ZXJ5X21heF9pbml0KSwgKGJpbl9xdWVyeV9wb3NpdGlvbl9mb2xkKSwKCSAgKGJpbl9xdWVyeV9wb3NpdGlvbl9kb25lKSwgKGdzdF9iaW5fcXVlcnkpOgoJICBQb3NpdGlvbiBxdWVyeSBzaG91bGQgYWxzbyB0YWtlIG1heCBvZiBhbGwgc3RyZWFtcy4KCjIwMDYtMDMtMjAgMDk6Mjg6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogRml4IGxlYWtzIGluIGZha2VzcmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2Vfc3JjX2ZpbmFsaXplKToKCSAgRml4IGxlYWtzIGluIGZha2VzcmMuCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggbGVha3MgaW4gdGhlIHRlc3RjYXNlLgoKMjAwNi0wMy0xOSAyMTozOToyMSArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdF9wcml2YXRlLmg6IGFkZCB3aW4zMiBzcGVjaWZpYyBpbXBvcnQgZGVjb3JhdGlvbihfX2RlY2xzcGVjKGRsbGltcG9ydCkpIGZvciBhbGwgZXh0ZXJuIEdzdERlYnVnQ2F0ZWdvcnkgKiB2YXJpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICBhZGQgd2luMzIgc3BlY2lmaWMgaW1wb3J0IGRlY29yYXRpb24oX19kZWNsc3BlYyhkbGxpbXBvcnQpKQoJICBmb3IgYWxsIGV4dGVybiBHc3REZWJ1Z0NhdGVnb3J5ICogdmFyaWFibGVzCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIHNvbWUgZXhwb3J0cywgcmVtb3ZlIGVtcHR5IGxpbmVzCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGRhdGFwcm90b2NvbC5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGRhdGFwcm90b2NvbC5kc3A6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kc3A6CgkgIG5ldyBwcm9qZWN0IGZpbGVzIGFuZCBleHBvcnRhdGlvbiBmaWxlcyBhZGRlZAoKMjAwNi0wMy0xOSAxNjowNToyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOiBVc2UgcHJvcGVyIHJldHVybiB2YWx1ZSBmb3IgcHJvYmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOiAoZW9zX2V2ZW50X2NvdW50ZXIpOgoJICBVc2UgcHJvcGVyIHJldHVybiB2YWx1ZSBmb3IgcHJvYmUuCgoyMDA2LTAzLTE3IDE5OjI3OjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBEb24ndCBsZWFrIGJ1ZmZlcnMsIGNhcHMgYW5kIHBhZHMgb24gbmVnb3RpYXRpb24gZXJyb3JzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpLAoJICAoZ3N0X3BhZF9wdXNoKToKCSAgRG9uJ3QgbGVhayBidWZmZXJzLCBjYXBzIGFuZCBwYWRzIG9uIG5lZ290aWF0aW9uIGVycm9ycy4KCjIwMDYtMDMtMTYgMTU6MzM6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZmFxLzogRmFxIHJldmlldyBhbmQgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9jdnMueG1sOgoJICAqIGRvY3MvZmFxL2RlcGVuZGVuY2llcy54bWw6CgkgICogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkgICogZG9jcy9mYXEvZmFxLnhtbDoKCSAgKiBkb2NzL2ZhcS9nZW5lcmFsLnhtbDoKCSAgKiBkb2NzL2ZhcS9nZXR0aW5nLnhtbDoKCSAgKiBkb2NzL2ZhcS9sZWdhbC54bWw6CgkgICogZG9jcy9mYXEvdHJvdWJsZXNob290aW5nLnhtbDoKCSAgKiBkb2NzL2ZhcS91c2luZy54bWw6CgkgIEZhcSByZXZpZXcgYW5kIHVwZGF0ZS4KCjIwMDYtMDMtMTYgMTA6MTg6MjcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBEb24ndCBwb3VuZCB0aGUgY3B1IHRvIHBpZWNlcyBieSBjaGVja2luZyBnZXRfY2FwcyB3aGVuIGFjY2VwdF9jYXBzIGlzIGNhbGxlZCB3aXRoIHRoZSBzYW1lIGNhcHMgYXMgdGhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCksCgkgIChnc3RfcGFkX3B1c2gpOgoJICBEb24ndCBwb3VuZCB0aGUgY3B1IHRvIHBpZWNlcyBieSBjaGVja2luZyBnZXRfY2FwcyB3aGVuIGFjY2VwdF9jYXBzCgkgIGlzIGNhbGxlZCB3aXRoIHRoZSBzYW1lIGNhcHMgYXMgdGhlIHBhZCBhbHJlYWR5IGhhcy4KCSAgVXNlIEdTVF9ERUJVR19PQkpFQ1Qgd2hlbiBvdXRwdXR0aW5nIGNhcHMgY2hhbmdlIGluZm9ybWF0aW9uLgoKMjAwNi0wMy0xNSAyMDoxNzo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjbG9jay5jOiBGaXggZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfY2xhc3NfaW5pdCk6CgkgIEZpeCBkb2NzLgoKMjAwNi0wMy0xNSAxNjoyOTowMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmg6IERvY3VtZW50YXRpb24gZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIERvY3VtZW50YXRpb24gZml4LgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCksIChnc3RfcGFkX2FjY2VwdGNhcHNfZGVmYXVsdCksCgkgIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfY29uZmlndXJlX3NpbmspLAoJICAoZ3N0X3BhZF9jb25maWd1cmVfc3JjKSwgKGdzdF9wYWRfY2hhaW4pLCAoZ3N0X3BhZF9wdXNoKToKCSAgTWFrZSB0aGUgZGVmYXVsdCBhY2NlcHRjYXBzIGJlaGF2aW91ciBiZSB0byBjaGVjayB0aGUgcmVxdWVzdGVkCgkgIGNhcHMgYWdhaW5zdCB0aGUgZ3N0X3BhZF9nZXRfY2FwcyBvdXRwdXQuCgkgIEVuc3VyZSB0aGF0IGdzdF9wYWRfYWNjZXB0X2NhcHMgaXMgdXNlZCB0byBjaGVjayBjYXBzIHdoZW4gYSBwYWQKCSAgZG9lc24ndCBoYXZlIGEgc2V0Y2FwcyBmdW5jdGlvbiwgc28gdGhhdCBwYWRzIGF1dG9tYXRpY2FsbHkgcmVmdXNlCgkgIGNhcHMgdGhhdCB0aGV5IGRvbid0IGFsbG93IGluIHRoZWlyIHBhZCB0ZW1wbGF0ZS4gKEZpeGVzICMzMzI5ODYpCgkgIFdoZW4gYSBidWZmZXIgd2l0aCBhdHRhY2hlZCBjYXBzIGlzIHB1c2hlZCwgZW5zdXJlIHRoYXQgdGhlIHNvdXJjZQoJICBwYWQgcmVjZWl2ZXMgdGhvc2UgY2FwcyBldmVuIGlmIHRoZSBlbGVtZW50IGRpZG4ndCBjYWxsCgkgIGdzdF9wYWRfc2V0X2NhcHMgZmlyc3QuCgoyMDA2LTAzLTE1IDE2OjIyOjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IEFkZCBzb21lIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBBZGQgc29tZSBkb2NzLgoKMjAwNi0wMy0xNSAxNTo1Nzo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi86IEFkZCBhIHdob2xlIGJ1bmNoIG9mIG1pc3NpbmcgZnVuY3Rpb25zICgjMzM0NDM0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIGEgd2hvbGUgYnVuY2ggb2YgbWlzc2luZyBmdW5jdGlvbnMgKCMzMzQ0MzQpLgoKMjAwNi0wMy0xNCAxOTozNjowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQmV0dGVyIGRlYnVnIGluZm8gd2hlbiB3ZSByZWNlaXZlIGEgc2VnbWVudCBldmVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb25maWd1cmVfc2VnbWVudCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKSwgKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19kb19xb3MpOgoJICBCZXR0ZXIgZGVidWcgaW5mbyB3aGVuIHdlIHJlY2VpdmUgYSBzZWdtZW50IGV2ZW50LgoJICBSZW9yZ2FuaXplIGEgYml0IHNvIHdlIGNhbiBwYXNzIHRoZSBnZXRfdGltZXMoKSByZXN1bHRzIGFyb3VuZC4KCSAgVXNlIHRoZSBzZWdtZW50IGZvcm1hdCB3aGVuIGNhbGN1bGF0aW5nIHRoZSBydW5uaW5nIHRpbWUuCgkgIERvbid0IGRvIFFvUyBpcyBzeW5jIGlzIGRpc2FibGVkIG9yIHdlIGhhdmUgbm8gY2xvY2sgb3IgdGhlCgkgIGVsZW1lbnQgZG9lcyBub3Qgd2FudCB1cyB0byBzeW5jIHRvIHRoZSBjbG9jay4KCSAgRG9uJ3QgZHJvcCBidWZmZXJzIGlmIFFvUyBpcyBkaXNhYmxlZCBmb3Igbm93LgoKMjAwNi0wMy0xNCAxOToyODoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjbG9jay5jOiBNYXJrZWQgdGhlIHN0YXRzIHByb3BlcnR5IGFzIHVuaW1wbGVtZW50ZWQgc28gcGVvcGxlIGRvbid0IGdldCB3aWxkIGlkZWFzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19jbGFzc19pbml0KSwgKGRvX2xpbmVhcl9yZWdyZXNzaW9uKToKCSAgTWFya2VkIHRoZSBzdGF0cyBwcm9wZXJ0eSBhcyB1bmltcGxlbWVudGVkIHNvIHBlb3BsZSBkb24ndCBnZXQKCSAgd2lsZCBpZGVhcy4KCSAgQWRkIGRlYnVnIG1lc3NhZ2Ugd2hlbiByZWdyZXNzaW9uIGdvZXMgd3JvbmcuCgkgIEFkZGVkIHNvbWUgbW9yZSBkb2NzLgoKMjAwNi0wMy0xNCAxOToyNjoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IFJldHVybiBjb3JyZWN0IHJldHVybiB0eXBlIGluIGNhc2Ugb2YgZXJyb3JzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpOgoJICBSZXR1cm4gY29ycmVjdCByZXR1cm4gdHlwZSBpbiBjYXNlIG9mIGVycm9ycy4KCjIwMDYtMDMtMTQgMTk6MTY6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Zm9ybWF0LmM6IERvbid0IHNlZ2ZhdWx0IG9uIGludmFsaWQgZm9ybWF0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGZvcm1hdC5jOiAoZ3N0X2Zvcm1hdF9nZXRfbmFtZSksIChnc3RfZm9ybWF0X3RvX3F1YXJrKToKCSAgRG9uJ3Qgc2VnZmF1bHQgb24gaW52YWxpZCBmb3JtYXRzLgoKMjAwNi0wMy0xNCAxODoyNTo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQ2FuJ3QgdXNlIGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSgpIHdoZW4gdGhlIHNlZ21lbnQgaXMgbm90IGluIEdTVF9USU1FX0ZPUk1BVCAobGlrZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKToKCSAgQ2FuJ3QgdXNlIGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSgpIHdoZW4gdGhlIHNlZ21lbnQKCSAgaXMgbm90IGluIEdTVF9USU1FX0ZPUk1BVCAobGlrZSB3aXRoIGZpbGVzaW5rLCBmb3IgZXhhbXBsZSkuCgkgIFN0b3BzIGZsYWMgZW5jb2RpbmcgcGlwZWxpbmVzIGZyb20gc3Bld2luZyBjcml0aWNhbCB3YXJuaW5ncwoJICBhdCBFT1MgKCMzMzEyNDgpLgoKMjAwNi0wMy0xNCAxNjozMjo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBBZGQgJ1NpbmNlOiAwLjEwLjUnIHRvIGd0ay1kb2MgYmx1cmIgZm9yIGFkZGVkIHByb3BlcnR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KToKCSAgQWRkICdTaW5jZTogMC4xMC41JyB0byBndGstZG9jIGJsdXJiIGZvciBhZGRlZCBwcm9wZXJ0eS4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCk6CgkgIERvbid0IHRyeSB0byB0eXBlZmluZCBlbXB0eSBzdHJlYW1zLgoKMjAwNi0wMy0xNCAxMToxODowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU2VwYXJhdGUgUW9TIGNhbGN1bGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19xb3MpOgoJICBTZXBhcmF0ZSBRb1MgY2FsY3VsYXRpb24uCgkgIE9ubHkgZHJvcCBidWZmZXJzIHdoZW4gbGF0ZW5lc3MgaXMgYmlnZ2VyIHRoYW4gdGhlCgkgIGR1cmF0aW9uIG9mIHRoZSBidWZmZXIuCgoyMDA2LTAzLTEzIDE1OjE3OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IERvbid0IGRlYWRsb2NrIHdoZW4gcmVhZGluZyBwcm9wZXJ0aWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3BpcGVsaW5lX2dldF9wcm9wZXJ0eSksIChkb19waXBlbGluZV9zZWVrKSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3BpcGVsaW5lX3NldF9kZWxheSksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X2RlbGF5KToKCSAgRG9uJ3QgZGVhZGxvY2sgd2hlbiByZWFkaW5nIHByb3BlcnRpZXMuCgoyMDA2LTAzLTEzIDExOjI3OjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLio6IE1ha2UgYmFzZXRyYW5zZm9ybSB2aXJ0dWFsIG1ldGhvZCBmb3Igc3JjIGV2ZW50cyB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfZXZlbnRmdW5jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zcmNfZXZlbnQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NyY19ldmVudGZ1bmMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV91cGRhdGVfcW9zKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcW9zX2VuYWJsZWQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX3Fvc19lbmFibGVkKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgTWFrZSBiYXNldHJhbnNmb3JtIHZpcnR1YWwgbWV0aG9kIGZvciBzcmMgZXZlbnRzIHRvby4KCSAgSGFuZGxlIFFPUyBpbiBiYXNldHJhbnNmb3JtLgoJICBBUEk6IGdzdF9iYXNlX3RyYW5zZm9ybV91cGRhdGVfcW9zCgkgIEFQSTogZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9xb3NfZW5hYmxlZAoJICBBUEk6IGdzdF9iYXNlX3RyYW5zZm9ybV9pc19xb3NfZW5hYmxlZAoKMjAwNi0wMy0xMyAxMToxNjo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU21hbGwgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICBTbWFsbCBjbGVhbnVwcy4KCSAgVXNlIFFPUyBkZWJ1ZyBjYXRlZ29yeS4KCjIwMDYtMDMtMTMgMTE6MTE6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IFZlcnkgc21hbGwgZG9jIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBWZXJ5IHNtYWxsIGRvYyB1cGRhdGUuCgoyMDA2LTAzLTEzIDExOjA4OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQWRkZWQgUU9TIGRlYnVnIGNhdGVnb3J5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfZ3N0X2RlYnVnX2luaXQpOgoJICBBZGRlZCBRT1MgZGVidWcgY2F0ZWdvcnkKCjIwMDYtMDMtMTMgMTE6MDQ6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2J1c19oYW5kbGVyKSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfbG9ja2VkX3N0YXRlKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfZ2V0X3R5cGUpLAoJICAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLCAoZ3N0X3BpcGVsaW5lX2luaXQpLAoJICAoZ3N0X3BpcGVsaW5lX2Rpc3Bvc2UpLCAoZ3N0X3BpcGVsaW5lX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X3Byb3BlcnR5KSwgKGRvX3BpcGVsaW5lX3NlZWspLAoJICAoZ3N0X3BpcGVsaW5lX3NlbmRfZXZlbnQpLCAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcGlwZWxpbmVfcHJvdmlkZV9jbG9ja19mdW5jKSwgKGdzdF9waXBlbGluZV9zZXRfZGVsYXkpLAoJICAoZ3N0X3BpcGVsaW5lX2dldF9kZWxheSk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgIEFkZGVkIG1ldGhvZHMgZm9yIHNldHRpbmcgdGhlIGRlbGF5LgoJICBBUEk6IGdzdF9waXBlbGluZV9zZXRfZGVsYXkKCSAgQVBJOiBnc3RfcGlwZWxpbmVfZ2V0X2RlbGF5CgkgIEFkZCBwaXBlbGluZSBkZWJ1ZyBjYXRlZ29yeQoJICBWYXJpb3VzIGNsZWFudXBzLgoJICBVcGRhdGVkIGRvY3MuCgkgIERvbid0IHJlc2V0IHN0cmVhbSB0aW1lIHdoZW4gc2VlayBmYWlsZWQuCgoyMDA2LTAzLTEzIDEwOjMyOjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCjIwMDYtMDMtMTIgMjA6NDQ6NDYgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogRml4IHJ1YmJpc2ggZG9jcyB0aGF0IGFyZSBlbmNvdXJhZ2luZyB1cyB0byBsZWFrIHN0cmluZ3MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDMtMTIgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiBGaXggcnViYmlzaCBkb2NzIHRoYXQgYXJlIGVuY291cmFnaW5nCgkgIHVzIHRvIGxlYWsgc3RyaW5ncy4uLgoKMjAwNi0wMy0xMiAyMDo0MDoxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IGZpeCBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgZml4IGRvY3MKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZQoKMjAwNi0wMy0xMiAxNDozMjozNyArMDAwMCAgSnVsaW8gTS4gTWVyaW5vIFZpZGFsIDxqbW12QG5ldGJzZC5vcmc+CgoJICBjb25maWd1cmUuYWM6IERvbid0IGNoZWNrIGZvciBsaWJnbm9tZXVpIChsZWZ0b3ZlciBmcm9tIG9sZCBleGFtcGxlcyB0aGF0IGFyZW4ndCBidWlsdCBvciBkaXN0ZWQgYW55IGxvbmdlcikgKCMzMzQzMDMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEp1bGlvIE0uIE1lcmlubyBWaWRhbCA8am1tdiBhdCBuZXRic2Qgb3JnPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRG9uJ3QgY2hlY2sgZm9yIGxpYmdub21ldWkgKGxlZnRvdmVyIGZyb20gb2xkIGV4YW1wbGVzCgkgIHRoYXQgYXJlbid0IGJ1aWx0IG9yIGRpc3RlZCBhbnkgbG9uZ2VyKSAoIzMzNDMwMykuCgoyMDA2LTAzLTExIDEzOjAyOjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IEVtaXQgUkVTT1VSQ0VfTk9fU1BBQ0VfTEVGVCBlcnJvciBoZXJlIGFzIHdlbGwgd2hlbiB0aGVyZSdzIG5vIHNwYWNlIGxlZnQgb24gdGhlIGRldmljZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3JlbmRlcik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICBFbWl0IFJFU09VUkNFX05PX1NQQUNFX0xFRlQgZXJyb3IgaGVyZSBhcyB3ZWxsIHdoZW4KCSAgdGhlcmUncyBubyBzcGFjZSBsZWZ0IG9uIHRoZSBkZXZpY2UuCgoyMDA2LTAzLTEwIDIzOjQ0OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGNsb2NrLmg6IEZpeCBHU1RfQ0xPQ0tfVElNRV9JU19WQUxJRCBzaWduZWRuZXNzIGlzc3VlcyAtIHdlIG5lZWQgdG8gY2FzdCB0aGUgaW5wdXQgdG8gR3N0Q2xvY2tUaW1lIGJlZm9yZSBjb21wLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBGaXggR1NUX0NMT0NLX1RJTUVfSVNfVkFMSUQgc2lnbmVkbmVzcyBpc3N1ZXMgLSB3ZSBuZWVkCgkgIHRvIGNhc3QgdGhlIGlucHV0IHRvIEdzdENsb2NrVGltZSBiZWZvcmUgY29tcGFyaW5nIHdpdGgKCSAgYW5vdGhlciBHc3RDbG9ja1RpbWUgdmFsdWUuCgoyMDA2LTAzLTEwIDE5OjEyOjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBsb2cgd2hhdCB3ZSdyZSB3YWl0aW5nIG9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBsb2cgd2hhdCB3ZSdyZSB3YWl0aW5nIG9uCgoyMDA2LTAzLTEwIDE5OjExOjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBoZWFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIGhlYWQKCj09PSByZWxlYXNlIDAuMTAuNCA9PT0KCjIwMDYtMDMtMTAgMTk6MDM6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvbWFudWFsL1JFQURNRToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZG9jcy91cGxvYWQubWFrOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjEwLjQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjEwLjQKCjIwMDYtMDMtMTAgMTU6MzA6MjcgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogRml4IGRvY3MgZm9yIGRhdGFwcm9jb3RvbCB0byBub3QgZ2V0IHRoZSByZXR1cm4gdHlwZXMgY29tcGxldGVseSB3cm9uZyBmb3IgYSBmZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIEZpeCBkb2NzIGZvciBkYXRhcHJvY290b2wgdG8gbm90IGdldCB0aGUgcmV0dXJuIHR5cGVzIGNvbXBsZXRlbHkKCSAgd3JvbmcgZm9yIGEgZmV3IGZ1bmN0aW9ucy4KCjIwMDYtMDMtMDkgMTk6MDA6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcHJlcmVsZWFzaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwcmVyZWxlYXNpbmcKCjIwMDYtMDMtMDkgMTY6NTM6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgbmV3IEFQSTogZ3N0X3BpcGVsaW5lX3NldF9hdXRvX2ZsdXNoX2J1cygpIGFuZCBnc3RfcGlwZWxpbmVfZ2V0X2F1dG9fZmx1c2hfYnVzKCkgdG8gZGlzYWJsZSBhdXRvbWF0aWMgZmx1c2hpbmcgb2YuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwKCSAgKGdzdF9waXBlbGluZV9pbml0KSwgKGdzdF9waXBlbGluZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3BpcGVsaW5lX2dldF9wcm9wZXJ0eSksIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9waXBlbGluZV9zZXRfYXV0b19mbHVzaF9idXMpLAoJICAoZ3N0X3BpcGVsaW5lX2dldF9hdXRvX2ZsdXNoX2J1cyk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgIEFkZCBuZXcgQVBJOiBnc3RfcGlwZWxpbmVfc2V0X2F1dG9fZmx1c2hfYnVzKCkgYW5kCgkgIGdzdF9waXBlbGluZV9nZXRfYXV0b19mbHVzaF9idXMoKSB0byBkaXNhYmxlIGF1dG9tYXRpYwoJICBmbHVzaGluZyBvZiB0aGUgcGlwZWxpbmUncyBHc3RCdXMgd2hlbiBnb2luZyBmcm9tIFJFQURZCgkgIHRvIE5VTEwgc3RhdGUgKCMzMzIwNDUpLgoKMjAwNi0wMy0wOSAxMjowODo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBuZXcgQVBJOiBnc3RfdXJpX2hhc19wcm90b2NvbCgpICgjMzMzNzc5KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXJpLmM6IChnc3RfdXJpX2hhc19wcm90b2NvbCk6CgkgICogZ3N0L2dzdHVyaS5oOgoJICBBZGQgbmV3IEFQSTogZ3N0X3VyaV9oYXNfcHJvdG9jb2woKSAoIzMzMzc3OSkuCgoyMDA2LTAzLTA5IDExOjQ1OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNsb2NrLio6IFJldmlldyBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19lbnRyeV9uZXcpLAoJICAoZ3N0X2Nsb2NrX2lkX2NvbXBhcmVfZnVuYyksIChnc3RfY2xvY2tfaWRfd2FpdCksCgkgIChnc3RfY2xvY2tfaWRfd2FpdF9hc3luYyksIChnc3RfY2xvY2tfaWRfdW5zY2hlZHVsZSksCgkgIChnc3RfY2xvY2tfaW5pdCksIChnc3RfY2xvY2tfZ2V0X2ludGVybmFsX3RpbWUpLAoJICAoZ3N0X2Nsb2NrX3NldF9tYXN0ZXIpLCAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pLAoJICAoZ3N0X2Nsb2NrX2FkZF9vYnNlcnZhdGlvbiksIChnc3RfY2xvY2tfc2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgUmV2aWV3IGRvY3MuCgkgIFNtYWxsIGNsZWFudXBzLgoJICBGaXggYSBwb3NzaWJsZSBzZWdmYXVsdCB3aGVuIHRoZSB3aW5kb3ctc2l6ZSBpcyBtYWRlIHNtYWxsZXIuCgkgIENhbGN1bGF0ZSBqaXR0ZXIgYmVmb3JlIHBlcmZvcm1pbmcgdGhlIGNsb2NrIHdhaXQuIElkZWFsbHkKCSAgdGhlIGNsb2NrIGltcGxlbWVudGF0aW9uIHNob3VsZCBjYWxjdWxhdGUgaml0dGVyIGJ1dCB3ZSBuZWVkCgkgIEFQSSBicmVha2FnZSBmb3IgdGhhdC4KCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfaW5pdCk6CgkgIERvY3MgcmV2aWV3LgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgIFJlbW92ZSBsZWZ0b3ZlciBlbHNlCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc3lzdGVtY2xvY2tfc3VpdGUpOgoJICBBZGRlZCBjaGVjayB0byB0ZXN0IEdTVF9DTE9DS19ESUZGLgoKMjAwNi0wMy0wOSAxMDo0NjozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogSWYgd2UgYXJlIHByb3ZpZGVkIHdpdGggdGhlIHNpemUsIHdlIHNob3VsZCBpbXBsZW1lbnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfZ2V0X2xlbmd0aCksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcl9nZXRfcmFuZ2UpOgoJICBJZiB3ZSBhcmUgcHJvdmlkZWQgd2l0aCB0aGUgc2l6ZSwgd2Ugc2hvdWxkIGltcGxlbWVudAoJICBHc3RUeXBlRmluZDo6Z2V0X2xlbmd0aCwgc28gdGhhdCB0eXBlZmluZCBmdW5jdGlvbnMgd2hvCgkgIHdhbnQgdG8gY2FuIGFjdHVhbGx5IHBlZWsgYXQgdGhlIG1pZGRsZSBvZiBhIGZpbGUuCgoyMDA2LTAzLTA4IDE0OjMwOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6IEFkZCBzb21lIHZlcnkgdmVyeSBiYXNpYyBlcnJvciBjaGVja2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIEFkZCBzb21lIHZlcnkgdmVyeSBiYXNpYyBlcnJvciBjaGVja2luZy4KCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJICBTb21lIHVwZGF0ZXMgdG8gdGhlIGxpc3Qgb2YgdGhpbmdzIHRvIGNoZWNrIHdoZW4gd3JpdGluZyBhbiBlbGVtZW50LgoKMjAwNi0wMy0wOCAxMzo0NDo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OiBBZGRlZCBzb21lIGRvY3MgYWJvdXQgdGhlIGRlc2lnbiBvZiB0cmFuZm9ybSBlbGVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6CgkgIEFkZGVkIHNvbWUgZG9jcyBhYm91dCB0aGUgZGVzaWduIG9mIHRyYW5mb3JtIGVsZW1lbnRzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgTWFyayBidWZmZXJzIHdpdGggdGhlIERJU0NPTlQgZmxhZy4KCjIwMDYtMDMtMDggMTI6NTc6MzcgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC86IFJld3JpdGUgcmVnaXN0cnktc2F2aW5nIHRvIGF2b2lkIHJhY2UgY29uZGl0aW9ucyBhbmQgY2hlY2sgZm9yIGZhaWxlZCB3cml0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAoZ3N0X3JlZ2lzdHJ5X3NhdmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3NhdmVfZXNjYXBlZCksIChnc3RfcmVnaXN0cnlfeG1sX3NhdmVfY2FwcyksCgkgIChnc3RfcmVnaXN0cnlfeG1sX3NhdmVfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV94bWxfc2F2ZV9mZWF0dXJlKSwgKGdzdF9yZWdpc3RyeV94bWxfc2F2ZV9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X3htbF93cml0ZV9jYWNoZSk6CgkgIFJld3JpdGUgcmVnaXN0cnktc2F2aW5nIHRvIGF2b2lkIHJhY2UgY29uZGl0aW9ucyBhbmQgY2hlY2sgZm9yCgkgIGZhaWxlZCB3cml0ZXMuCgoyMDA2LTAzLTA4IDEwOjE3OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IENsZWFudXBzLCBzZXBhcmF0ZSBub3JtYWwgZmxvdyBmcm9tIGVycm9ycywgYWRkIHNlbnNpYmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfdW5pdF9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6CgkgIENsZWFudXBzLCBzZXBhcmF0ZSBub3JtYWwgZmxvdyBmcm9tIGVycm9ycywgYWRkIHNlbnNpYmxlCgkgIERFQlVHIGxpbmVzLgoJICBEb24ndCB0cnkgdG8gcmVuZWdvdGlhdGUgd2hlbiBhbGxvY2F0aW5nIGFuIG91dHB1dCBidWZmZXIuCgkgIEFsc28gY29weSBESVNDT05UIGJ1ZmZlciBmbGFnIHdoZW4gY29weWluZyBhIGJ1ZmZlci4KCSAgUmVzZXQgdGhlIHRyYW5zZm9ybSBhZnRlciB3ZSBmaW5pc2ggc3RyZWFtaW5nLCBub3QgZHVyaW5nLgoKMjAwNi0wMy0wOCAwOTo0Njo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogVXNlIGxhc3QgYnVmZmVyIHRpbWVzdGFtcCBpbiBxb3MgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgVXNlIGxhc3QgYnVmZmVyIHRpbWVzdGFtcCBpbiBxb3MgbWVzc2FnZS4KCjIwMDYtMDMtMDcgMTc6MDY6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3B3Zy86IEFwcGxpZWQgcGF0Y2ggZnJvbSBDaHJpc3RvcGhlIEZlcmdlYXUsIGZpeGVzICMzMzM0MTYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdGFnZ2luZy54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6CgkgIEFwcGxpZWQgcGF0Y2ggZnJvbSBDaHJpc3RvcGhlIEZlcmdlYXUsIGZpeGVzICMzMzM0MTYKCjIwMDYtMDMtMDcgMTY6MjE6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBZGRlZCBiYXNlc2luayBuZXcgbWV0aG9kcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkZWQgYmFzZXNpbmsgbmV3IG1ldGhvZHMuCgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIERvY3MgdXBkYXRlcy4gRmxlc2ggb3V0IHRoZSBRb1MgZG9jcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgU21hbGwgZG9jIGNsYXJpZmljYXRpb24gYWJvdXQgb3duZXJzaGlwIGFuZCBmbHVzaGluZy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NldF9zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfbWF4X2xhdGVuZXNzKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X21heF9sYXRlbmVzcyksIChnc3RfYmFzZV9zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkZWQgbmV3IG1ldGhvZHMgdG8gYWxsb3cgc3ViY2xhc3MgdG8gY29udHJvbCBtYXgtbGF0ZW5lc3MKCSAgYW5kIHN5bmMuCgkgIEdlbmVyYXRlIHZlcnkgYmFzaWMgUW9TIGV2ZW50cyBiYXNlZCBvbiBsYXN0IHN5bmMgb2JzZXJ2YXRpb24uCgkgIFVwZGF0ZWQgZG9jcywgZml4IHR5cG8sIGFkZGVkIHNvbWUgUW9TIGJsdXJiLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBSZW1vdmUgb2Jzb2xldGUgX2dldF9zdGF0ZSgpIGNhbGxzIGZyb20gZG9jcy4KCjIwMDYtMDMtMDcgMTU6MTQ6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBGaXggIzMzMzY2OSwgQWRkIHBhZCBhY2Nlc3NvciBkZWZpbmVzIGZvciBHc3RCYXNlVHJhbnNmb3JtCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEZpeCAjMzMzNjY5LCBBZGQgcGFkIGFjY2Vzc29yIGRlZmluZXMgZm9yIEdzdEJhc2VUcmFuc2Zvcm0KCSAgRml4IGRvY3MgZm9yIEdzdEJhc2VTcmMuCgoyMDA2LTAzLTA3IDE1OjA4OjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU21hbGwgZG9jdW1lbnRhdGlvbiBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIFNtYWxsIGRvY3VtZW50YXRpb24gZml4ZXMuCgoyMDA2LTAzLTA3IDExOjQ3OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IERvY3VtZW50IHRocmVhZC11bnNhZmV0eSBvZiBnc3RfdmFsdWVfcmVnaXN0ZXJfZm9vX2Z1bmMoKSB3aGVuIHVzZWQgYXQgdGhlIHNhbWUgdGltZSBhcyBnc3RfdmFsdWVfZm9vLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBEb2N1bWVudCB0aHJlYWQtdW5zYWZldHkgb2YgZ3N0X3ZhbHVlX3JlZ2lzdGVyX2Zvb19mdW5jKCkKCSAgd2hlbiB1c2VkIGF0IHRoZSBzYW1lIHRpbWUgYXMgZ3N0X3ZhbHVlX2ZvbygpICgjMzIyNjI4KS4KCjIwMDYtMDMtMDcgMTA6MTk6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICB1cGRhdGUgUkVBRE1FCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgUkVBRE1FCgoyMDA2LTAzLTA3IDA5OjI4OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6IFB1c2ggc291cmNlcyBkb24ndCBzdXBwb3J0IHB1bGwgbW9kZSBieSBkZWZhdWx0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzogKGdzdF9wdXNoX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9wdXNoX3NyY19jaGVja19nZXRfcmFuZ2UpOgoJICBQdXNoIHNvdXJjZXMgZG9uJ3Qgc3VwcG9ydCBwdWxsIG1vZGUgYnkgZGVmYXVsdC4KCjIwMDYtMDMtMDYgMTk6NTU6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuKjogQWRkIDo6Y2hlY2tfZ2V0X3JhbmdlKCkgdmZ1bmMgdG8gR3N0QmFzZVNyYyAoIzMzMjYxMSksIHByb3ZpZGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiwgYW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfaW5pdCksIChnc3RfYmFzZV9zcmNfcGFkX2NoZWNrX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9jaGVja19nZXRfcmFuZ2UpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBBZGQgOjpjaGVja19nZXRfcmFuZ2UoKSB2ZnVuYyB0byBHc3RCYXNlU3JjICgjMzMyNjExKSwKCSAgcHJvdmlkZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLCBhbmQgcmVuYW1lCgkgIGdzdF9iYXNlX3NyY19jaGVja19nZXRfcmFuZ2UoKSB0bwoJICBnc3RfYmFzZV9zcmNfcGFkX2NoZWNrX2dldF9yYW5nZSgpIGZvciBjbGFyaXR5LgoKMjAwNi0wMy0wNiAxNjoyNDozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9zdHlsZWd1aWRlOgoJICBzdHlsZSBndWlkZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc3R5bGUgZ3VpZGUKCjIwMDYtMDMtMDYgMTY6MTA6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IE1ha2UgcHJvcGVydHkgb3ZlcnJpZGFibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCk6CgkgIE1ha2UgcHJvcGVydHkgb3ZlcnJpZGFibGUuCgoyMDA2LTAzLTA2IDE2OjAyOjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay4qOiBNYWtlIG1heC1sYXRlbmVzcyBhIHByb3BlcnR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pbml0KSwgKGdzdF9iYXNlX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBNYWtlIG1heC1sYXRlbmVzcyBhIHByb3BlcnR5LgoKMjAwNi0wMy0wNiAxNToxNjoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgZXZlciBkcmF3IGEgZnJhbWUgdGhhdCBpcyA+MTBtcyBsYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2spLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCk6CgkgIERvbid0IGV2ZXIgZHJhdyBhIGZyYW1lIHRoYXQgaXMgPjEwbXMgbGF0ZS4KCjIwMDYtMDMtMDYgMTQ6NTE6MzYgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RtZXNzYWdlLmM6IFdoZW4gY29weWluZyBhIG1lc3NhZ2UsIHNldCB0aGUgcGFyZW50X3JlZmNvdW50IG9mIHRoZSBlbmNsb3NlZCBzdHJ1Y3R1cmUgdG8gcG9pbnQgYXQgdGhlIGNvcHksIG5vdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoX2dzdF9tZXNzYWdlX2NvcHkpOgoJICBXaGVuIGNvcHlpbmcgYSBtZXNzYWdlLCBzZXQgdGhlIHBhcmVudF9yZWZjb3VudCBvZiB0aGUgZW5jbG9zZWQKCSAgc3RydWN0dXJlIHRvIHBvaW50IGF0IHRoZSBjb3B5LCBub3QgdGhlIG9yaWdpbmFsIG1lc3NhZ2UuCgoyMDA2LTAzLTA2IDE0OjQ2OjMxICswMDAwICBDaHJpc3RvcGhlIEZlcmdlYXUgPHRldWZAZ25vbWUub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmg6IERvIHByb3BlciBjYXN0IGhlcmUgdG8gbWFrZSBHU1RfQk9JTEVSUExBVEVfV0lUSF9JTlRFUkZBQ0UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIERvIHByb3BlciBjYXN0IGhlcmUgdG8gbWFrZSBHU1RfQk9JTEVSUExBVEVfV0lUSF9JTlRFUkZBQ0UKCSAgdXNhYmxlIGluIGMrKyBjb2RlICgjMzMzNDE3OyBwYXRjaCBieTogQ2hyaXN0b3BoZSBGZXJnZWF1KQoKMjAwNi0wMy0wNiAxNDozNDo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Y2xvY2suaDogU2hvdyBHU1RfQ0xPQ0tfVElNRV9OT05FIGFzIDk5Ojk5Ojk5Ljk5OTk5OTk5OQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgU2hvdyBHU1RfQ0xPQ0tfVElNRV9OT05FIGFzIDk5Ojk5Ojk5Ljk5OTk5OTk5OQoKMjAwNi0wMy0wNiAxNDoyMzo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1xdW90ZXMueG1sOgoJICBhZGQgYW5vdGhlciBxdW90ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGFub3RoZXIgcXVvdGUKCjIwMDYtMDMtMDUgMjA6NTY6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogTWFrZSBzdXJlIGNhcHMgYXJlIHdyaXRhYmxlIGJlZm9yZSBwYXNzaW5nIHRoZW0gdG8gZ3N0X2NhcHNfYXBwZW5kKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKToKCSAgTWFrZSBzdXJlIGNhcHMgYXJlIHdyaXRhYmxlIGJlZm9yZSBwYXNzaW5nIHRoZW0gdG8KCSAgZ3N0X2NhcHNfYXBwZW5kKCkuCgoyMDA2LTAzLTA0IDE0OjQ1OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVycm9yLmg6IEZpeCBzb21lIG1pbm9yIGRvY3MgZXJyb3JzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgRml4IHNvbWUgbWlub3IgZG9jcyBlcnJvcnMuCgoyMDA2LTAzLTA0IDEzOjU0OjI2ICswMDAwICBSb3NzIEJ1cnRvbiA8cm9zc0BidXJ0b25pbmkuY29tPgoKCSAgZ3N0L2dzdGVycm9yLio6IEFkZCBHU1RfUkVTT1VSQ0VfRVJST1JfTk9fU1BBQ0VfTEVGVCAoZm9yICMzMzMzNTI7CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOiAoX2dzdF9yZXNvdXJjZV9lcnJvcnNfaW5pdCk6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgIEFkZCBHU1RfUkVTT1VSQ0VfRVJST1JfTk9fU1BBQ0VfTEVGVCAoZm9yICMzMzMzNTI7CgkgIHBhdGNoIGJ5OiBSb3NzIEJ1cnRvbiA8cm9zcyBhdCBidXJ0b25pbmkgZG90IGNvbT4pLgoKMjAwNi0wMy0wMyAxNjo1ODo1MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0LmM6IEFkZCBhIGNoZWNrIGFuZCBvdXRwdXQgYSBnX3dhcm5pbmcgd2hlbiBHU3RyZWFtZXIgaXMgYnVpbHQgYWdhaW5zdCBHTGliIDIuNiBidXQgcnVubmluZyBhZ2FpbnN0IDIuOCBvciBoaWcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBBZGQgYSBjaGVjayBhbmQgb3V0cHV0IGEgZ193YXJuaW5nIHdoZW4gR1N0cmVhbWVyIGlzIGJ1aWx0CgkgIGFnYWluc3QgR0xpYiAyLjYgYnV0IHJ1bm5pbmcgYWdhaW5zdCAyLjggb3IgaGlnaGVyLCBhbmQgdmljZQoJICB2ZXJzYS4gKENsb3NlczogIzMyMzU0MikKCjIwMDYtMDMtMDMgMTU6MzI6MzAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L3BhcnNlL3BhcnNlLmw6IENvbW1pdCBwYXRjaCBmb3IgcGFyc2VfbGF1bmNoIHN5bnRheCBmcm9tICMzMzEyNTUuIFJlbW92ZXMgc3VwcG9ydCBmb3IgcXVvdGVkIHN0cmluZ3MgYW5kIG1pbWV0eXBlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9wYXJzZS5sOgoJICBDb21taXQgcGF0Y2ggZm9yIHBhcnNlX2xhdW5jaCBzeW50YXggZnJvbSAjMzMxMjU1LiBSZW1vdmVzCgkgIHN1cHBvcnQgZm9yIHF1b3RlZCBzdHJpbmdzIGFuZCBtaW1ldHlwZXMgd2hlbiB3cml0aW5nIGZpbHRlcmVkCgkgIGNhcHMuIFNlZSB0aGUgYnVnIHJlcG9ydCBmb3IgbW9yZSBkZXRhaWxzIC0gSSdtIHByZXR0eSBzdXJlIHRoaXMKCSAgb2JzY3VyZSBmZWF0dXJlIGlzIG5vdCBpbiB1c2UgYnkgX2FueW9uZV8gYW55d2hlcmUuCgkgIFdpdGggdGhpcyBzaW1wbGUgY2hhbmdlLCB0aGUgc2l6ZSBvZiB0aGUgZ3N0cmVhbWVyLnNvIGhlcmUKCSAgZHJvcHMgZnJvbSAyMTkzS0IgdG8gMTU2NUtCLgoKMjAwNi0wMy0wMyAxNDoxODowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lio6IFVzZSBnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfYnVmZmVyKCkgZm9yIGNoYWluLWJhc2VkIHR5cGVmaW5kaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfc3JjX2V2ZW50KSwgKHN0YXJ0X3R5cGVmaW5kaW5nKSwKCSAgKHN0b3BfdHlwZWZpbmRpbmcpLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluX2RvX3R5cGVmaW5kaW5nKToKCSAgVXNlIGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9idWZmZXIoKSBmb3IgY2hhaW4tYmFzZWQKCSAgdHlwZWZpbmRpbmcuCgoyMDA2LTAzLTAzIDExOjQyOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogRGVwcmVjYXRlICJtYXhpbXVtIiBwcm9wZXJ0eSAobm90IG9ubHkgd2FzIGl0IG9ubHkgdGFrZW4gaW50byBhY2NvdW50IGZvciB0eXBlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2xhc3NfaW5pdCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9nZXRfcHJvcGVydHkpOgoJICBEZXByZWNhdGUgIm1heGltdW0iIHByb3BlcnR5IChub3Qgb25seSB3YXMgaXQgb25seSB0YWtlbiBpbnRvCgkgIGFjY291bnQgZm9yIHR5cGVmaW5kaW5nIGluIHB1c2gtbW9kZSBhbnl3YXksIGl0IGFsc28gd2FzIG5ldmVyCgkgIGFjdHVhbGx5IHBvc3NpYmxlIHRvIHNldCBpdCBpbiB0aGUgZmlyc3QgcGxhY2UgYmVjYXVzZSB0aGUKCSAgcHJvcGVydHkgd2FzIHJlZ2lzdGVyZWQgd2l0aCB0aGUgbnVtZXJpYyBwcm9wZXJ0eSBJRCBmb3IgdGhlCgkgICJtaW5pbXVtIiBwcm9wZXJ0eSkuIFJlZ2lzdGVyICJtYXhpbXVtIiBwcm9wZXJ0eSBjb3JyZWN0bHksCgkgIGZvciB0aGUgc2FrZSBvZiBmdXR1cmUgY29weSduJ3Bhc3RlcnMuIFJlbW92ZSBzb21lIGNydWZ0CgkgIGZyb20gcHJvcGVydHkgZ2V0L3NldCBmdW5jdGlvbnMuCgoyMDA2LTAzLTAzIDExOjI3OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogVXNlIGdzdF90eXBlX2ZpbmRfaGVscGVyX2dldF9yYW5nZSgpIGhlcmUsIHNvIHdlIGNhbiBob25vdXIgdGhlIG1pbi1wcm9iYWJpbGl0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICBVc2UgZ3N0X3R5cGVfZmluZF9oZWxwZXJfZ2V0X3JhbmdlKCkgaGVyZSwgc28gd2UKCSAgY2FuIGhvbm91ciB0aGUgbWluLXByb2JhYmlsaXR5IHByb3BlcnR5IGFuZCBhbHNvIGVtaXQKCSAgdGhlIHNpZ25hbCB3aXRoIHRoZSBjb3JyZWN0IHByb2JhYmlsaXR5IG9mIHRoZSBmb3VuZCBjYXBzLgoKMjAwNi0wMy0wMiAxMzo0NTozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE5ldyBBUEk6IGdzdF90eXBlX2ZpbmRfaGVscGVyX2dldF9yYW5nZSgpICgjMzMzMDQyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9wZWVrKSwKCSAgKGhlbHBlcl9maW5kX3N1Z2dlc3QpLCAoZ3N0X3R5cGVfZmluZF9oZWxwZXJfZ2V0X3JhbmdlKSwKCSAgKGdzdF90eXBlX2ZpbmRfaGVscGVyKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkgIE5ldyBBUEk6IGdzdF90eXBlX2ZpbmRfaGVscGVyX2dldF9yYW5nZSgpICgjMzMzMDQyKS4KCjIwMDYtMDMtMDIgMTE6MDQ6NTggKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBBc3NlcnRpbmcgb24gYSBmYWlsdXJlIHRvIHJlYWQgcGFydCBvZiB0aGUgcmVnaXN0cnkgaXMgTm90IENvb2wuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9mZWF0dXJlKToKCSAgQXNzZXJ0aW5nIG9uIGEgZmFpbHVyZSB0byByZWFkIHBhcnQgb2YgdGhlIHJlZ2lzdHJ5IGlzIE5vdCBDb29sLgoJICBKdXN0IGxvZyBhIHdhcm5pbmcgYW5kIHJldHVybiBOVUxMICh3aGljaCBpcyBhbHJlYWR5IGhhbmRsZWQpCgoyMDA2LTAyLTI4IDIwOjU3OjEwICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6IGFkZGVkIGV4cG9ydCBvZiBnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfYnVmZmVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRkZWQgZXhwb3J0IG9mIGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9idWZmZXIKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkZGVkIHNvbWUgZXhwb3J0cyA6IGdzdF9iaW5faXRlcmF0ZV9lbGVtZW50cywgZ3N0X2l0ZXJhdG9yX3Jlc3luYywKCSAgZ3N0X2dob3N0X3BhZF9nZXRfdGFyZ2V0CgoyMDA2LTAyLTI4IDE3OjI0OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OiBXZSB1c2UgRmlsdGVyIG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICBXZSB1c2UgRmlsdGVyIG5vdy4KCSAgQWRkZWQgQ29ubmVjdG9yIHRvIG1hcmsgZWxlbWVudHMgdGhhdCBhcmUgb25seSB1c2VkIHRvCgkgIGFsbG93IHBpcGVsaW5lIGNvbm5lY3Rpb25zLgoJICBNb3ZlZCBEZWJ1ZyB0byBleHRyYSBmZWF0dXJlIHNpbmNlIG1vc3Qgb2YgdGhlbSBhcmUKCSAgZnVuY3Rpb25hbGx5IHNvbWV0aGluZyBlbHNlLgoKMjAwNi0wMi0yOCAxNzowMzozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDogU29tZSB1cGRhdGVzIGFuZCBjbGFyaWZpY2F0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICBTb21lIHVwZGF0ZXMgYW5kIGNsYXJpZmljYXRpb25zLgoKMjAwNi0wMi0yOCAxNTo1NDowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDogUHJvcG9zYWwgZm9yIGtsYXNzIGZpZWxkIHZhbHVlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICBQcm9wb3NhbCBmb3Iga2xhc3MgZmllbGQgdmFsdWVzLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkgIFN0YXJ0IG9mIGEgZG9jIGRlc2NyaWJpbmcgc3RyZWFtIGFuYXRvbXkuCgoyMDA2LTAyLTI4IDEwOjUyOjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBIZWxwIHRoZSBjb21waWxlciBhIGJpdCB3aXRoIHR5cGUgcmVnaXN0cmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2dldF90eXBlKSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIEhlbHAgdGhlIGNvbXBpbGVyIGEgYml0IHdpdGggdHlwZSByZWdpc3RyYXRpb24uCgkgIFVzZSBleGlzdGluZyBmb3J3YXJkIGNvZCBwYXRoIGluc3RlYWQgb2YgZHVwbGljYXRpbmcgaXQgd2hlbgoJICBoYW5kbGluZyBhIG1lc3NhZ2UuCgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19nZXRfdHlwZSk6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2dldF90eXBlKSwgKGdzdF9zdGF0aWNfY2Fwc19nZXRfdHlwZSk6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuYzogKGdzdF9jaGlsZF9wcm94eV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfdHlwZSksCgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6IChnc3RfaW5kZXhfZmFjdG9yeV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3R0YXNrLmM6IChnc3RfdGFza19nZXRfdHlwZSksIChnc3RfdGFza19qb2luKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgSGVscCBjb21waWxlciB3aXRoIHR5cGUgcmVnaXN0cmF0aW9uLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCk6CgkgIFNtYWxsIGRvYyB1cGRhdGUuCgoyMDA2LTAyLTI3IDIwOjAxOjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogV2hlbiB3ZSBnZXQgYW4gRU9TIGV2ZW50IGFuZCBoYXZlIG5vdCBmb3VuZCBhIHR5cGUgeWV0IChtb3N0IGxpa2VseSBiZWNhdXNlIHdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KToKCSAgV2hlbiB3ZSBnZXQgYW4gRU9TIGV2ZW50IGFuZCBoYXZlIG5vdCBmb3VuZCBhIHR5cGUgeWV0CgkgIChtb3N0IGxpa2VseSBiZWNhdXNlIHdlIGhhZCBub3QgeWV0IGFjY3VtdWxhdGVkCgkgIFRZUEVfRklORF9NSU5fU0laRSBvZiBkYXRhIHlldCksIHRyeSB0byBkZXRlcm1pbmUgdGhlCgkgIHR5cGUgZ2l2ZW4gdGhlIGRhdGEgd2UgaGF2ZSBzbyBmYXIuIEZpeGVzIHR5cGVmaW5kaW5nCgkgIGZvciB2ZXJ5IHNob3J0IHN0cmVhbXMgYWdhaW4sIG1vc3Qgbm90YWJseSBxdWlja3RpbWUKCSAgcmVkaXJlY3Rpb25zIGFzIHVzZWQgb24gQXBwbGUncyB0cmFpbGVyIHNpdGUgKCMzMzE3MDEpLgoKMjAwNi0wMi0yNyAxOTo0NTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogVHJ5IHR5cGVmaW5kaW5nIGZhY3RvcmllcyB3aXRoIHRoZSBoaWdoZXN0IHJhbmsgZmlyc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKHR5cGVfZmluZF9mYWN0b3J5X3JhbmtfY21wKSwKCSAgKGdzdF90eXBlX2ZpbmRfaGVscGVyKToKCSAgVHJ5IHR5cGVmaW5kaW5nIGZhY3RvcmllcyB3aXRoIHRoZSBoaWdoZXN0IHJhbmsgZmlyc3QuCgoyMDA2LTAyLTI3IDE5OjE5OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIHNlY3Rpb24gZm9yIHR5cGVmaW5kIGhlbHBlciBhbmQgYWRkIGRvY3VtZW50YXRpb24gZm9yIHRoZSBvbGQgYW5kIHRoZSBuZXcgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIEFkZCBzZWN0aW9uIGZvciB0eXBlZmluZCBoZWxwZXIgYW5kIGFkZCBkb2N1bWVudGF0aW9uCgkgIGZvciB0aGUgb2xkIGFuZCB0aGUgbmV3IGZ1bmN0aW9uLgoKMjAwNi0wMi0yNyAxODo0MzoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuKjogTmV3IEFQSTogZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2J1ZmZlcigpICgjMzMyNzIzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoYnVmX2hlbHBlcl9maW5kX3BlZWspLAoJICAoYnVmX2hlbHBlcl9maW5kX3N1Z2dlc3QpLCAodHlwZV9maW5kX2ZhY3RvcnlfcmFua19jbXApLAoJICAoZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2J1ZmZlcik6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJICBOZXcgQVBJOiBnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfYnVmZmVyKCkgKCMzMzI3MjMpLgoKMjAwNi0wMi0yNyAxNTo0MzoxMCArMDAwMCAgTG/Dr2MgTWluaWVyIDxsb29sLmdub21lQHZpYS5lY3AuZnI+CgoJICBQYXRjaCBmcm9tIExvw69jIE1pbmllciB0byBwcmV2ZW50IENWUyBkaXJlY3RvcmllcyBnZXR0aW5nIGRpc3RlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvTWFrZWZpbGUuYW06CgkgICogZG9jcy9zbGlkZXMvTWFrZWZpbGUuYW06CgkgIFBhdGNoIGZyb20gTG/Dr2MgTWluaWVyIHRvIHByZXZlbnQgQ1ZTIGRpcmVjdG9yaWVzIGdldHRpbmcgZGlzdGVkLgoKMjAwNi0wMi0yNyAxMjoxMDo0NyArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlCgoyMDA2LTAyLTI3IDExOjAxOjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGNhcHMuYzogVXNlIHRoZSBSRUZDT1VOVElORyBjYXRlZ29yeSBmb3IgY2FwcyByZWZjb3VudGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3JlZiksIChnc3RfY2Fwc191bnJlZik6CgkgIFVzZSB0aGUgUkVGQ09VTlRJTkcgY2F0ZWdvcnkgZm9yIGNhcHMgcmVmY291bnRpbmcuCgoyMDA2LTAyLTI2IDE5OjIwOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogVGhpcyBzaG91bGQgYmUgMCBub3QgR1NUX0NMT0NLX1RJTUVfTk9ORSAoc2VlICMzMzE3MDEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoc3RvcF90eXBlZmluZGluZyk6CgkgIFRoaXMgc2hvdWxkIGJlIDAgbm90IEdTVF9DTE9DS19USU1FX05PTkUgKHNlZSAjMzMxNzAxKS4KCjIwMDYtMDItMjYgMTQ6NDI6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBVc2UgZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKCkgYmVmb3JlIF9hY3RpdmF0ZV9wdWxsKCkgdG8gYXZvaWQgdW5uZWNlc3Nhcnkgb3AuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgIFVzZSBnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UoKSBiZWZvcmUgX2FjdGl2YXRlX3B1bGwoKQoJICB0byBhdm9pZCB1bm5lY2Vzc2FyeSBvcGVuL2Nsb3NlIChzZWUgIzMzMTY5MCkuCgoyMDA2LTAyLTI0IDE2OjU0OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmM6IERvY3MgZW5oYW5jZW1lbnQ6IG1ha2UgaXQgY3J5c3RhbCBjbGVhciB3aGF0IHRoZSBnc3RfcGFkX2FkZF8qX3Byb2JlKCkgY2FsbGJhY2tzIHNob3VsZCBsb29rIGxpa2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBEb2NzIGVuaGFuY2VtZW50OiBtYWtlIGl0IGNyeXN0YWwgY2xlYXIgd2hhdCB0aGUKCSAgZ3N0X3BhZF9hZGRfKl9wcm9iZSgpIGNhbGxiYWNrcyBzaG91bGQgbG9vayBsaWtlLgoKMjAwNi0wMi0yNCAxMDo1Nzo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBEb2N1bWVudCBob3cgYXBwbGljYXRpb25zIGNhbiBzdG9wIHJlY29yZGluZyBmcm9tIGxpdmUgc291cmNlcyAoc2VlICMzMzA5OTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgRG9jdW1lbnQgaG93IGFwcGxpY2F0aW9ucyBjYW4gc3RvcCByZWNvcmRpbmcgZnJvbQoJICBsaXZlIHNvdXJjZXMgKHNlZSAjMzMwOTk2KS4KCjIwMDYtMDItMjMgMTg6MDY6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBJZ25vcmUgbW9yZSBzdHVmZi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvcGx1Z2lucy90bXBsLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svbGlicy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy8uY3ZzaWdub3JlOgoJICBJZ25vcmUgbW9yZSBzdHVmZi4KCjIwMDYtMDItMjMgMTc6Mzk6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay86IC4uLiBhbmQgYWRkIHNvbWUgdGVzdHMgZm9yIHRoZSBiYXNlIHNvdXJjZSBFT1Mgc3R1ZmYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOiAoZW9zX2V2ZW50X2NvdW50ZXIpLAoJICAoYmFzZXNyY19lb3NfZXZlbnRzX3B1bGwpLCAoYmFzZXNyY19lb3NfZXZlbnRzX3B1c2gpLAoJICAoYmFzZXNyY19lb3NfZXZlbnRzX3B1c2hfbGl2ZV9vcCksIChiYXNlc3JjX2Vvc19ldmVudHNfcHVsbF9saXZlX29wKSwKCSAgKGdzdF9iYXNlc3JjX3N1aXRlKSwgKG1haW4pOgoJICAuLi4gYW5kIGFkZCBzb21lIHRlc3RzIGZvciB0aGUgYmFzZSBzb3VyY2UgRU9TIHN0dWZmLgoKMjAwNi0wMi0yMyAxNjo1NjoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiBUZXN0IGNhc2Ugb3JpZ2luYWxseSBzaG93ZWQgdGhlIHByb2JsZW0gZml4ZWQgYmVsb3csIGJ1dCB3YXMgdGhlbiBhbWVuZGVkLiBBZGQgY2hlY2tzIGJhYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKHRlc3RfYnVmZmVyX3Byb2JlX25fdGltZXMpOgoJICBUZXN0IGNhc2Ugb3JpZ2luYWxseSBzaG93ZWQgdGhlIHByb2JsZW0gZml4ZWQgYmVsb3csCgkgIGJ1dCB3YXMgdGhlbiBhbWVuZGVkLiBBZGQgY2hlY2tzIGJhY2sgYXQgdGhlIHBsYWNlCgkgIHdoZXJlIHRoZXkgdXNlZCB0byBiZS4KCjIwMDYtMDItMjMgMTY6MjQ6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuKjogRG9uJ3QgdW5jb25kaXRpb25hbGx5IHNlbmQgRU9TIHdoZW4gZ29pbmcgZnJvbSBQQVVTRUQgdG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfaW5pdCksIChnc3RfYmFzZV9zcmNfbG9vcCksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgRG9uJ3QgdW5jb25kaXRpb25hbGx5IHNlbmQgRU9TIHdoZW4gZ29pbmcgZnJvbSBQQVVTRUQgdG8KCSAgUkVBRFkgc3RhdGUsIGVzcC4gbWFrZSBzdXJlIHdlIGRvbid0IHNlbmQgdHdvIEVPUyBldmVudHMKCSAgaW4gc29tZSBjYXNlcyAoZS5nLiBvbmUgd2hlbiByZWFjaGluZyBFT1MgYW5kIG9uZSB3aGVuCgkgIGdvaW5nIGZyb20gUEFVU0VEIHRvIFJFQURZKS4gQWxzbywgd2UgZG9uJ3Qgd2FudCB0byBzZW5kCgkgIEVPUyBldmVudHMgd2hlbiBvcGVyYXRpbmcgaW4gcHVsbCBtb2RlLiBIb3dldmVyLCB3ZSBkbwoJICB3YW50IHRvIHNlbmQgYW4gRU9TIGV2ZW50IHdoZW4gc2h1dHRpbmcgZG93biBhIGxpdmUKCSAgc291cmNlIGV4cGxpY2l0bHksIGZvciBleGFtcGxlIChmaXhlcyAjMzMwOTk2KS4KCjIwMDYtMDItMjMgMTA6MjQ6MTMgKzAwMDAgIFJlbmNoaSBSYWp1IDxyZW5jaGlAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IFVwZGF0ZSBzcmMtPnJlYWRfcG9zaXRpb24gYWZ0ZXIgYSBzZWVrIHdoZW4gbm90IHVzaW5nIG1tYXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NyZWF0ZV9yZWFkKToKCSAgVXBkYXRlIHNyYy0+cmVhZF9wb3NpdGlvbiBhZnRlciBhIHNlZWsgd2hlbiBub3QgdXNpbmcgbW1hcC4KCSAgRml4ZXMgIzMzMjI3NywgcGF0Y2ggYnk6IFJlbmNoaSBSYWp1IDxyZW5jaGkgZ21haWwgY29tPgoKMjAwNi0wMi0yMCAyMzozNDo0MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvOiBNYWtlIHRoaW5ncyB3b3JrIHdpdGggLS1kaXNhYmxlLXBhcnNlIGFzIHRoZXkgZG8gd2l0aAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdHBhcnNlLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIE1ha2UgdGhpbmdzIHdvcmsgd2l0aCAtLWRpc2FibGUtcGFyc2UgYXMgdGhleSBkbyB3aXRoCgkgIC0tZGlzYWJsZS1sb2FkLXNhdmUgLSB0aGUgc3ltYm9scyBpbnZvbHZlZCBkaXNhcHBlYXIsIGJ1dCB0aGUKCSAgaGVhZGVyIGlzIHN0aWxsIGluc3RhbGxlZCBhbmQgR1NUX0RJU0FCTEVfUEFSU0UgaXMgaW5jbHVkZWQgdmlhCgkgIGdzdGNvbmZpZy5oCgoyMDA2LTAyLTIwIDE2OjA3OjQyICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBGaXggYSBzdHVwaWQgYnVnLiBJIHdhcyBzdXJlIGkgY29tcGlsZWQgdGhhdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKTogRml4IGEgc3R1cGlkIGJ1Zy4gSSB3YXMKCSAgc3VyZSBpIGNvbXBpbGVkIHRoYXQuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKMjAwNi0wMi0yMCAxNTowNzozMyArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvOiBNYWtlIHRob3NlIGZ1bmN0aW9uIGFjdCBvbiB0aGUgZ2hvc3RwYWQgdGFyZ2V0IHdoZW4gaXQncyBhIGdob3N0cGFkLiAoQ2xvc2VzICMzMzE3MjcpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9hZGRfZGF0YV9wcm9iZSksCgkgIChnc3RfcGFkX2FkZF9ldmVudF9wcm9iZSksIChnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmUpLAoJICAoZ3N0X3BhZF9yZW1vdmVfZGF0YV9wcm9iZSksIChnc3RfcGFkX3JlbW92ZV9ldmVudF9wcm9iZSksCgkgIChnc3RfcGFkX3JlbW92ZV9idWZmZXJfcHJvYmUpOiBNYWtlIHRob3NlIGZ1bmN0aW9uIGFjdCBvbiB0aGUKCSAgZ2hvc3RwYWQgdGFyZ2V0IHdoZW4gaXQncyBhIGdob3N0cGFkLiAoQ2xvc2VzICMzMzE3MjcpCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKMjAwNi0wMi0yMCAxNTowMToxNCArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogTWFrZSBiYXNldHJhbnNmb3JtIHJldXNhYmxlLiAoQ2xvc2VzICMzMzE4OTgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6IE1ha2UgYmFzZXRyYW5zZm9ybSByZXVzYWJsZS4KCSAgKENsb3NlcyAjMzMxODk4KQoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCjIwMDYtMDItMjAgMTI6MjY6NTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9yYW5kb20vcmVsZWFzZTogTW92ZSB0aGUgY3VycmVudCBkb2N1bWVudGF0aW9uIG9mIGhvdyB0byBkbyBhIHJlbGVhc2UgdG8gdGhlIHRvcCBvZiB0aGUgZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgTW92ZSB0aGUgY3VycmVudCBkb2N1bWVudGF0aW9uIG9mIGhvdyB0byBkbyBhIHJlbGVhc2UgdG8gdGhlIHRvcAoJICBvZiB0aGUgZmlsZS4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgQWxsb3cgbXVsdGlwbGUgc3RhdGUtcmVjYWxjdWxhdGlvbiB0aHJlYWRzLiAoQ2xvc2VzICMzMjg4NzMpCgoyMDA2LTAyLTE5IDEyOjI1OjAxICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmg6IEFkZCBHU1RfU1RSX05VTEwgdG8gdGhlIHNlY29uZCBzdHJpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTE5ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdGluZm8uaDogQWRkIEdTVF9TVFJfTlVMTCB0byB0aGUgc2Vjb25kIHN0cmluZy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9ldmVudF9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9xdWVyeV9mdW5jdGlvbiksIChnc3RfcGFkX3NldF9xdWVyeV90eXBlX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2dldGNhcHNfZnVuY3Rpb24pOiBHU1RfREVCVUdfUEFEX05BTUUgZXZhbHVhdGVzIHRvCgkgIDIgc3RyaW5ncy4gWW91IGNhbid0IHVzZSB0aGUgU1RSX05VTEwgbWFjcm8gb24gdGhhdC4KCjIwMDYtMDItMTkgMTI6MDA6MzggKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2dldGNhcHNfZnVuY3Rpb24pCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2V2ZW50X2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X3F1ZXJ5X2Z1bmN0aW9uKSwgKGdzdF9wYWRfc2V0X3F1ZXJ5X3R5cGVfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfZ2V0Y2Fwc19mdW5jdGlvbikKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OiAoZ3N0X3BhcnNlX2ZvdW5kX3BhZCksIChnc3RfcGFyc2VfcGVyZm9ybV9kZWxheWVkX2xpbmspCgkgIEZpeGVkIE5VTEwgcG9pbnRlciB1c2VkIGluIEdTVF9DQVRfREVCVUcgdXNpbmcgR1NUX1NUUl9OVUxMIG1hY3JvCgkgIFNvIG5vdywgd2UgY2FuIHVzZSAtLWdzdC1kZWJ1Zy1sZXZlbD01IG9uIFdpbmRvd3MKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgIEFkZGVkIGV4cG9ydCBvZiBnc3RfY29udHJvbGxlcl9pbml0CgkgICogd2luMzIvdnM2L2xpYmdzdGNvbnRyb2xsZXIuZHNwOgoJICBGaXhlZCBSZWxlYXNlIHBvc3QgYnVpbGQgY29uZmlndXJhdGlvbgoKMjAwNi0wMi0xNyAxNToyNTozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOiBBZGRlZCBhbm90aGVyIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkZWQgYW5vdGhlciBjaGVjay4KCjIwMDYtMDItMTUgMTI6MTc6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBXZSBjYW4gZG8gcGVla3MgYXQgbm9uLXplcm8gb2Zmc2V0cywgYXMgbG9uZyBhcyB0aGV5IGZhbGwgd2l0aGluIHRoZSBidWZmZXIgd2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKGZpbmRfcGVlayk6CgkgIFdlIGNhbiBkbyBwZWVrcyBhdCBub24temVybyBvZmZzZXRzLCBhcyBsb25nIGFzIHRoZXkKCSAgZmFsbCB3aXRoaW4gdGhlIGJ1ZmZlciB3ZSBoYXZlLgoKMjAwNi0wMi0xNSAwMTowMjoxMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZCB0ZXN0c3VpdGUgZm9yIHBhcnNlIGxhdW5jaCBzeW50YXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAoc2V0dXBfcGlwZWxpbmUpLAoJICAoZXhwZWN0ZWRfZmFpbF9waXBlKSwgKGNoZWNrX3BpcGVsaW5lX3J1bnMpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAocGFyc2Vfc3VpdGUpLCAobWFpbik6CgkgIEFkZCB0ZXN0c3VpdGUgZm9yIHBhcnNlIGxhdW5jaCBzeW50YXgKCjIwMDYtMDItMTQgMjA6NTc6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBXaGVuIHR5cGVmaW5kaW5nIGlzIHVuc3VjY2Vzc2Z1bCBpbiB0aGUgY2hhaW4gZnVuY3Rpb24sIGRvbid0IGVycm9yIG91dCBpbW1lZGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbik6CgkgIFdoZW4gdHlwZWZpbmRpbmcgaXMgdW5zdWNjZXNzZnVsIGluIHRoZSBjaGFpbiBmdW5jdGlvbiwgZG9uJ3QKCSAgZXJyb3Igb3V0IGltbWVkaWF0ZWx5LiBPbmx5IGVycm9yIG91dCB3aXRoIE5PX0NBUFNfRk9VTkQgaWYKCSAgdGhlIGFtb3VudCBvZiBkYXRhIGlzIGF0IGxlYXN0IE1BWF9UWVBFRklORF9TSVpFIGJ5dGVzLAoJICBvdGhlcndpc2Ugc2ltcGx5IHdhaXQgZm9yIG1vcmUgZGF0YSBzbyB3ZSBjYW4gdHJ5IHR5cGVmaW5kaW5nCgkgIGFnYWluIHdpdGggbW9yZSBkYXRhIGxhdGVyLiBBbHNvLCBkb24ndCBhdHRlbXB0IHRvIHR5cGVmaW5kCgkgIGlmIHdlIGhhdmUgbGVzcyB0aGFuIE1JTl9UWVBFRklORF9TSVpFIGRhdGEgYXZhaWxhYmxlLiBPdmVyYWxsLAoJICB0aGlzIHNob3VsZCBpbXByb3ZlIHR5cGVmaW5kaW5nIGZyb20gbmV0d29yayBzb3VyY2VzIHdoZXJlIHRoZQoJICBzaXplIG9mIHRoZSBmaXJzdCBidWZmZXIgY2FuIGJlIHNvbWV3aGF0IHJhbmRvbS4KCjIwMDYtMDItMTQgMTg6MjY6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBGaXggcGFkdGVtcGxhdGUgZG9jcywgZml4ZXMgIzMyODgwNS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgRml4IHBhZHRlbXBsYXRlIGRvY3MsIGZpeGVzICMzMjg4MDUuCgoyMDA2LTAyLTE0IDE3OjI1OjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBOT19QUkVST0xMIGlzIG5vdCBhbiBFUlJPUiBzbyBkb24ndCBzZW5kIGNvbmZ1c2luZyBtZXNzYWdlcyB0byB0aGUgdXNlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIE5PX1BSRVJPTEwgaXMgbm90IGFuIEVSUk9SIHNvIGRvbid0IHNlbmQgY29uZnVzaW5nIG1lc3NhZ2VzCgkgIHRvIHRoZSB1c2VyLgoKMjAwNi0wMi0xNCAxNjoxNTowNSArMDAwMCAgVG9yc3RlbiBTY2hvZW5mZWxkIDxrYWZmZWV0aXNjaEBnbXguZGU+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogUHJvdGVjdCBkZWZhdWx0IHJlZ2lzdHJ5IHdpdGggbG9jayBhbmQgcmVmL3NpbmsgaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2dldF9kZWZhdWx0KSwKCSAgKF9nc3RfcmVnaXN0cnlfY2xlYW51cCk6CgkgIFByb3RlY3QgZGVmYXVsdCByZWdpc3RyeSB3aXRoIGxvY2sgYW5kIHJlZi9zaW5rIGl0LgoJICBGaXhlcyAjMzI0ODE4LCBwYXRjaCBieSBUb3JzdGVuIFNjaG9lbmZlbGQuCgoyMDA2LTAyLTE0IDEzOjA3OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9jcyBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X2xpc3RfYWRkX2Zvcm1hdCksCgkgIChnc3RfcXVlcnlfc2V0X2Zvcm1hdHN2KSwgKGdzdF9xdWVyeV9wYXJzZV9mb3JtYXRzX2xlbmd0aCksCgkgIChnc3RfcXVlcnlfcGFyc2VfZm9ybWF0c19udGgpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpOgoJICBEb2NzIGZpeGVzLgoKMjAwNi0wMi0xNCAxMjowNzoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFJld29ya2VkIHF1ZXJ5IGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIFJld29ya2VkIHF1ZXJ5IGRvY3MuCgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X2Zvcm1hdHMpLAoJICAoZ3N0X3F1ZXJ5X2xpc3RfYWRkX2Zvcm1hdCksIChnc3RfcXVlcnlfc2V0X2Zvcm1hdHMpLAoJICAoZ3N0X3F1ZXJ5X3NldF9mb3JtYXRzdiksIChnc3RfcXVlcnlfcGFyc2VfZm9ybWF0c19sZW5ndGgpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2Zvcm1hdHNfbnRoKToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgRmxlc2ggb3V0IGZvcm1hdHMgcXVlcnksIGFkZGVkIHNvbWUgbmV3IG1ldGhvZHMuCgkgIEZpeCBwYXJ0IG9mICMzMjQzOTguCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RxdWVyeV9zdWl0ZSk6CgkgIEFkZGVkIHF1ZXJ5IGNyZWF0aW9uIHRlc3RzLgoKMjAwNi0wMi0xNCAxMTozODo1MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEFkZCBhIGRlZmF1bHQgZml4YXRpb24gZm9yIGZyYWN0aW9uIGxpc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChmaXhhdGVfdmFsdWUpOgoJICBBZGQgYSBkZWZhdWx0IGZpeGF0aW9uIGZvciBmcmFjdGlvbiBsaXN0cy4KCjIwMDYtMDItMTMgMTc6MDM6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dGFzay4qOiBEZXRlY3QgYW5kIHdhcm4gZm9yIG9idmlvdXMgZGVhZGxvY2tzLiBmaXhlcyAjMzIwMzQwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YXNrLmM6IChnc3RfdGFza19pbml0KSwgKGdzdF90YXNrX2Z1bmMpLAoJICAoZ3N0X3Rhc2tfc2V0X2xvY2spLCAoZ3N0X3Rhc2tfc3RhcnQpLCAoZ3N0X3Rhc2tfcGF1c2UpLAoJICAoZ3N0X3Rhc2tfam9pbik6CgkgICogZ3N0L2dzdHRhc2suaDoKCSAgRGV0ZWN0IGFuZCB3YXJuIGZvciBvYnZpb3VzIGRlYWRsb2Nrcy4gZml4ZXMgIzMyMDM0MAoJICBGaXggZXJyb3IgY2FzZSB3aGVyZSBsb2NrIHdhcyBub3QgcmVsZWFzZWQuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzogKHRhc2tfZnVuYzIpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAodGFza19mdW5jKSwgKGdzdF9lbGVtZW50X3N1aXRlKSwgKG1haW4pOgoJICBBZGQgdGFzayBjaGVjay4KCjIwMDYtMDItMTMgMTQ6MDA6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEZvcmdvdCBjaGFuZ2Vsb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZvcmdvdCBjaGFuZ2Vsb2cKCjIwMDYtMDItMTMgMTM6NTc6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgbmV3IGZ1bmN0aW9ucyB0byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RidXMuYzoKCSAgQWRkIG5ldyBmdW5jdGlvbnMgdG8gZG9jcy4KCjIwMDYtMDItMTMgMTE6NTI6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBVcGRhdGVkIFRPRE8gbGlzdCwgYmFzZXNyYyBzdXBwb3J0cyBzZWVraW5nIHRvIG5vbi1ieXRlcyBmb3JtYXRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBVcGRhdGVkIFRPRE8gbGlzdCwgYmFzZXNyYyBzdXBwb3J0cyBzZWVraW5nIHRvIG5vbi1ieXRlcwoJICBmb3JtYXRzLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSAgVXBkYXRlIGRvY3MuCgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX3JlcGxhY2VfbWVzc2FnZSksCgkgIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9zdCksIChnc3RfYnVzX3BvcCk6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfZmluYWxpemUpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZXZlbnRfZGVmYXVsdF9kaXNwYXRjaCksCgkgIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBVc2Ugc2hpbnkgbmV3IF9UWVBFX05BTUUgbWFjcm9zLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIE1vdmUgZGVidWcgc3RhdGVtZW50IHVwLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfbG9ja2VkX3N0YXRlKToKCSAgQWRkIHNvbWUgZGVidWdnaW5nLgoKMjAwNi0wMi0xMyAxMToxOTozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE5ldyBBUEk6IGFkZCBHU1RfTUVTU0FHRV9UWVBFX05BTUUgYW5kIEdTVF9RVUVSWV9UWVBFX05BTUUgbWFjcm9zICgjMzMwOTA2KS4gQWxzbywgZG9jdW1lbnQgdGhlIGFscmVhZHkgZXhpc3RpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBOZXcgQVBJOiBhZGQgR1NUX01FU1NBR0VfVFlQRV9OQU1FIGFuZCBHU1RfUVVFUllfVFlQRV9OQU1FCgkgIG1hY3JvcyAoIzMzMDkwNikuIEFsc28sIGRvY3VtZW50IHRoZSBhbHJlYWR5IGV4aXN0aW5nCgkgIEdTVF9RVUVSWV9UWVBFIG1hY3JvLgoKMjAwNi0wMi0xMyAxMDo1NDowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiBPbmx5IGV2ZW50cyB1cCB0byB0aGUgcGlwZWxpbmUgRU9TIGFyZSBjb3VudGVkLCB0aGVyZSBhcmUgc29tZSBtb3JlIHdoZW4gZ29pbmcgdG8gTlVMTCBjdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKGRhdGFfcHJvYmUpLCAoYnVmZmVyX3Byb2JlKSwKCSAgKGV2ZW50X3Byb2JlKSwgKEdTVF9TVEFSVF9URVNUKToKCSAgT25seSBldmVudHMgdXAgdG8gdGhlIHBpcGVsaW5lIEVPUyBhcmUgY291bnRlZCwgdGhlcmUgYXJlCgkgIHNvbWUgbW9yZSB3aGVuIGdvaW5nIHRvIE5VTEwgY3VycmVudGx5IHdoaWNoIHdlIGRvbid0IGNhcmUKCSAgYWJvdXQgZm9yIG5vdy4KCjIwMDYtMDItMTMgMDk6NTk6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IENvcnJlY3RseSBjaGVjayBmbHVzaGluZyBhbmQgZW1pdCBwcm9iZXMuIGZpeGVzICMzMzAxMjUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgQ29ycmVjdGx5IGNoZWNrIGZsdXNoaW5nIGFuZCBlbWl0IHByb2Jlcy4gZml4ZXMgIzMzMDEyNQoKMjAwNi0wMi0xMiAxMzoxMTo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJldmVydCB3cm9uZyBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmVydCB3cm9uZyBjb21taXQKCjIwMDYtMDItMTAgMTY6MDQ6NTkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RidXMuYyAoZ3N0X2J1c19jbGFzc19pbml0KTogRGVjbGFyZSBvdXIgcHJpdmF0ZSBkYXRhIHN0cnVjdHVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDItMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJ1cy5jIChnc3RfYnVzX2NsYXNzX2luaXQpOiBEZWNsYXJlIG91ciBwcml2YXRlIGRhdGEKCSAgc3RydWN0dXJlLgoJICAoZ3N0X2J1c19pbml0KTogQ2FjaGUgdGhlIGxvY2F0aW9uIG9mIHRoZSBwcml2YXRlIGRhdGEgaW4gdGhlCgkgIGluc3RhbmNlIHN0cnVjdHVyZS4KCSAgKGdzdF9idXNfZW5hYmxlX3N5bmNfbWVzc2FnZV9lbWlzc2lvbikKCSAgKGdzdF9idXNfZGlzYWJsZV9zeW5jX21lc3NhZ2VfZW1pc3Npb24pOiBJbXBsZW1lbnQgbmV3IHB1YmxpYwoJICBmdW5jdGlvbnMuCgkgIChnc3RfYnVzX3Bvc3QpOiBFbWl0IHRoZSBzeW5jLW1lc3NhZ2Ugc2lnbmFsIGlmIHRoZSB1c2VyIGFza2VkIGZvcgoJICBpdC4gRml4ZXMgIzMzMDY4NC4KCSAgKiBnc3QvZ3N0YnVzLmggKEdzdEJ1cyk6IFVzZSBhIHBhZGRpbmcgcG9pbnRlciB0byBjYWNoZSB0aGUKCSAgbG9jYXRpb24gb2YgdGhlIGJ1cy1wcml2YXRlIHN0cnVjdHV1cmUuCgkgIChnc3RfYnVzX2VuYWJsZV9zeW5jX21lc3NhZ2VfZW1pc3Npb24pCgkgIChnc3RfYnVzX2Rpc2FibGVfc3luY19tZXNzYWdlX2VtaXNzaW9uKTogTmV3IHB1YmxpYyBmdW5jdGlvbnMuCgoyMDA2LTAyLTA5IDIzOjQwOjQzICswMDAwICBWaW5jZW50IFRvcnJpIDx2dG9ycmlAdW5pdi1ldnJ5LmZyPgoKCSAgZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgUFdHIHBhdGNoIGZyb20gIzMyNjgwMCAoUGF0Y2ggYnkgVmluY2VudCBUb3JyaSkKCjIwMDYtMDItMDkgMTg6MzA6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeSBhbmQgYWRkIG1pc3NpbmcgbmV3IGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZUxvZyBzdXJnZXJ5IGFuZCBhZGQgbWlzc2luZyBuZXcgZmlsZQoKMjAwNi0wMi0wOSAxODoyODozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtCgkgIERpc3QgZGVzaWduIGRvY3MuCgoyMDA2LTAyLTA4IDE3OjM0OjQzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogYmFjayB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIENWUwoKPT09IHJlbGVhc2UgMC4xMC4zID09PQoKMjAwNi0wMi0wOCAxNzozMTozNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IHJlbGVhc2luZyAwLjEwLjMsICJMaWtlIGEgdmlyZ2luIgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgPT09IHJlbGVhc2UgMC4xMC4zID09PQoJICAyMDA2LTAyLTA4ICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIHJlbGVhc2luZyAwLjEwLjMsICJMaWtlIGEgdmlyZ2luIgoKMjAwNi0wMi0wOCAxMToxMjowNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IDJuZCBwcmVyZWxlYXNlIG9mIDAuMTAuMwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMi0wOCAgSmFuIFNjaG1pZHQgIDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgMm5kIHByZXJlbGVhc2Ugb2YgMC4xMC4zCgkgIEJ1bXAgbGlidG9vbCB2ZXJzaW9uaW5nLgoKMjAwNi0wMi0wNyAxNTo0OTo0MCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKTogT25seSB1cGRhdGUgbGFzdF9zdG9wIGlmIHdlJ3JlIGluIFRJTUUgZm9ybWF0IGFuZCB0aGUgdGltZXN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTA3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYyAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6IE9ubHkKCSAgdXBkYXRlIGxhc3Rfc3RvcCBpZiB3ZSdyZSBpbiBUSU1FIGZvcm1hdCBhbmQgdGhlIHRpbWVzdGFtcCBpcwoJICB2YWxpZC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmMgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudGZ1bmMpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19jb25maWd1cmVfc2VnbWVudCk6CgkgIElmIHdlIGdldCBhIG5ldyBuZXdzZWdtZW50IHdpdGggYSBkaWZmZXJlbnQgZm9ybWF0LCBhZGFwdAoJICBhY2NvcmRpbmdseS4KCSAgKiBnc3QvZ3N0Y2xvY2suYyAoZ3N0X2Nsb2NrX3NldF9jYWxpYnJhdGlvbik6IEFjY2VwdCBhIG51bWVyYXRvcgoJICBvZiAwLiBOb3QgYSBwcm9ibGVtLCByZWFsbHkuCgoyMDA2LTAyLTA3IDEzOjIwOjE2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpOiBPbmx5IHdhcm4gaWYgc3luYz10cnVlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMi0wNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQpOiBPbmx5CgkgIHdhcm4gaWYgc3luYz10cnVlLgoKMjAwNi0wMi0wNyAxMDo1MToyNCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSBzcGVjIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBzcGVjIGZpbGUKCjIwMDYtMDItMDYgMjI6MDE6MjMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBQcmVsZWFzZSBvZiAwLjEwLjMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBQcmVsZWFzZSBvZiAwLjEwLjMKCjIwMDYtMDItMDYgMjE6NTM6MDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA2LTAyLTA2IDIxOjI5OjA0ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi92czc6IHByb2plY3QgZmlsZXMgdXBkYXRlZCB0byB0aGUgZGVmYXVsdCB2czcgY29uZmlndXJhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czc6CgkgIHByb2plY3QgZmlsZXMgdXBkYXRlZCB0byB0aGUgZGVmYXVsdCB2czcgY29uZmlndXJhdGlvbgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkZWQgbmV3IHN5bWJvbHMsCgkgIHJlbW92ZWQgZW1wdHkgbGluZXMsCgkgIHNvcnRlZCBhbGwgZXhwb3J0ZWQgc3ltYm9scyBhbHBoYWJldGljYWxseQoJICAqIHdpbjMyL2NvbW1vbi9kaXJlbnQuYzoKCSAgKiB3aW4zMi9jb21tb24vZGlyZW50Lmg6CgkgICogd2luMzIvY29tbW9uL2djaGFyLmg6CgkgIHVzZSB3aW5kb3dzIGxpbmUgZW5kLgoKMjAwNi0wMi0wNiAxNToyNToyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBkb2Mgc3ViODAgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvYyBzdWI4MCBmaXhlcwoKMjAwNi0wMi0wNiAxNDo1Nzo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBTZW5kIEVPUyBldmVudCB3aGVuIHN0b3BwaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBTZW5kIEVPUyBldmVudCB3aGVuIHN0b3BwaW5nLgoKMjAwNi0wMi0wNiAxMDo0MjowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvUkVBRE1FOiBUZWxsIGZvbGtzIHdoYXQgdG8gZG8gaWYgdGhlIHBsdWdpbi1mb29iYXIueG1sIGZpbGUgaGFzbid0IGJlZW4gZ2VuZXJhdGVkIGZvciBhIG5ld2x5LWFkZGVkIHBsdWdpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9SRUFETUU6CgkgIFRlbGwgZm9sa3Mgd2hhdCB0byBkbyBpZiB0aGUgcGx1Z2luLWZvb2Jhci54bWwgZmlsZQoJICBoYXNuJ3QgYmVlbiBnZW5lcmF0ZWQgZm9yIGEgbmV3bHktYWRkZWQgcGx1Z2luLgoKMjAwNi0wMi0wNSAxODoxMzoyOCArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IENvbGxlY3RwYWRzIG5vdyBob2xkcyBhIHJlZmVyZW5jZSB0byB0aGUgR3N0UGFkIHRoYXQgd2FzIGFkZGVkLiBJbmRlZWQgd2UgZG9uJ3Qgd2FudCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDItMDUgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2ZpbmFsaXplKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCksIChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdGFydCksIChnc3RfY29sbGVjdF9wYWRzX3N0b3ApLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCk6IENvbGxlY3RwYWRzIG5vdyBob2xkcyBhIHJlZmVyZW5jZQoJICB0byB0aGUgR3N0UGFkIHRoYXQgd2FzIGFkZGVkLiBJbmRlZWQgd2UgZG9uJ3Qgd2FudCB0byBsb29rCgkgIGF0IHBhZHMgdGhhdCBtaWdodCBqdXN0IGdvIGF3YXkgd2l0aCBubyB3YXJuaW5nLi4uCgoyMDA2LTAyLTA1IDE2OjE4OjM3ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuKjogSGFuZGxlIGZsdXNoLiBBZGFwdGVkIGZyb20KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDItMDUgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdGFydCksIChnc3RfY29sbGVjdF9wYWRzX3N0b3ApLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCksIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6IEhhbmRsZSBmbHVzaC4gQWRhcHRlZCBmcm9tCgkgIE1hcmsgTmF1d2VsYWVydHMncyBwYXRjaCBvbiBidWcgIzMyODQ5MS4KCjIwMDYtMDItMDQgMTI6NDk6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogQWRkIHNvbWUgc2ltcGxlIHRlc3RzIGZvciBnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24oKSBhbmQgZ3N0X2Jpbl9maW5kX3VuY29ubmVjdGVkX3AuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6ICh0ZXN0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKSwKCSAgKGdzdF91dGlsc19zdWl0ZSk6CgkgIEFkZCBzb21lIHNpbXBsZSB0ZXN0cyBmb3IgZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKCkgYW5kCgkgIGdzdF9iaW5fZmluZF91bmNvbm5lY3RlZF9wYWQoKSAoIzMyOTA2OSkuCgoyMDA2LTAyLTA0IDExOjU2OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBDYXRjaCBlcnJvcnMgZHVyaW5nIHByZXJvbGwgKCMzMjAwODQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKSwgKG1haW4pOgoJICBDYXRjaCBlcnJvcnMgZHVyaW5nIHByZXJvbGwgKCMzMjAwODQpLgoKMjAwNi0wMi0wMyAyMToxNDo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IFBvc3QgVFlQRV9OT1RfRk9VTkQgZXJyb3IgbWVzc2FnZSB3aGVuIHR5cGVmaW5kaW5nIGlzIHVuc3VjY2Vzc2Z1bCBpbiB0aGUgYWN0aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgUG9zdCBUWVBFX05PVF9GT1VORCBlcnJvciBtZXNzYWdlIHdoZW4gdHlwZWZpbmRpbmcKCSAgaXMgdW5zdWNjZXNzZnVsIGluIHRoZSBhY3RpdmF0ZSBmdW5jdGlvbiBhcyB3ZWxsLgoKMjAwNi0wMi0wMiAxNjoxNToxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDogVXBkYXRlZCBkb2MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSAgVXBkYXRlZCBkb2MuCgoyMDA2LTAyLTAyIDE2OjEyOjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBPbmx5IGtlZXAgdHJhY2sgb2YgcHJlcm9sbGFibGUgaXRlbXMgd2hlbiB3ZSBhcmUgcHJlcm9sbGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdF91bmxvY2tlZCk6CgkgIE9ubHkga2VlcCB0cmFjayBvZiBwcmVyb2xsYWJsZSBpdGVtcyB3aGVuIHdlIGFyZQoJICBwcmVyb2xsaW5nLgoJICBCZWZvcmUgcmVuZGVyaW5nIGFmdGVyIHByZXJvbGwsIGFsd2F5cyBjaGVjayBpZiB3ZQoJICBoYXZlIHF1ZXVlZCBpdGVtcy4KCSAgQWRkZWQgc29tZSBtb3JlIGRlYnVnZ2luZy4KCjIwMDYtMDItMDIgMTM6NTg6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBGaXhlZCAjMzI2NTc2LCBiZWVuIHJ1bm5pbmcgdGhpcyBmb3IgcXVpdGUgc29tZSB0aW1lIHdpdGggbm8gcmVncmVzc2lvbnMgYXQgYWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgRml4ZWQgIzMyNjU3NiwgYmVlbiBydW5uaW5nIHRoaXMgZm9yIHF1aXRlIHNvbWUgdGltZSB3aXRoCgkgIG5vIHJlZ3Jlc3Npb25zIGF0IGFsbC4KCjIwMDYtMDItMDIgMTM6NDQ6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjb21tb24vZ3N0LnN1cHA6IEFkZGVkIG1vcmUgc3VwcHJlc3Npb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9nc3Quc3VwcDoKCSAgQWRkZWQgbW9yZSBzdXBwcmVzc2lvbnMKCjIwMDYtMDItMDIgMTI6MDc6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6IFVwZGF0ZWQgZG9jdW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSAgVXBkYXRlZCBkb2N1bWVudC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19maW5hbGl6ZSksIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLAoJICAoZ3N0X2Jhc2Vfc2lua19jb25maWd1cmVfc2VnbWVudCksIChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKSwgKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWV1ZV9vYmplY3RfdW5sb2NrZWQpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWV1ZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKSwgKGdzdF9iYXNlX3NpbmtfY2hhaW4pLAoJICAoZ3N0X2Jhc2Vfc2lua19sb29wKSwgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBUb3RhbGx5IHJlZmFjdG9yZWQgbWF0Y2hpbmcgdGhlIGRlc2lnbiBkb2MuCgkgIFVzZSB0d28gc2VnbWVudHMsIG9uZSB0byBjbGlwIGluY29tbWluZyBidWZmZXJzIGFuZCBhbm90aGVyIHRvCgkgIHBlcmZvcm0gc3luYy4KCSAgSGFuZGxlIHF1ZXVlaW5nIGNvcnJlY3RseSwgYnlwYXNzIHRoZSBxdWV1ZSB3aGVuIHBsYXlpbmcuCgkgIE1ha2UgRU9TIGNhbmNlbGFibGUuCgkgIEhhbmRsZSBlcnJvcnMgY29ycmVjdGx5IHdoZW4gb3BlcmF0aW5nIGluIHB1bGwgYmFzZWQgbW9kZS4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZmFrZXNpbmtfc3VpdGUpOgoJICBBZGRlZCBuZXcgY2hlY2sgZm9yIHNpbmtzLgoKMjAwNi0wMi0wMiAxMTo1OToyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IE5vIHJlYXNvbiB0byByZWZ1c2UgdG8gY2xpcCB3aGVuIHN0YXJ0ID09IC0xCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9jbGlwKToKCSAgTm8gcmVhc29uIHRvIHJlZnVzZSB0byBjbGlwIHdoZW4gc3RhcnQgPT0gLTEKCjIwMDYtMDItMDIgMTE6MjQ6MTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBkZXNjcmliZSBkcGFyYW1zIChjb250cm9sbGVyKSBmb3IgcGx1Z2lucyB1bmlmeSBkb2NzIGEgbGl0dGxlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9SRUFETUU6CgkgICogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9pbnRyby1wcmVmYWNlLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJICAqIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6CgkgICogZG9jcy9wd2cvaW50cm8tcHJlZmFjZS54bWw6CgkgICogZG9jcy9wd2cvcHdnLnhtbDoKCSAgZGVzY3JpYmUgZHBhcmFtcyAoY29udHJvbGxlcikgZm9yIHBsdWdpbnMKCSAgdW5pZnkgZG9jcyBhIGxpdHRsZSBtb3JlCgoyMDA2LTAyLTAyIDA5OjUxOjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIG5ldyBBUEk6IGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbigpIGFuZCBnc3RfYmluX2ZpbmRfdW5jb25uZWN0ZWRfcGFkKCkgKCMzMjkwNjkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZWxlbWVudF9maW5kX3VuY29ubmVjdGVkX3BhZCksCgkgIChnc3RfYmluX2ZpbmRfdW5jb25uZWN0ZWRfcGFkKSwgKGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbik6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZCBuZXcgQVBJOiBnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24oKSBhbmQKCSAgZ3N0X2Jpbl9maW5kX3VuY29ubmVjdGVkX3BhZCgpICgjMzI5MDY5KS4KCjIwMDYtMDItMDEgMjI6NDM6MTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvbWFudWFsL1JFQURNRTogdW5jb3ZlciBhIG5hc3R5IGRldGFpbCBvZiB0aGUgZG9jcyBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9SRUFETUU6CgkgIHVuY292ZXIgYSBuYXN0eSBkZXRhaWwgb2YgdGhlIGRvY3MgYnVpbGQKCjIwMDYtMDItMDEgMDg6Mjc6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9SRUFETUU6CgkgIHVwZGF0ZXMgZm9yIHBsdWdpbiBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGVzIGZvciBwbHVnaW4gZG9jcwoKMjAwNi0wMS0zMSAxODo0NjoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRG9uJ3QgY2FjaGUgZHVyYXRpb24gbWVzc2FnZXMgaWYgd2UncmUgbm90IGdvaW5nIHRvIHVzZSBvciBmcmVlIHRoZW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9yZW1vdmVfbWVzc2FnZXMpLCAoYmluX3F1ZXJ5X2R1cmF0aW9uX2RvbmUpOgoJICBEb24ndCBjYWNoZSBkdXJhdGlvbiBtZXNzYWdlcyBpZiB3ZSdyZSBub3QgZ29pbmcgdG8gdXNlIG9yCgkgIGZyZWUgdGhlbS4KCjIwMDYtMDEtMzEgMTY6NTY6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBtb3JlIGRwYXJhbSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJICBtb3JlIGRwYXJhbSBkb2NzCgkgICogZ3N0L2dzdGluZGV4LmM6CgkgIGZpeCBkb2NzCgkgICogbGlicy9nc3QvY29udHJvbGxlci9saWIuYzogKGdzdF9jb250cm9sbGVyX2luaXQpOgoJICBpbml0IGp1c3Qgb25jZQoKMjAwNi0wMS0zMSAxMDoxNjo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBhbHNvIHNob3cgZmlsZS9saW5lL2Z1bmMgaWYgbm8gYWRkaXRpb25hbCBkZWJ1ZyB3YXMgZ2l2ZW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X21lc3NhZ2VfZnVsbCk6CgkgIGFsc28gc2hvdyBmaWxlL2xpbmUvZnVuYyBpZiBubyBhZGRpdGlvbmFsIGRlYnVnIHdhcyBnaXZlbgoKMjAwNi0wMS0zMCAyMzo1Mjo1MiArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvdnM3L2dyYW1tYXIudmNwcm9qOiBhY3RpdmF0ZSBjb3B5IG9mIGF1dG9nZW5lcmF0ZWQgZmlsZXMgZm9yIFJlbGVhc2UgbW9kZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czcvZ3JhbW1hci52Y3Byb2o6CgkgIGFjdGl2YXRlIGNvcHkgb2YgYXV0b2dlbmVyYXRlZCBmaWxlcyBmb3IgUmVsZWFzZSBtb2RlCgoyMDA2LTAxLTMwIDIyOjI5OjAzICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogZXhwb3J0IGdzdF92YWx1ZV9jb21wYXJlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBleHBvcnQgZ3N0X3ZhbHVlX2NvbXBhcmUKCjIwMDYtMDEtMzAgMjE6NTc6MDAgKzAwMDAgIFBoaWxpcHBlIFJvdXF1aWVyIDxib25maXJlLWFwcEB3YW5hZG9vLmZyPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChfZG9faW5pdCksCgkgIChnc3RfZmRfc2lua19iYXNlX2luaXQpLCAoZ3N0X2ZkX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfZmRfc2lua19pbml0KSwgKGdzdF9mZF9zaW5rX2Rpc3Bvc2UpLCAoZ3N0X2ZkX3NpbmtfcXVlcnkpLAoJICAoZ3N0X2ZkX3NpbmtfcmVuZGVyKSwgKGdzdF9mZF9zaW5rX2NoZWNrX2ZkKSwgKGdzdF9mZF9zaW5rX3N0YXJ0KSwKCSAgKGdzdF9mZF9zaW5rX3N0b3ApLCAoZ3N0X2ZkX3NpbmtfdW5sb2NrKSwgKGdzdF9mZF9zaW5rX3VwZGF0ZV9mZCksCgkgIChnc3RfZmRfc2lua19zZXRfcHJvcGVydHkpLCAoZ3N0X2ZkX3NpbmtfdXJpX2dldF90eXBlKSwKCSAgKGdzdF9mZF9zaW5rX3VyaV9nZXRfcHJvdG9jb2xzKSwgKGdzdF9mZF9zaW5rX3VyaV9nZXRfdXJpKSwKCSAgKGdzdF9mZF9zaW5rX3VyaV9zZXRfdXJpKSwgKGdzdF9mZF9zaW5rX3VyaV9oYW5kbGVyX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgIFBvcnQgZmRzaW5rIHRvIDAuMTAgKHBhdGNoIGJ5IFBoaWxpcHBlIFJvdXF1aWVyKSAoRml4ZXMgIzMyNTQ5MCkKCjIwMDYtMDEtMzAgMjE6MTE6MzggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOiBkZXNjcmliZSBjb250cm9sbGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJICBkZXNjcmliZSBjb250cm9sbGVyCgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtcG9zaXRpb24ueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1pbml0LnhtbDoKCSAgKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICAqIGRvY3MvbWFudWFsL3RpdGxlcGFnZS54bWw6CgkgICogZG9jcy9wd2cvcHdnLnhtbDoKCSAgKiBkb2NzL3B3Zy90aXRsZXBhZ2UueG1sOgoJICBjbGVhbnVwIHhtbCAobW9yZSB0byBjb21lKQoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBmaXggdHlwbwoKMjAwNi0wMS0zMCAyMDozNjo1MSArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvdnM2L2dyYW1tYXIuZHNwOiBhZGQgYXV0b2dlbiBvZiBnc3RtYXJzaGFsLmMsaCBmb3IgUmVsZWFzZSBtb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNi9ncmFtbWFyLmRzcDoKCSAgYWRkIGF1dG9nZW4gb2YgZ3N0bWFyc2hhbC5jLGggZm9yIFJlbGVhc2UgbW9kZQoKMjAwNi0wMS0zMCAxNjowNzo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQmFzZXNpbmsgY2xlYW51cHMsIHJlbW92ZSBzb21lIG9sZCBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2VtcHR5KSwgKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfaXNfcHJlcm9sbGVkKSwgKGdzdF9iYXNlX3Npbmtfd2FpdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfYnVmZmVyKSwgKGdzdF9iYXNlX3Npbmtfc2V0X2ZsdXNoaW5nKSwKCSAgKGdzdF9iYXNlX3NpbmtfZGVhY3RpdmF0ZSksIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgQmFzZXNpbmsgY2xlYW51cHMsIHJlbW92ZSBzb21lIG9sZCBjb2RlLgoJICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgYSBzdWJjbGFzcyBjYW4gcHJlcm9sbCBpbiB0aGUgcmVuZGVyCgkgIG1ldGhvZCAobW9zdGx5IGF1ZGlvc2lua3MpLgoJICBIYW5kbGUgbW9yZSBldmVudHMuCgkgIFJlbW92ZSBzb21lIGxvY2tzIGFyb3VuZCB2YXJpYWJsZXMgdGhhdCBhcmUgbm93IHByb3RlY3RlZAoJICB3aXRoIHRoZSBQUkVST0xMX0xPQ0sgKGNsb2NrX2lkLCBmbHVzaGluZywgLi4pLgoJICBPcHRpbWl6ZSBwb3NpdGlvbiBxdWVyeSBzb21lIG1vcmUsIGRvIGNvcnJlY3QgbG9ja2luZy4KCSAgUmVtb3ZlIG9sZCBjb2RlIHRvIHB1c2ggcXVldWUgaW4gc3RhdGUgY2hhbmdlLCB0aGlzIGlzIG5vdAoJICBuZWVkZWQgYW55bW9yZSBzaW5jZSBwcmVyb2xsIGJsb2NrcyBvbiBhbGwgcHJlcm9sbGFibGUgaXRlbXMKCSAgbm93LgoJICBBbG1vc3QgaW1wbGVtZW50ZWQgYXMgZGVzY3JpYmVkIGluIGRlc2lnbiBkb2MuCgoyMDA2LTAxLTMwIDE1OjU3OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiBXYWl0IGZvciByZWZjb3VudCB0byBzZXR0bGUgZG93biBiZWZvcmUgY2hlY2tpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgV2FpdCBmb3IgcmVmY291bnQgdG8gc2V0dGxlIGRvd24gYmVmb3JlIGNoZWNraW5nLgoKMjAwNi0wMS0zMCAxNToxNTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDogUHNldWRvIGNvZGUgb3ZlcnZpZXcgb2YgZGVzaXJlZCBzaW5rIGJlaGF2aW91ciByZWdhcmRpbmcgcHJlcm9sbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJICBQc2V1ZG8gY29kZSBvdmVydmlldyBvZiBkZXNpcmVkIHNpbmsgYmVoYXZpb3VyIHJlZ2FyZGluZwoJICBwcmVyb2xsLgoKMjAwNi0wMS0zMCAxNDoyODowMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEJsZWgsIGZvcmdvdCB0byBjb21taXQgdGhlIGNoYW5nZWxvZyBlbnRyeSBvbiBTYXR1cmRheS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJsZWgsIGZvcmdvdCB0byBjb21taXQgdGhlIGNoYW5nZWxvZyBlbnRyeSBvbiBTYXR1cmRheS4KCjIwMDYtMDEtMjkgMjE6NTY6MDAgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL3ZzNi9ncmFtbWFyLmRzcDogZml4IHNvbWUgYnVncyBpbiBhdXRvZ2VuZXJhdGVkIGZpbGVzIGZvciBSZWxlYXNlIG1vZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJICBmaXggc29tZSBidWdzIGluIGF1dG9nZW5lcmF0ZWQgZmlsZXMgZm9yIFJlbGVhc2UgbW9kZQoKMjAwNi0wMS0yOSAxOToyNDoxOCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvY29tbW9uLzogZXhwb3J0IHNvbWUgbmV3IHN5bWJvbHM6IGdzdF9iYXNlX3NyY19zZXRfZm9ybWF0LCBnc3RfaXRlcmF0b3JfbmV4dCwgZ3N0X3N0cnVjdHVyZV9zZXRfdmFsaXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXhwb3J0IHNvbWUgbmV3IHN5bWJvbHM6IGdzdF9iYXNlX3NyY19zZXRfZm9ybWF0LAoJICBnc3RfaXRlcmF0b3JfbmV4dCwgZ3N0X3N0cnVjdHVyZV9zZXRfdmFsaXN0CgoyMDA2LTAxLTI5IDE3OjM3OjA4ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBTZXQgcGFkIGZ1bmN0aW9ucyB1bmNvbmRpdGlvbmFsbHkuIEZpeGVzICMzMjkxMDUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAxLTI5ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX3NldF90YXJnZXRfdW5sb2NrZWQpOgoJICBTZXQgcGFkIGZ1bmN0aW9ucyB1bmNvbmRpdGlvbmFsbHkuIEZpeGVzICMzMjkxMDUuCgoyMDA2LTAxLTI5IDE2OjU0OjQwICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi92czg6IGFkZCB2czggcHJvamVjdCBmaWxlcyBjcmVhdGVkIGJ5IFNlcmdleSBTY29iaWNoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzODoKCSAgYWRkIHZzOCBwcm9qZWN0IGZpbGVzIGNyZWF0ZWQgYnkgU2VyZ2V5IFNjb2JpY2gKCjIwMDYtMDEtMjggMDA6NTk6MzcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IERvbid0IGxlYWsgcGFkIHJlZmVyZW5jZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfdW5saW5rX3BhZHMpOgoJICBEb24ndCBsZWFrIHBhZCByZWZlcmVuY2VzLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IGEgYnVuY2ggb2YgbGVha3MuIE1ha2UgZ2VuZXJpYy9zaW5rcy5jCgkgIHVzZSBhIGJpdCBsZXNzIGNwdSBieSBzbG93aW5nIHRoZSBidWZmZXIgcmF0ZQoJICBiZXR3ZWVuIGZha2VzcmMgYW5kIGZha2VzaW5rLgoKMjAwNi0wMS0yNyAyMjozNDo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jIGZpeGVzLCB0byBsaW5rIHRvIGZ1bmN0aW9uLCBqdXN0IHdyaXRlIGdzdF9jb29sX2Z1bmN0aW9uKCksIGRvbid0IHByZWZpeCB3aXRoICcjJwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZW5kX2V2ZW50KToKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIGdzdC9nc3R1cmkuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgZG9jIGZpeGVzLCB0byBsaW5rIHRvIGZ1bmN0aW9uLCBqdXN0IHdyaXRlIGdzdF9jb29sX2Z1bmN0aW9uKCksIGRvbid0CgkgIHByZWZpeCB3aXRoICcjJwoKMjAwNi0wMS0yNyAxNjo1OTo1NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiBBbHdheXMgcHJlZmVyIGFuIGFjdHVhbCByZXR1cm4gdmFsdWUgZnJvbSBhIHNyYyBwYWQgaW4gcGxhY2Ugb2YgTk9UX0xJTktFRC4gVGhpcyBtZWFucyB3ZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfZG9fcHVzaCksCgkgIChnc3RfdGVlX2hhbmRsZV9idWZmZXIpOgoJICBBbHdheXMgcHJlZmVyIGFuIGFjdHVhbCByZXR1cm4gdmFsdWUgZnJvbSBhIHNyYwoJICBwYWQgaW4gcGxhY2Ugb2YgTk9UX0xJTktFRC4gVGhpcyBtZWFucyB3ZSByZXR1cm4KCSAgV1JPTkdfU1RBVEUgd2hlbiBhbGwgc3JjIHBhZHMgYXJlIFdST05HX1NUQVRFCgkgIGluc3RlYWQgb2YgTk9UX0xJTktFRC4KCSAgTG9jayB3aGVuIHJlcGxhY2luZyB0aGUgbGFzdCBtZXNzYWdlIHRvIHByZXZlbnQKCSAgcmFjaW5nIHdpdGggdGhlIGdldF9wcm9wZXJ0eSBtZXRob2QuCgkgIEFkZCBkZWJ1ZyBvdXRwdXQKCjIwMDYtMDEtMjcgMTE6NTM6MjAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svOiBBZGQgYSB2ZXJ5IHNpbXBsZSBjaGVjayB0aGF0IHNob3VsZCBoYXZlIGNhdWdodCB0aGUgbWVtbGVhayBJIGZpeGVkIGxhc3QgbmlnaHQgKGlmIG5vdCBmb3IgdGhlIHNsaWNlIGFsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0cXVlcnlfc3VpdGUpLAoJICAobWFpbik6CgkgIEFkZCBhIHZlcnkgc2ltcGxlIGNoZWNrIHRoYXQgc2hvdWxkIGhhdmUgY2F1Z2h0IHRoZSBtZW1sZWFrIEkgZml4ZWQKCSAgbGFzdCBuaWdodCAoaWYgbm90IGZvciB0aGUgc2xpY2UgYWxsb2NhdG9yIGhpZGluZyBpdCkKCjIwMDYtMDEtMjcgMDE6NDg6MzcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBDbGVhbiB1cCByZWZlcmVuY2VzIHRvIHRoZSBjbG9jayBwcm92aWRlciB3aGVuIGRpc3Bvc2VkIG9yIHdoZW4gaGFuZGxpbmcgYSBjbG9jay1sb3N0IG1lc3NhZ2UgZnJvbSBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9kaXNwb3NlKSwgKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKSwKCSAgKGJpbl9xdWVyeV9kdXJhdGlvbl9mb2xkKSwgKGJpbl9xdWVyeV9nZW5lcmljX2ZvbGQpOgoJICBDbGVhbiB1cCByZWZlcmVuY2VzIHRvIHRoZSBjbG9jayBwcm92aWRlciB3aGVuIGRpc3Bvc2VkIG9yIHdoZW4KCSAgaGFuZGxpbmcgYSBjbG9jay1sb3N0IG1lc3NhZ2UgZnJvbSBpdC4KCSAgVW5yZWYgc2lua3Mgd2hlbiBwZXJmb3JtaW5nIGEgcXVlcnkgdmlhIGdzdF9pdGVyYXRvcl9mb2xkLCBhcyB0aGUKCSAgZ3N0X2Jpbl9pdGVyYXRlX3NpbmtzIGl0ZXJhdG9yIHJlZnMgZWFjaCBpdGVtLiAoRml4ZXMgIzMyMzg3NCkKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19jbGFzc19pbml0KSwgKGdzdF9jbG9ja19kaXNwb3NlKSwKCSAgKGdzdF9jbG9ja19zZXRfbWFzdGVyKToKCSAgRHJvcCBvdXIgcmVmZXJlbmNlIHRvIHRoZSBtYXN0ZXIgY2xvY2ssIGlmIGFueSwgd2hlbiB3ZSBhcmUgZGlzcG9zZWQuCgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2Rpc3Bvc2UpOgoJICBDaGFpbiB1cCBpbiBkaXNwb3NlLgoKMjAwNi0wMS0yNyAwMToxMzoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9pMThuOgoJICBhZGQgbm90ZXMgb24gaTE4bgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG5vdGVzIG9uIGkxOG4KCjIwMDYtMDEtMjYgMTI6NTk6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogQWRkIHNvbWUgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBBZGQgc29tZSBkZWJ1Z2dpbmcuCgoyMDA2LTAxLTI2IDEyOjQwOjE3ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IEFwcGx5IHBhdGNoIGZyb20gIzMyODcxNS4gVGVlIG5vdyBoYW5kbGVzIHBhZCBiZWluZyBOT1RfTElOS0VEIG9yIGluIFdST05HX1NUQVRFLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMS0yNiAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2RvX3B1c2gpLAoJICAoZ3N0X3RlZV9oYW5kbGVfYnVmZmVyKTogQXBwbHkgcGF0Y2ggZnJvbSAjMzI4NzE1LiBUZWUgbm93CgkgIGhhbmRsZXMgcGFkIGJlaW5nIE5PVF9MSU5LRUQgb3IgaW4gV1JPTkdfU1RBVEUuCgoyMDA2LTAxLTI2IDA4OjU3OjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB3aW4zMi9NQU5JRkVTVDogbW9yZSB1cGRhdGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9NQU5JRkVTVDoKCSAgbW9yZSB1cGRhdGluZwoKMjAwNi0wMS0yNiAwODozOToyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgd2luMzIvTUFOSUZFU1Q6IHJlbW92ZSBvYnNvbGV0ZSBlbnRyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9NQU5JRkVTVDoKCSAgcmVtb3ZlIG9ic29sZXRlIGVudHJ5CgoyMDA2LTAxLTI2IDA2OjU3OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhZGRlZCBjb2RlIGZvciBkb3duc3RyZWFtIGV2ZW50cywgcmV2aWV3ZWQgZG9jcyBpbiBnc3RldmVudC5jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2VsZW1lbnRfaXNfc3JjKSwgKHNyY19pdGVyYXRvcl9maWx0ZXIpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX3NvdXJjZXMpLCAoZ3N0X2Jpbl9zZW5kX2V2ZW50KToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NlbmRfZXZlbnQpOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIGFkZGVkIGNvZGUgZm9yIGRvd25zdHJlYW0gZXZlbnRzLCByZXZpZXdlZCBkb2NzIGluIGdzdGV2ZW50LmMKCjIwMDYtMDEtMjUgMTg6MDc6MDIgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBXZSBvbmx5IHF1ZXJ5IHBvc2l0aW9uIHVzaW5nIHRoZSBjbG9jayBpbiB0aGUgcGxheWluZyBzdGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDEtMjUgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIFdlIG9ubHkgcXVlcnkgcG9zaXRpb24gdXNpbmcgdGhlIGNsb2NrIGluIHRoZSBwbGF5aW5nIHN0YXRlLgoJICBRdWVyeSBwZWVyIGluIHRoZSBvdGhlciBjYXNlcy4KCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6IFVwZGF0ZXMuCgoyMDA2LTAxLTI0IDE2OjIzOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IEEgY2xvY2sgZW50cnkgdGhhdCBpcyBzY2hlZHVsZWQgZm9yIHRoZSBleGFjdCB0aW1lIG9mIHRoZSBjbG9jayBpcyBzdGlsbCBpbiB0aW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF91bmxvY2tlZCk6CgkgIEEgY2xvY2sgZW50cnkgdGhhdCBpcyBzY2hlZHVsZWQgZm9yIHRoZSBleGFjdCB0aW1lIG9mIHRoZQoJICBjbG9jayBpcyBzdGlsbCBpbiB0aW1lLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgoyMDA2LTAxLTIzIDEyOjM3OjMzICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi92czc6IEFkZCBuZXcgdnM3IHByb2plY3QgZmlsZXMgYW5kIHNvbHV0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czcgOgoJICBBZGQgbmV3IHZzNyBwcm9qZWN0IGZpbGVzIGFuZCBzb2x1dGlvbi4KCjIwMDYtMDEtMjMgMTI6MjM6MDAgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL3ZzNzogYWxsIGZpbGVzIHJlbW92ZWQgYXMgdGhleSB3ZXJlIG91dC1kYXRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM3OgoJICBhbGwgZmlsZXMgcmVtb3ZlZCBhcyB0aGV5IHdlcmUgb3V0LWRhdGVkLgoKMjAwNi0wMS0yMCAxOTowMTo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL3JhbmRvbS9yZWxlYXNlOiB1cGRhdGUgbm90ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgdXBkYXRlIG5vdGVzCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9pbml0KToKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX25ldyk6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2luaXQpOgoJICB1c2UgZ3N0X2J1c19uZXcoKSwgaW1wcm92ZSBsb2dnaW5nLCBmaXggZG9jcwoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlIGZvciBjdnMgYnVpbGQKCjIwMDYtMDEtMjAgMTg6NTk6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgYXV0b2dlbi5zaDogdXAgcmVxdWlyZWQgdmVyc2lvbiBvZiBhdXRvbWFrZSB0byAxLjcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogYXV0b2dlbi5zaDoKCSAgdXAgcmVxdWlyZWQgdmVyc2lvbiBvZiBhdXRvbWFrZSB0byAxLjcKCjIwMDYtMDEtMjAgMTI6NTM6NDAgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBleHBvcnQgZ3N0X2J1ZmZlcl9pc19tZXRhZGF0YV93cml0YWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXhwb3J0IGdzdF9idWZmZXJfaXNfbWV0YWRhdGFfd3JpdGFibGUKCjIwMDYtMDEtMjAgMTE6NDY6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgZ3N0X2V2ZW50X3JlcGxhY2UoKSAoIzMyNzAwMSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgQWRkIGdzdF9ldmVudF9yZXBsYWNlKCkgKCMzMjcwMDEpCgoyMDA2LTAxLTIwIDA5OjU2OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBNYWtlIGl0IGFjdHVhbGx5IGNvbXBpbGUgdG9vLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9saW5rX2NoZWNrX2NvbXBhdGlibGVfdW5sb2NrZWQpOgoJICBNYWtlIGl0IGFjdHVhbGx5IGNvbXBpbGUgdG9vLi4KCjIwMDYtMDEtMjAgMDk6NTM6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBDbGFyaWZ5IGJlaGF2aW91ciBvZiBfaXNfZXF1YWwoKSB3aGVuIHBhc3NpbmcgTlVMTCBwYXJhbWV0ZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICBDbGFyaWZ5IGJlaGF2aW91ciBvZiBfaXNfZXF1YWwoKSB3aGVuIHBhc3NpbmcgTlVMTCBwYXJhbWV0ZXJzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKSwKCSAgKGdzdF9wYWRfc2V0X2NhcHMpOgoJICBDbGVhbnVwcy4gRG9uJ3QgdW5yZWYgTlVMTCBjYXBzLgoJICBXaGVuIHNldHRpbmcgdGhlIHNhbWUgY2FwcywgcHJvdGVjdCBjYXBzIG9mIHRoZSBwYWQgd2l0aAoJICBwcm9wZXIgbG9jay4KCSAgVXNlIGZ1bGwgZnVuY3Rpb25hbGl0eSBvZiBfaXNfZXF1YWwoKSB3aGVuIGNvbXBhcmluZyBjYXBzLgoKMjAwNi0wMS0yMCAwOToyNjowMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IERvbid0IGxvb3AgaW5maW5pdGVseSBpZiB0aGVyZSBhcmUgbm8gYnVmZmVycyB0byBwcmVzZW50LiBQYXJ0aWFsbHkgZml4ZXMgIzMyNzE5NywgYnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19pc19jb2xsZWN0ZWQpOgoJICBEb24ndCBsb29wIGluZmluaXRlbHkgaWYgdGhlcmUgYXJlIG5vIGJ1ZmZlcnMgdG8gcHJlc2VudC4gUGFydGlhbGx5CgkgIGZpeGVzICMzMjcxOTcsIGJ1dCBjb2xsZWN0cGFkcyBpcyBqdXN0IGJyb2tlbiBmb3IgcmV1c2luZyBlbGVtZW50cwoJICB0byBkbyBtdWx0aXBsZSBlbmNvZGVzIGF0bS4KCjIwMDYtMDEtMjAgMDk6MTI6MTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdG9vbHMvOiBVUkxfSEFORExFUiBpcyBub3QgYSBwbHVnaW4gZmVhdHVyZSB3ZSBjYW4gc2VhcmNoIGZvciBpbiB0aGUgcmVnaXN0cnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X2ZlYXR1cmVzKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAobWFpbik6CgkgIFVSTF9IQU5ETEVSIGlzIG5vdCBhIHBsdWdpbiBmZWF0dXJlIHdlIGNhbiBzZWFyY2ggZm9yIGluCgkgIHRoZSByZWdpc3RyeS4KCjIwMDYtMDEtMTkgMTg6MDY6MTggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBXaGVuIGFjdGl2YXRpbmcsIGRvIHNyYyBwYWRzIGZpcnN0LCB0aGVuIHNpbmsgcGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICBXaGVuIGFjdGl2YXRpbmcsIGRvIHNyYyBwYWRzIGZpcnN0LCB0aGVuIHNpbmsgcGFkcy4KCSAgV2hlbiBkZS1hY3RpdmF0aW5nLCBkbyBzaW5rIHBhZHMgZmlyc3QsIHRoZW4gc3JjIHBhZHMuCgoyMDA2LTAxLTE5IDE0OjAyOjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBnc3RfaW5kZXhfYWRkX2Fzc29jaWF0aW9udiB0byB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgZ3N0X2luZGV4X2FkZF9hc3NvY2lhdGlvbnYgdG8gdGhlIGRvY3MKCjIwMDYtMDEtMTkgMTM6MzA6MzEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGV2ZW50LmM6IEZpeCBkb2NzIHR5cG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgIEZpeCBkb2NzIHR5cG8KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9wdXNoX29uZSksIChnc3RfcXVldWVfbG9vcCk6CgkgIERvIHNvbWUgcmVmYWN0b3JpbmcuIERvZXNuJ3QgYWN0dWFsbHkgY2hhbmdlIGZ1bmN0aW9uYWxpdHksCgkgIGJ1dCBtYWtlcyBsYW5kaW5nIHRoZSBEUkFJTiBldmVudCBlYXNpZXIgbGF0ZXIuCgoyMDA2LTAxLTE5IDEwOjM5OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtc2NoZWR1bGluZy54bWw6IFVwZGF0ZSBmcm9tIDAuOS54IHRvIDAuMTAgQVBJIGFuZCBtYWtlIGV4YW1wbGUgYSBiaXQgY2xlYXJlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtc2NoZWR1bGluZy54bWw6CgkgIFVwZGF0ZSBmcm9tIDAuOS54IHRvIDAuMTAgQVBJIGFuZCBtYWtlIGV4YW1wbGUgYSBiaXQKCSAgY2xlYXJlci4KCjIwMDYtMDEtMTkgMDk6MjQ6MDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIGdzdF9idWZmZXJfKGlzfG1ha2UpX21ldGFkYXRhX3dyaXRhYmxlIG1ldGhvZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZSBtZXRob2RzLgoKMjAwNi0wMS0xOSAwOTowODoxNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXNwYXJzZXN0cmVhbXMudHh0OiBVcGRhdGUgc3BhcnNlIHN0cmVhbXMgZG9jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3BhcnNlc3RyZWFtcy50eHQ6CgkgIFVwZGF0ZSBzcGFyc2Ugc3RyZWFtcyBkb2MKCjIwMDYtMDEtMTkgMDk6MDI6MTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OiBSZW1vdmUgbWVudGlvbiBvZiBGSUxMRVIgZXZlbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIFJlbW92ZSBtZW50aW9uIG9mIEZJTExFUiBldmVudHMuCgkgIEFkZCBEUkFJTiBldmVudC4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNwYXJzZXN0cmVhbXMudHh0OgoJICBXcml0ZSBzb21lIHRoaW5ncyBhYm91dCB1c2luZyBORVdTRUdNRU5UIHRvIGtlZXAgc3BhcnNlIHN0cmVhbXMKCSAgZmxvd2luZy4KCjIwMDYtMDEtMTggMTg6NTY6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IEd1YXJkIGdzdF9vYmplY3RfdW5yZWYgY2FsbCBhZ2FpbnN0IGEgTlVMTCBvYmplY3QgKGRpc3Bvc2UgY2FuIHRoZW9yZXRpY2FsbHkgYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9kaXNwb3NlKToKCSAgR3VhcmQgZ3N0X29iamVjdF91bnJlZiBjYWxsIGFnYWluc3QgYSBOVUxMIG9iamVjdCAoZGlzcG9zZQoJICBjYW4gdGhlb3JldGljYWxseSBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMpLgoKMjAwNi0wMS0xOCAxODowNTo0MyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6IFJlbW92ZSBtZW50aW9uIG9mIEZJTExFUiBldmVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgUmVtb3ZlIG1lbnRpb24gb2YgRklMTEVSIGV2ZW50cy4KCSAgQWRkIERSQUlOIGV2ZW50LgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3BhcnNlc3RyZWFtcy50eHQ6CgkgIFdyaXRlIHNvbWUgdGhpbmdzIGFib3V0IHVzaW5nIE5FV1NFR01FTlQgdG8ga2VlcCBzcGFyc2Ugc3RyZWFtcwoJICBmbG93aW5nLgoKMjAwNi0wMS0xOCAxODowMTo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEFkZGVkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19pZF93YWl0KToKCSAgQWRkZWQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIEFkZGVkIG1vcmUgZG9jcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfY2hhaW4pOgoJICBBZGRlZCBzb21lIGNvbW1lbnRzLgoKMjAwNi0wMS0xOCAxNzo1OTowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkgIElnbm9yZSBmYWtlc2luayB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSWdub3JlIGZha2VzaW5rIHRlc3QuCgoyMDA2LTAxLTE4IDE3OjU3OjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svOiBBZGRlZCBmYWtlc2luayB0ZXN0IHRoYXQgY2hlY2tzIHByZXJvbGxpbmcgYW5kIGNsaXBwaW5nIGJlaGF2aW91ci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzogKGNoYWluX2FzeW5jX2J1ZmZlciksCgkgIChjaGFpbl9hc3luYyksIChjaGFpbl9hc3luY19yZXR1cm4pLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZmFrZXNpbmtfc3VpdGUpLCAobWFpbik6CgkgIEFkZGVkIGZha2VzaW5rIHRlc3QgdGhhdCBjaGVja3MgcHJlcm9sbGluZyBhbmQgY2xpcHBpbmcKCSAgYmVoYXZpb3VyLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIGNoZWNrIHJ1biBmYXN0ZXIgc28gdGhhdCBidWlsZGJvdHMgZG9uJ3QgdGltZW91dC4KCjIwMDYtMDEtMTggMTc6MTg6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNvbWUgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICBTb21lIGNsZWFudXBzLgoJICBXaGVuIHRoZSBzaW5rIGZpbmlzaGVzIGJsb2NraW5nIG9uIHRoZSBwcmVyb2xsIGJ1ZmZlciwgaXQgY2FuCgkgIGltbWVkaWF0bHkgcmVuZGVyIGl0IGluc3RlYWQgb2YgcmVuZGVyaW5nIHdoZW4gdGhlIG5leHQgYnVmZmVyCgkgIGFycml2ZXMuCgoyMDA2LTAxLTE4IDE2OjQwOjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTbWFsbCBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhaW4pOgoJICBTbWFsbCBjbGVhbnVwcy4KCSAgR1NUX0VMRU1FTlRfQ0xPQ0sgYW5kIHN5bmMgYXJlIHByb3RlY3RlZCB3aXRoIExPQ0suCgkgIERvbid0IHN0b3JlIF9sYXN0X3N0b3AgaWYgdGhlIGJ1ZmZlciBpcyBkcm9wcGVkLgoKMjAwNi0wMS0xOCAxNjozMTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6ICdoYXZlLXR5cGUnIHNpZ25hbCBuZWVkcyB0byBiZSBHX1NJR05BTF9SVU5fRklSU1QsIGFzIGl0IGlzIHRoZSBvYmplY3QgbWV0aG9kIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NsYXNzX2luaXQpOgoJICAnaGF2ZS10eXBlJyBzaWduYWwgbmVlZHMgdG8gYmUgR19TSUdOQUxfUlVOX0ZJUlNULCBhcyBpdCBpcyB0aGUKCSAgb2JqZWN0IG1ldGhvZCBoYW5kbGVyIHRoYXQgc2V0cyB0aGUgY2FwcyBvbiB0aGUgcGFkIGFuZCB3ZSB3YW50CgkgIHRoYXQgdG8gaGFwcGVuIGJlZm9yZSB3ZSBlbWl0IHRoZSBzaWduYWwgKGZpeGVzIGUuZy4gZmVlZGluZyBhCgkgIHBsYWluIHRleHQgZmlsZSB0byBkZWNvZGViaW4pLgoKMjAwNi0wMS0xOCAxMTo0NDo1NSArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIGFkZCBNUEwgYW5kIFByb3BlcmlldGFydCB0byBsaXN0IG9mIGxpY2Vuc2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgTVBMIGFuZCBQcm9wZXJpZXRhcnQgdG8gbGlzdCBvZiBsaWNlbnNlcwoKMjAwNi0wMS0xOCAwOTo0MjoxMiArMDAwMCAgVG9yc3RlbiBTY2hvZW5mZWxkIDxrYWZmZWV0aXNjaEBnbXguZGU+CgoJICBnc3QvZ3N0aW5kZXguaCAoZ3N0X2luZGV4X2FkZF9hc3NvY2lhdGlvbnYpOiBBZGQgdG8gaGVhZGVyLiBUaGUgc3ltYm9sIHdhcyBleHBvcnRlZCBiZWZvcmUsIGl0IGFwcGVhcnMgdGhpcyB3YXMganVzdCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDEtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGluZGV4LmggKGdzdF9pbmRleF9hZGRfYXNzb2NpYXRpb252KTogQWRkIHRvIGhlYWRlci4gVGhlCgkgIHN5bWJvbCB3YXMgZXhwb3J0ZWQgYmVmb3JlLCBpdCBhcHBlYXJzIHRoaXMgd2FzIGp1c3QgYW4gb3ZlcnNpZ2h0LgoJICBGaXhlcyAjMTY4NzAzLgoJICBQYXRjaCBieTogVG9yc3RlbiBTY2hvZW5mZWxkIDxrYWZmZWV0aXNjaCBhdCBnbXguZGU+CgkgICogZ3N0L2dzdGluZGV4LmMgKGdzdF9pbmRleF9hZGRfYXNzb2NpYXRpb252KTogQ2hhbmdlZCBpbnQgaW4KCSAgcHJvdG90eXBlIHRvIGdpbnQuIE9LIHNpbmNlIHRoaXMgcHJvdG90eXBlIHdhcyBub3QgaW4gdGhlIGhlYWRlci4KCjIwMDYtMDEtMTcgMTY6Mzk6MjMgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWxpY2Vuc2luZy54bWw6CgkgIHNtYWxsIGZpeCB0byB0aGUgcHJvcG9zZWQgbGljZW5zZSBjbGF1c2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNtYWxsIGZpeCB0byB0aGUgcHJvcG9zZWQgbGljZW5zZSBjbGF1c2UKCjIwMDYtMDEtMTcgMTI6NTM6MDcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jIChfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zKTogTG9jayB0aGUgcmVnaXN0cnkgd2hpbGUgd2UgcmVtb3ZlIHBsdWdpbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAxLTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jIChfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zKTogTG9jayB0aGUKCSAgcmVnaXN0cnkgd2hpbGUgd2UgcmVtb3ZlIHBsdWdpbnMuCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYyAocHJpbnRfZWxlbWVudF9pbmZvKTogRG9uJ3QgdW5yZWYgdGhlCgkgIGZhY3RvcnkgYXJnLCB0aGF0IHNob3VsZCBiZSB0aGUgcmVzcG9uc2liaWxpdHkgb2Ygd2hhdGV2ZXIgY29kZQoJICByZWNlaXZlZCB0aGUgcmVmLiBGaXhlcyBhIGRvdWJsZS1mcmVlIHdoZW4gY2FsbGVkIGZyb20KCSAgcHJpbnRfZWxlbWVudF9saXN0IHZpYSBnc3QtaW5zcGVjdC0wLjEwIC1hLiBGaXhlcyAjMzI3MzI0LgoJICAobWFpbik6IFVucmVmIHRoZSBmYWN0b3J5IGlmIHdlIGhhdmUgb25lLgoJICAocHJpbnRfZWxlbWVudF9saXN0KTogTm8gY2hhbmdlIC0tIHJlbGllcyBvbiB0aGUKCSAgcGx1Z2luX2ZlYXR1cmVfbGlzdF9mcmVlIHRvIGZyZWUgdGhlIGxpc3Qgb2YgZmVhdHVyZXMuCgoyMDA2LTAxLTE3IDEyOjE0OjIwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIFJlcGxhY2UgZ3N0X2J1ZmZlcl8obWFrZXxpcylfbWV0YWRhdGFfd3JpdGFibGUgcGF0Y2ggbm93IHRoYXQgdGhlIHJlbGVhc2UgaXMgb3V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2lzX21ldGFkYXRhX3dyaXRhYmxlKSwKCSAgKGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1Zik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9wcmVwYXJlX2J1Zik6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3Rlc3Rfc3VpdGUpOgoJICBSZXBsYWNlIGdzdF9idWZmZXJfKG1ha2V8aXMpX21ldGFkYXRhX3dyaXRhYmxlIHBhdGNoIG5vdwoJICB0aGF0IHRoZSByZWxlYXNlIGlzIG91dC4KCjIwMDYtMDEtMTcgMTI6MDg6NDMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBSZWZsb3cgZGVzaWduIGNvbW1lbnQuIFVwZGF0ZSBzbyBhcyB0byBzcGVhayBpbiB0aGUgcHJlc2VudCB0ZW5zZSB3aXRob3V0IHJlZmVyZW5jZSB0byB2ZXJzaW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDEtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IFJlZmxvdyBkZXNpZ24gY29tbWVudC4gVXBkYXRlIHNvIGFzIHRvIHNwZWFrCgkgIGluIHRoZSBwcmVzZW50IHRlbnNlIHdpdGhvdXQgcmVmZXJlbmNlIHRvIHZlcnNpb25zLgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jIChnc3RfcmVnaXN0cnlfYWRkX3BsdWdpbikKCSAgKGdzdF9yZWdpc3RyeV9yZW1vdmVfcGx1Z2luLCBnc3RfcmVnaXN0cnlfcmVtb3ZlX2ZlYXR1cmUpCgkgIChnc3RfcmVnaXN0cnlfZmluZF9mZWF0dXJlLCBnc3RfcmVnaXN0cnlfZ2V0X2ZlYXR1cmVfbGlzdCkKCSAgKGdzdF9yZWdpc3RyeV9nZXRfcGx1Z2luX2xpc3QsIGdzdF9yZWdpc3RyeV9sb29rdXBfZmVhdHVyZSkKCSAgKGdzdF9yZWdpc3RyeV9sb29rdXAsIGdzdF9yZWdpc3RyeV9zY2FuX3BhdGgpCgkgIChfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zKQoJICAoZ3N0X3JlZ2lzdHJ5X2dldF9mZWF0dXJlX2xpc3RfYnlfcGx1Z2luKTogQWRkIGFyZ3VtZW50CgkgIHZhbGlkYXRpb24uCgoyMDA2LTAxLTE2IDIxOjAwOjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIEhFQUQKCj09PSByZWxlYXNlIDAuMTAuMiA9PT0KCjIwMDYtMDEtMTYgMjA6NTk6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC4xMC4yCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC4xMC4yCgoyMDA2LTAxLTE2IDE1OjQyOjA4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEJhY2sgb3V0IHBhdGNoIHVudGlsIGFmdGVyIHRoZSByZWxlYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1Zik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9wcmVwYXJlX2J1Zik6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X3Rlc3Rfc3VpdGUpOgoJICBCYWNrIG91dCBwYXRjaCB1bnRpbCBhZnRlciB0aGUgcmVsZWFzZS4KCjIwMDYtMDEtMTYgMTQ6Mzc6NTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogU3BlbGxpbmcgZml4IGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIFNwZWxsaW5nIGZpeCBpbiBkb2NzLgoJICAqIENoYW5nZUxvZyAtIHJlbW92ZSBjb25mbGljdCBpbmRpY2F0b3IKCjIwMDYtMDEtMTYgMTQ6Mzc6MDEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgKE1pc3NlZCBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYyBpbiBwcmV2aW91cyBjb21taXQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAoTWlzc2VkIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jIGluIHByZXZpb3VzIGNvbW1pdCkKCSAgUmV2aWV3ZWQgQnk6IEFuZHkgV2luZ28KCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2lzX21ldGFkYXRhX3dyaXRhYmxlKSwKCSAgKGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBBZGQgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfbWV0YWRhdGFfd3JpdGFibGUgYXMgYW5hbG9ndWVzIG9mCgkgIGdzdF9idWZmZXJfKGlzfG1ha2UpX3dyaXRhYmxlLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1Zik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9wcmVwYXJlX2J1Zik6CgkgIFVzZSBuYW1lIGdzdF9idWZmZXJfKGlzfG1ha2UpX21ldGFkYXRhX3dyaXRhYmxlIGZ1bmN0aW9ucy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdGVzdF9zdWl0ZSk6CgkgIFRlc3QgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfbWV0YWRhdGFfd3JpdGFibGUKCSAgKENsb3NlczogIzMyNDE2MikKCjIwMDYtMDEtMTYgMTQ6MzI6MzMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci4qOiBBZGQgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfbWV0YWRhdGFfd3JpdGFibGUgYXMgYW5hbG9ndWVzIG9mIGdzdF9idWZmZXJfKGlzfG1ha2UpX3dyaXRhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgQnk6IEFuZHkgV2luZ28KCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2lzX21ldGFkYXRhX3dyaXRhYmxlKSwKCSAgKGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBBZGQgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfbWV0YWRhdGFfd3JpdGFibGUgYXMgYW5hbG9ndWVzIG9mCgkgIGdzdF9idWZmZXJfKGlzfG1ha2UpX3dyaXRhYmxlLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1Zik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9wcmVwYXJlX2J1Zik6CgkgIFVzZSBuYW1lIGdzdF9idWZmZXJfKGlzfG1ha2UpX21ldGFkYXRhX3dyaXRhYmxlIGZ1bmN0aW9ucy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdGVzdF9zdWl0ZSk6CgkgIFRlc3QgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfbWV0YWRhdGFfd3JpdGFibGUKCSAgKENsb3NlczogIzMyNDE2MikKCjIwMDYtMDEtMTQgMjI6NTk6NDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcHJlcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcHJlcmVsZWFzZQoKMjAwNi0wMS0xNCAxNDoxMjoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkgIGFkZCB1bmxpbmsgYW5kIHNvbWUgYXNzZXJ0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHVubGluayBhbmQgc29tZSBhc3NlcnRzCgoyMDA2LTAxLTE0IDExOjIwOjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvbWFudWFsL01ha2VmaWxlLmFtOiBkb24ndCBkbyBwYXJhbGxlbCBtYWtlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL01ha2VmaWxlLmFtOgoJICBkb24ndCBkbyBwYXJhbGxlbCBtYWtlCgkgICogY29uZmlndXJlLmFjOgoJICBBQ19TVUJTVCBIT1NUX0NQVQoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgYWRkIGdlbmVyYXRpb25zIGZvciBIT1NUX0NQVSBhbmQgR1NUX01BSk9STUlOT1IKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6ICAgICAgICAgICBjb21taXQgZ2VuZXJhdGVkIHJlc3VsdAoKMjAwNi0wMS0xMyAxOTo1MTo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICB1cGRhdGVzIHRvIHJlbGVhc2UgZG9jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGVzIHRvIHJlbGVhc2UgZG9jCgoyMDA2LTAxLTEzIDE5OjE3OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOiBVcGRhdGUgR05PTUUgaW50ZWdyYXRpb24gc2VjdGlvbiB0byB1c2UgZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCgpIGluc3RlYWQgb2YgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSAgVXBkYXRlIEdOT01FIGludGVncmF0aW9uIHNlY3Rpb24gdG8gdXNlIGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXAoKQoJICBpbnN0ZWFkIG9mIHRoZSBvbGQgcG9wdCBzdHVmZiAoIzMyMjkxMSkuIEFsc28sIEdOT01FIGFwcGxpY2F0aW9ucwoJICBzaG91bGQgIG5vdyB1c2UgZ2NvbmYqc2luayBhbmQgZ2NvbmYqc3JjIGluc3RlYWQgb2YgdGhlIG9sZCBnY29uZgoJICBoZWxwZXIgbGliIHdlIGhhZC4KCjIwMDYtMDEtMTMgMTY6MTY6MjQgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICByZW1vdmluZyAwMTAgc3VmZml4aW5nIG9mIHBhY2thZ2UgbmFtZSBhcyBGZWRvcmEgb25seSB1c2UgaXQgZm9yIDAuOCwgd2FudCB0byBoYXZlIHRoZSBwYWNrYWdlcyBiZSBpbnRlcmNoYW5nZWFibGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92aW5nIDAxMCBzdWZmaXhpbmcgb2YgcGFja2FnZSBuYW1lIGFzIEZlZG9yYSBvbmx5IHVzZSBpdCBmb3IgMC44LCB3YW50CgkgIHRvIGhhdmUgdGhlIHBhY2thZ2VzIGJlIGludGVyY2hhbmdlYWJsZQoKMjAwNi0wMS0xMyAxNDo1OTowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL0xJTkdVQVM6CgkgIHJlYWRkIHpoX1RXIGFuZCBmb3JjZSBhbiBhdXRvZ2VuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWFkZCB6aF9UVyBhbmQgZm9yY2UgYW4gYXV0b2dlbgoKMjAwNi0wMS0xMyAxNDoyMTo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IGFkZCBuZXcgQVBJIGVudHJpZXMgdG8gdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGFkZCBuZXcgQVBJIGVudHJpZXMgdG8gdGhlIGRvY3MKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBtb3ZlIHByaXZhdGUgc3RydWN0cyB0byBwcml2YXRlIGhlYWRlcgoJICAqIHBvL1JFQURNRToKCSAgZ3N0cmVhbWVyLTAuNyAtPiBnc3RyZWFtZXItMC4xMAoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2kzODYuaDoKCSAgcmVtb3ZlIHByaXZhdGUgc3RydWN0cwoKMjAwNi0wMS0xMyAxNDoxOTozNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9QT1RGSUxFUy5pbjoKCSAgdHJpZ2dlciBhIHJlYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyaWdnZXIgYSByZWJ1aWxkCgoyMDA2LTAxLTEzIDE0OjE5OjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL0xJTkdVQVM6CgkgIHRyaWdnZXIgYSByZWJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmlnZ2VyIGEgcmVidWlsZAoKMjAwNi0wMS0xMyAxNDoxMjo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOiBGaXhlcyBhcyBwYXJ0IG9mICMzMTcwNDgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSAgRml4ZXMgYXMgcGFydCBvZiAjMzE3MDQ4CgoyMDA2LTAxLTEzIDEzOjQxOjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06IGZpeCAjMzE2MDg2IC0gY29tcGlsYXRpb24gd2hlbiBtbWFwIGlzIG1pc3NpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSAgZml4ICMzMTYwODYgLSBjb21waWxhdGlvbiB3aGVuIG1tYXAgaXMgbWlzc2luZwoKMjAwNi0wMS0xMiAyMjowNDo1OCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAqY3VyID0gKG5vdyAtIGJhc2UpICogYmFzZXNpbmstPnNlZ21lbnQuYWJzX3JhdGUgKyB0aW1lOyByZXBsYWNlZCBieQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgICpjdXIgPSAobm93IC0gYmFzZSkgKiBiYXNlc2luay0+c2VnbWVudC5hYnNfcmF0ZSArIHRpbWU7IHJlcGxhY2VkIGJ5CgkgICpjdXIgPSBnc3RfZ3VpbnQ2NF90b19nZG91YmxlKG5vdyAtIGJhc2UpICogYmFzZXNpbmstPnNlZ21lbnQuYWJzX3JhdGUgKyB0aW1lOyBmb3IgdnM2CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBhZGRlZCBzb21lIGRlZmluZXMgR1NUX01BSk9STUlOT1IgYW5kIEhPU1RfQ1BVCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhZGRlZCBzb21lIGV4cG9ydGVkIGZ1bmN0aW9ucwoKMjAwNi0wMS0xMiAyMTo1NTo0MiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IG1ha2UgR19UWVBFX1NUUklORyBjb250cm9sYWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpLAoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKGludGVycG9sYXRlX25vbmVfZ2V0X3N0cmluZ192YWx1ZV9hcnJheSk6CgkgIG1ha2UgR19UWVBFX1NUUklORyBjb250cm9sYWJsZQoKMjAwNi0wMS0xMiAxNjozMTozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvOiBjbGVhbnVwIG1hbi1wYWdlcywgcmVtb3ZlIHJlZmVyZW5jZSB0byBnc3QtcmVnaXN0ZXIsIGRvY3VtZW50IGVudi12YXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL1JFQURNRToKCSAgKiB0b29scy9nc3QtZmVlZGJhY2suMS5pbjoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC4xLmluOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgKiB0b29scy9nc3QtbWQ1c3VtLjEuaW46CgkgICogdG9vbHMvZ3N0LXR5cGVmaW5kLjEuaW46CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuMS5pbjoKCSAgKiB0b29scy9nc3QteG1sbGF1bmNoLjEuaW46CgkgIGNsZWFudXAgbWFuLXBhZ2VzLCByZW1vdmUgcmVmZXJlbmNlIHRvIGdzdC1yZWdpc3RlciwgZG9jdW1lbnQgZW52LXZhcnMKCjIwMDYtMDEtMTIgMTY6MDc6NTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBnc3RfYnVmZmVyX3NwYW4gc2hvdWxkIGNvcHkgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZmlyc3QgYnVmZmVyIGlmIHRoZXkgd2VyZSBib3RoIG9yaWdpbmFsbHkgb3ZlcmxhcHBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfc3Bhbik6CgkgIGdzdF9idWZmZXJfc3BhbiBzaG91bGQgY29weSB0aGUgdGltZXN0YW1wIG9mIHRoZSBmaXJzdCBidWZmZXIKCSAgaWYgdGhleSB3ZXJlIGJvdGggb3JpZ2luYWxseSBvdmVybGFwcGluZyBzdWJidWZmZXJzIG9mIHRoZQoJICBzYW1lIHBhcmVudCwgdXNpbmcgdGhlIHNhbWUgbG9naWMgYXMgdGhlICdzbG93IGNvcHknIGNhc2UuCgoyMDA2LTAxLTExIDIxOjMyOjIxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogTmVlZCB0byBhd2FrZW4gQUxMIHRoZSBwYWRzIHdoZW4gd2UgcG9wIGEgYnVmZmVyLCBvdGhlcndpc2UgY29sbGVjdHBhZHMgb25seSB3b3JrcyB3aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3BvcCk6CgkgIE5lZWQgdG8gYXdha2VuIEFMTCB0aGUgcGFkcyB3aGVuIHdlIHBvcCBhIGJ1ZmZlciwgb3RoZXJ3aXNlCgkgIGNvbGxlY3RwYWRzIG9ubHkgd29ya3Mgd2hlbiB0aGVyZSBpcyAyIGlucHV0IHN0cmVhbXMuCgoyMDA2LTAxLTExIDE5OjE4OjI3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL21lZGlhLWRldmljZS1kYWVtb24udHh0OiBtb3JlIGlkZWFzIChkYnVzKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL21lZGlhLWRldmljZS1kYWVtb24udHh0OgoJICBtb3JlIGlkZWFzIChkYnVzKQoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgZml4IGRvYyBleGFtcGxlLCBhZGQgY2xhcmlmaWNhdGlvbgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgYWRkIGluaXRpYWwgaW5mbyBhYm91dCBHU1RfUExVR0lOX1BBVEgsIG5lZWRzIG1vcmUgd29yawoKMjAwNi0wMS0xMSAxMDozODo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogU29tZSBtb3JlIG1pbm9yIGRvY3MgYWRkaXRpb25zIGFuZCB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICBTb21lIG1vcmUgbWlub3IgZG9jcyBhZGRpdGlvbnMgYW5kIHVwZGF0ZXMuCgoyMDA2LTAxLTExIDEwOjIwOjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9tYW51YWwvOiBTb21lIHNtYWxsIGZpeGVzIGFzIHBvaW50ZWQgb3V0IGJ5IFNlci12ZXIgb24gSVJDLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSAgU29tZSBzbWFsbCBmaXhlcyBhcyBwb2ludGVkIG91dCBieSBTZXItdmVyIG9uIElSQy4KCjIwMDYtMDEtMTAgMTU6NDI6MjkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IFNldCB0aGUgYnVmZmVyIG9mZnNldC9vZmZzZXRfZW5kIHRvIEdTVF9DTE9DS19USU1FX05PTkUgd2hlbiB1c2luZyB0aGUgc2luZ2xlLXNlZ21lbnQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIFNldCB0aGUgYnVmZmVyIG9mZnNldC9vZmZzZXRfZW5kIHRvIEdTVF9DTE9DS19USU1FX05PTkUgd2hlbiB1c2luZwoJICB0aGUgc2luZ2xlLXNlZ21lbnQgbW9kZS4KCjIwMDYtMDEtMTAgMDk6MjM6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuKjogTmFtZSAocHJpdmF0ZSkgdW5pb247IG1ha2VzIFN1bidzIEZvcnRlIGNvbXBpbGVyIGhhcHB5ICgjMzI0OTAwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwgKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc3JjX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfc3RhcnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBOYW1lIChwcml2YXRlKSB1bmlvbjsgbWFrZXMgU3VuJ3MgRm9ydGUgY29tcGlsZXIgaGFwcHkgKCMzMjQ5MDApLgoKMjAwNi0wMS0wOSAxMDo0NzoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFJFQURNRTogZ3N0LXJlZ2lzdGVyIGlzIGdvbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIFJFQURNRToKCSAgZ3N0LXJlZ2lzdGVyIGlzIGdvbmUuCgoyMDA2LTAxLTA3IDExOjA3OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL0xJTkdVQVM6CgkgIHJlbW92ZSBhbmQgcmVhZGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBhbmQgcmVhZGQKCjIwMDYtMDEtMDcgMTE6MDc6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBwby9MSU5HVUFTOgoJICByZW1vdmUgYW5kIHJlYWRkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgYW5kIHJlYWRkCgoyMDA2LTAxLTA3IDEwOjA0OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBtYWtlIHRoZSBHX1RZUEVfREFURSBpbnN0YW50aWF0aW9uIHdvcmsgaWYgZGVidWcgaXMgZGlzYWJsZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICBtYWtlIHRoZSBHX1RZUEVfREFURSBpbnN0YW50aWF0aW9uIHdvcmsgaWYgZGVidWcgaXMgZGlzYWJsZWQKCjIwMDYtMDEtMDcgMDk6NTY6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICB1cGRhdGUgdHJhbnNsYXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDA2LTAxLTA2IDE3OjE2OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYzogRG9uJ3QgY3Jhc2ggd2hlbiByZXR1cm4gbG9jYXRpb24gZm9yIGVycm9yL3dhcm5pbmcgZGVidWcgc3RyaW5nIGlzIE5VTEw7IGFkZCBmYWN0IHRoYXQgcmV0dXJuIGxvY2F0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9wYXJzZV90YWcpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfZXJyb3IpLCAoZ3N0X21lc3NhZ2VfcGFyc2Vfd2FybmluZyk6CgkgIERvbid0IGNyYXNoIHdoZW4gcmV0dXJuIGxvY2F0aW9uIGZvciBlcnJvci93YXJuaW5nIGRlYnVnCgkgIHN0cmluZyBpcyBOVUxMOyBhZGQgZmFjdCB0aGF0IHJldHVybiBsb2NhdGlvbnMgY2FuIGJlCgkgIE5VTEwgdG8gZG9jcyB3aGVyZSBhcHByb3ByaWF0ZS4KCjIwMDYtMDEtMDUgMTA6NDM6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IFJlcGxhY2Ugc3RyZHVwIGJ5IGdfc3RyZHVwIGFzIHN1Z2dlc3RlZCBieSBTZXItdmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgIFJlcGxhY2Ugc3RyZHVwIGJ5IGdfc3RyZHVwIGFzIHN1Z2dlc3RlZCBieSBTZXItdmVyLgoKMjAwNi0wMS0wNCAyMzo1MzowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZSBjb25maWcgZm9yIC4xCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgY29uZmlnIGZvciAuMQoKMjAwNi0wMS0wNCAyMzo1MjozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IGZpeCBkb2MgYm9ya2FnZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIGZpeCBkb2MgYm9ya2FnZQoKMjAwNi0wMS0wNCAyMzo1MDoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBzdWJtaXR0ZWQgYnk6IEFiZWwgQ2hldW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzdWJtaXR0ZWQgYnk6IEFiZWwgQ2hldW5nCgkgICogcG8vTElOR1VBUzoKCSAgKiBwby96aF9UVy5wbzoKCSAgQWRkZWQgQ2hpbmVzZSAodHJhZGl0aW9uYWwpIHRyYW5zbGF0aW9uCgoyMDA2LTAxLTA0IDEyOjQxOjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU21hbGwgdXBkYXRlcyB0byB2YXJpb3VzIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIFNtYWxsIHVwZGF0ZXMgdG8gdmFyaW91cyBkb2NzLgoJICBBZGRlZCBjb3JlIHBsdWdpbnMgdG8gZG9jcy4KCjIwMDYtMDEtMDMgMTg6MDg6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29tbW9uL2dzdC5zdXBwOiBhZGQgYSBzdXBwcmVzc2lvbiBmb3IgbGlib2lsJ3MgdW5pbml0aWFsaXplZCB2YXJpYWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vZ3N0LnN1cHA6CgkgIGFkZCBhIHN1cHByZXNzaW9uIGZvciBsaWJvaWwncyB1bmluaXRpYWxpemVkIHZhcmlhYmxlCgoyMDA2LTAxLTAyIDIwOjI2OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmg6IEFkZCBwcm90b3R5cGUgZm9yIF9nZXRfdHlwZSgpIGZ1bmN0aW9uIHRvIEdTVF9CT0lMRVJQTEFURV9GVUxMIG1hY3JvLCBzbyB0aGF0IGdjYyBkb2Vzbid0IGNvbXBsYWluIGlmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBZGQgcHJvdG90eXBlIGZvciBfZ2V0X3R5cGUoKSBmdW5jdGlvbiB0byBHU1RfQk9JTEVSUExBVEVfRlVMTAoJICBtYWNybywgc28gdGhhdCBnY2MgZG9lc24ndCBjb21wbGFpbiBpZiB0aGUgLVdtaXNzaW5nLXByb3RvdHlwZXMKCSAgY29tcGlsZXIgc3dpdGNoIGlzIGJlaW5nIHVzZWQgKCMzMjU0MjkpLgoKMjAwNS0xMi0yOSAxNjo0NzoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogRGlzYWJsZSBkdXJhdGlvbiBxdWVyeSBjYWNoaW5nIGluIGJpbnMgdW50aWwgaXQgZ2V0cyBmaXhlZCAoc2VlICMzMjQ4MDcpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3F1ZXJ5KToKCSAgRGlzYWJsZSBkdXJhdGlvbiBxdWVyeSBjYWNoaW5nIGluIGJpbnMgdW50aWwgaXQgZ2V0cwoJICBmaXhlZCAoc2VlICMzMjQ4MDcpLgoKMjAwNS0xMi0yNyAxODowNDo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEhhbmRsZSBwcm9wZXJ0aWVzIG9mIFBPSU5URVIgYW5kIEJPWEVEIHR5cGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIEhhbmRsZSBwcm9wZXJ0aWVzIG9mIFBPSU5URVIgYW5kIEJPWEVEIHR5cGUuCgoyMDA1LTEyLTI3IDEyOjExOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBJbml0IHRhZ3Mgc3R1ZmYgYW5kIHNvbWUgb3RoZXIgdGhpbmdzIGJlZm9yZSBsb2FkaW5nIGFueSBzdGF0aWMgcGx1Z2lucyAodGhlcmUgbWF5IGJlIG90aGVyIHN0YXRpYyBwbHVnaW5zLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIEluaXQgdGFncyBzdHVmZiBhbmQgc29tZSBvdGhlciB0aGluZ3MgYmVmb3JlIGxvYWRpbmcKCSAgYW55IHN0YXRpYyBwbHVnaW5zICh0aGVyZSBtYXkgYmUgb3RoZXIgc3RhdGljIHBsdWdpbnMKCSAgdGhhbiBqdXN0IHRoZSBHU3RyZWFtZXIgb25lcywgYW5kIHRoZXkgbWF5IHdhbnQgdG8KCSAgcmVnaXN0ZXIgdGhlaXIgb3duIHRhZ3Mgb3IgZm9ybWF0cyBvciB3aGF0ZXZlciwgYW5kCgkgIHByZWZlcmFibHkgd2l0aG91dCBzZWdmYXVsdGluZykuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpOgoJICBQcmludCBhdCBsZWFzdCBhIHdhcm5pbmcgaW4gdGhlIGRlYnVnIGxvZ3MgaWYgd2UgZHJvcCBhCgkgIHF1ZXJ5IGp1c3QgYmVjYXVzZSB3ZSBkb24ndCBrbm93IGhvdyB0byBhZGp1c3QgdGhlIHZhbHVlCgkgIGluIHRoZSBwYXJ0aWN1bGFyIGZvcm1hdC4KCjIwMDUtMTItMjUgMDM6NDU6NDUgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246IFJlcGxhY2VtZW50IGZvciBnc3QtY29tcGxldGUgd3JpdHRlbiBpbiBzaCBhbmQgc2VkLiAgT25seSBjb21wbGV0ZXMgbmFtZXMgb2YgZmVhdHVyZXMsIGJ1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOgoJICBSZXBsYWNlbWVudCBmb3IgZ3N0LWNvbXBsZXRlIHdyaXR0ZW4gaW4gc2ggYW5kIHNlZC4gIE9ubHkKCSAgY29tcGxldGVzIG5hbWVzIG9mIGZlYXR1cmVzLCBidXQgdGhhdCdzIDkwJSBvZiB3aGF0IEkgd2FudAoJICBpdCBmb3IuICBQcm9wZXJ0aWVzIGFyZSBub3QgYXZhaWxhYmxlIGluIHJlZ2lzdHJ5LnhtbC4gIChNYXliZQoJICB0aGV5IHNob3VsZCBiZS4uLikKCjIwMDUtMTItMjMgMTg6MTU6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC4xMC4xID09PQoKMjAwNS0xMi0yMyAxODowNDo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC4xMC4xCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC4xMC4xCgoyMDA1LTEyLTIzIDE0OjUzOjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA1LTEyLTIzIDEzOjQ1OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTEyLTIyIDE0OjQ4OjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9mYXEvY3ZzLnhtbDogQWRkIG1pc3NpbmcgcXVvdGUsIHNob3VsZCBiZSBtYWtlIEVSUk9SX0NGTEFHUz0iIi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvY3ZzLnhtbDoKCSAgQWRkIG1pc3NpbmcgcXVvdGUsIHNob3VsZCBiZSBtYWtlIEVSUk9SX0NGTEFHUz0iIi4KCjIwMDUtMTItMjAgMTY6MDE6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHByZXJlbGVhc2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcHJlcmVsZWFzaW5nCgoyMDA1LTEyLTIwIDEyOjUwOjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDogTW9yZSBkb2N1bWVudGF0aW9uIG9uIHRyaWNrbW9kZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIE1vcmUgZG9jdW1lbnRhdGlvbiBvbiB0cmlja21vZGVzLgoKMjAwNS0xMi0yMCAxMToxMjo1MyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RjYXBzLio6IEFkZGVkIGdwb2ludGVyIEdUeXBlIGZvciBHc3RTdGF0aWNDYXBzIHNvIHdlIGNhbiB3cmFwIHRoZW0gaW4gYmluZGluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3Rfc3RhdGljX2NhcHNfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgIEFkZGVkIGdwb2ludGVyIEdUeXBlIGZvciBHc3RTdGF0aWNDYXBzIHNvIHdlIGNhbiB3cmFwIHRoZW0gaW4gYmluZGluZ3MuCgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgIEFkZGVkIGdwb2ludGVyIEdUeXBlIGZvciBHc3RTdGF0aWNQYWRUZW1wbGF0ZSBzbyB3ZSBjYW4gd3JhcCB0aGVtIGluCgkgIGJpbmRpbmdzLgoKMjAwNS0xMi0xOCAxNjowNDo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0LzogRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KSwgKGdzdF9iYXNlX3NyY19kZWZhdWx0X2RvX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCksIChnc3RfYmFzZV9zcmNfdXBkYXRlX2xlbmd0aCksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19sb29wKSwKCSAgKGdzdF9iYXNlX3NyY19zdGFydCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgoyMDA1LTEyLTE4IDE0OjI4OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOiBSZW1vdmUgc3VwZXJmbHVvdXMgY2xvc2luZyBicmFja2V0IGluIGhlbGxvd29ybGQgZXhhbXBsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICBSZW1vdmUgc3VwZXJmbHVvdXMgY2xvc2luZyBicmFja2V0IGluIGhlbGxvd29ybGQgZXhhbXBsZS4KCjIwMDUtMTItMTcgMTQ6MTk6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLjEuaW46IFVwZGF0ZSBnc3QtbGF1bmNoIG1hbiBwYWdlOyBhZGQgYSBzZWN0aW9uIHdpdGggdXNlZnVsIGVudmlyb25tZW50IHZhcmlhYmxlcy4gRml4ZXMgIzMyMzg4Mi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBVcGRhdGUgZ3N0LWxhdW5jaCBtYW4gcGFnZTsgYWRkIGEgc2VjdGlvbiB3aXRoIHVzZWZ1bAoJICBlbnZpcm9ubWVudCB2YXJpYWJsZXMuIEZpeGVzICMzMjM4ODIuCgoyMDA1LTEyLTE2IDIxOjU5OjEyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBjaGFuZ2Ugc29tZSBjaGFyKiBpbnRvIGNoYXJbXQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIGNoYW5nZSBzb21lIGNoYXIqIGludG8gY2hhcltdCgoyMDA1LTEyLTE2IDE5OjI0OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IENsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfZmVhdHVyZSk6CgkgIENsZWFudXBzLgoJICBEb24ndCB1c2UgZ19vYmplY3RfdW5yZWYgb24gR3N0T2JqZWN0cyBzbyB0aGF0IHdlIGF2b2lkCgkgIGxlYWtzIG9uIHVuc2FmZSBnbGlicy4KCjIwMDUtMTItMTYgMTg6MjA6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFNtYWxsIGRvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3JlY2FsY19zdGF0ZSk6CgkgIFNtYWxsIGRvYyB1cGRhdGVzLgoKMjAwNS0xMi0xNiAxODoxMDowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNvbW1vbi9jaGVjay5tYWs6IEFkZGVkIG1ha2UgZm9yZXZlciB0YXJnZXQgZm9yIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vY2hlY2subWFrOgoJICBBZGRlZCBtYWtlIGZvcmV2ZXIgdGFyZ2V0IGZvciBjaGVjay4KCjIwMDUtMTItMTYgMTc6MzQ6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdC5jOiBtYWtlIHRoZSByZWdpc3RyeSBjYWNoZSBmaWxlIEhPU1RfQ1BVLWRlcGVuZGVudAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICBtYWtlIHRoZSByZWdpc3RyeSBjYWNoZSBmaWxlIEhPU1RfQ1BVLWRlcGVuZGVudAoKMjAwNS0xMi0xNiAxNDo0NDo0OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEyLTE2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuYwoJICAoZ3N0X2J1ZmZlcl9zdG9yZV9jbGVhcmVkX2Z1bmMpOiBQYXkgYXR0ZW50aW9uIHRvIGdfbGlzdF9hcHBlbmQKCSAgcmV0dXJuIHZhbHVlLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYwoJICAodGVzdF9mYWtlX29iamVjdF9uYW1lX3RocmVhZGVkX3VuaXF1ZSk6IFBheSBhdHRlbnRpb24gdG8KCSAgZ19saXN0X3NvcnQgcmV0dXJuIHZhbHVlLgoKMjAwNS0xMi0xNiAxMTo1MjowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1mZWVkYmFjay1tLm06IFVwZGF0ZSBmb3IgMC45LzAuMTAgKGZpeGVzICMzMjM4NzApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtZmVlZGJhY2stbS5tOgoJICBVcGRhdGUgZm9yIDAuOS8wLjEwIChmaXhlcyAjMzIzODcwKS4KCjIwMDUtMTItMTUgMTI6MjI6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBGaXggbGNvcHkgZm9yIG1pbmkgb2JqZWN0cywgdGhlIG1pbmkgb2JqZWN0IG5lZWRzIHRvIGJlIHJlZidlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF92YWx1ZV9taW5pX29iamVjdF9sY29weSk6CgkgIEZpeCBsY29weSBmb3IgbWluaSBvYmplY3RzLCB0aGUgbWluaSBvYmplY3QgbmVlZHMgdG8gYmUgcmVmJ2VkLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6IChteV9mb29faW5pdCksCgkgIChteV9mb29fZ2V0X3Byb3BlcnR5KSwgKG15X2Zvb19zZXRfcHJvcGVydHkpLCAobXlfZm9vX2NsYXNzX2luaXQpLAoJICAodGVzdF92YWx1ZV9jb2xsZWN0aW9uKSwgKGdzdF9taW5pX29iamVjdF9zdWl0ZSk6CgkgIEFkZCB0ZXN0IHRvIGVuc3VyZSByZWZjb3VudHMgZW5kIHVwIGFzIGV4cGVjdGVkIHdoZW4gcGFzc2luZwoJICBHc3RNaW5pT2JqZWN0cyB0aHJvdWdoIGdfb2JqZWN0X2dldCgpIGFuZCBnX29iamVjdF9zZXQoKS4KCjIwMDUtMTItMTQgMTc6MDg6MzYgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBSZWZhY3RvcmluZyBvZiBjb2xsZWN0cGFkcy4gVGhpcyB2ZXJzaW9uIHJlbW92ZXMgYSBsb3Qgb2YgcmFjZXMgd2l0aG91dCB0b3VjaGluZyBBUEkvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEyLTE0ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19iYXNlX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKSwgKGdzdF9jb2xsZWN0X3BhZHNfaXNfY29sbGVjdGVkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpLCAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6IFJlZmFjdG9yaW5nCgkgIG9mIGNvbGxlY3RwYWRzLiBUaGlzIHZlcnNpb24gcmVtb3ZlcyBhIGxvdCBvZiByYWNlcyB3aXRob3V0CgkgIHRvdWNoaW5nIEFQSS9BQkkuIFlheSAhCgoyMDA1LTEyLTE0IDEwOjA5OjM1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRG9uJ3QgYWxsb3cgYWN0aXZhdGlvbiBvZiBhIHNyY3BhZCBpbiBwdWxsX3JhbmdlIGlmIGl0IGhhcyBubyBnZXRyYW5nZSBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKSwgKGdzdF9wYWRfbGlua19wcmVwYXJlKToKCSAgRG9uJ3QgYWxsb3cgYWN0aXZhdGlvbiBvZiBhIHNyY3BhZCBpbiBwdWxsX3JhbmdlIGlmIGl0IGhhcyBubwoJICBnZXRyYW5nZSBmdW5jdGlvbi4KCSAgQ2hhbmdlIHNvbWUgZGVidWcgc3RhdGVtZW50cyB0byBiZSBhIGxpdHRsZSBjbGVhcmVyCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfaGFuZGxlX3NyY19xdWVyeSk6CgkgIENoZWNrIHRoYXQgd2UgaGF2ZSBhIHBlZXIgYmVmb3JlIGV4ZWN1dGluZyBxdWVyaWVzIHRoZXJldXBvbi4KCSAgKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6IChtZXNzYWdlX2xvb3ApOgoJICBVc2UgZ3N0X2J1c19wb3AgaW5zdGVhZCBvZiBnc3RfYnVzX3BvbGwgd2hlbiB3ZSBqdXN0IHdhbnQgaXQgdG8KCSAgaW1tZWRpYXRlbHkgcmV0dXJuIHVzIGFueSBhdmFpbGFibGUgbWVzc2FnZSB3aXRoIDAgdGltZW91dC4KCjIwMDUtMTItMTIgMTk6MDk6NDkgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzogRG9uJ3QgdW5yZWYgZmFjdG9yaWVzIGFmdGVyIGNhbGxpbmcgdGhlbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2NhbGxfZnVuY3Rpb24pOgoJICBEb24ndCB1bnJlZiBmYWN0b3JpZXMgYWZ0ZXIgY2FsbGluZyB0aGVtLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGdzdF90eXBlX2ZpbmRfaGVscGVyKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKToKCSAgRnJlZSBsaXN0cyBvZiBmYWN0b3JpZXMgYWZ0ZXIgdXNpbmcgdGhlbS4gRml4aW5nIHR5cGVmaW5kaW5nIG1lbW9yeQoJICBsZWFrcy4KCjIwMDUtMTItMTIgMTg6MTI6MTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IG1vcmUgbWVhbmluZ2Z1bCBkZWJ1ZyBvdXRwdXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9maW5hbGl6ZSksCgkgIChnc3RfcGx1Z2luX2ZlYXR1cmVfbG9hZCk6CgkgIG1vcmUgbWVhbmluZ2Z1bCBkZWJ1ZyBvdXRwdXQKCSAgKiBjb25maWd1cmUuYWM6CgkgICogdGVzdHMvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICBtYWtlIG1ha2UgZGlzdGNoZWNrIGhhcHB5IGFnYWluCgoyMDA1LTEyLTEyIDE3OjM3OjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgcmVtb3ZlIGFsbCB0ZXN0cy9vbGQgTWFrZWZpbGVzIGZyb20gdGhlIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgYWxsIHRlc3RzL29sZCBNYWtlZmlsZXMgZnJvbSB0aGUgYnVpbGQKCjIwMDUtMTItMTIgMTc6MDk6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBDYXRjaCB0aGUgc3BlY2lhbCBjYXNlIHdoZXJlIHdlIGFyZSBvcGVyYXRpbmcgY2hhaW4tYmFzZWQsIGJ1dCB0aGUgZG93bnN0cmVhbSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKHN0b3BfdHlwZWZpbmRpbmcpOgoJICBDYXRjaCB0aGUgc3BlY2lhbCBjYXNlIHdoZXJlIHdlIGFyZSBvcGVyYXRpbmcgY2hhaW4tYmFzZWQsCgkgIGJ1dCB0aGUgZG93bnN0cmVhbSBwZWVyIHBhZCBoYXMgbm8gY2hhaW4gZnVuY3Rpb24uIEVtaXQgYQoJICBjdXN0b20gZXJyb3IgbWVzc2FnZSBpbiB0aGlzIGNhc2UgaW5zdGVhZCBvZiBsZXR0aW5nIHRoZQoJICBjb3JlIGdlbmVyYXRlIG9uZSBpbXBseWluZyB0aGF0IHRoaXMgaXMgc29tZSBzb3J0IG9mIGNvcmUKCSAgYnVnLiBJdCdzIG5vdCwgaXQganVzdCBtZWFucyB0aGF0IHdoYXRldmVyIGdvdCBwbHVnZ2VkCgkgIGludG8gdGhlIHBpcGVsaW5lIGRvd25zdHJlYW0gd2hlbiB3ZSBhbm5vdW5jZWQgdGhlIHR5cGUKCSAgY2FuIG9ubHkgb3BlcmF0ZSBwdWxsLWJhc2VkLCB3aGlsZSBvdXIgc291cmNlIGNhbiBvbmx5CgkgIG9wZXJhdGUgcHVzaC1iYXNlZCAoZS5nLiBodHRwOi8vZm9vL2Jhci5tb3YgISBxdGRlbXV4ICEgLi4uKQoJICBFcnJvciBzdHJpbmcgaGFzIG5vdCBiZWVuIG1hcmtlZCBmb3IgdHJhbnNsYXRpb24geWV0LCBhcwoJICBpdCBwcm9iYWJseSBuZWVkcyBzb21lIG1vcmUgd29yayBmaXJzdC4KCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9nZXRfYmVzdF9wb3NzaWJpbGl0eSk6CgkgIEFkZCBoZWxwZXIgZnVuY3Rpb24gdG8gZmluZCB0aGUgYmVzdCBvZiBhbGwgYXZhaWxhYmxlCgkgIGZvdW5kIHBvc3NpYmlsaXRpZXMgdGhhdCBxdWFsaWZ5IGdpdmVuIHRoZSBtaW4uIHRocmVzaG9sZC4KCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICBGaXggdGhlIGNhc2Ugd2hlcmUgd2UgZ2V0IGFuIEVPUyB3aGlsZSBzdGlsbCBpbiBUWVBFRklORAoJICBtb2RlICh3ZSB3YW50IHRvIGNob3NlIHRoZSBiZXN0IG9mIGFsbCBwb3NzaWJsZSB0eXBlcywKCSAgbm90IGp1c3QgdGhlIGZpcnN0IHR5cGUgdGhhdCBoYXBwZW5zIHRvIGJlIGluIG91ciB1bnNvcnRlZAoJICBsaXN0IG9mIHBvc3NpYmxlIHR5cGVzKS4KCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbik6CgkgIE1ha2Ugc3VyZSB3ZSByZXR1cm4gR1NUX0ZMT1dfRVJST1Igd2hlbiB3ZSBlcnJvcmVkIG91dAoJICBpbiBzdG9wX3R5cGVmaW5kaW5nKCk7IGFsc28sIGRvbid0IGp1c3QgZmluZCB0aGUgYmVzdCBvZgoJICBhbGwgZm91bmQgdHlwZSBlbnRyaWVzIGFuZCB0aGVuIHVzZSB0aGUgbGFzdCBleGFtaW5lZAoJICB0eXBlIGVudHJ5LCBidXQgYWN0dWFsbHkgdXNlIHRoZSBiZXN0IGVudHJ5LgoKMjAwNS0xMi0xMiAxNzowNzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2V4YW1wbGVzLzogTW9yZSBnY2M0IGZpeGVzIGFuZCBhIG1lbSBsZWFrIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzogKHR5cGVfZm91bmQpOgoJICAqIHRlc3RzL2V4YW1wbGVzL3htbC9ydW54bWwuYzogKHhtbF9sb2FkZWQpOgoJICBNb3JlIGdjYzQgZml4ZXMgYW5kIGEgbWVtIGxlYWsgZml4LgoKMjAwNS0xMi0xMiAxNjoyMDo0NyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMveG1sL3J1bnhtbC5jOgoJICBtb3JlIGdjYyA0IHdhcm5pbmcgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgZ2NjIDQgd2FybmluZyBmaXhlcwoKMjAwNS0xMi0xMiAxNjowNDo0NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMveG1sL2NyZWF0ZXhtbC5jOgoJICBhbm90aGVyIGdjYzQgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhbm90aGVyIGdjYzQgZml4CgoyMDA1LTEyLTEyIDE1OjU5OjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9leGFtcGxlcy94bWwvY3JlYXRleG1sLmM6IGdjYyA0IGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL3htbC9jcmVhdGV4bWwuYzogKG9iamVjdF9zYXZlZCk6CgkgIGdjYyA0IGZpeGVzCgoyMDA1LTEyLTEyIDE1OjQ2OjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9NYWtlZmlsZS5hbTogZW5hYmxlIHRoZSBleGFtcGxlcyBldmVuIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvTWFrZWZpbGUuYW06CgkgIGVuYWJsZSB0aGUgZXhhbXBsZXMgZXZlbiBtb3JlCgoyMDA1LTEyLTEyIDE1OjAyOjAyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmMgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9jbGFzc19pbml0LCBnc3RfbmV0X3RpbWVfcHJvdmlkZXJfaW5pdCkgKGdzdF9uZXRfdGltZV9wcm92aWQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTItMTIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfY2xhc3NfaW5pdCwgZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2luaXQpCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfc2V0X3Byb3BlcnR5KQoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2dldF9wcm9wZXJ0eSk6IEV4cG9ydCAiYWN0aXZlIiBhcyBhIEdPYmplY3QKCSAgcHJvcGVydHkuCgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfdGhyZWFkKTogT25seSByZXNwb25kIHRvIHRpbWUgcXVlcmllcyBpZgoJICB0aGUgdGltZSBwcm92aWRlciBpcyBhY3RpdmUuCgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOiBBZGQgYW4gImFjdGl2ZSIgYm9vbGVhbiB0bwoJICBOZXRUaW1lUHJvdmlkZXIsIHByZXNlcnZpbmcgYmluYXJ5IGNvbXBhdC4KCjIwMDUtMTItMTIgMTQ6NDY6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2V4YW1wbGVzLzogY29udmVydCBjb21tZW50cyBhZ2FpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzogKG1haW4pOgoJICAqIHRlc3RzL2V4YW1wbGVzL2xhdW5jaC9NYWtlZmlsZS5hbToKCSAgY29udmVydCBjb21tZW50cyBhZ2FpbgoKMjAwNS0xMi0xMiAxNDo0Mzo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkgIEZpeCB0eXBvLgoKMjAwNS0xMi0xMiAxNDo0MjoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgRm9yZ290IHRoZSBDaGFuZ2Vsb2cuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZvcmdvdCB0aGUgQ2hhbmdlbG9nLi4uCgoyMDA1LTEyLTEyIDE0OjQxOjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQWRkZWQgbmV3IHN5bWJvbCB0byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGRlZCBuZXcgc3ltYm9sIHRvIGRvY3MuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfaW5pdCksIChnc3RfYmFzZV9zcmNfc2V0X2Zvcm1hdCksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSksIChnc3RfYmFzZV9zcmNfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfZG9fc2VlayksIChnc3RfYmFzZV9zcmNfZG9fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwgKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X2V2ZW50KSwgKGdzdF9iYXNlX3NyY19ldmVudF9oYW5kbGVyKSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc3JjX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zcmNfd2FpdCksIChnc3RfYmFzZV9zcmNfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zcmNfdXBkYXRlX2xlbmd0aCksIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19jaGVja19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmVnb3RpYXRlKSwgKGdzdF9iYXNlX3NyY19zdGFydCksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgSW1wbGVtZW50IHNlZWtpbmcgdG8gb3RoZXIgZm9ybWF0cyB0aGFuIF9CWVRFUy4KCSAgSW1wbGVtZW50IG1vcmUgc2Vla2luZyBtZXRob2RzIGNvcnJlY3RseS4KCSAgRG9jIHVwZGF0ZXMuCgkgIEFkZGVkIHF1ZXJ5IHZtZXRob2QuCgkgIEFkZGVkIGRvX3NlZWsgdm1ldGhvZCB0byBtYWtlIGxpZmUgZWFzaWVyIGZvciBzdWJjbGFzc2VzCgkgIHdoZW4gc2Vla2luZy4KCSAgQVBJIGFkZGl0aW9uOiBnc3RfYmFzZV9zcmNfc2V0X2Zvcm1hdCgpCgoyMDA1LTEyLTEyIDE0OjA4OjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbTogYWRkZWQgdGhhdCB0b28KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIGFkZGVkIHRoYXQgdG9vCgoyMDA1LTEyLTEyIDE0OjAyOjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhcHBsaWVkIHNvbWUgc2ltcGxlIGZpeGluZyB0byBzb21lIGV4YW1wbGVzIHJlLWVuYWJsZWQgdGhlIHdvcmtpbmcgZXhhbXBsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvbWVkaWEtZGV2aWNlLWRhZW1vbi50eHQ6CgkgICogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6IChtYWluKToKCSAgKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzogKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgICogdGVzdHMvZXhhbXBsZXMvbGF1bmNoLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvZXhhbXBsZXMvbGF1bmNoL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL2xhdW5jaC9tcDNwYXJzZWxhdW5jaC5jOiAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzogKG1lc3NhZ2VfbG9vcCksCgkgIChtYWtlX3BpcGVsaW5lKSwgKHByaW50X3RhZyksIChtYWluKToKCSAgKiB0ZXN0cy9leGFtcGxlcy9xdWV1ZS8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2V4YW1wbGVzL3F1ZXVlL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL3F1ZXVlL3F1ZXVlLmM6IChldmVudF9sb29wKSwgKG1haW4pOgoJICAqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzogKHR5cGVfZm91bmQpLCAoZXZlbnRfbG9vcCksCgkgIChtYWluKToKCSAgKiB0ZXN0cy9leGFtcGxlcy94bWwvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy94bWwvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMveG1sL2NyZWF0ZXhtbC5jOiAob2JqZWN0X3NhdmVkKSwgKG1haW4pOgoJICAqIHRlc3RzL2V4YW1wbGVzL3htbC9ydW54bWwuYzogKHhtbF9sb2FkZWQpLCAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL1RPRE86CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2NvbnRyb2xsZXIvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2hlbGxvd29ybGQvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvaGVsbG93b3JsZC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2xhdW5jaC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9sYXVuY2gvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2xhdW5jaC9tcDNwYXJzZWxhdW5jaC5jOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9sYXVuY2gvbXAzcGxheToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9tZXRhZGF0YS9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZS8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZS9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWUvcXVldWUuYzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvdHlwZWZpbmQvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvdHlwZWZpbmQvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3R5cGVmaW5kL3R5cGVmaW5kLmM6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3htbC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy94bWwvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3htbC9jcmVhdGV4bWwuYzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMveG1sL3J1bnhtbC5jOgoJICBhcHBsaWVkIHNvbWUgc2ltcGxlIGZpeGluZyB0byBzb21lIGV4YW1wbGVzCgkgIHJlLWVuYWJsZWQgdGhlIHdvcmtpbmcgZXhhbXBsZXMKCjIwMDUtMTItMTIgMTI6NDg6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBBZGRlZCBtb3JlIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9pbml0KSwKCSAgKGdzdF9zZWdtZW50X3NldF9sYXN0X3N0b3ApLCAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLAoJICAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnQpLCAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLAoJICAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKToKCSAgQWRkZWQgbW9yZSBkb2N1bWVudGF0aW9uLgoJICBNYWtlIHN1cmUgdGhlIGxhc3RfcG9zIHZhbHVlIGlzIHVwZGF0ZWQgcHJvcGVybHkuCgkgIE1ha2Ugc3VyZSB0b19zdHJlYW1fdGltZSBhbmQgdG9fcnVubmluZ190aW1lIGRvbid0CgkgIG9wZXJhdGUgb24gd3JvbmcgdmFsdWVzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVwZGF0ZSBjaGVjay4KCjIwMDUtMTItMTIgMTI6MzI6MDQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IE5vdyB0aGF0IHdlJ3JlIG5vdCBsZWFraW5nIGZhY3RvcmllcywgbWFrZSBzdXJlIHdlIGtlZXAgcmVmZXJlbmNlcyB0byB0aGVtIHdoaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoZnJlZV9lbnRyeSksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pOgoJICBOb3cgdGhhdCB3ZSdyZSBub3QgbGVha2luZyBmYWN0b3JpZXMsIG1ha2Ugc3VyZSB3ZSBrZWVwIHJlZmVyZW5jZXMKCSAgdG8gdGhlbSB3aGlsZSB3ZSBuZWVkIHRoZW0uCgoyMDA1LTEyLTEyIDExOjQwOjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOiBpZmRlZiBvdXQgdGhlIFhNTCBzdHJ1Y3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJICBpZmRlZiBvdXQgdGhlIFhNTCBzdHJ1Y3RzCgoyMDA1LTEyLTEyIDEwOjU5OjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBmbG9vciBpcyBub3QgbmVlZGVkLCBGIGlzIGFsd2F5cyBwb3NpdGl2ZTsgdGhpcyBvYnZpYXRlcyB0aGUgbmVlZCBmb3IgYWRkaW5nIC1sbSB3aGVuIGJ1aWxkaW5nIHdpdGhvdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV90cmFuc2Zvcm1fZG91YmxlX2ZyYWN0aW9uKToKCSAgZmxvb3IgaXMgbm90IG5lZWRlZCwgRiBpcyBhbHdheXMgcG9zaXRpdmU7IHRoaXMgb2J2aWF0ZXMgdGhlCgkgIG5lZWQgZm9yIGFkZGluZyAtbG0gd2hlbiBidWlsZGluZyB3aXRob3V0IGxpYnhtbAoKMjAwNS0xMi0xMiAxMDo1NzozNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9hc3BlY3RyYXRpbzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICBhZGQgYSA7IGFuZCBhbiBleGFtcGxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSA7IGFuZCBhbiBleGFtcGxlCgoyMDA1LTEyLTEyIDEwOjE2OjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBUYWtlIGN1cnJlbnQgcGxheWJhY2sgcmF0ZSBpbnRvIGFjY291bnQgd2hlbiByZXBvcnRpbmcgdGhlIHBvc2l0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIFRha2UgY3VycmVudCBwbGF5YmFjayByYXRlIGludG8gYWNjb3VudCB3aGVuIHJlcG9ydGluZwoJICB0aGUgcG9zaXRpb24uCgoyMDA1LTEyLTExIDE5OjM1OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvbWltZS13b3JsZC5maWc6IExldCdzIHRyeSB0aGlzIGFnYWluLCB0aGlzIHRpbWUgd2l0aCBhIGZpbGUgdGhhdCBpcyBhY3R1YWxseSBpbiBYRmlnIGZvcm1hdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvbWltZS13b3JsZC5maWc6CgkgIExldCdzIHRyeSB0aGlzIGFnYWluLCB0aGlzIHRpbWUgd2l0aCBhIGZpbGUgdGhhdCBpcwoJICBhY3R1YWxseSBpbiBYRmlnIGZvcm1hdC4KCjIwMDUtMTItMTEgMTk6MTk6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9taW1lLXdvcmxkLmZpZzogQWRkIGF1ZGlvY29udmVydCBlbGVtZW50IHRvIGRpYWdyYW0gc28gdGhhdCBpdCBtYXRjaGVzIHRoZSB0ZXh0IGFuZCB0aGUgY29kZSAoZml4ZXMgIzMxOTUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvbWltZS13b3JsZC5maWc6CgkgIEFkZCBhdWRpb2NvbnZlcnQgZWxlbWVudCB0byBkaWFncmFtIHNvIHRoYXQgaXQKCSAgbWF0Y2hlcyB0aGUgdGV4dCBhbmQgdGhlIGNvZGUgKGZpeGVzICMzMTk1MjYpLgoKMjAwNS0xMi0xMSAxODoyNDoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnLzogVXBkYXRlIHN0YXRlIGNoYW5nZSBzdHVmZiBmb3IgMC4xMCAoZml4ZXMgIzMyMjk2OSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLWNoYWluZm4ueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXN0YXRlLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1zb3VyY2UueG1sOgoJICBVcGRhdGUgc3RhdGUgY2hhbmdlIHN0dWZmIGZvciAwLjEwIChmaXhlcyAjMzIyOTY5KS4KCjIwMDUtMTItMTEgMTc6NDk6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC86IFVwZGF0ZSBmb3IgMC4xMDogcy8wLjkvMC4xMC87IHMvYXVkaW9zY2FsZS9hdWRpb3JzYW1wbGUvOyBhZGQgY29udmVydGVycyBpbiBmcm9udCBvZiBwaXBlbGluZXM7IHJlbW92ZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wcm9ncmFtcy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICBVcGRhdGUgZm9yIDAuMTA6IHMvMC45LzAuMTAvOyBzL2F1ZGlvc2NhbGUvYXVkaW9yc2FtcGxlLzsKCSAgYWRkIGNvbnZlcnRlcnMgaW4gZnJvbnQgb2YgcGlwZWxpbmVzOyByZW1vdmUgY3VybHkKCSAgYnJhY2tldHMgZm9yIHRocmVhZHMgc3R1ZmYsIHRoZXkgbm8gbG9uZ2VyIGV4aXN0OyB1c2UKCSAgR1NUX1RZUEVfRlJBQ1RJT04gZm9yIGZyYW1lcmF0ZXM7IHVwZGF0ZSBzb21lIHBpZWNlcyBvZgoJICBjb2RlIHRvIDAuMTAsIGJ1dCB0aGVyZSdzIHBsZW50eSBtb3JlIHRvIGRvLgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBFeHBhbmQgb24gYXN5bmNocm9uZW91cyBzdGF0ZSBjaGFuZ2VzOyBzLzAuOS8wLjEwLzsKCSAgbWVudGlvbiBkaXNhcHBlYXJhbmNlIG9mIGdzdF9pbml0X2dldF9wb3B0X3RhYmxlKCkKCSAgKGZpeGVzICMzMjI5MTYpLgoKMjAwNS0xMi0xMSAxMTo1Mzo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZmFxL3VzaW5nLnhtbDogU3BpZGVyIG5vIGxvbmdlciBleGlzdHMsIGFuZCBuZWl0aGVyIGRvZXMgZ3N0LWxhdW5jaC1leHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSAgU3BpZGVyIG5vIGxvbmdlciBleGlzdHMsIGFuZCBuZWl0aGVyIGRvZXMgZ3N0LWxhdW5jaC1leHQuCgkgIFVwZGF0ZSBleGFtcGxlcyB0byB1c2UgZGVjb2RlYmluIGFuZCBwbGF5YmluIGFuZCBwdXQKCSAgY29udmVydGVycyBpbiBmcm9udCBvZiBzaW5rcyAoZml4ZXMgIzMyMzcyNikuCgoyMDA1LTEyLTA5IDE3OjI2OjMxICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBGaXggbGVha2luZyBlbGVtZW50IGZhY3RvcmllcyBpbiB0eXBlZmluZGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKGZpbmRfcGVlayksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pOgoJICBGaXggbGVha2luZyBlbGVtZW50IGZhY3RvcmllcyBpbiB0eXBlZmluZGluZy4KCSAgRml4IHByb2JsZW0gd2hlcmUgd2UgZm9yZ290IGFib3V0IGEgcHJvYmFibGUgdHlwZSBvbiBub24tc2Vla2FibGUKCSAgZmlsZXMsIGFuZCB0aHVzIGxhdGVyIG1pcy10eXBlZm91bmQgaXQuCgoyMDA1LTEyLTA5IDE1OjA5OjQyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBSZW1vdmUgbWFrZWNvbnRleHQgc3R1ZmY7IG5vdCB1c2VkIGluIDAuMTAgYW5kIGNhdXNlcyBwcm9ibGVtcyBvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vbTQvZ3N0LW1ha2Vjb250ZXh0Lm00OgoJICAqIGNvbW1vbi9tNC9nc3QtbWNzYy5tNDoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgUmVtb3ZlIG1ha2Vjb250ZXh0IHN0dWZmOyBub3QgdXNlZCBpbiAwLjEwIGFuZCBjYXVzZXMgcHJvYmxlbXMgb24KCSAgSFBVWCBhY2NvcmRpbmcgdG8gYnVnICMzMjI0NDEKCjIwMDUtMTItMDcgMTk6MDM6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZGVkIEFCSSBjaGVjayBmb3IgbGlicywgdGhpcyB0aW1lIGZvciByZWFsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0YWJpX3N1aXRlKSwKCSAgKG1haW4pOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2kzODYuaDoKCSAgQWRkZWQgQUJJIGNoZWNrIGZvciBsaWJzLCB0aGlzIHRpbWUgZm9yIHJlYWwKCjIwMDUtMTItMDcgMTk6MDM6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay86IEFkZGVkIEFCSSBjaGVjayBmb3IgbGlicwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdGFiaV9zdWl0ZSksCgkgIChtYWluKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9pMzg2Lmg6CgkgIEFkZGVkIEFCSSBjaGVjayBmb3IgbGlicwoKMjAwNS0xMi0wNyAxNzo1OToyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBBbmQgYWRkIHRoZSBzdHJ1Y3RfaTM4Ni5oIHRvIGRpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBBbmQgYWRkIHRoZSBzdHJ1Y3RfaTM4Ni5oIHRvIGRpc3QuCgoyMDA1LTEyLTA3IDE3OjM2OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svOiBBZGRlZCBjaGVjayBmb3IgQUJJIGNvbXBhdGliaWxpdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdGFiaV9zdWl0ZSksCgkgIChtYWluKToKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSAgQWRkZWQgY2hlY2sgZm9yIEFCSSBjb21wYXRpYmlsaXR5LgoKMjAwNS0xMi0wNyAxNTozMzo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiBGaXggYnJva2VuIHN5bmMgb3B0aW9uLCBmaXhlcyAjMzIzMjU5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2Vfc3JjX2dldF90aW1lcyksIChnc3RfZmFrZV9zcmNfY3JlYXRlKToKCSAgRml4IGJyb2tlbiBzeW5jIG9wdGlvbiwgZml4ZXMgIzMyMzI1OQoKMjAwNS0xMi0wNyAxNToxNjo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogU21hbGwgZG9jcyB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgU21hbGwgZG9jcyB1cGRhdGUuCgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2lzX2VxdWFsKToKCSAgRG9uJ3QgYXNzZXJ0IG9uIE5VTEwgPC0tPiBYLiBGaXhlcyAjMzIzMjYwCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9yZXBsYWNlKToKCSAgSWYgd2UncmUgZG9pbmcgYXRvbWljIG9wZXJhdGlvbnMsIHdlIG1pZ2h0IGp1c3QgYXMgd2VsbCB1c2UKCSAgdGhlIHByb3BlciB3YXkgdG8gZ2V0IGFuIGF0b21pYyBwb2ludGVyLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgQ2xlYW4gdXAgZGVidWdnaW5nLgoKMjAwNS0xMi0wNyAxMTo1MjowNSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L3BhcnNlL2dyYW1tYXIueTogUmVtb3ZlIGhhbmRsaW5nIG9mIHsgfSBmb3IgdGhyZWFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgUmVtb3ZlIGhhbmRsaW5nIG9mIHsgfSBmb3IgdGhyZWFkcy4KCjIwMDUtMTItMDYgMjM6MzI6MDEgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IHNwZWxpbmcgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogc3BlbGluZyBmaXguCgoyMDA1LTEyLTA2IDE5OjI5OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIGRvY3MvcmFuZG9tL29tZWdhL3Rlc3RpbmcvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2N1dHRlci9jdXR0ZXIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21peGVyL21peGVyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy94bWwvcnVueG1sLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9ub3JtYWxpc2F0aW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvZ2xvYmFsLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGFyc2UvcGFyc2UxLmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkqIHdpbjMyL2NvbW1vbi9kaXJlbnQuYzoKCSAgZXhwYW5kIHRhYnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGV4cGFuZCB0YWJzCgoyMDA1LTEyLTA2IDE5OjA0OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgYmFjayB0byBjdnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gY3ZzCgoyMDA1LTEyLTA1IDE4OjEzOjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIEhFQUQKCj09PSByZWxlYXNlIDAuMTAuMCA9PT0KCjIwMDUtMTItMDUgMTg6MDU6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuMTAuMAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuMTAuMAoKMjAwNS0xMi0wNSAxNTo1Nzo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNS0xMi0wNSAxNDozNjowNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IGFkZGVkIENoaW5lc2UgKFRyYWRpdGlvbmFsKSB0cmFuc2xhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc3VibWl0dGVkIGJ5OiBGdW5kYSBXYW5nIDxmdW5kYXdhbmdAbGludXgubmV0LmNuPgoJICAqIHBvL0xJTkdVQVM6CgkgICogcG8vemhfQ04ucG86CgkgIGFkZGVkIENoaW5lc2UgKFRyYWRpdGlvbmFsKSB0cmFuc2xhdGlvbgoKMjAwNS0xMi0wNSAxNDoxNDozOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSAgdXBkYXRlZCBBZnJpa2FhbnMgdHJhbnNsYXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZWQgQWZyaWthYW5zIHRyYW5zbGF0aW9uCgoyMDA1LTEyLTA1IDE0OjE0OjAyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcmVtb3ZlIGRlcHJlY2F0aW9uIGd1YXJkIGZyb20gZG9jc3RyaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZGVwcmVjYXRpb24gZ3VhcmQgZnJvbSBkb2NzdHJpbmcKCjIwMDUtMTItMDUgMTM6MTA6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgdXBkYXRlIHRyYW5zbGF0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAwNS0xMi0wNSAxMzowNjozNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3Rob21hc3ZzL1RPRE86CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZml4IGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkb2NzCgoyMDA1LTEyLTA1IDEzOjAxOjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltQGZsdWVuZG8uY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEyLTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICBwYXRjaCBieTogV2ltIFRheW1hbnMgPHdpbUBmbHVlbmRvLmNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZikKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYyAoZ3N0X3F1ZXVlX2J1ZmZlcmFsbG9jKTogQ2FsbAoJICBhbGxvY19idWZmZXJfYW5kX3NldF9jYXBzLgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9hbGxvY19idWZmZXIpOiBDaGFuZ2VkIHRvIG5vdCBjYWxsCgkgIHNldF9jYXBzIG9uIHRoZSBzb3VyY2UgcGFkLgoJICAoZ3N0X3BhZF9hbGxvY19idWZmZXJfYW5kX3NldF9jYXBzKTogTmV3IGZ1bmN0aW9uLCBkb2VzIHdoYXQKCSAgYWxsb2NfYnVmZmVyIHVzZWQgdG8gZG8uIEZpeGVzICMzMjI4NzQuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6IFVwZGF0ZSBmb3IgdGhlIGFsbG9jX2J1ZmZlcgoJICBjaGFuZ2VzLgoKMjAwNS0xMi0wNSAxMjozMzo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgcmVhbGx5IGFkZCB0aGUgdGVzdHMgZm9yIHRoZSA2NC9kb3VibGUgY29udmVyc2lvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVhbGx5IGFkZCB0aGUgdGVzdHMgZm9yIHRoZSA2NC9kb3VibGUgY29udmVyc2lvbgoKMjAwNS0xMi0wNSAxMjowOTo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgIGFkZCBkZWYgZm9yIGNvbnRyb2xsZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBkZWYgZm9yIGNvbnRyb2xsZXIKCjIwMDUtMTItMDUgMTI6MDk6MDEgKzAwMDAgIFNlYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvOiB3aW4zMiBidWlsZCBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IFNlYmFzdGllbiBNb3V0dGUKCSAgKiB3aW4zMi9NQU5JRkVTVDoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgICogd2luMzIvdnM2L2xpYmdzdGNvbnRyb2xsZXIuZHNwOgoJICB3aW4zMiBidWlsZCBmaXhlcwoKMjAwNS0xMi0wNSAxMDo1OToxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEJhY2sgb3V0IHByZXZpb3VzIGNvZGUgY2hhbmdlcywgbGVhdmUgZG9jIHVwZGF0ZXMsIGZpbGUgYnVncyBpbnN0ZWFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaXNfZXF1YWwpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSk6CgkgIEJhY2sgb3V0IHByZXZpb3VzIGNvZGUgY2hhbmdlcywgbGVhdmUgZG9jIHVwZGF0ZXMsIGZpbGUgYnVncwoJICBpbnN0ZWFkLgoKMjAwNS0xMi0wNSAxMDoyNzo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy4qOiBGaXggYnJva2VuIHN5bmMgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfZ2V0X3RpbWVzKSwgKGdzdF9mYWtlX3NyY19jcmVhdGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJICBGaXggYnJva2VuIHN5bmMgY29kZS4KCjIwMDUtMTItMDUgMTA6MjI6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBDb21wYXJpbmcgTlVMTCBhZ2FpbnN0ICFOVUxMIHlpZWxkcyBkaWZmZXJlbnQgY2Fwcywgbm90IGEgZmFpbHVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2lzX2VxdWFsKToKCSAgQ29tcGFyaW5nIE5VTEwgYWdhaW5zdCAhTlVMTCB5aWVsZHMgZGlmZmVyZW50IGNhcHMsIG5vdCBhCgkgIGZhaWx1cmUuCgoyMDA1LTEyLTA1IDEwOjE4OjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IEZpeCBzbWFsbCB0eXBvIGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBGaXggc21hbGwgdHlwbyBpbiBkb2NzLgoKMjAwNS0xMi0wNSAwOTo1Mzo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0LmMgKGluaXRfcG9zdCk6IHJlbW92ZSBoYXJkLWNvZGVkIDAuOSBsb2NhdGlvbiBmb3IgcmVnaXN0cmllcy9wbHVnaW5zIHdpdGggYSBNQUpPUk1JTk9SIG9uZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTItMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgIHBhdGNoIGJ5OiBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGdzdC9nc3QuYyAoaW5pdF9wb3N0KTogcmVtb3ZlIGhhcmQtY29kZWQgMC45IGxvY2F0aW9uIGZvcgoJICByZWdpc3RyaWVzL3BsdWdpbnMgd2l0aCBhIE1BSk9STUlOT1Igb25lLgoJICAocGx1Z2luX2Rlc2MpOiBSZW5hbWUgbGlicmFyeSBmcm9tIGdzdGNvcmVsZWVtZW50cyB0bwoJICBzdGF0aWNlbGVtZW50cy4gRml4ZXMgIzMyMzIyMi4KCjIwMDUtMTItMDUgMDk6NDU6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IENoYW5nZSBkZWJ1ZyBjYXRlZ29yeSB0byAnY29sbGVjdHBhZHMnIGZyb20gJ2NvbGxlY3RfcGFkcycgKGZpeGVzICMzMjMyNTApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2Jhc2VfaW5pdCk6CgkgIENoYW5nZSBkZWJ1ZyBjYXRlZ29yeSB0byAnY29sbGVjdHBhZHMnIGZyb20gJ2NvbGxlY3RfcGFkcycKCSAgKGZpeGVzICMzMjMyNTApLgoKMjAwNS0xMi0wNCAxOTo1NzoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVuYW1lIHR3byBleHBvcnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW5hbWUgdHdvIGV4cG9ydHMKCjIwMDUtMTItMDQgMTg6NTQ6MTkgKzAwMDAgIFNlYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IHVzZSBjb252ZXJ0IGZ1bmN0aW9uIGZvciB1aW50NjQvZG91YmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogU2ViYXN0aWVuIE1vdXR0ZQoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICB1c2UgY29udmVydCBmdW5jdGlvbiBmb3IgdWludDY0L2RvdWJsZQoJICAqIHdpbjMyL3ZzNi9saWJnc3Rjb250cm9sbGVyLmRzcDoKCSAgbGluayB0byBHTGliCgoyMDA1LTEyLTA0IDA5OjU3OjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGFkZCB0ZXN0cyB0aGF0IHNlZW0gdG8gc2hvdyB0aGF0IHRoZSBndWludDY0L2dkb3VibGUgY29udmVyc2lvbnMgYXJlIGNvcnJlY3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfZ3VpbnQ2NF90b19nZG91YmxlKSwKCSAgKGdzdF91dGlsX2dkb3VibGVfdG9fZ3VpbnQ2NCksIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50NjQpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3V0aWxzX3N1aXRlKToKCSAgYWRkIHRlc3RzIHRoYXQgc2VlbSB0byBzaG93IHRoYXQgdGhlIGd1aW50NjQvZ2RvdWJsZSBjb252ZXJzaW9ucwoJICBhcmUgY29ycmVjdC4KCjIwMDUtMTItMDIgMTI6NDQ6NTMgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBtYWtlIHZlcnNpb24gbnVtYmVyIGEgbGl0dGxlIGxlc3MgaG9wZWZ1bGwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1ha2UgdmVyc2lvbiBudW1iZXIgYSBsaXR0bGUgbGVzcyBob3BlZnVsbAoKMjAwNS0xMi0wMiAxMjozNDo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEZpeCBkb2NzIGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9hZGRfcGF0aCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIEZpeCBkb2NzIGFnYWluLgoJICBSZW1vdmVkIG9sZCBjb2RlIGZyb20gZ3N0cmVnaXN0cnl4bWwuYwoKMjAwNS0xMi0wMiAxMjoxOTo1NSArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGZpeCB1cGRhdGluZyBnc3RyZWFtZXIgc3BlYyBmaWxlIG1ha2luZyBpdCAwLjEwIHJlYWR5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdXBkYXRpbmcgZ3N0cmVhbWVyIHNwZWMgZmlsZSBtYWtpbmcgaXQgMC4xMCByZWFkeQoKMjAwNS0xMi0wMiAxMTozNjo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBTbWFsbCBjbGVhbnVwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQ2NCksCgkgIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgU21hbGwgY2xlYW51cC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICBBZGQgZGVidWcgbG9nIGxpbmUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpOgoJICBBZGQgRklYTUUuCgoyMDA1LTEyLTAyIDA5OjQ4OjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHdpbjMyLzogcmVuYW1lZCBjb3JlIGVsZW1lbnRzIHBsdWdpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9NQU5JRkVTVDoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgICogd2luMzIvdnM2L2dzdHJlYW1lci5kc3c6CgkgICogd2luMzIvdnM2L2xpYmdzdGNvcmVlbGVtZW50cy5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGVsZW1lbnRzLmRzcDoKCSAgcmVuYW1lZCBjb3JlIGVsZW1lbnRzIHBsdWdpbgoKMjAwNS0xMi0wMiAwMTozNToyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0b29scy9nc3QtcnVuLmM6IGRvIHBpZWNlLXdpc2UgbWFqb3IvbWlub3IgY29tcGFyaXNvbiBzbyAwLjkgPCAwLjEwIGFsc28gYWxsb3cgLmV4ZSBleHRlbnNpb25zIGZvciB0b29scwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtcnVuLmM6IChjb21wYXJlX21ham9yX21pbm9yKSwgKGZpbmRfaGlnaGVzdF92ZXJzaW9uKSwKCSAgKGdldF9jYW5kaWRhdGVzKToKCSAgZG8gcGllY2Utd2lzZSBtYWpvci9taW5vciBjb21wYXJpc29uIHNvIDAuOSA8IDAuMTAKCSAgYWxzbyBhbGxvdyAuZXhlIGV4dGVuc2lvbnMgZm9yIHRvb2xzCgoyMDA1LTEyLTAxIDIzOjU3OjA3ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0LmM6IEVzY2FwZSBhICUgdG8gbWFrZSBndGtkb2MgaGFwcGllcjsgYnVnIDMyMjk1OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBFc2NhcGUgYSAlIHRvIG1ha2UgZ3RrZG9jIGhhcHBpZXI7IGJ1ZyAzMjI5NTguCgoyMDA1LTEyLTAxIDE5OjE4OjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIEhFQUQKCj09PSByZWxlYXNlIDAuOS43ID09PQoKMjAwNS0xMi0wMSAxOToxMTo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDSEFOR0VTLTAuOToKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC45LjcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjkuNwoKMjAwNS0xMi0wMSAxNjo1MToyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkqIHdpbjMyL3ZzNi9nc3RfaW5zcGVjdC5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RfbGF1bmNoLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0ZWxlbWVudHMuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSogd2luMzIvdnM3L0dTdHJlYW1lci52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9nc3QtaW5zcGVjdC52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9nc3QtbGF1bmNoLnZjcHJvajoKCSogd2luMzIvdnM3L2xpYmdzdGJhc2UudmNwcm9qOgoJICBidW1wIEdTVF9NQUpPUk1JTk9SIHRvIDAuMTAgcmVzZXQgbGlidG9vbCB2ZXJzaW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBidW1wIEdTVF9NQUpPUk1JTk9SIHRvIDAuMTAKCSAgcmVzZXQgbGlidG9vbCB2ZXJzaW9uCgoyMDA1LTEyLTAxIDE1OjI4OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRvb2xzL2dzdC1mZWVkYmFjay0wLjc6CgkgIHJlbW92ZSBvbGQgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG9sZCBmaWxlCgoyMDA1LTEyLTAxIDE1OjE4OjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcGx1Z2lucy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMTItMDEgMTU6MDg6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBwby9MSU5HVUFTOgoJKiBwby9iZy5wbzoKCSAgQWRkZWQgQnVsZ2FyaWFuIHRyYW5zbGF0aW9uIGJ5IChBbGV4YW5kZXIgU2hvcG92KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkZWQgQnVsZ2FyaWFuIHRyYW5zbGF0aW9uIGJ5IChBbGV4YW5kZXIgU2hvcG92KQoKMjAwNS0xMi0wMSAxNTowNDowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC1idWlsZC5zdGFtcDoKCSAgY29tbWl0IGZpbmFsIHN0YW1wIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvbW1pdCBmaW5hbCBzdGFtcCBmaWxlCgoyMDA1LTEyLTAxIDE0OjUxOjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBhZGQgbW9yZSBmaWxlcyBmb3IgZGlzdGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbW9yZSBmaWxlcyBmb3IgZGlzdGNoZWNrCgoyMDA1LTEyLTAxIDE0OjQwOjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuc2lnbmFsczoKCSAgYWRkIHNpZ25hbHMgYW5kIGFyZ3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBzaWduYWxzIGFuZCBhcmdzCgoyMDA1LTEyLTAxIDEyOjM2OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICBmaXggdGVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHRlc3QKCjIwMDUtMTItMDEgMTI6Mjk6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy50eXBlczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3Quc3RhbXA6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZG9jcy9wbHVnaW5zL3NjYW5vYmotYnVpbGQuc3RhbXA6CgkqIGdzdHJlYW1lci5zcGVjLmluOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5jOgoJICBkb2N1bWVudCBjb3JlIHBsdWdpbnMgaW4gYSBzZXBhcmF0ZSBkb2N1bWVudCBqdXN0IGxpa2UgYWxsIHRoZSBvdGhlcnMgcmVuYW1lIHRoZXNlIHBsdWdpbnMgdG8gc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvY3VtZW50IGNvcmUgcGx1Z2lucyBpbiBhIHNlcGFyYXRlIGRvY3VtZW50IGp1c3QgbGlrZSBhbGwgdGhlCgkgIG90aGVycwoJICByZW5hbWUgdGhlc2UgcGx1Z2lucyB0byBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBjb3JlCgoyMDA1LTEyLTAxIDEyOjAwOjU2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuaCAoc3RydWN0IF9Hc3RFdmVudCk6IE1lYW50IHRvIHJlbW92ZSB0aGUgZXh0cmEgcGFkZGluZyBoZXJlIGJlZm9yZSwgYnV0IGl0IG1pc3NlZCB0aGUgY29tbWl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMi0wMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZXZlbnQuaCAoc3RydWN0IF9Hc3RFdmVudCk6IE1lYW50IHRvIHJlbW92ZSB0aGUgZXh0cmEKCSAgcGFkZGluZyBoZXJlIGJlZm9yZSwgYnV0IGl0IG1pc3NlZCB0aGUgY29tbWl0LgoKMjAwNS0xMi0wMSAxMDowNzoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSogd2luMzIvdnM2L2dzdHJlYW1lci5kc3c6CgkqIHdpbjMyL3ZzNi9saWJnc3Rjb250cm9sbGVyLmRzcDoKCSAgYWRkIGxpYmdzdGNvbnRyb2xsZXIgdG8gdGhlIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbGliZ3N0Y29udHJvbGxlciB0byB0aGUgYnVpbGQKCjIwMDUtMTItMDEgMDk6NTQ6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IHdoaXRlc3BhY2UgcHJpY2VzIGhhdmUgY3Jhc2hlZCwgd2Ugc2hvdWxkIGZlZWwgZnJlZSB0byB1c2Ugc29tZSBub3cgdXNlIGdzdF9nLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICB3aGl0ZXNwYWNlIHByaWNlcyBoYXZlIGNyYXNoZWQsIHdlIHNob3VsZCBmZWVsIGZyZWUgdG8gdXNlIHNvbWUgbm93CgkgIHVzZSBnc3RfZ3VpbnQ2NF90b19nZG91YmxlCgoyMDA1LTEyLTAxIDA5OjMyOjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgIGZpeCB0eXBvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdHlwbwoKMjAwNS0xMi0wMSAwOToyMzoyMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9saWIuYzoKCSAgd3JhcCBjb25maWcuaCBpbmNsdWRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3cmFwIGNvbmZpZy5oIGluY2x1ZGUKCjIwMDUtMTItMDEgMDI6MDg6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICB1cGRhdGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGRvY3MKCjIwMDUtMTItMDEgMDA6NTQ6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IG1vcmUgYW5hbCBjbGVhbnVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfX2Jhc2VfaW5pdCksCgkgIChnc3RfZmRfc2lua19fY2xhc3NfaW5pdCksIChnc3RfZmRfc2lua19faW5pdCksCgkgIChnc3RfZmRfc2lua19fY2hhaW4pLCAoZ3N0X2ZkX3NpbmtfX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmRfc2lua19fZ2V0X3Byb3BlcnR5KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKF9kb19pbml0KSwgKGdzdF9mZF9zcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCksIChnc3RfZmRfc3JjX2luaXQpLCAoZ3N0X2ZkX3NyY19kaXNwb3NlKSwKCSAgKGdzdF9mZF9zcmNfdXBkYXRlX2ZkKSwgKGdzdF9mZF9zcmNfc3RhcnQpLCAoZ3N0X2ZkX3NyY19zdG9wKSwKCSAgKGdzdF9mZF9zcmNfdW5sb2NrKSwgKGdzdF9mZF9zcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mZF9zcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9mZF9zcmNfY3JlYXRlKSwKCSAgKGdzdF9mZF9zcmNfaXNfc2Vla2FibGUpLCAoZ3N0X2ZkX3NyY19nZXRfc2l6ZSksCgkgIChnc3RfZmRfc3JjX3VyaV9nZXRfdHlwZSksIChnc3RfZmRfc3JjX3VyaV9nZXRfcHJvdG9jb2xzKSwKCSAgKGdzdF9mZF9zcmNfdXJpX2dldF91cmkpLCAoZ3N0X2ZkX3NyY191cmlfc2V0X3VyaSksCgkgIChnc3RfZmRfc3JjX3VyaV9oYW5kbGVyX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfZ2V0X3R5cGUpOgoJICBtb3JlIGFuYWwgY2xlYW51cAoKMjAwNS0xMS0zMCAxOTozNjo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBmaXggdGhlIGRvY3MgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB0aGUgZG9jcyBidWlsZAoKMjAwNS0xMS0zMCAxOTowMzo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgIGFkZCBuZXcgaW5wdXQgdHlwZXMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG5ldyBpbnB1dCB0eXBlcyBmaWxlCgoyMDA1LTExLTMwIDE5OjAxOjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHZhcmlvdXMgZml4ZXMgdG8gbWFrZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgICogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmM6CgkgICogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLmM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdG9vbHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICB2YXJpb3VzIGZpeGVzIHRvIG1ha2UKCSAgLS1kaXNhYmxlLW5scyAtLWRpc2FibGUtcmVnaXN0cnkgLS1kaXNhYmxlLWxvYWRzYXZlICAgICAgICAgICAtLWRpc2FibGUtcGFyc2UgLS1kaXNhYmxlLWdzdC1kZWJ1ZwoJICB3b3JrIGFuZCBnZXQgdGhlIGNvcmUgLnNvIGRvd24gdG8gMzYwNDQ0IGJ5dGVzIGFmdGVyIHN0cmlwcGluZwoKMjAwNS0xMS0zMCAxNzowNToyOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIG1vdmUgbG9jYXRpb24gb2YgdGVzdCByZWdpc3RyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW92ZSBsb2NhdGlvbiBvZiB0ZXN0IHJlZ2lzdHJ5CgoyMDA1LTExLTMwIDE2OjQ1OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMTEtMzAgMTY6NDU6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvbWlzYy9NYWtlZmlsZS5hbToKCSAgbWlzc2luZyBtYWtlZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWlzc2luZyBtYWtlZmlsZQoKMjAwNS0xMS0zMCAxNjo0MzoxNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBzY3JpcHRzL2N2cy11cGRhdGUuc2g6CgkgIHBydW5lIGVtcHR5IGRpcnMgd2hlbiB1cGRhdGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcHJ1bmUgZW1wdHkgZGlycyB3aGVuIHVwZGF0aW5nCgoyMDA1LTExLTMwIDE2OjQyOjI3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIERPQ0JVSUxESU5HOgoJKiBkb2NzL1JFQURNRToKCSAgcmVtb3ZlIGVtcHR5IGRpcnM7IG1vdmUgZG9jYnVpbGRpbmcgbm90ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBlbXB0eSBkaXJzOyBtb3ZlIGRvY2J1aWxkaW5nIG5vdGVzCgoyMDA1LTExLTMwIDE2OjM5OjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRlc2NlbmQgaW50byB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgKiBjb25maWd1cmUuYWM6CgkgIGRlc2NlbmQgaW50byB0ZXN0cwoJICAqIGRvY3MvcmFuZG9tL3Rob21hc3ZzL1RPRE86CgkgICogdGVzdHMvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvUkVBRE1FOgoJICBhZGQgYSBSRUFETUUKCjIwMDUtMTEtMzAgMTY6MzI6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvYmVuY2htYXJrcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTExLTMwIDE2OjMwOjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdXBkYXRlIFJFQURNRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIFJFQURNRQoKMjAwNS0xMS0zMCAxNjoyOToyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBkb24ndCBmYWlsIG9uIG1pc3NpbmcgcmVnaXN0cnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IGZhaWwgb24gbWlzc2luZyByZWdpc3RyeQoKMjAwNS0xMS0zMCAxNjoyODoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9SRUFETUUudHh0OgoJICBhZGQgYSBSRUFETUUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIFJFQURNRQoKMjAwNS0xMS0zMCAxNjoyNjozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHdpbjMyL0dTdHJlYW1lci52Y3Byb2o6CgkqIHdpbjMyL01BTklGRVNUOgoJKiB3aW4zMi9NYWtlZmlsZToKCSogd2luMzIvTWFrZWZpbGUuaW5zcGVjdDoKCSogd2luMzIvTWFrZWZpbGUubGF1bmNoOgoJKiB3aW4zMi9NYWtlZmlsZS5yZWdpc3RlcjoKCSogd2luMzIvUkVBRE1FLnR4dDoKCSogd2luMzIvZ3N0LWluc3BlY3QudmNwcm9qOgoJKiB3aW4zMi9nc3QtbGF1bmNoLnZjcHJvajoKCSogd2luMzIvZ3N0LXJlZ2lzdGVyLnZjcHJvajoKCSogd2luMzIvZ3N0ZWxlbWVudHMudmNwcm9qOgoJKiB3aW4zMi9nc3RnZXRiaXRzLmRlZjoKCSogd2luMzIvZ3N0Z2V0Yml0cy52Y3Byb2o6CgkqIHdpbjMyL2dzdHJlYW1lci1kYmcuZGVmOgoJKiB3aW4zMi9nc3RyZWFtZXIuZGVmOgoJKiB3aW4zMi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvbGliZ3N0YmFzZS52Y3Byb2o6CgkqIHdpbjMyL2xpbmtfb2xkcnVudGltZS5jOgoJKiB3aW4zMi9tbWFuLmM6CgkqIHdpbjMyL21tYW4uaDoKCSogd2luMzIvbW1hbi5pbmw6CgkqIHdpbjMyL21zdmM3MS5zbG46CgkgIG1vdmUgZXZlbiBtb3JlIHN0dWZmLCB3aW4zMi8gaXMgbmljZSBhbmQgY2xlYW4gbm93CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3ZlIGV2ZW4gbW9yZSBzdHVmZiwgd2luMzIvIGlzIG5pY2UgYW5kIGNsZWFuIG5vdwoKMjAwNS0xMS0zMCAxNjoxNzoyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvLmdpdGlnbm9yZToKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiB3aW4zMi9NQU5JRkVTVDoKCSogd2luMzIvY29uZmlnLmg6CgkqIHdpbjMyL2RpcmVudC5jOgoJKiB3aW4zMi9kaXJlbnQuaDoKCSogd2luMzIvZ3N0Ynl0ZXN0cmVhbS5kZWY6CgkqIHdpbjMyL2dzdGJ5dGVzdHJlYW0udmNwcm9qOgoJKiB3aW4zMi9nc3Rjb25maWcuaDoKCSogd2luMzIvZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9nc3RvcHRpbWFsc2NoZWR1bGVyLnZjcHJvajoKCSogd2luMzIvZ3N0dmVyc2lvbi5oOgoJKiB3aW4zMi9ndGNoYXIuaDoKCSogd2luMzIvdGVzdHN1aXRlL2JpbnMudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvYnl0ZXN0cmVhbS52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9jYXBzLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2NsZWFudXAudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvY2xvY2sudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvZGVidWcudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvZGxvcGVuLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2R5bnBhcmFtcy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9lbGVtZW50cy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9naG9zdHBhZHMudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvaW5kZXhlcnMudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvbmVnb3RpYXRpb24udmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvcGFyc2UudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvcGx1Z2luLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL3JlZmNvdW50aW5nLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL3NjaGVkdWxlcnMudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvc3RhdGVzLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL3RhZ3MudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvdGhyZWFkcy52Y3Byb2o6CgkgIHJlbW92ZSBvbGQgd2luMzIgc3R1ZmYgdGhhdCBpc24ndCBtYWludGFpbmVkIGFuZCBzaG91bGQgYmUgcmVvcmdhbml6ZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBvbGQgd2luMzIgc3R1ZmYgdGhhdCBpc24ndCBtYWludGFpbmVkIGFuZCBzaG91bGQgYmUKCSAgcmVvcmdhbml6ZWQKCjIwMDUtMTEtMzAgMTY6MTI6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9nc3QvZ2V0Yml0cy8uZ2l0aWdub3JlOgoJICByZW1vdmUgZ2V0Yml0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGdldGJpdHMKCjIwMDUtMTEtMzAgMTY6MTA6NTcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYyAoR1NUX1BLR19ERVBTKTogUmV2ZXJ0IHByZXZpb3VzIHBhdGNoLCBtYWtlcyBsb2FkaW5nIHRoZSBnc3QuaW50ZXJmYWNlcyBweXRob24gbW9kdWxlIGJvcmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTMwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNvbmZpZ3VyZS5hYyAoR1NUX1BLR19ERVBTKTogUmV2ZXJ0IHByZXZpb3VzIHBhdGNoLCBtYWtlcwoJICBsb2FkaW5nIHRoZSBnc3QuaW50ZXJmYWNlcyBweXRob24gbW9kdWxlIGJvcmsuCgkgICogY29uZmlndXJlLmFjIChHU1RfUEtHX0RFUFMpOiBVc2UgZ21vZHVsZS1uby1leHBvcnQtMi4wLnBjLAoJICBhdmFpbGFibGUgc2luY2UgR0xpYiAyLjIuIEZpeGVzICMzMTgwMzEuCgoyMDA1LTExLTMwIDE2OjA4OjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTWFrZWZpbGUuYW06CgkqIGNoZWNrLy5naXRpZ25vcmU6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiBjaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkqIGNoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkqIGNoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIGNoZWNrL2dlbmVyaWMvLmdpdGlnbm9yZToKCSogY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSogY2hlY2svZ3N0LWxpYnMvLmdpdGlnbm9yZToKCSogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOgoJKiBjaGVjay9nc3QtbGlicy9nZHAuYzoKCSogY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIGNoZWNrL2dzdC9jYXBzbGlzdC5oOgoJKiBjaGVjay9nc3QvZ3N0LmM6CgkqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSogY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiBjaGVjay9nc3QvZ3N0YnVzLmM6CgkqIGNoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIGNoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIGNoZWNrL2dzdC9nc3RldmVudC5jOgoJKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGNoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIGNoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGNoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSogY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiBjaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiBjaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGNoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBjaGVjay9nc3QvZ3N0dGFnLmM6CgkqIGNoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogY2hlY2svbmV0Ly5naXRpZ25vcmU6CgkqIGNoZWNrL25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBjaGVjay9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIGNoZWNrL3BpcGVsaW5lcy8uZ2l0aWdub3JlOgoJKiBjaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOgoJKiBjaGVjay9waXBlbGluZXMvc3RyZXNzLmM6CgkqIGNoZWNrL3N0YXRlcy8uZ2l0aWdub3JlOgoJKiBjaGVjay9zdGF0ZXMvc2lua3MuYzoKCSogY29uZmlndXJlLmFjOgoJKiBleGFtcGxlcy9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvYXBwcmVhZGVyLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL2FwcHJlYWRlci9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvYXBwcmVhZGVyL2FwcHJlYWRlci5jOgoJKiBleGFtcGxlcy9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiBleGFtcGxlcy9jdXR0ZXIvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvY3V0dGVyL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9jdXR0ZXIvY3V0dGVyLmM6CgkqIGV4YW1wbGVzL2N1dHRlci9jdXR0ZXIuaDoKCSogZXhhbXBsZXMvZXZlbnRzL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9ldmVudHMvc2Vlay5jOgoJKiBleGFtcGxlcy9oZWxsb3dvcmxkLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL2hlbGxvd29ybGQvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOgoJKiBleGFtcGxlcy9oZWxsb3dvcmxkMi8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9oZWxsb3dvcmxkMi9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvaGVsbG93b3JsZDIvaGVsbG93b3JsZDIuYzoKCSogZXhhbXBsZXMvbGF1bmNoLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL2xhdW5jaC9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvbGF1bmNoL21wM3BhcnNlbGF1bmNoLmM6CgkqIGV4YW1wbGVzL2xhdW5jaC9tcDNwbGF5OgoJKiBleGFtcGxlcy9tYW51YWwvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9tYW51YWwvZXh0cmFjdC5wbDoKCSogZXhhbXBsZXMvbWV0YWRhdGEvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzoKCSogZXhhbXBsZXMvbWl4ZXIvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvbWl4ZXIvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL21peGVyL21peGVyLmM6CgkqIGV4YW1wbGVzL21peGVyL21peGVyLmg6CgkqIGV4YW1wbGVzL3Bpbmdwb25nLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3Bpbmdwb25nL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9waW5ncG9uZy9waW5ncG9uZy5jOgoJKiBleGFtcGxlcy9wbHVnaW5zLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5jOgoJKiBleGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuaDoKCSogZXhhbXBsZXMvcHdnLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3B3Zy9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvcHdnL2V4dHJhY3QucGw6CgkqIGV4YW1wbGVzL3F1ZXVlLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3F1ZXVlL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9xdWV1ZS9xdWV1ZS5jOgoJKiBleGFtcGxlcy9xdWV1ZTIvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvcXVldWUyL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9xdWV1ZTIvcXVldWUyLmM6CgkqIGV4YW1wbGVzL3F1ZXVlMy8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9xdWV1ZTMvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3F1ZXVlMy9xdWV1ZTMuYzoKCSogZXhhbXBsZXMvcXVldWU0Ly5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3F1ZXVlNC9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvcXVldWU0L3F1ZXVlNC5jOgoJKiBleGFtcGxlcy9yZXRhZy8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9yZXRhZy9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvcmV0YWcvcmV0YWcuYzoKCSogZXhhbXBsZXMvcmV0YWcvdHJhbnNjb2RlLmM6CgkqIGV4YW1wbGVzL3RocmVhZC8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy90aHJlYWQvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3RocmVhZC90aHJlYWQuYzoKCSogZXhhbXBsZXMvdHlwZWZpbmQvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvdHlwZWZpbmQvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3R5cGVmaW5kL3R5cGVmaW5kLmM6CgkqIGV4YW1wbGVzL3htbC8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy94bWwvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3htbC9jcmVhdGV4bWwuYzoKCSogZXhhbXBsZXMveG1sL3J1bnhtbC5jOgoJKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9SdWxlczoKCSogdGVzdHN1aXRlL2NhcHMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2NhcHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9jYXBzL2FwcF9maXhhdGUuYzoKCSogdGVzdHN1aXRlL2NhcHMvYXVkaW9zY2FsZS5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9jYXBzLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2NhcHMuaDoKCSogdGVzdHN1aXRlL2NhcHMvY2Fwc19zdHJpbmdzOgoJKiB0ZXN0c3VpdGUvY2Fwcy9jb21wYXRpYmlsaXR5LmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2Rlc2VyaWFsaXplLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2VudW1jYXBzLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2VyYXRvc3RoZW5lcy5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9maWx0ZXJjYXBzLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2ZpeGVkLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2ZyYWN0aW9uLWNvbnZlcnQuYzoKCSogdGVzdHN1aXRlL2NhcHMvZnJhY3Rpb24tbXVsdGlwbHktYW5kLXplcm8uYzoKCSogdGVzdHN1aXRlL2NhcHMvaW50ZXJzZWN0Mi5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9pbnRlcnNlY3Rpb24uYzoKCSogdGVzdHN1aXRlL2NhcHMvbm9ybWFsaXNhdGlvbi5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9yYW5kb20uYzoKCSogdGVzdHN1aXRlL2NhcHMvcmVuZWdvdGlhdGUuYzoKCSogdGVzdHN1aXRlL2NhcHMvc2V0cy5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9zaW1wbGlmeS5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9zdHJpbmctY29udmVyc2lvbnMuYzoKCSogdGVzdHN1aXRlL2NhcHMvc3RydWN0dXJlLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3N1YnRyYWN0LmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3VuaW9uLmM6CgkqIHRlc3RzdWl0ZS9kZWJ1Zy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvZGVidWcvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9kZWJ1Zy9jYXRlZ29yeS5jOgoJKiB0ZXN0c3VpdGUvZGVidWcvY29tbWFuZGxpbmUuYzoKCSogdGVzdHN1aXRlL2RlYnVnL2dsb2JhbC5jOgoJKiB0ZXN0c3VpdGUvZGVidWcvb3V0cHV0LmM6CgkqIHRlc3RzdWl0ZS9kZWJ1Zy9wcmludGZfZXh0ZW5zaW9uLmM6CgkqIHRlc3RzdWl0ZS9kbG9wZW4vLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2Rsb3Blbi9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2Rsb3Blbi9kbG9wZW5fZ3N0LmM6CgkqIHRlc3RzdWl0ZS9kbG9wZW4vbG9hZGdzdC5jOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvZ3N0LWluc3BlY3QtY2hlY2suaW46CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvc3RydWN0X3NpemUuYzoKCSogdGVzdHN1aXRlL2luZGV4ZXJzLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9pbmRleGVycy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2luZGV4ZXJzL2NhY2hlMS5jOgoJKiB0ZXN0c3VpdGUvaW5kZXhlcnMvaW5kZXhkdW1wLmM6CgkqIHRlc3RzdWl0ZS9wYXJzZS8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvcGFyc2UvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9wYXJzZS9wYXJzZTEuYzoKCSogdGVzdHN1aXRlL3BhcnNlL3BhcnNlMi5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9wbHVnaW4vUkVBRE1FOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL2R5bmFtaWMuYzoKCSogdGVzdHN1aXRlL3BsdWdpbi9saW5rZWQuYzoKCSogdGVzdHN1aXRlL3BsdWdpbi9sb2FkaW5nLmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vcmVnaXN0cnkuYzoKCSogdGVzdHN1aXRlL3BsdWdpbi9zdGF0aWMuYzoKCSogdGVzdHN1aXRlL3BsdWdpbi9zdGF0aWMyLmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vdGVzdHBsdWdpbi5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL3Rlc3RwbHVnaW4yLmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vdGVzdHBsdWdpbjJfcy5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL3Rlc3RwbHVnaW5fcy5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvYmluLmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9lbGVtZW50LmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9lbGVtZW50X3BhZC5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvbWFpbmxvb3AuYzoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL21lbS5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvbWVtLmg6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9vYmplY3QuYzoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL3BhZC5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvc2NoZWQuYzoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL3RocmVhZC5jOgoJKiB0ZXN0c3VpdGUvc3RhdGVzLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9zdGF0ZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9zdGF0ZXMvYmluLmM6CgkqIHRlc3RzdWl0ZS9zdGF0ZXMvbG9ja2VkLmM6CgkqIHRlc3RzdWl0ZS9zdGF0ZXMvcGFyZW50LmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS90aHJlYWRzLzE1OTU2Ni5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy8xNTk4NTIuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3F1ZXVlLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3NpZ25hbHMuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvc3RhdGljcmVjLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3RocmVhZC5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRiLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGMuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkZC5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRlLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGYuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkZy5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRoLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGkuYzoKCSAgbW92ZSBhbGwgb2YgdGhlc2UgdW5kZXIgdGVzdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vdmUgYWxsIG9mIHRoZXNlIHVuZGVyIHRlc3RzCgoyMDA1LTExLTMwIDE1OjM3OjM2ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIGFmdGVyIHRob21hcydzIENWUyBzdXJnZXJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgYWZ0ZXIgdGhvbWFzJ3MgQ1ZTIHN1cmdlcnkKCjIwMDUtMTEtMzAgMTU6MzQ6MzcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvYmVuY2htYXJrcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJICBhZGQgTWFrZWZpbGUuYW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBNYWtlZmlsZS5hbQoKMjAwNS0xMS0zMCAxNToyOTowNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBmaXggZGlzdGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgZml4IGRpc3RjaGVjawoKMjAwNS0xMS0zMCAxNToyMDoyOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvZGVzZXJpYWxpemUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2ludGVyc2VjdGlvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvdW5pb24uYzoKCSogdGVzdHN1aXRlL2NhcHMvZGVzZXJpYWxpemUuYzoKCSogdGVzdHN1aXRlL2NhcHMvaW50ZXJzZWN0aW9uLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3VuaW9uLmM6CgkgIGNvbXBpbGUgd2FybmluZyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29tcGlsZSB3YXJuaW5nIGZpeGVzCgoyMDA1LTExLTMwIDEzOjI4OjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvZ3N0LWNvbXBwcmVwLWNoZWNrLmluOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9nc3QtY29tcHByZXAtY2hlY2suaW46CgkgIHJlbW92ZSBjb21wcHJlcAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGNvbXBwcmVwCgoyMDA1LTExLTMwIDEzOjI1OjA1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjb25maWd1cmUuYWMgKEdTVF9QS0dfREVQUyk6IFVzZSBnbW9kdWxlLW5vLWV4cG9ydC0yLjAucGMsIGF2YWlsYWJsZSBzaW5jZSBHTGliIDIuMi4gRml4ZXMgIzMxODAzMS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMzAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY29uZmlndXJlLmFjIChHU1RfUEtHX0RFUFMpOiBVc2UgZ21vZHVsZS1uby1leHBvcnQtMi4wLnBjLAoJICBhdmFpbGFibGUgc2luY2UgR0xpYiAyLjIuIEZpeGVzICMzMTgwMzEuCgoyMDA1LTExLTMwIDEzOjA4OjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIEZpcnN0IHBhc3MgYXQgY2xlYW5pbmcgdXAgdGVzdHMvIGRpciBiZWZvcmUgbW92aW5nIHRoZSByZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB0ZXN0cy9iZW5jaC1jb21wbGV4aXR5LnNjbToKCSAgKiB0ZXN0cy9iZW5jaC1tYXNzX2VsZW1lbnRzLnNjbToKCSAgKiB0ZXN0cy9jb21wbGV4aXR5LmM6CgkgICogdGVzdHMvY29tcGxleGl0eS5nbnVwbG90OgoJICAqIHRlc3RzL2luc3RhbnRpYXRlLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvaW5zdGFudGlhdGUvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvaW5zdGFudGlhdGUvY2Fwcy5jOgoJICAqIHRlc3RzL21hc3NfZWxlbWVudHMuYzoKCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLXV0aWxzLnNjbToKCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbToKCSAgKiB0ZXN0cy9wbG90LWRhdGE6CgkgIEZpcnN0IHBhc3MgYXQgY2xlYW5pbmcgdXAgdGVzdHMvIGRpciBiZWZvcmUgbW92aW5nIHRoZSByZXN0CgkgIENvbWJpbmVkIHdpdGggQ1ZTIHN1cmdlcnkKCjIwMDUtMTEtMzAgMTM6MDc6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgbW92ZSBpbmNsdWRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW92ZSBpbmNsdWRlcwoKMjAwNS0xMS0zMCAxMTo1NTozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHJlbW92ZSBub3J3ZWdpYW5pc20KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBub3J3ZWdpYW5pc20KCjIwMDUtMTEtMzAgMTA6NTA6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogTWFrZWZpbGUuYW06CgkgIG1ha2Ugbm90IGhhdmluZyBjaGVjayBub24tZmF0YWwgZm9yIGV4dHJhIHRhcmdldHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1ha2Ugbm90IGhhdmluZyBjaGVjayBub24tZmF0YWwgZm9yIGV4dHJhIHRhcmdldHMKCjIwMDUtMTEtMzAgMTA6MTU6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vUE9URklMRVMuaW46IHF1ZXVlIGhhcyBtb3ZlZCwgdXBkYXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL1BPVEZJTEVTLmluOgoJICBxdWV1ZSBoYXMgbW92ZWQsIHVwZGF0ZQoKMjAwNS0xMS0zMCAxMDoxMzo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2luc3BlY3QuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2xhdW5jaC5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RiYXNlLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGVsZW1lbnRzLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgIGFkZCBzb21lIGV4cGxpY2l0IGNhc3RzIHVwZGF0ZSBkc3AgZmlsZXM7IGFsc28gaW5zdGFsbHMgdGhlIGRlYnVnIGJ1aWxkIGluIFxnc3RyZWFtZXJcZGVidWcgdG8gc2VwYXJhdGUgaXQgZnJvbSB0aGUgbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHNvbWUgZXhwbGljaXQgY2FzdHMKCSAgdXBkYXRlIGRzcCBmaWxlczsgYWxzbyBpbnN0YWxscyB0aGUgZGVidWcgYnVpbGQgaW4gXGdzdHJlYW1lclxkZWJ1ZyB0byBzZXBhcmF0ZSBpdCBmcm9tIHRoZSBub24tZGVidWcgYnVpbGQKCjIwMDUtMTEtMzAgMTA6MDM6NDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBtb3JlIHN5bWJvbHMgdG8gZGVmIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIHN5bWJvbHMgdG8gZGVmIGZpbGUKCjIwMDUtMTEtMzAgMDk6NTk6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogcmVtb3ZlIGRvdWJsZSBlbnRyaWVzIGZyb20gdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgcmVtb3ZlIGRvdWJsZSBlbnRyaWVzIGZyb20gdGhlIGRvY3MKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX2dzdF9kZWJ1Z19pbml0KToKCSAgcmVtb3ZlIHRoZSBUSFJFQUQgZGVidWcgY2F0ZWdvcnkKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdHF1ZXVlLmM6CgkgICogZ3N0L2dzdHF1ZXVlLmg6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9nZXRfdHlwZSksCgkgIChnc3RfcXVldWVfaW5pdCksIChnc3RfcXVldWVfZmluYWxpemUpLCAoZ3N0X3F1ZXVlX2NoYW5nZV9zdGF0ZSk6CgkgIGNvbXBsZXRlbHkgbW92ZSBxdWV1ZSBhbmQgZml4IHVwIGRlYnVnZ2luZyBjYXRlZ29yaWVzCgoyMDA1LTExLTMwIDA5OjM4OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogbWFrZSBpbml0aWFsaXphdGlvbiBwb3J0YWJsZSwgdXNpbmcgTEwgaXMgbm90CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBtYWtlIGluaXRpYWxpemF0aW9uIHBvcnRhYmxlLCB1c2luZyBMTCBpcyBub3QKCjIwMDUtMTEtMzAgMDk6MzY6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBtb3JlIHN5bWJvbHMgdG8gZGVmIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIHN5bWJvbHMgdG8gZGVmIGZpbGUKCjIwMDUtMTEtMzAgMDk6MzA6NTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZCBtb3JlIHN5bWJvbHMgdG8gZGVmIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIHN5bWJvbHMgdG8gZGVmIGZpbGUKCjIwMDUtMTEtMzAgMDk6Mjc6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOiBhZGQgbGFyZ2UgcGFkZGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkgIGFkZCBsYXJnZSBwYWRkaW5nCgoyMDA1LTExLTMwIDA5OjIyOjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiByZW5hbWUgc3ltYm9sczsgc29ydCBiYXNlIHNlY3Rpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlbmFtZSBzeW1ib2xzOyBzb3J0IGJhc2Ugc2VjdGlvbgoKMjAwNS0xMS0zMCAwOToxODoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Y2xvY2suYzogcmVtb3ZlIGNyYWNrIG5vbi1wb3J0YWJsZSBoYW5kcm9sbGVkIERFQlVHIG1hY3JvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTMwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pOgoJICByZW1vdmUgY3JhY2sgbm9uLXBvcnRhYmxlIGhhbmRyb2xsZWQgREVCVUcgbWFjcm8KCjIwMDUtMTEtMzAgMDk6MTI6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgdXBkYXRlIHZpc3VhbCBzdHVkaW8gZ2VuZXJhdGVkIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgdmlzdWFsIHN0dWRpbyBnZW5lcmF0ZWQgZmlsZXMKCjIwMDUtMTEtMzAgMDg6NTY6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgd2luMzIvdnM2LzogdXBkYXRlIHByb2plY3QgZmlsZXMgZm9yIG5ldyBsb2NhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RlbGVtZW50cy5kc3A6CgkgIHVwZGF0ZSBwcm9qZWN0IGZpbGVzIGZvciBuZXcgbG9jYXRpb25zCgoyMDA1LTExLTMwIDA4OjUyOjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIE1ha2VmaWxlLmFtOiByZW1vdmUgc29tZSBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgcmVtb3ZlIHNvbWUgZmlsZXMKCSAgKiBSRUFETUU6CgkgIHJlaW5zdGF0ZSBhbmQgdXBkYXRlCgkgICogREVWRUw6CgkgICogUkVRVUlSRU1FTlRTOgoJICByZW1vdmVkCgkgICogTElDRU5TRToKCSAgKiBkb2NzL3JhbmRvbS9MSUNFTlNFOgoJICBtb3ZlZCB0byByYW5kb20KCjIwMDUtMTEtMzAgMDg6MzY6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICBwdXQgdGhlIFJFQURNRSBiYWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwdXQgdGhlIFJFQURNRSBiYWNrCgoyMDA1LTExLTMwIDA4OjMzOjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFRPRE86CgkgIGNsZWFuIHVwIFRPRE8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNsZWFuIHVwIFRPRE8KCjIwMDUtMTEtMzAgMDg6Mjk6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9leHQvTWFrZWZpbGUuYW06CgkgIHJlbW92aW5nIGV4dCwgd2FzIG5vdCB1c2VkIGFueW1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92aW5nIGV4dCwgd2FzIG5vdCB1c2VkIGFueW1vcmUKCjIwMDUtMTEtMjkgMjM6NTY6MjAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvOiBGaXggbWVtb3J5IGxlYWsgaW4gR3N0VHlwZUZpbmRGYWN0b3J5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzogKGdzdF90eXBlX2ZpbmRfcmVnaXN0ZXIpOgoJICAqIGdzdC9nc3R0eXBlZmluZC5oOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzogKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9pbml0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9kaXNwb3NlKToKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgkgIEZpeCBtZW1vcnkgbGVhayBpbiBHc3RUeXBlRmluZEZhY3RvcnkuCgoyMDA1LTExLTI5IDIwOjE2OjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgdXBkYXRlZCB0cmFuc2xhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZWQgdHJhbnNsYXRpb25zCgoyMDA1LTExLTI5IDE5OjQ3OjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIG1vdmUgcXVldWUgZnJvbSBjb3JlIHRvIHRoZSBlbGVtZW50cyBwbHVnaW4gw6cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgbW92ZSBxdWV1ZSBmcm9tIGNvcmUgdG8gdGhlIGVsZW1lbnRzIHBsdWdpbgoJICDDpwoKMjAwNS0xMS0yOSAxOTo0NDo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJICB1cGRhdGUgdW5pbnN0YWxsZWQgcGMgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB1bmluc3RhbGxlZCBwYyBmaWxlcwoKMjAwNS0xMS0yOSAxOTozNzo0OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvYmFzZS86IGVuLUxBUkdFIHRoZSBwYWRkaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6IGVuLUxBUkdFIHRoZSBwYWRkaW5nLgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbiAoR1NUX1BBRERJTkdfTEFSR0UpOiBOZXcgZGVmaW5lLCB0aGUgbnVtYmVyCgkgIG9mIHBvaW50ZXJzIGJ5IHdoaWNoIHRvIHBhZCB2ZXJ5IGV4dGVuc2libGUgYmFzZSBjbGFzc2VzIChsaWtlIHRoZQoJICBvbmVzIGluIGxpYnMvZ3N0L2Jhc2UpLgoKMjAwNS0xMS0yOSAxOTozNDoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzLzogbW92aW5nIGRvY3VtZW50YXRpb24gZnJvbSBjb3JlIHRvIGxpYgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBtb3ZpbmcgZG9jdW1lbnRhdGlvbiBmcm9tIGNvcmUgdG8gbGliCgoyMDA1LTExLTI5IDE5OjEyOjMwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2Jhc2UvLmdpdGlnbm9yZToKCSogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGdzdC9iYXNlL1JFQURNRToKCSogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkqIGdzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGdzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBnc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBnc3QvbmV0L2dzdG5ldC5oOgoJKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkqIGdzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJKiBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwby9QT1RGSUxFUy5pbjoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIENWUyBzdXJnZXJ5ICsgc3VwcG9ydCB0byBtb3ZlIGJhc2UsIGNoZWNrLCBhbmQgbmV0IG91dCBvZiBnc3QgYW5kIGludG8gbGlicy9nc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENWUyBzdXJnZXJ5ICsgc3VwcG9ydCB0byBtb3ZlIGJhc2UsIGNoZWNrLCBhbmQgbmV0IG91dCBvZiBnc3QKCSAgYW5kIGludG8gbGlicy9nc3QKCjIwMDUtMTEtMjkgMTg6NTc6NTkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RldmVudC5oIChzdHJ1Y3QgX0dzdEV2ZW50KTogT25seSBvbmUgcG9pbnRlciBvZiBwYWRkaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZXZlbnQuaCAoc3RydWN0IF9Hc3RFdmVudCk6IE9ubHkgb25lIHBvaW50ZXIgb2YgcGFkZGluZy4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmggKHN0cnVjdCBfR3N0U3RydWN0dXJlKTogT25seSBvbmUgcG9pbnRlciBvZgoJICBwYWRkaW5nLgoJICAqIGdzdC9nc3RxdWVyeS5oIChzdHJ1Y3QgX0dzdFF1ZXJ5KTogT25seSBvbmUgcG9pbnRlciBvZiBwYWRkaW5nLgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6IFJlbW92ZSBhIGNvbW1lbnQgaW4gUGx1Z2luRmVhdHVyZS4KCSAgKiBnc3QvZ3N0cGx1Z2luLmggKHN0cnVjdCBfR3N0UGx1Z2luQ2xhc3MpOiBBZGQgc29tZSBwYWRkaW5nLgoJICAqIGdzdC9nc3RvYmplY3QuaDogKHN0cnVjdCBfR3N0T2JqZWN0KTogT25seSBvbmUgcG9pbnRlciBvZgoJICBwYWRkaW5nOyByZWR1Y2VzIG9iamVjdCBzaXplIGJ5IGFib3V0IDMwJS4gV2UgZG9uJ3QgZXhwZWN0CgkgIGFueXRoaW5nIGVsc2UgdG8gZ28gaW50byBnc3RvYmplY3QuCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaCAoc3RydWN0IF9Hc3RNaW5pT2JqZWN0KQoJICAoc3RydWN0IF9Hc3RNaW5pT2JqZWN0Q2xhc3MpOiBPbmx5IG9uZSBwb2ludGVyIG9mIHBhZGRpbmc7IHRoZQoJICBwYXlsb2FkIGlzIG9ubHkgYSBwb2ludGVyIGFuZCB0d28gaW50cyBhbnl3YXkuIEZvciB0aGUgY2xhc3MgdGhlcmUKCSAgYXJlIG9ubHkgdHdvIG1ldGhvZHMgYXMgd2VsbC4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5oIChzdHJ1Y3QgX0dzdEVsZW1lbnRDbGFzcyk6IFJlbW92ZWQKCSAgdGhlIHN0YXRlX2NoYW5nZWQgc2lnbmFsIGNhbGxiYWNrLCBpdCBpcyBub3QgdXNlZC4KCjIwMDUtMTEtMjkgMTg6NDk6MTkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGNvbXBvbmVudHMvYm9ub2JvLWdzdG1lZGlhcGxheS8uZ2l0aWdub3JlOgoJKiBjb21wb25lbnRzL2Jvbm9iby1nc3RtZWRpYXBsYXkvTWFrZWZpbGUuYW06CgkqIGNvbXBvbmVudHMvYm9ub2JvLWdzdG1lZGlhcGxheS9ib25vYm8tZ3N0bWVkaWFwbGF5LXVpLnhtbDoKCSogY29tcG9uZW50cy9ib25vYm8tZ3N0bWVkaWFwbGF5L2Jvbm9iby1nc3RtZWRpYXBsYXkuYzoKCSogY29tcG9uZW50cy9ib25vYm8tZ3N0bWVkaWFwbGF5L2dzdG1lZGlhcGxheS5vYWZpbmZvOgoJKiBjb21wb25lbnRzL2Jvbm9iby1tZWRpYS9NYWtlZmlsZS5hbToKCSogY29tcG9uZW50cy9ib25vYm8tbWVkaWEvYm9ub2JvLW1lZGlhLWdzdHJlYW1lci1mYWN0b3J5LmM6CgkqIGNvbXBvbmVudHMvYm9ub2JvLW1lZGlhL2Jvbm9iby1tZWRpYS1nc3RyZWFtZXIuZ29iOgoJKiBjb21wb25lbnRzL2Jvbm9iby1tZWRpYS9ib25vYm8tbWVkaWEtZ3N0cmVhbWVyLm9hZmluZm86CgkqIGNvbXBvbmVudHMvYm9ub2JvLW1lZGlhL2Jvbm9iby1tZWRpYS1nc3RyZWFtZXJ2aWRlby5nb2I6CgkgIHdoYWNrIGEgbW9sZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hhY2sgYSBtb2xlCgoyMDA1LTExLTI5IDE4OjM4OjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL1BPVEZJTEVTLmluOgoJICB0aGVzZSBmaWxlcyB3ZXJlIG1vdmVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0aGVzZSBmaWxlcyB3ZXJlIG1vdmVkCgoyMDA1LTExLTI5IDE4OjIxOjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczogZml4IGluY2x1ZGVzLCB0aG91Z2ggdGhleSBhcmUgYSBsaXR0bGUgZGlua3kKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICBmaXggaW5jbHVkZXMsIHRob3VnaCB0aGV5IGFyZSBhIGxpdHRsZSBkaW5reQoKMjAwNS0xMS0yOSAxODoxNDozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogbG9vayBpbiB0aGUgcmlnaHQgcGxhY2UgZm9yIGVsZW1lbnRzLCBhIGxvdCBtb3JlIGNoYW5jZSBvZiBzdWNjZXNzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBsb29rIGluIHRoZSByaWdodCBwbGFjZSBmb3IgZWxlbWVudHMsIGEgbG90IG1vcmUgY2hhbmNlIG9mCgkgIHN1Y2Nlc3MKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgIHJlbW92ZSBpbmRleGVycyBhbmQgZWxlbWVudHMgc3ViZGlycwoJICAqIHBsdWdpbnMvTWFrZWZpbGUuYW06CgkgIG1ha2UgaW5kZXhlcnMgY29uZGl0aW9uYWwKCjIwMDUtMTEtMjkgMTg6MDg6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgYWRkIG1pc3NpbmcgTWFrZWZpbGUuYW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtaXNzaW5nIE1ha2VmaWxlLmFtCgoyMDA1LTExLTI5IDE4OjA0OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICBmaXggZG9jIGJ1aWxkIGZvciBzdHVmZiBtb3ZlZCBhcm91bmQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkb2MgYnVpbGQgZm9yIHN0dWZmIG1vdmVkIGFyb3VuZAoKMjAwNS0xMS0yOSAxODowMzo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZWxlbWVudHMvLmdpdGlnbm9yZToKCSogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBnc3QvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc2luay5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkqIGdzdC9pbmRleGVycy8uZ2l0aWdub3JlOgoJKiBnc3QvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkqIGdzdC9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSogZ3N0L2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6CgkqIGdzdC9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICByZW1vdmUgbW92ZWQgZGlycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG1vdmVkIGRpcnMKCjIwMDUtMTEtMjkgMTg6MDI6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3JlZ2lzdHJpZXMvLmdpdGlnbm9yZToKCSogZ3N0L3NjaGVkdWxlcnMvLmdpdGlnbm9yZToKCSAgcmVtb3ZlIGVtcHR5IGRpcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBlbXB0eSBkaXJzCgoyMDA1LTExLTI5IDE4OjAwOjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvIENWUyBzdXJnZXJ5IGFuZCByZWxhdGVkIGJ1aWxkIGZpeGVyeSB0byBtb3ZlIGVsZW1lbnRzIGFuZCBpbmRleGVycyBpbiBhIG5ldyBnc3RyZWFtZXIvcGx1Z2lucyBkaXJlY3RvcnksIG91dCBvZiB0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgKiBjb25maWd1cmUuYWM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkgIGRvIENWUyBzdXJnZXJ5IGFuZCByZWxhdGVkIGJ1aWxkIGZpeGVyeSB0byBtb3ZlIGVsZW1lbnRzCgkgIGFuZCBpbmRleGVycyBpbiBhIG5ldyBnc3RyZWFtZXIvcGx1Z2lucyBkaXJlY3RvcnksIG91dCBvZiB0aGUKCSAgZ3N0LyBkaXJlY3RvcnkKCjIwMDUtMTEtMjkgMTc6NDc6MDYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIFJlbmFtZSBnc3RuZXQtdGVtcG5hbWUgdG8gZ3N0bmV0LiBGaXhlcyAjMzIyMjU3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC5wYy5pbjoKCSAgKiBnc3QvbmV0L01ha2VmaWxlLmFtOiBSZW5hbWUgZ3N0bmV0LXRlbXBuYW1lIHRvIGdzdG5ldC4gRml4ZXMKCSAgIzMyMjI1Ny4KCjIwMDUtMTEtMjkgMTc6MzU6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTExLTI5IDE3OjMzOjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICByZW1vdmUgc29tZSBtb3JlIGNvbXBsZXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgc29tZSBtb3JlIGNvbXBsZXRlCgoyMDA1LTExLTI5IDE3OjMyOjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRvb2xzLzogcmVtb3ZpbmcgLWNvbXBwcmVwIGFuZCAtY29tcGxldGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvZ3N0LWNvbXBsZXRlLjEuaW46CgkgICogdG9vbHMvZ3N0LWNvbXBsZXRlLmM6CgkgICogdG9vbHMvZ3N0LWNvbXBwcmVwLjEuaW46CgkgICogdG9vbHMvZ3N0LWNvbXBwcmVwLmM6CgkgIHJlbW92aW5nIC1jb21wcHJlcCBhbmQgLWNvbXBsZXRlCgoyMDA1LTExLTI5IDE3OjIzOjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RldmVudC4qOiBmaXggIzMyMDUyOSAtIGNsZWFuIHVwIG5ld19zZWdtZW50IEFQSSBhbmQgc3RydWN0dXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3X3NlZ21lbnQpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX25ld19zZWdtZW50KToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZml4ICMzMjA1MjkgLSBjbGVhbiB1cCBuZXdfc2VnbWVudCBBUEkgYW5kIHN0cnVjdHVyZS4KCSAgTGV0J3MgaG9wZSBldmVyeW9uZSB3YXMgdXNpbmcgdGhlIG1ldGhvZHMsIGFuZCBub3QgdGhlIHN0cnVjdHVyZS4KCjIwMDUtMTEtMjkgMTc6MTM6NDQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBQcm9wZXJseSBoYW5kbGUgbm9uIEdTVF9GT1JNQVRfVElNRSBzZWdtZW50CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgUHJvcGVybHkgaGFuZGxlIG5vbiBHU1RfRk9STUFUX1RJTUUgc2VnbWVudAoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIFByb3Blcmx5IGhhbmRsZSBub24gR1NUX0ZPUk1BVF9USU1FIHNlZ21lbnQKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBUaGlzIGZ1bmN0aW9uIGlzIHZhbGlkIGlmIHRoZSBhY2N1bXVsYXRvciBpcyAwIGFuZCB0aGUgZm9ybWF0CgkgIGlzIGRpZmZlcmVudCBmcm9tIHRoZSByZXF1ZXN0ZWQgZm9ybWF0LgoKMjAwNS0xMS0yOSAxNTo1MDo1MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgZ3N0X3F1ZXJ5X25ld19zZWVraW5nIGFuZCBnc3RfcXVlcnlfcGFyc2Vfc2Vla2luZyB0byB0aGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIGdzdF9xdWVyeV9uZXdfc2Vla2luZyBhbmQgZ3N0X3F1ZXJ5X3BhcnNlX3NlZWtpbmcgdG8gdGhlCgkgIGRvY3MuCgoyMDA1LTExLTI5IDE1OjE1OjM4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgRml4IGNvbmZsaWN0IG1hcmtlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRml4IGNvbmZsaWN0IG1hcmtlcgoKMjAwNS0xMS0yOSAxNToxMjoyMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFRyZWF0IGEgcGFkIGFsbG9jIHdpdGggbmV3IGNhcHMgdGhlIHNhbWUgYXMgaWYgd2Ugd2VyZSBub3QgbmVnb3RpYXRlZCwgaW4gb3JkZXIgdG8gYWxsb3cuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIFRyZWF0IGEgcGFkIGFsbG9jIHdpdGggbmV3IGNhcHMgdGhlIHNhbWUgYXMgaWYgd2Ugd2VyZSBub3QKCSAgbmVnb3RpYXRlZCwgaW4gb3JkZXIgdG8gYWxsb3cgYSBjaGFuZ2luZyB1cHN0cmVhbSBvdXRwdXQKCSAgdG8gcHJvZHVjZSBhIG5ldyBmb3JtYXQgb2YgZGF0YS4KCjIwMDUtMTEtMjkgMTQ6NDc6MDcgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFRoZSBldmVudCB2aXJ0dWFsIG1ldGhvZCBpcyBub3cgcHJvcGVybHkgaW1wbGVtZW50ZWQsIHdpdGggYSBkZWZhdWx0IGhhbmRsZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudGZ1bmMpOgoJICBUaGUgZXZlbnQgdmlydHVhbCBtZXRob2QgaXMgbm93IHByb3Blcmx5IGltcGxlbWVudGVkLCB3aXRoIGEgZGVmYXVsdAoJICBoYW5kbGVyCgkgIFN1YiBjbGFzc2VzIHNob3VsZCBjYWxsIHRoZSBwYXJlbnRfY2xhc3MgZXZlbnQgbWV0aG9kLiBUaGV5IHNob3VsZAoJICByZXR1cm4gRkFMU0UgaWYgdGhleSBoYWQgYSBwcm9ibGVtIGhhbmRsaW5nIHRoZSBnaXZlbiBldmVudCwgb3IgZG9uJ3QKCSAgd2FudCBHc3RCYXNlVHJhbnNmb3JtIHRvIHNlbmQgdGhhdCBldmVuIGRvd25zdHJlYW0KCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KSwKCSAgKGdzdF9pZGVudGl0eV9pbml0KSwgKGdzdF9pZGVudGl0eV9ldmVudCksCgkgIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKSwgKGdzdF9pZGVudGl0eV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lkZW50aXR5X2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIEFkZGVkIHRoZSBzaW5nbGUtc2VnbWVudCBib29sZWFuIHByb3BlcnR5LgoJICBJZiBzZXQgdG8gVFJVRSwgaXQgd2lsbCBvdXRwdXQgYSBzaW5nbGUgc2VnbWVudCBvZiBkYXRhLCBzdGFydGluZyBmcm9tCgkgIDAsIHdpbGwgZWF0IHVwIGFsbCBpbmNvbWluZyBuZXdzZWdtZW50LCBhbmQgbW9kaWZ5IHRoZSB0aW1lc3RhbXAgb2YgdGhlCgkgIGJ1ZmZlcnMgYWNjb3JkaW5nbHkKCjIwMDUtMTEtMjkgMTQ6NDM6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vdGhvbWFzdnMvMC4xMDoKCSAgZnVydGhlciByZXZpZXcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZ1cnRoZXIgcmV2aWV3CgoyMDA1LTExLTI5IDEzOjEwOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IERvbid0IHJlZiBOVUxMIHRhcmdldCBwYWQgKCMzMjI3NTEpLiBJbXByb3ZlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9nZXRfdGFyZ2V0KToKCSAgRG9uJ3QgcmVmIE5VTEwgdGFyZ2V0IHBhZCAoIzMyMjc1MSkuIEltcHJvdmUgZG9jcy4KCjIwMDUtMTEtMjkgMTE6MDc6NTQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBEb24ndCBjcmFzaCBpZiB3ZSBmYWlsZWQgdG8gbG9hZCBhIGZlYXR1cmUgZnJvbSBhIHBsdWdpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX3BsdWdpbik6CgkgIERvbid0IGNyYXNoIGlmIHdlIGZhaWxlZCB0byBsb2FkIGEgZmVhdHVyZSBmcm9tIGEgcGx1Z2luLgoKMjAwNS0xMS0yOSAwMDo1MTo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS90aG9tYXN2cy8wLjEwOgoJICBhZGQgbXkgdG9kb3MgZm9yIDAuMTAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBteSB0b2RvcyBmb3IgMC4xMAoKMjAwNS0xMS0yOCAyMTo1MTozNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiB1c2UgbW9yZSBjaGVjayBBUEkgYW5kIGxlc3MgR0xpYiBBUEkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzogKHNldHVwX3BpcGVsaW5lKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgdXNlIG1vcmUgY2hlY2sgQVBJIGFuZCBsZXNzIEdMaWIgQVBJCgoyMDA1LTExLTI4IDIxOjQ4OjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIGNvc21ldGljIGNoYW5nZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvc21ldGljIGNoYW5nZXMKCjIwMDUtMTEtMjggMTk6NTg6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgTWFrZWZpbGUuYW06IGRvbid0IHJ1biBjaGVja3MgaWYgd2UgZG9uJ3QgaGF2ZSBjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgZG9uJ3QgcnVuIGNoZWNrcyBpZiB3ZSBkb24ndCBoYXZlIGNoZWNrCgkgICogY29tbW9uL2NoZWNrLm1hazoKCSAgcmVtb3ZlIHRoZSByZWdpc3RyeSB3aGVuIHJ1bm5pbmcgbWFrZSB0b3J0dXJlCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgcmVtb3ZlIHNlY29uZCBtdWx0aXBseQoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xvb3ApOgoJICBmaXggYSBjb21waWxlIHdhcm5pbmcgd2hlbiBkaXNhYmxpbmcgZGVidWcKCjIwMDUtMTEtMjggMTk6NDM6MjcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGluZm8uaDogSGV5ISBMZXQncyBwcmludCB0aGUgcGFkIG5hbWUgaWYgdGhlIHBvaW50ZXIgIT0gTlVMTCBpbnN0ZWFkIG9mIHdoZW4gaXQgPT0gTlVMTCA6LSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgSGV5ISBMZXQncyBwcmludCB0aGUgcGFkIG5hbWUgaWYgdGhlIHBvaW50ZXIgIT0gTlVMTCBpbnN0ZWFkCgkgIG9mIHdoZW4gaXQgPT0gTlVMTCA6LSkKCjIwMDUtMTEtMjggMTg6NDQ6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0dXRpbHMuYzogVXBkYXRlZCBjaGVjaywgYWRkIHNvbWUgc2NhbGluZyBhY2N1cmFjeSBjaGVja2luZyBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVXBkYXRlZCBjaGVjaywgYWRkIHNvbWUgc2NhbGluZyBhY2N1cmFjeSBjaGVja2luZyBjb2RlLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfZGl2MTI4XzY0KSwKCSAgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQ2NCksIChnc3RfdXRpbF91aW50NjRfc2NhbGUpLAoJICAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludCk6CgkgIEZpeCA2IHRpbWVzIGZhc3RlciBkaXZpc2lvbiBjb2RlLiBPcHRpbWl6ZSBmb3IgY29tbW9uCgkgIDEvMSBhbmQgbGVzcyBjb21tb24gWC8xIGNhc2VzLgoKMjAwNS0xMS0yOCAxNzo1OToyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgZG9jIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvYyB1cGRhdGVzCgoyMDA1LTExLTI4IDE2OjA1OjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdHV0aWxzLmM6IE1vcmUgY2hlY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF91dGlsc19zdWl0ZSk6CgkgIE1vcmUgY2hlY2tzLgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2ZpbmFsaXplKSwgKGdzdF9jbG9ja19zZXRfbWFzdGVyKSwKCSAgKGRvX2xpbmVhcl9yZWdyZXNzaW9uKSwgKGdzdF9jbG9ja19hZGRfb2JzZXJ2YXRpb24pOgoJICBDbGVhbnVwcy4KCSAgUmVsZWFzZSBsb2NrIHdoZW4gdGhlIGNsb2NrIGNhbm5vdCBiZSBzbGF2ZWQuCgkgIENhdGNoIHRoZSBjYXNlIHdoZXJlIHRoZSByZWdyZXNzaW9uIHJldHVybmVkIGFuIGludmFsaWQgZGVub21pbmF0b3IuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9kaXYxMjhfNjRfaXRlcmF0ZSksCgkgIChnc3RfdXRpbF9kaXYxMjhfNjQpLCAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludDY0KSwKCSAgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZSksIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgQWRkIHByb3RlbnRpYWxseSBtb3JlIHBlcmZvcm1hbnQgbm9uLWl0ZXJhdGl2ZSAxMjgvNjQgZGl2aWRlIGZ1bmN0aW9uCgkgIHRoYXQgdW5mb3J0dW5hdGx5IGRvZXMgbm90IHdvcmsgeWV0LgoJICBTaG9ydGN1dCB0aGUgdHJpdmlhbCAwL1ggPSAwIGNhc2UuCgkgIFJlbW92ZSB0aGUgd2FybmluZ3Mgb24gb3ZlcmZsb3cuCgoyMDA1LTExLTI4IDE0OjE4OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uYzogZXZlcnl0aGluZyBjYXVzaW5nIGEgcGx1Z2luIG5vdCB0byBsb2FkIHNob3VsZCBiZSBhdCBsZWFzdCBhIFdBUk5JTkcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9yZWdpc3Rlcl9mdW5jKToKCSAgZXZlcnl0aGluZyBjYXVzaW5nIGEgcGx1Z2luIG5vdCB0byBsb2FkIHNob3VsZCBiZSBhdCBsZWFzdCBhIFdBUk5JTkcKCjIwMDUtMTEtMjggMTQ6MDI6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGxvZyBjYXBzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBsb2cgY2FwcwoKMjAwNS0xMS0yOCAxNDowMTo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBmaXggZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRvY3MKCjIwMDUtMTEtMjggMTM6MjU6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHBhcmFtcy50eHQ6IHNvbWUgVE9ET3MgZm9yIHRoZSBuZXh0IGRldiBjeWNsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2RwYXJhbXMudHh0OgoJICBzb21lIFRPRE9zIGZvciB0aGUgbmV4dCBkZXYgY3ljbGUKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpLAoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgdXNlIGJhc2UgdHlwZSB0byBhc3NpZ24gYWNjY2Vzc29yIGZ1bmN0aW9ucwoKMjAwNS0xMS0yOCAxMTozMTozMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogT29wcywgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIHRvcF9zcmNkaXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIE9vcHMsIHRoYXQgc2hvdWxkIGhhdmUgYmVlbiB0b3Bfc3JjZGlyCgoyMDA1LTExLTI4IDEwOjI5OjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBkaXNhYmxlIHBpcGVsaW5lIHRlc3QgdW50aWwgc29tZW9uZSBmaXhlcyB0aGUgdW5yZWxpYWJsZSBlcnJvcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRpc2FibGUgcGlwZWxpbmUgdGVzdCB1bnRpbCBzb21lb25lIGZpeGVzIHRoZSB1bnJlbGlhYmxlIGVycm9ycwoKMjAwNS0xMS0yOCAxMDowNzozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay86IFVzZSBhIGNtZGxpbmUgZGVmaW5lIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9uIG9mIGEgZmlsZSB0byB1c2UgZm9yIHRlc3RpbmcsIHRvIGF2b2lkIGJyZWFraW5nIGRpc3RjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZWxlbWVudHMvZmRzcmMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVXNlIGEgY21kbGluZSBkZWZpbmUgdG8gc3BlY2lmeSB0aGUgbG9jYXRpb24gb2YgYSBmaWxlIHRvIHVzZSBmb3IKCSAgdGVzdGluZywgdG8gYXZvaWQgYnJlYWtpbmcgZGlzdGNoZWNrLgoKMjAwNS0xMS0yOCAxMDowNDo0NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChmaXhhdGVfdmFsdWUpOiBVc2UgYXJyYXkgZnVuY3Rpb25zIGZvciBhcnJheXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTI4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZml4YXRlX3ZhbHVlKTogVXNlIGFycmF5IGZ1bmN0aW9ucyBmb3IgYXJyYXlzLgoKMjAwNS0xMS0yOCAwOTo1NToxOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogQ2xhcmlmeSB0aGUgb3V0cHV0IHN0cmluZ3MsIG1ha2VzIGl0IGVhc2llciB0byB0cmFuc2xhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBDbGFyaWZ5IHRoZSBvdXRwdXQgc3RyaW5ncywgbWFrZXMgaXQgZWFzaWVyIHRvIHRyYW5zbGF0ZS4KCSAgRml4ZXMgIzMyMjYyNgoKMjAwNS0xMS0yOCAwODoyMDo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvTWFrZWZpbGUuYW06IGRvbid0IHRyeSBhbmQgYnVpbGQgbmV0IGlmIHdlIGRvbid0IGV2ZW4gaGF2ZSA8c3lzL3NvY2tldC5oPgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgIGRvbid0IHRyeSBhbmQgYnVpbGQgbmV0IGlmIHdlIGRvbid0IGV2ZW4gaGF2ZSA8c3lzL3NvY2tldC5oPgoKMjAwNS0xMS0yNyAyMjo1MDowOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay86IEFkZCB0ZXN0cyBmb3IgZmRzcmMgc2Vla2FiaWxpdHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZWxlbWVudHMvZmRzcmMuYzogKGV2ZW50X2Z1bmMpLCAoc2V0dXBfZmRzcmMpLAoJICAoY2xlYW51cF9mZHNyYyksIChHU1RfU1RBUlRfVEVTVCksIChmZHNyY19zdWl0ZSksIChtYWluKToKCSAgQWRkIHRlc3RzIGZvciBmZHNyYyBzZWVrYWJpbGl0eQoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2Zkc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zkc3JjX2luaXQpLCAoZ3N0X2Zkc3JjX3VwZGF0ZV9mZCksIChnc3RfZmRzcmNfc3RhcnQpLAoJICAoZ3N0X2Zkc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfZmRzcmNfaXNfc2Vla2FibGUpLAoJICAoZ3N0X2Zkc3JjX2dldF9zaXplKSwgKGdzdF9mZHNyY191cmlfc2V0X3VyaSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgIGZkc3JjIHNob3VsZCBub3QgYmUgYSAnbGl2ZScgc291cmNlLgoJICBJbXBsZW1lbnQgc2Vla2luZyBvbiBzZWVrYWJsZSBmZCdzLgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19zZWVraW5nKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9zZWVraW5nKToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgSW1wbGVtZW50IFNFRUtJTkcgcXVlcnkgZnVuY3Rpb25zOgoJICAqX25ld19zZWVraW5nIGFuZCAqX3BhcnNlX3NlZWtpbmcKCjIwMDUtMTEtMjcgMjI6NDM6MDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IGRvbid0IGxvb3AgZm9yZXZlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZGlzcG9zZSk6CgkgIGRvbid0IGxvb3AgZm9yZXZlcgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZG9jIGZpeGVzCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKGludGVycG9sYXRlX25vbmVfZ2V0X2VudW1fdmFsdWVfYXJyYXkpOgoJICBzdXBwb3J0IGNvbnRyb2xsaW5nIGVudW1zCgoyMDA1LTExLTI3IDE5OjUyOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IEltcHJvdmUgZG9jdW1lbnRhdGlvbiBmb3IgZ3N0X3ZhbHVlX3VuaW9uKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBJbXByb3ZlIGRvY3VtZW50YXRpb24gZm9yIGdzdF92YWx1ZV91bmlvbigpLgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBDaGFuZ2UgcmV0dXJuIHZhbHVlIGZvciB1bmlvbiwgaW50ZXJzZWN0IGFuZCBzdWJ0cmFjdCBmdW5jdGlvbnMKCSAgZnJvbSBnaW50IHRvIGdib29sZWFuLgoKMjAwNS0xMS0yNyAxODoxMTowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS4qOiBVc2UgZ2ludCwgZ2RvdWJsZSBhbmQgZ2NoYXIgaW4gb3VyIEFQSSBpbnN0ZWFkIG9mIGludCwgZG91YmxlIGFuZCBjaGFyIChhbmQgbWFrZSB1c2FnZSBpbiBnc3R2YWx1ZS5jIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXJpYWxpemVfYW55X2xpc3QpLAoJICAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9hbnlfbGlzdF9zdHJpbmcpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2xpc3QpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2FycmF5KSwKCSAgKGdzdF92YWx1ZV9zZXRfaW50X3JhbmdlKSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9pbnRfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3NldF9kb3VibGVfcmFuZ2UpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2RvdWJsZV9yYW5nZSksCgkgIChnc3RfdmFsdWVfc2V0X2ZyYWN0aW9uX3JhbmdlX2Z1bGwpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9jYXBzKSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9idWZmZXIpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2Jvb2xlYW4pLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ludF9oZWxwZXIpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2RvdWJsZSksCgkgIChnc3RfdmFsdWVfc2VyaWFsaXplX2Zsb2F0KSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mbG9hdCksCgkgIChnc3Rfc3RyaW5nX3dyYXApLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX3N0cmluZyksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZW51bSksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZmxhZ3MpLAoJICAoZ3N0X3ZhbHVlX3VuaW9uX2ludF9yYW5nZV9pbnRfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9pbnRfcmFuZ2VfaW50X3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfZG91YmxlX3JhbmdlX2RvdWJsZV9yYW5nZSksCgkgIChnc3RfdmFsdWVfY3JlYXRlX25ld19yYW5nZSksIChnc3RfdmFsdWVfc3VidHJhY3RfaW50X3JhbmdlX2ludCksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfaW50X3JhbmdlX2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZG91YmxlX2RvdWJsZV9yYW5nZSksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZG91YmxlX3JhbmdlX2RvdWJsZV9yYW5nZSksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZnJhY3Rpb24pOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBVc2UgZ2ludCwgZ2RvdWJsZSBhbmQgZ2NoYXIgaW4gb3VyIEFQSSBpbnN0ZWFkIG9mIGludCwgZG91YmxlIGFuZAoJICBjaGFyIChhbmQgbWFrZSB1c2FnZSBpbiBnc3R2YWx1ZS5jIG1vcmUgY29uc2lzdGVudCkuCgoyMDA1LTExLTI3IDE3OjA1OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgYWRkIHVuZGVmaW5lZCBmb3IgY29yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHVuZGVmaW5lZCBmb3IgY29yZQoKMjAwNS0xMS0yNyAxNjo0Njo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBmaXggdXAgTWFrZWZpbGUuYW0gYW5kIHJlbW92ZSBHU1RfRU5BQkxFX05FVwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHVwIE1ha2VmaWxlLmFtIGFuZCByZW1vdmUgR1NUX0VOQUJMRV9ORVcKCjIwMDUtMTEtMjcgMTU6MTU6MzUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdXBkYXRlIExERkxBR1MgdXNlIHNvbWUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgdXBkYXRlIExERkxBR1MgdXNlIHNvbWUgbW9yZQoKMjAwNS0xMS0yNyAxNDoxOTozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSAgRml4ZXMgIzMxMjU4OQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRml4ZXMgIzMxMjU4OQoKMjAwNS0xMS0yNyAxNDowMzoyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGFkZCBzb21lIGFkZGl0aW9uYWwgZmFpbF9pZidzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc29tZSBhZGRpdGlvbmFsIGZhaWxfaWYncwoKMjAwNS0xMS0yNiAxMToyODozMiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IFRoaXMgc2hvdWxkbid0IGlzc3VlIGEgZ193YXJuaW5nIHNpbmNlIGl0IHJldHVybnMgTlVMTCBpZiBpdCBjb3VsZG4ndCBmaW5kIHRoZSBwbHVnaW4sIGFuZCBhbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2xvYWQpOgoJICBUaGlzIHNob3VsZG4ndCBpc3N1ZSBhIGdfd2FybmluZyBzaW5jZSBpdCByZXR1cm5zIE5VTEwgaWYgaXQKCSAgY291bGRuJ3QgZmluZCB0aGUgcGx1Z2luLCBhbmQgYWxsIGZ1bmN0aW9ucyB1c2luZyB0aGlzIGJlaGF2ZQoJICBwcm9wZXJseSBvbiBhIE5VTEwgcmV0dXJuLiBTd2l0Y2hpbmcgdG8gYSBHU1RfV0FSTklORy4KCjIwMDUtMTEtMjUgMTc6MDY6MzYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBEb24ndCBsZWFrIGNsb2NrIG1lc3NhZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBEb24ndCBsZWFrIGNsb2NrIG1lc3NhZ2VzLgoKMjAwNS0xMS0yNSAxMTozODozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBPcHRpbWlzYXRpb25zLCByZW1vdmUgdW5uZWVkZWQgdmFycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50NjQpLAoJICAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludCk6CgkgIE9wdGltaXNhdGlvbnMsIHJlbW92ZSB1bm5lZWRlZCB2YXJzLgoKMjAwNS0xMS0yNSAwMDowMjowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3R1dGlscy5jOiBBZGRlZCBtb3JlIGNoZWNrcyBmb3IgdGhlIGhpZ2ggcHJlY2lzaW9uIHVpbnQ2NCBjYXNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdXRpbHNfc3VpdGUpOgoJICBBZGRlZCBtb3JlIGNoZWNrcyBmb3IgdGhlIGhpZ2ggcHJlY2lzaW9uIHVpbnQ2NCBjYXNlcy4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQ2NCksCgkgIChnc3RfdXRpbF91aW50NjRfc2NhbGUpLCAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludCk6CgkgIEltcGxlbWVudCBoaWdoIHByZWNpc3Npb24gKGd1aW50NjQgKiBndWludDY0KSAvIGd1aW50NjQuCgoyMDA1LTExLTI0IDE5OjA2OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBGaXggd3JvbmcgcGVyY2VudGFnZSBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KToKCSAgRml4IHdyb25nIHBlcmNlbnRhZ2UgcXVlcnkuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF91aW50NjRfc2NhbGUpLAoJICAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludCk6CgkgIEFkZCBzb21lIG1vcmUgY29tbW9uIGNhc2VzIHRoYXQgY2FuIGJlIGhhbmRsZWQKCSAgZWZmaWNpZW50bHkgdG8gX3NjYWxlLgoKMjAwNS0xMS0yNCAxODo0NDo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJICByZW1vdmUgd3JvbmdseSBjb21taXRlZCBjb21tZW50cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHdyb25nbHkgY29tbWl0ZWQgY29tbWVudHMKCjIwMDUtMTEtMjQgMTg6NDA6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzogZG9uJ3QgdXNlIGNoZWNrIGNhbGxzIGZyb20gdGhyZWFkczsgY2hlY2sgcHJvYmFibHkgaXNuJ3QgdGhyZWFkc2FmZSBhbmQgdXNpbmcgYSBsb2NrIHRvIG1hLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6ICh0aHJlYWRfcmVmKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9taW5pX29iamVjdF9zdWl0ZSk6CgkgIGRvbid0IHVzZSBjaGVjayBjYWxscyBmcm9tIHRocmVhZHM7IGNoZWNrIHByb2JhYmx5IGlzbid0CgkgIHRocmVhZHNhZmUgYW5kIHVzaW5nIGEgbG9jayB0byBtYWtlIGl0IHRocmVhZHNhZmUgd291bGQKCSAgZGVmZWF0IHRoZSBwdXJwb3NlIG9mIHRoaXMgY2hlY2sKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgdXNlIEdTVF9ERUJVRyBzb21lIG1vcmUKCjIwMDUtMTEtMjQgMTg6MDM6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogQ2hhaW4gdHJpdmlhbCBjYXNlIHRvIF9zY2FsZV9pbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfdWludDY0X3NjYWxlKSwKCSAgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQpOgoJICBDaGFpbiB0cml2aWFsIGNhc2UgdG8gX3NjYWxlX2ludC4KCjIwMDUtMTEtMjQgMTc6NDQ6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0dXRpbHMuYzogQWRkZWQgdGVzdCBmb3Igc2NhbGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdXRpbHNfc3VpdGUpOgoJICBBZGRlZCB0ZXN0IGZvciBzY2FsaW5nLgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBTbWFsbCBkb2MgZml4LgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludCk6CgkgIEltcGxlbWVudGVkIGhpZ2ggcHJlY2lzaW9uIHNjYWxpbmcgY29kZS4KCjIwMDUtMTEtMjQgMTY6NTY6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmg6IGRvIG5vdCBjcmFzaCBvbiBwYWQ9PU5VTEwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgZG8gbm90IGNyYXNoIG9uIHBhZD09TlVMTAoKMjAwNS0xMS0yNCAxNjozMjoyNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSAgRml4IGRpc3RjaGVjayBpc3N1ZXMgZm9yIHRoZSBsaWJyYXJpZXMgZG9jcyBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFN0ZWZhbiBLb3N0CgkgICogY29tbW9uL2d0ay1kb2MubWFrOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgRml4IGRpc3RjaGVjayBpc3N1ZXMgZm9yIHRoZSBsaWJyYXJpZXMgZG9jcyBidWlsZAoJICBDbG9zZXMgIzMxOTU5OQoKMjAwNS0xMS0yNCAxNDozOTo1OSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOiBGaXggYnVnICMzMTUwMjc6IG1lbW9yeSBsZWFrIGluIGV4YW1wbGUgY29kZSBpbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgIEZpeCBidWcgIzMxNTAyNzogbWVtb3J5IGxlYWsgaW4gZXhhbXBsZSBjb2RlIGluIGRvY3MuCgoyMDA1LTExLTI0IDEyOjQ0OjI1ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBVbmxvY2sgdGhlIFBSRVJPTExfTE9DSyBpbiBhIGZhaWx1cmUgY2FzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjQgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBmbHVlbmRvLmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgVW5sb2NrIHRoZSBQUkVST0xMX0xPQ0sgaW4gYSBmYWlsdXJlIGNhc2UuCgoyMDA1LTExLTI0IDExOjE2OjMyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiBjaGVjay9uZXQvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0xMS0yNCAwOTo0NDowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0aW5kZXguaDoKCSogZ3N0L2dzdGludGVyZmFjZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHF1ZXVlLmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIERvYyBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIERvYyBmaXhlcy4KCjIwMDUtMTEtMjMgMjI6NTQ6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICByZW1vdmVkIGRpcmVjdG9yaWVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmVkIGRpcmVjdG9yaWVzCgoyMDA1LTExLTIzIDIyOjIxOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2luc3RhbnRpYXRlL01ha2VmaWxlLmFtOgoJICBmaXggZGlzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRpc3QKCjIwMDUtMTEtMjMgMjE6MjQ6NDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogTWFrZWZpbGUuYW06CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgYWRkIGEgdG9ydHVyZSB0YXJnZXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIHRvcnR1cmUgdGFyZ2V0CgoyMDA1LTExLTIzIDIxOjE4OjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2luc3RhbnRpYXRlL2NyZWF0ZS5jOgoJKiB0ZXN0cy9uZWdvdGlhdGlvbi8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9uZWdvdGlhdGlvbi9NYWtlZmlsZS5hbToKCSogdGVzdHMvbmVnb3RpYXRpb24vY2Fwc25lZ28xLmM6CgkgIHJlbW92ZSBvYnNvbGV0ZSB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG9ic29sZXRlIHRlc3RzCgoyMDA1LTExLTIzIDIxOjE2OjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9sYXQuYzoKCSogdGVzdHMvbXV4aW5nLy5naXRpZ25vcmU6CgkqIHRlc3RzL211eGluZy9NYWtlZmlsZS5hbToKCSogdGVzdHMvbXV4aW5nL2Nhc2UxLmM6CgkqIHRlc3RzL3Byb2Jlcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9wcm9iZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL3Byb2Jlcy9wcm9iZXRlc3QuYzoKCSAgcmVtb3ZlIG9ic29sZXRlIHRlc3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgb2Jzb2xldGUgdGVzdHMKCjIwMDUtMTEtMjMgMjE6MTM6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90cmlnZ2VyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RyaWdnZXIvUkVBRE1FOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RyaWdnZXIvdHJpZ2dlci5jOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS90cmlnZ2VyL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvdHJpZ2dlci9SRUFETUU6CgkqIHRlc3RzdWl0ZS90cmlnZ2VyL3RyaWdnZXIuYzoKCSAgcmVtb3ZlIHRyaWdnZXIgc3ViZGlyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgdHJpZ2dlciBzdWJkaXIKCjIwMDUtMTEtMjMgMjE6MTI6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9mYWtlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvbmFtZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL3Byb3BlcnR5LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvcHJvcGVydHkuaDoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvZmFrZS5jOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvbmFtZS5jOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvcHJvcGVydHkuYzoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL3Byb3BlcnR5Lmg6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy90ZWUuYzoKCSAgcmVtb3ZlIHRlc3RzIHJlcGxhY2VkIGJ5IGNoZWNrcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHRlc3RzIHJlcGxhY2VkIGJ5IGNoZWNrcwoKMjAwNS0xMS0yMyAyMDowNDoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIEhFQUQKCj09PSByZWxlYXNlIDAuOS42ID09PQoKMjAwNS0xMS0yMyAxOTo1NTowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuOS42CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC45LjYKCjIwMDUtMTEtMjMgMTg6MDc6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA1LTExLTIzIDE3OjU5OjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvdXBsb2FkLm1hazoKCSAgQ2hyaXN0aWFuLCBsZWFybiB0byBjb25maWd1cmUgeW91ciAuc3NoL2NvbmZpZyBmaWxlLCBhbmQgU1RPUCBjb21taXR0aW5nIHRvIHRoaXNmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaHJpc3RpYW4sIGxlYXJuIHRvIGNvbmZpZ3VyZSB5b3VyIC5zc2gvY29uZmlnIGZpbGUsIGFuZCBTVE9QIGNvbW1pdHRpbmcgdG8gdGhpc2ZpbGUKCjIwMDUtMTEtMjMgMTY6MTA6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJICBEb2MgdXBkYXRlcy4KCjIwMDUtMTEtMjMgMTU6NDk6MDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2ZhcS91c2luZy54bWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGNvbnRyb2wuc2dtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIGRvY3MvcHdnL290aGVyLXNvdXJjZS54bWw6CgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgcmVtb3ZlIG1lbnRpb25zIG9mIHNpbmVzcmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBtZW50aW9ucyBvZiBzaW5lc3JjCgoyMDA1LTExLTIzIDE0OjUyOjMxICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBVcGRhdGUgZm9yIG5ldyBBUEkgYW5kIEFQSSBjaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBVcGRhdGUgZm9yIG5ldyBBUEkgYW5kIEFQSSBjaGFuZ2VzLgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgRG9jdW1lbnRhdGlvbiBmaXg6IEdTVF9UUllMT0NLIC0+IEdTVF9PQkpFQ1RfVFJZTE9DSwoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBEb2N1bWVudGF0aW9uIHR5cG8gZml4LgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJICBEb2N1bWVudGF0aW9uIGZpeGVzIGZvciBhcmd1bWVudHMuCgoyMDA1LTExLTIzIDEzOjIyOjIxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEFQSSBDaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2dldF9mcmFjdGlvbiksCgkgIChnc3Rfc3RydWN0dXJlX3BhcnNlX3ZhbHVlKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX25lYXJlc3RfZnJhY3Rpb24pOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIHNjcmlwdHMvdXBkYXRlLWZ1bmNuYW1lczoKCSAgQVBJIENoYW5nZXMuCgkgIFJlbmFtZSBnc3RfdXRpbF9jbG9ja190aW1lX3NjYWxlIHRvIGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQKCSAgTWFrZSBnc3Rfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9uZWFyZXN0X2ZyYWN0aW9uIHRha2UgYSBudW1lcmF0b3IKCSAgYW5kIGRlbm9taW5hdG9yIGFyZ3VtZW50IGluc3RlYWQgb2YgYSBHVmFsdWUKCSAgYWRkIGdzdF9zdHJ1Y3R1cmVfZ2V0X2ZyYWN0aW9uIGhlbHBlciBmdW5jdGlvbi4KCjIwMDUtMTEtMjMgMTM6MTQ6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBVcGRhdGUgVE9ETy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVXBkYXRlIFRPRE8uCgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfdGhyZWFkKToKCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkgIFVzZSBwYXJlbnQgZmllbGRzIGZvciB0aW1lb3V0IGFuZCB3aW5kb3dfc2l6ZS4KCjIwMDUtMTEtMjMgMTI6Mzk6MzYgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGRvY3MvdXBsb2FkLm1hazoKCSogZ3N0L3JlZ2lzdHJpZXMvLmdpdGlnbm9yZToKCSogZ3N0L3NjaGVkdWxlcnMvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY29udHJvbC8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9nZXRiaXRzLy5naXRpZ25vcmU6CgkgIGFkZCBtaXNzaW5nIGN2c2lnbm9yZXMgc28gQ1ZTIHNodXRzIHVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbWlzc2luZyBjdnNpZ25vcmVzIHNvIENWUyBzaHV0cyB1cAoKMjAwNS0xMS0yMyAxMjozNjowMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKHRlc3RfZnVuY3Rpb25pbmcpOiBBZGp1c3QgdG8gcmF0ZV9udW0vcmF0ZV9kZW5vbSBjaGFuZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL25ldC9nc3RuZXRjbGllbnRjbG9jay5jICh0ZXN0X2Z1bmN0aW9uaW5nKTogQWRqdXN0IHRvCgkgIHJhdGVfbnVtL3JhdGVfZGVub20gY2hhbmdlLgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYwoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfb2JzZXJ2ZV90aW1lcyk6IFRha2UgdGhlIFNMQVZFX0xPQ0sgbm90IHRoZQoJICBPQkpFQ1RfTE9DSy4gRG9uJ3QgY2FsbCBhZGRfb2JzZXJ2YXRpb24gd2l0aCB0aGUgbG9jay4KCSAgKiBnc3QvZ3N0Y2xvY2suYyAoZ3N0X2Nsb2NrX2luaXQpOiBJbml0aWFsaXplIHRoZSByYXRlIGFzIGEKCSAgZnJhY3Rpb24uCgkgIChnc3RfY2xvY2tfYWRqdXN0X3VubG9ja2VkKTogQWRqdXN0IHVzaW5nIHVpbnQ2NF9zY2FsZSBhbmQgdGhlCgkgIHJhdGUgZnJhY3Rpb24uCgkgIChnc3RfY2xvY2tfc2V0X2NhbGlicmF0aW9uLCBnc3RfY2xvY2tfZ2V0X2NhbGlicmF0aW9uKTogQ2hhbmdlIHRvCgkgIGRlYWwgd2l0aCByYXRlIGFzIGEgZnJhY3Rpb24gd2hvc2UgbnVtZXJhdG9yIGFuZCBkZW5vbWluYXRvciBhcmUKCSAgR3N0Q2xvY2tUaW1lIHZhbHVlcy4KCSAgKGdzdF9jbG9ja19zZXRfbWFzdGVyKTogT25seSB1c2UgdGhlIE9CSkVDVF9MT0NLIHRvIHNldCB0aGUKCSAgbWFzdGVyOyB0aGUgb3RoZXIgZmllbGRzIGFyZSBwcm90ZWN0ZWQgYnkgdGhlIFNMQVZFX0xPQ0suCgkgIChkb19saW5lYXJfcmVncmVzc2lvbik6IE5vdGUgdGhhdCB0aGlzIG11c3QgYmUgY2FsbGVkIHdpdGggdGhlCgkgIFNMQVZFX0xPQ0suCgkgIChnc3RfY2xvY2tfYWRkX29ic2VydmF0aW9uKTogVGFrZSB0aGUgU0xBVkVfTE9DSywgbm90IHRoZQoJICBPQkpFQ1RfTE9DSy4gQ2FsbCBzZXRfY2FsaWJyYXRpb24gaW5zdGVhZCBvZiB0b3VjaGluZyB0aGUKCSAgdmFyaWFibGVzIGRpcmVjdGx5LgoJICAoZ3N0X2Nsb2NrX3NldF9wcm9wZXJ0eSwgZ3N0X2Nsb2NrX2dldF9wcm9wZXJ0eSk6IFByb3RlY3QKCSAgbWFzdGVyL3NsYXZlIHBhcmFtZXRlcnMgd2l0aCB0aGUgU0xBVkVfTE9DSy4KCSAgKiBnc3QvZ3N0Y2xvY2suaCAoR3N0Q2xvY2spOiBSZW1vdmUgcmF0ZSwgYWRkIHJhdGVfbnVtZXJhdG9yIGFuZAoJICByYXRlX2Rlbm9taW5hdG9yLiBQUjNDMVMzLiBBZGQgYSBuZXcgbG9jaywgdGhlIFNMQVZFX0xPQ0ssIGFuZAoJICBub3RlIHRoYXQgYWxsIG9mIHRoZSBpbnN0YW5jZSB2YXJpYWJsZXMgdGhhdCBhZGRfb2JzZXJ2YXRpb24gYW5kCgkgIHRoZSBzZXRfbWFzdGVyIGZ1bmN0aW9ucyB1c2UgYXJlIHByb3RlY3RlZCBieSB0aGF0IGxvY2sgYW5kIG5vdAoJICB0aGUgT0JKRUNUX0xPQ0suCgkgIChHU1RfQ0xPQ0tfU0xBVkVfTE9DSywgR1NUX0NMT0NLX1NMQVZFX1VOTE9DSyk6IE5ldyBtYWNyb3MuCgkgICogZ3N0L2dzdGNsb2NrLmMgKGdzdF9jbG9ja19hZGRfb2JzZXJ2YXRpb24pOiBObyBsb25nZXIgcmVxdWlyZXMKCSAgdGhlIGNhbGxlciB0byB0YWtlIHRoZSBvYmplY3QgbG9jay4KCjIwMDUtMTEtMjMgMTE6MjI6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXJyb3IuKjogQWRkIGVycm9yIGZvciBjbG9jayBzdHVmZi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6IChfZ3N0X2NvcmVfZXJyb3JzX2luaXQpOgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICBBZGQgZXJyb3IgZm9yIGNsb2NrIHN0dWZmLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcGlwZWxpbmVfc2V0X2Nsb2NrKToKCSAgUG9zdCBjbG9jayBlcnJvciB3aGVuIGNsb2NrIGNhbm5vdCBiZSB1c2VkIGluIGEgcGlwZWxpbmUuCgoyMDA1LTExLTIzIDExOjA1OjM3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBtYWtlIHR3byBzeW1ib2xzIGZyb20gZ3N0aW5mbyBwcml2YXRlIGZvciB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBtYWtlIHR3byBzeW1ib2xzIGZyb20gZ3N0aW5mbyBwcml2YXRlIGZvciB0aGUgZG9jcwoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIGZpeCBkb2MgdHlwb3MsIHVwZGF0ZSBkb2NzCgoyMDA1LTExLTIyIDE4OjI4OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogTm8gbmVlZCB0byBzdG9yZSB0aGUgY2xvY2ssIHRoZSBwYXJlbnQgZWxlbWVudCBjbGFzcyBhbHJlYWR5IGhhcyBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXQpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2V2ZW50KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBObyBuZWVkIHRvIHN0b3JlIHRoZSBjbG9jaywgdGhlIHBhcmVudCBlbGVtZW50IGNsYXNzIGFscmVhZHkKCSAgaGFzIGl0LgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fc2V0X2Nsb2NrX2Z1bmMpLCAoZ3N0X2Jpbl9hZGRfZnVuYyk6CgkgIFVwZGF0ZXMgZm9yIGNsb2NrX3NldCByZXR1cm5pbmcgYSBnYm9vbGVhbgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2VudHJ5X25ldyksIChnc3RfY2xvY2tfaWRfd2FpdCksCgkgIChnc3RfY2xvY2tfaWRfd2FpdF9hc3luYyksIChnc3RfY2xvY2tfY2xhc3NfaW5pdCksCgkgIChnc3RfY2xvY2tfaW5pdCksIChnc3RfY2xvY2tfZmluYWxpemUpLAoJICAoZ3N0X2Nsb2NrX2dldF9pbnRlcm5hbF90aW1lKSwgKGdzdF9jbG9ja19nZXRfdGltZSksCgkgIChnc3RfY2xvY2tfc2xhdmVfY2FsbGJhY2spLCAoZ3N0X2Nsb2NrX3NldF9tYXN0ZXIpLAoJICAoZ3N0X2Nsb2NrX2dldF9tYXN0ZXIpLCAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pLAoJICAoZ3N0X2Nsb2NrX2FkZF9vYnNlcnZhdGlvbiksIChnc3RfY2xvY2tfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9jbG9ja19nZXRfcHJvcGVydHkpOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBJbXBsZW1lbnQgbWFzdGVyL3NsYXZlLiBXaGVuIHNldHRpbmcgYSBjbG9jayBhcyBhIHNsYXZlLCBhCgkgIHBlcmlvZGljIHRpbWVvdXQgaXMgc2NoZWR1bGVkIHRvIHNhbXBsZSBtYXN0ZXIgYW5kIHNsYXZlIHRpbWVzLgoJICBUaGVuIHRoZSBzbGF2ZSBjbG9jayBpcyByZWNhbGlicmF0ZWQgdG8gbWF0Y2ggb2Zmc2V0IGFuZCByYXRlCgkgIG9mIHRoZSBtYXN0ZXIgY2xvY2suCgkgIFVwZGF0ZSBsb2dnaW5nIGEgYml0LgoJICBBZGQgZmxhZyBzbyB0aGF0IGEgY2xvY2sgY2FuIHN0YXRlIHRoYXQgaXMgY2Fubm90IGJlIHNsYXZlZCB0bwoJICBhbm90aGVyIGNsb2NrLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfY2xvY2spOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIFRoZSBzZXRfY2xvY2sgcmV0dXJucyBhIGdib29sZWFuIGZvciB3aGVuIGFuIGVsZW1lbnQgY2Fubm90CgkgIGRlYWwgd2l0aCB0aGUgc2VsZWN0ZWQgY2xvY2sgaW4gdGhlIHBpcGVsaW5lLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcGlwZWxpbmVfc2V0X2Nsb2NrKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSBzZWxlY3RlZCBjbG9jayBjYW5ub3QgYmUgc2V0IG9uCgkgIHRoZSBwaXBlbGluZS4KCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja19jbGFzc19pbml0KSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2luaXQpLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfZmluYWxpemUpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19vYnNlcnZlX3RpbWVzKToKCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkgIFVzZSByZWdyZXNzaW9uIGNvZGUgaW4gR3N0Q2xvY2sgcGFyZW50LCByZW1vdmUgZHVwbGljYXRlZAoJICBmdW5jdGlvbmFsaXR5LgoKMjAwNS0xMS0yMiAxNjozMTowOCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZCB1bmRlcnNjb3JlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkIHVuZGVyc2NvcmVzCgoyMDA1LTExLTIyIDE1OjUyOjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IGNvcnJlY3RseSBmaXggR0VudW1WYWx1ZXMgc28gdGhhdCBuaWNrIGlzIHRoZSBzaG9ydCBsb3dlcmNhc2UgZGFzaGVkIHRhZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX3N0YXRlX2Vycm9yX2dldF90eXBlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2RhdGFfZ2V0X3R5cGUpLAoJICAoZ3N0X2Zha2Vfc3JjX3NpemV0eXBlX2dldF90eXBlKSwgKGdzdF9mYWtlX3NyY19maWxsdHlwZV9nZXRfdHlwZSksCgkgIChnc3RfZmFrZV9zcmNfaW5pdCksIChnc3RfZmFrZV9zcmNfcHJlcGFyZV9idWZmZXIpLAoJICAoZ3N0X2Zha2Vfc3JjX2FsbG9jX2J1ZmZlciksIChnc3RfZmFrZV9zcmNfZ2V0X3NpemUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChxdWV1ZV9sZWFreV9nZXRfdHlwZSk6CgkgIGNvcnJlY3RseSBmaXggR0VudW1WYWx1ZXMgc28gdGhhdCBuaWNrIGlzIHRoZSBzaG9ydCBsb3dlcmNhc2UKCSAgZGFzaGVkIHRhZwoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIGFsc28gc2hvdyB0aGUgbmljaywgc2luY2UgaXQncyB1c2VmdWwgdG8gdXNlIGZyb20gcGFyc2VfbGF1bmNoCgkgIHN5bnRheAoJICBGaXhlcyAjMzIyMTM5CgoyMDA1LTExLTIyIDE1OjE1OjUzICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBBZGQgdXRpbCBtZXRob2QgZm9yIHNjYWxpbmcgYSBjbG9ja3RpbWUgYnkgYSBmcmFjdGlvbi4gVXNlZnVsIGltcGxlbWVudGF0aW9uIGlzIGxlZnQgYXMgYW4gZXhlcmNpc2UgZm9yIHRoZSByZWFkZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfY2xvY2t0aW1lX3NjYWxlKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgdXRpbCBtZXRob2QgZm9yIHNjYWxpbmcgYSBjbG9ja3RpbWUgYnkgYSBmcmFjdGlvbi4gVXNlZnVsCgkgIGltcGxlbWVudGF0aW9uIGlzIGxlZnQgYXMgYW4gZXhlcmNpc2UgZm9yIHRoZSByZWFkZXIuCgoyMDA1LTExLTIyIDE0OjI5OjEwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBJZiBuZWVkZWQsIGFsbG9jYXRlIHN0b3JhZ2UgaW4gdGhlIGRlc3RpbmF0aW9uIHZhbHVlIGR1cmluZyBjb2xsZWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9jb2xsZWN0X2ZyYWN0aW9uX3JhbmdlKToKCSAgSWYgbmVlZGVkLCBhbGxvY2F0ZSBzdG9yYWdlIGluIHRoZSBkZXN0aW5hdGlvbiB2YWx1ZSBkdXJpbmcKCSAgY29sbGVjdGlvbi4KCjIwMDUtMTEtMjIgMTM6NTg6MDAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBSZW1vdmVkIEdzdFVSSSAsIGNsb3NlcyBidWcgIzMyMTA2MQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHVyaXR5cGUuYzoKCSAgKiBnc3QvZ3N0dXJpdHlwZS5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfc2V0X29iamVjdF9hcmcpOgoJICAqIHRvb2xzL2dzdC1jb21wcHJlcC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgUmVtb3ZlZCBHc3RVUkkgLCBjbG9zZXMgYnVnICMzMjEwNjEKCjIwMDUtMTEtMjIgMTM6MTQ6NTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgT29wcywgYnJva2UgYXV0b21hdGljIHN0cmluZyB0eXBlIHBhcnNpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3BhcnNlX3ZhbHVlKToKCSAgT29wcywgYnJva2UgYXV0b21hdGljIHN0cmluZyB0eXBlIHBhcnNpbmcuCgkgIEFkZCBhIHRlc3QgdG8gY2F0Y2ggaXQgaW4gZnV0dXJlLgoKMjAwNS0xMS0yMiAxMzowMjoxMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIGdzdC9nc3R0YWdzZXR0ZXIuYyAoZ3N0X3RhZ19zZXR0ZXJfZ2V0X3RhZ19tZXJnZV9tb2RlKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmMgKGdzdF90YWdfc2V0dGVyX2dldF90YWdfbWVyZ2VfbW9kZSkKCSAgKGdzdF90YWdfc2V0dGVyX3NldF90YWdfbWVyZ2VfbW9kZSwgZ3N0X3RhZ19zZXR0ZXJfZ2V0X3RhZ19saXN0KToKCSAgQWN0dWFsbHkgcmVuYW1lIHRoZSBmdW5jdGlvbiBpbXBsZW1lbnRhdGlvbnMuIEdyci4KCjIwMDUtMTEtMjIgMTI6NTE6MTggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIHNjcmlwdHMvdXBkYXRlLWZ1bmNuYW1lczoKCSAgZml4IGJvcmtlZCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBib3JrZWQgY29tbWl0CgoyMDA1LTExLTIyIDEyOjM1OjQyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dzdC9jYXBzbGlzdC5oOiBDb21tZW50IHRlc3QgY2FzZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkgIENvbW1lbnQgdGVzdCBjYXNlcwoJICAqIGNoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfc3VpdGUpOgoJICBUZXN0IGF1dG9tYXRpYyB2YWx1ZSB0eXBlIGRldGVjdGlvbiBpbiBnc3Rfc3RydWN0dXJlX2Zyb21fc3RyaW5nLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfdmFsdWUpOgoJICBBZGQgZnJhY3Rpb24gYXMgYSB0eXBlIHdlIHRyeSBhbmQgZ3Vlc3MgYXV0b21hdGljYWxseSBpbgoJICBjYXBzL3N0cnVjdHVyZSBzdHJpbmdzLgoKMjAwNS0xMS0yMiAxMjozNTozNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogc2NyaXB0cy91cGRhdGUtZnVuY25hbWVzOgoJICB1cGRhdGUgdXBkYXRlLWZ1bmNzIGZvciB0YWdzZXR0ZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB1cGRhdGUtZnVuY3MgZm9yIHRhZ3NldHRlcgoKMjAwNS0xMS0yMiAxMjoyMDowNCArMDAwMCAgVG9yc3RlbiBTY2hvZW5mZWxkIDxrYWZmZWV0aXNjaEBnbXguZGU+CgoJICBnc3QvZ3N0dGFnc2V0dGVyLio6IChnc3RfdGFnX3NldHRlcl9tZXJnZV90YWdzKSAoZ3N0X3RhZ19zZXR0ZXJfYWRkX3RhZ3MsIGdzdF90YWdfc2V0dGVyX2FkZF90YWdfdmFsdWVzKSAoZ3N0X3RhZ19zZXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgIHBhdGNoIGJ5OiBUb3JzdGVuIFNjaG9lbmZlbGQgPGthZmZlZXRpc2NoIGdteCBkZT4KCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOiAoZ3N0X3RhZ19zZXR0ZXJfbWVyZ2VfdGFncykKCSAgKGdzdF90YWdfc2V0dGVyX2FkZF90YWdzLCBnc3RfdGFnX3NldHRlcl9hZGRfdGFnX3ZhbHVlcykKCSAgKGdzdF90YWdfc2V0dGVyX2FkZF90YWdfdmFsaXN0KQoJICAoZ3N0X3RhZ19zZXR0ZXJfYWRkX3RhZ192YWxpc3RfdmFsdWVzKTogUmVuYW1lZCBmcm9tIF9tZXJnZSwgX2FkZCwKCSAgX2FkZF92YWx1ZXMsIF9hZGRfdmFsaXN0LCBhbmQgX2FkZF92YWxpc3RfdmFsdWVzLiBTaW5jZSB0aGlzIGlzIGFuCgkgIGludGVyZmFjZSB0aGUgZnVuY3Rpb24gc3VmZml4ZXMgc2hvdWxkIGJlIG1vcmUgZXhwbGljaXQgc28KCSAgbGFuZ3VhZ2UgYmluZGluZyBkb24ndCBlbmQgdXAgd2l0aCBlbGVtZW50LmFkZF92YWxpc3QgLT4KCSAgZ3N0X3RhZ19zZXR0ZXJfYWRkX3ZhbGlzdCwgZm9yIGV4YW1wbGUuIEZpeGVzICMzMjIwNjkuCgoyMDA1LTExLTIyIDEyOjE1OjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZG9uJ3QgdmFsZ3JpbmQgdGhlIHN0cmVzcyB0ZXN0LCB0YWtlcyB0b28gbG9uZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgdmFsZ3JpbmQgdGhlIHN0cmVzcyB0ZXN0LCB0YWtlcyB0b28gbG9uZwoKMjAwNS0xMS0yMiAxMTo1NjowMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiBFeHRlbmQgY2FwcyBzdHJpbmcgdGVzdHMgdG8gY2hlY2sgdGhhdCBhIGNhcHMgdG8gc3RyaW5nIGNvbnZlcnNpb24gaXMgcmV2ZXJzaWJsZSBhbmQgcHJvZHVjZXMgdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRXh0ZW5kIGNhcHMgc3RyaW5nIHRlc3RzIHRvIGNoZWNrIHRoYXQgYSBjYXBzIHRvIHN0cmluZwoJICBjb252ZXJzaW9uIGlzIHJldmVyc2libGUgYW5kIHByb2R1Y2VzIHRoZSBzYW1lIGNhcHMuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV92YWx1ZV9nZXRfZ2VuZXJpY190eXBlKToKCSAgT3V0cHV0ICJmcmFjdGlvbiIgYXMgdGhlIGdlbmVyaWMgdHlwZSBmcmFjdGlvbiByYW5nZSwgc28gY2FwcwoJICBzZXJpYWxpc2F0aW9uIGFuZCBkZXNlcmlhbGlzYXRpb24gd29ya3MuCgkgICogY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZnJhY3Rpb24pOgoJICBTdXBwb3J0ICdNSU4nIGFuZCAnTUFYJyBmb3IgZGVzZXJpYWxpc2luZyBmcmFjdGlvbnMuCgoyMDA1LTExLTIyIDExOjUwOjEyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIE1pbm9yIGRvYyBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNaW5vciBkb2MgZml4LgoKMjAwNS0xMS0yMiAxMTo0ODo1OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGV2ZW50LmggKGdzdF9ldmVudF9uZXdfbmV3X3NlZ21lbnQpIChnc3RfZXZlbnRfcGFyc2VfbmV3X3NlZ21lbnQsIGdzdF9ldmVudF9uZXdfYnVmZmVyX3NpemUpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RldmVudC5oIChnc3RfZXZlbnRfbmV3X25ld19zZWdtZW50KQoJICAoZ3N0X2V2ZW50X3BhcnNlX25ld19zZWdtZW50LCBnc3RfZXZlbnRfbmV3X2J1ZmZlcl9zaXplKQoJICAoZ3N0X2V2ZW50X3BhcnNlX2J1ZmZlcl9zaXplLCBnc3RfZ2hvc3RfcGFkX25ld19ub190YXJnZXQpOgoJICBSZW5hbWVkIGZyb20gKl9uZXdzZWdtZW50LCAqX2J1ZmZlcnNpemUsICpfbm90YXJnZXQuCgkgICogc2NyaXB0cy91cGRhdGUtZnVuY25hbWVzOiBOZXcgc2NyaXB0LCBwZXJmb3JtcyB0aGUgY2hhbmdlcwoJICBsaXN0ZWQgYWJvdmUuCgoyMDA1LTExLTIyIDExOjI1OjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogTWFrZSBzdXJlIHRoZSBHc3RGbG93UmV0dXJuIGlzIHJldHVybmVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgTWFrZSBzdXJlIHRoZSBHc3RGbG93UmV0dXJuIGlzIHJldHVybmVkLgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaF9mdWxsKSwKCSAgKGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaCk6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICBhZGQgZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoX2Z1bGwuCgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICBTbWFsbCBzdHlsZSBjbGVhbnVwLgoKMjAwNS0xMS0yMiAxMDoyNDozMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QvZ3N0ZXZlbnQuYzogQmxvY2sgdGhlIGZha2VzcmMgc3JjcGFkIHdoZW4gd2Ugc2VuZCBhbiBldmVudCwgdG8gYXZvaWQgY29udGVudGlvbiBvbiB0aGUgc3RyZWFtX2xvY2sgY2F1c2luZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmM6ICh0ZXN0X2V2ZW50KSwgKEdTVF9TVEFSVF9URVNUKToKCSAgQmxvY2sgdGhlIGZha2VzcmMgc3JjcGFkIHdoZW4gd2Ugc2VuZCBhbiBldmVudCwgdG8gYXZvaWQKCSAgY29udGVudGlvbiBvbiB0aGUgc3RyZWFtX2xvY2sgY2F1c2luZyByYW5kb20gdGVzdCBmYWlsdXJlcy4KCjIwMDUtMTEtMjIgMDk6NDI6MTcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgRml4IHN1YnRyYWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9mcmFjdGlvbl9zdWJ0cmFjdCk6CgkgIEZpeCBzdWJ0cmFjdGlvbi4KCjIwMDUtMTEtMjIgMDk6MzU6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3QuaDogaW5jbHVkZSAiZ3N0Y2hpbGRwcm94eS5oIgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Lmg6CgkgIGluY2x1ZGUgImdzdGNoaWxkcHJveHkuaCIKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICB1c2UgR19HTlVDX05VTExfVEVSTUlOQVRFRAoKMjAwNS0xMS0yMSAyMzo1NDo1OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBJbXBsZW1lbnQgZnJhY3Rpb24gcmFuZ2VzIGFuZCBleHRlbmQgR3N0RnJhY3Rpb24gdG8gc3VwcG9ydCBhcml0aG1ldGljIHN1YnRyYWN0aW9uLCBhcyB3ZWxsIGFzIGRlc2VyaWFsaXphdGlvbiBmcm9tIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkgICogY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9wYXJzZV9yYW5nZSksCgkgIChnc3Rfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9uZWFyZXN0X2ZyYWN0aW9uKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfaW5pdF9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfZnJlZV9mcmFjdGlvbl9yYW5nZSksIChnc3RfdmFsdWVfY29weV9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfY29sbGVjdF9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfbGNvcHlfZnJhY3Rpb25fcmFuZ2UpLCAoZ3N0X3ZhbHVlX3NldF9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfc2V0X2ZyYWN0aW9uX3JhbmdlX2Z1bGwpLAoJICAoZ3N0X3ZhbHVlX2dldF9mcmFjdGlvbl9yYW5nZV9taW4pLAoJICAoZ3N0X3ZhbHVlX2dldF9mcmFjdGlvbl9yYW5nZV9tYXgpLAoJICAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfdHJhbnNmb3JtX2ZyYWN0aW9uX3JhbmdlX3N0cmluZyksCgkgIChnc3RfdmFsdWVfY29tcGFyZV9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9mcmFjdGlvbl9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2ZyYWN0aW9uX3JhbmdlX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9mcmFjdGlvbl9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZnJhY3Rpb25fcmFuZ2VfZnJhY3Rpb24pLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2ZyYWN0aW9uX3JhbmdlX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9jb2xsZWN0X2ZyYWN0aW9uKSwgKGdzdF92YWx1ZV9mcmFjdGlvbl9tdWx0aXBseSksCgkgIChnc3RfdmFsdWVfZnJhY3Rpb25fc3VidHJhY3QpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ZyYWN0aW9uKSwKCSAgKGdzdF92YWx1ZV90cmFuc2Zvcm1fc3RyaW5nX2ZyYWN0aW9uKSwgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIEltcGxlbWVudCBmcmFjdGlvbiByYW5nZXMgYW5kIGV4dGVuZCBHc3RGcmFjdGlvbiB0byBzdXBwb3J0CgkgIGFyaXRobWV0aWMgc3VidHJhY3Rpb24sIGFzIHdlbGwgYXMgZGVzZXJpYWxpemF0aW9uIGZyb20gaW50ZWdlcgoJICBzdHJpbmdzIHN1Y2ggYXMgIjEwMCIKCSAgQWRkIGEgdGVzdHN1aXRlIGFzIGZvciBpbnQgYW5kIGRvdWJsZSByYW5nZSBzZXQgb3BlcmF0aW9ucwoKMjAwNS0xMS0yMSAxOTo1ODoyMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0LzogQWRkIGdsaWItY29tcGF0LmguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6IEFkZCBnbGliLWNvbXBhdC5oLgoKMjAwNS0xMS0yMSAxOToxMzoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRml4IGZvciAjMzIxNTk1CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICBGaXggZm9yICMzMjE1OTUKCjIwMDUtMTEtMjEgMTk6MDA6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5oOiBBbmQgYWRkIGEgbmljZSBkZWZpbmUgdG9vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBBbmQgYWRkIGEgbmljZSBkZWZpbmUgdG9vLgoKMjAwNS0xMS0yMSAxODo1MzowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50Lio6IE1ha2UgYmluZGluZyBmcmllbmRseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2NvcHkpLCAoZ3N0X3NlZ21lbnRfZ2V0X3R5cGUpLAoJICAoZ3N0X3NlZ21lbnRfbmV3KSwgKGdzdF9zZWdtZW50X2ZyZWUpLCAoZ3N0X3NlZ21lbnRfaW5pdCksCgkgIChnc3Rfc2VnbWVudF9zZXRfZHVyYXRpb24pLCAoZ3N0X3NlZ21lbnRfc2V0X2xhc3Rfc3RvcCksCgkgIChnc3Rfc2VnbWVudF9zZXRfc2VlayksIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudCksCgkgIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpLAoJICAoZ3N0X3NlZ21lbnRfY2xpcCk6CgkgICogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgTWFrZSBiaW5kaW5nIGZyaWVuZGx5LgoKMjAwNS0xMS0yMSAxODo0MTozOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0LzogU3ByaW5rbGUgTlVMTF9URVJNSU5BVEVEIHRvIHRhc3RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuaDogU3ByaW5rbGUgTlVMTF9URVJNSU5BVEVEIHRvIHRhc3RlLgoKMjAwNS0xMS0yMSAxODoyNzoyNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVycm9yLio6IE5ldyBlcnJvciBjYXRlZ29yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVycm9yLmMgKF9nc3RfY29yZV9lcnJvcnNfaW5pdCk6CgkgICogZ3N0L2dzdGVycm9yLmggKEdTVF9DT1JFX0VSUk9SX01JU1NJTkdfUExVR0lOKTogTmV3IGVycm9yCgkgIGNhdGVnb3J5LgoKMjAwNS0xMS0yMSAxODoxNjowMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L01ha2VmaWxlLmFtIChnc3RfaGVhZGVycyk6IEFkZCBnbGliLWNvbXBhdC5oLiBub2luc3QgdGhlIC1wcml2YXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvTWFrZWZpbGUuYW0gKGdzdF9oZWFkZXJzKTogQWRkIGdsaWItY29tcGF0LmguCgkgIChub2luc3RfSEVBREVSUyk6IG5vaW5zdCB0aGUgLXByaXZhdGUuCgoyMDA1LTExLTIxIDE4OjEwOjEzICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvOiBSZW1vdmUgdW5pbXBsZW1lbnRlZCBkZWNsYXJhdGlvbnMgZm9yIHdoaWNoIHdlIGNhbiBzZWUgbm8gc2Vuc2libGUgdXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIFJlbW92ZSB1bmltcGxlbWVudGVkIGRlY2xhcmF0aW9ucyBmb3Igd2hpY2ggd2UgY2FuIHNlZSBubyBzZW5zaWJsZQoJICB1c2UuCgoyMDA1LTExLTIxIDE4OjAzOjIyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Lmg6IEluY2x1ZGUgZ2xpYi1jb21wYXQuaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdC5oOiBJbmNsdWRlIGdsaWItY29tcGF0LmguCgkgICogZ3N0L2dsaWItY29tcGF0Lmg6IEFkZCBHX0dOVUNfTlVMTF9URVJNSU5BVEVELgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOiBJbmNsdWRlIHRoZSBwdWJsaWMgYW5kIHRoZSBwcml2YXRlIGhlYWRlci4KCSAgKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOiBDb3BpZWQgaGVyZSBmcm9tIGdsaWItY29tcGF0LmguCgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBzL2dsaWItY29tcGF0L2dsaWItY29tcGF0LXByaXZhdGUvLgoKMjAwNS0xMS0yMSAxNzoyMToxNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdGV2ZW50LmMgKGNyZWF0ZV9jdXN0b21fZXZlbnRzKTogQ2hlY2sgdGhhdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYyAoY3JlYXRlX2N1c3RvbV9ldmVudHMpOiBDaGVjayB0aGF0CgkgIEZMVVNIX1NUT1AgaXMgc2VyaWFsaXplZC4KCSAgKiBjaGVjay9lbGVtZW50cy9pZGVudGl0eS5jIChldmVudF9mdW5jKToKCSAgKiBjaGVjay9lbGVtZW50cy9mYWtlc3JjLmMgKGV2ZW50X2Z1bmMpOiBObyBzdHJlYW0gbG9jaywgdGhlIGNvcmUKCSAgdGFrZXMgaXQuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpOiBObyBtb3JlCgkgIHN0cmVhbSBsb2NrIHRha2luZywgeWF5LgoJICAqIGdzdC9nc3RldmVudC5oIChHU1RfRVZFTlRfRkxVU0hfU1RPUCk6IE1hcmtlZCBhcyBzZXJpYWxpemVkIHRvCgkgIGVuc3VyZSB0aGF0IGNvcmUgdGFrZXMgdGhlIHN0cmVhbSBsb2NrLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspOiBVcGRhdGUgZm9yIHN0cmVhbQoJICBsb2NrIG5hbWUgY2hhbmdlLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfZXZlbnQpOiBObyBuZWVkIHRvIHRha2UKCSAgdGhlIHN0cmVhbSBsb2NrIGZvciBFT1MsIE5FV1NFR01FTlQsIG9yIEZMVVNIX1NUT1AsIHRoZSBjb3JlIGRvZXMKCSAgaXQgYWxyZWFkeS4gRm9yIHRoZSBmbHVzaCBzdGFydCB3ZSBkbyB0YWtlIGl0IHRob3VnaCBzbyB3ZSBnZXQgdGhlCgkgIHJpZ2h0IHByZXJvbGwgc3RhdGUgY2hhbmdlIG1lc3NhZ2VzLgoJICAqIGdzdC9nc3RxdWV1ZS5jIChnc3RfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKTogTm8gbmVlZCB0byB0YWtlCgkgIHRoZSBzdHJlYW0gbG9jayBoZXJlLCB0aGUgY29yZSBkb2VzIGl0IGZvciB1cy4KCSAgKiBnc3QvZ3N0cGFkLmggKEdTVF9QQURfR0VUX1NUUkVBTV9MT0NLKTogUmVuYW1lZCBmcm9tCgkgIEdTVF9TVFJFQU1fR0VUX0xPQ0suCgkgIChHU1RfUEFEX1NUUkVBTV9MT0NLLCBHU1RfUEFEX1NUUkVBTV9UUllMT0NLKQoJICAoR1NUX1BBRF9TVFJFQU1fVU5MT0NLLCBHU1RfUEFEX1NUUkVBTV9VTkxPQ0tfRlVMTCkKCSAgKEdTVF9QQURfU1RSRUFNX0xPQ0tfRlVMTCk6IFJlbmFtZWQgZnJvbSBHU1RfU1RSRUFNXyouCgkgIChHU1RfUEFEX0dFVF9QUkVST0xMX0xPQ0spOiBSZW5hbWVkIGZyb20gR1NUX1BSRVJPTExfR0VUX0xPQ0suCgkgIChHU1RfUEFEX1BSRVJPTExfTE9DSywgR1NUX1BBRF9QUkVST0xMX1RSWUxPQ0spCgkgIChHU1RfUEFEX1BSRVJPTExfVU5MT0NLKTogUmVuYW1lZCBmcm9tIEdTVF9QUkVST0xMXyouCgkgICogZ3N0L2dzdHBhZC5jOiBVcGRhdGUgZm9yIHN0cmVhbSBsb2NrIG5hbWUgY2hhbmdlLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFVwZGF0ZSBmb3IgcHJlcm9sbCBsb2NrIG5hbWUgY2hhbmdlLgoKMjAwNS0xMS0yMSAxNzoxMjo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IENvbnZlcnQgQ2xvY2sgZmxhZ3MgdG8gb2JqZWN0IGZsYWdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19pbml0KSwgKGdzdF9jbG9ja19zZXRfbWFzdGVyKSwKCSAgKGdzdF9jbG9ja19nZXRfbWFzdGVyKToKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfaW5pdCk6CgkgIENvbnZlcnQgQ2xvY2sgZmxhZ3MgdG8gb2JqZWN0IGZsYWdzLgoJICBBZGRlZCBtZXRob2RzIHRvIG1hbmFnZSBtYXN0ZXIvc2xhdmUgY2xvY2tzLgoKMjAwNS0xMS0yMSAxNzowOTo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIE1vcmUgc2VnbWVudCB1cGRhdGVzLCByZXBsYWNlIGNvZGUgaW4gcGx1Z2lucyB3aXRoIHNlZ21lbnQgaGVscGVyIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X25ld3NlZ21lbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NvbmZpZ3VyZV9zZWdtZW50KSwgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19pbml0KSwKCSAgKGdzdF9mYWtlX3NyY19jcmVhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfaW5pdCksIChnc3Rfc2VnbWVudF9zZXRfZHVyYXRpb24pLAoJICAoZ3N0X3NlZ21lbnRfc2V0X2xhc3Rfc3RvcCksIChnc3Rfc2VnbWVudF9zZXRfc2VlayksCgkgIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudCksIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksCgkgIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpLCAoZ3N0X3NlZ21lbnRfY2xpcCk6CgkgICogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgTW9yZSBzZWdtZW50IHVwZGF0ZXMsIHJlcGxhY2UgY29kZSBpbiBwbHVnaW5zIHdpdGggc2VnbWVudAoJICBoZWxwZXIgZnVuY3Rpb25zLgoKMjAwNS0xMS0yMSAxNjo0NjowNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzogRG9uJ3QgaWdub3JlIHNzY2FuZiByZXN1bHRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2Zkc3JjX3VyaV9zZXRfdXJpKToKCSAgRG9uJ3QgaWdub3JlIHNzY2FuZiByZXN1bHRzCgoyMDA1LTExLTIxIDE2OjQxOjE2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmggKEdTVF9JU19QQURfRkFTVCk6IFJlbW92ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuaCAoR1NUX0lTX1BBRF9GQVNUKTogUmVtb3ZlZC4KCjIwMDUtMTEtMjEgMTY6MzQ6MjYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgICouKjogUmFuIHNjcmlwdHMvdXBkYXRlLW1hY3Jvcy4gT2ggeWVzLiBnc3QvZ3N0b2JqZWN0LmggKEdTVF9PQkpFQ1RfR0VUX0xPQ0ssIEdTVF9PQkpFQ1RfTE9DSykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogKi5oOgoJICAqICouYzogUmFuIHNjcmlwdHMvdXBkYXRlLW1hY3Jvcy4gT2ggeWVzLgoJICAqIGdzdC9nc3RvYmplY3QuaCAoR1NUX09CSkVDVF9HRVRfTE9DSywgR1NUX09CSkVDVF9MT0NLKQoJICAoR1NUX09CSkVDVF9UUllMT0NLLCBHU1RfT0JKRUNUX1VOTE9DSyk6IFJlbmFtZWQgZnJvbQoJICBHU1RfR0VUX0xPQ0ssIGV0Yy4KCSAgKiBzY3JpcHRzL3VwZGF0ZS1tYWNyb3M6IE5ldyBzY3JpcHQuIFJ1biBpdCBvbiB5b3VyIGZpbGVzIHRvCgkgIGNoYW5nZSBHU1RfTE9DSyB0byBHU1RfT0JKRUNUX0xPQ0ssIGFuZCB0aGUgc2FtZSBmb3IgVU5MT0NLIGFzCgkgIHdlbGwuCgoyMDA1LTExLTIxIDE1OjQ3OjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtb3JlIGRvY3MgZml4ZXMsIGFkZCBuZXcgYXBpIHRvIHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgbW9yZSBkb2NzIGZpeGVzLCBhZGQgbmV3IGFwaSB0byB0aGUgZG9jcwoKMjAwNS0xMS0yMSAxNTowMTo0OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJpbi5jIChnc3RfYmluX3JlbW92ZV9mdW5jKTogV2ltIGNsYWltcyBJIGNhbiByZW1vdmUgdGhpcyBzdGF0ZV9icm9hZGNhc3QgY2FsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJpbi5jIChnc3RfYmluX3JlbW92ZV9mdW5jKTogV2ltIGNsYWltcyBJIGNhbiByZW1vdmUgdGhpcwoJICBzdGF0ZV9icm9hZGNhc3QgY2FsbC4KCjIwMDUtMTEtMjEgMTQ6NTM6MzQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmMgKGdzdF9zZWdtZW50X2luaXQpOiBJbml0aWFsaXplIGFic19yYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0c2VnbWVudC5jIChnc3Rfc2VnbWVudF9pbml0KTogSW5pdGlhbGl6ZSBhYnNfcmF0ZS4KCjIwMDUtMTEtMjEgMTQ6NTI6NTYgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IEZpeCB3cm9uZyBmdW5jdGlvbiBjYWxscyBmb3IgYXJyYXlzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9hcnJheSk6IEZpeCB3cm9uZwoJICBmdW5jdGlvbiBjYWxscyBmb3IgYXJyYXlzLgoKMjAwNS0xMS0yMSAxNDo1MDoyMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9tZWRpYS1kZXZpY2UtZGFlbW9uLnR4dDogd2lsZCBpZGVhLCBjYW4gdGhpcyBiZSBkb25lPwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL21lZGlhLWRldmljZS1kYWVtb24udHh0OgoJICB3aWxkIGlkZWEsIGNhbiB0aGlzIGJlIGRvbmU/CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgKiBnc3QvZ3N0ZmlsdGVyLmM6CgkgICogZ3N0L2dzdGZpbHRlci5oOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICAqIGdzdC9nc3R0cmFjZS5jOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBkb2MgZml4ZXMgYW5kIGFkZGl0aW9ucwoKMjAwNS0xMS0yMSAxNDo0MToyNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKEdTVF9MSVZFX0JST0FEQ0FTVCwgR1NUX0xJVkVfU0lHTkFMKSAoR1NUX0xJVkVfVElNRURfV0FJVCwgR1NUX0xJVkVfV0FJVCwgR1NUX0xJVkVfR0VUX0NPTkQpICguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChHU1RfTElWRV9CUk9BRENBU1QsIEdTVF9MSVZFX1NJR05BTCkKCSAgKEdTVF9MSVZFX1RJTUVEX1dBSVQsIEdTVF9MSVZFX1dBSVQsIEdTVF9MSVZFX0dFVF9DT05EKQoJICAoR1NUX0xJVkVfVU5MT0NLLCBHU1RfTElWRV9UUllMT0NLLCBHU1RfTElWRV9MT0NLKQoJICAoR1NUX0xJVkVfR0VUX0xPQ0spOiBNb3ZlZCBoZXJlIGZyb20gZ3N0YmFzZXNyYy5oLiBUaGV5IGFyZQoJICBwcml2YXRlIHRvIHRoZSBiYXNlc3JjIGltcGxlbWVudGF0aW9uLgoKMjAwNS0xMS0yMSAxNDozNDowNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3NlbmRfZXZlbnQpOiBEb2MgbW9yZS4gVGFrZSBzdHJlYW0gbG9jayBvbiBiZWhhbGYgb2YgZXZlbnQgZnVuY3Rpb24gaWYgbmVjZXNzYXJ5LiBJdCBzaG91bGQgbm8gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9zZW5kX2V2ZW50KTogRG9jIG1vcmUuIFRha2Ugc3RyZWFtIGxvY2sgb24KCSAgYmVoYWxmIG9mIGV2ZW50IGZ1bmN0aW9uIGlmIG5lY2Vzc2FyeS4gSXQgc2hvdWxkIG5vIGxvbmdlciBiZQoJICBuZWNlc3NhcnkgdG8gdGFrZSB0aGUgc3RyZWFtIGxvY2sgaW4gcGFkJ3MgZXZlbnQgZnVuY3Rpb25zLiBGaXhlcwoJICAjMzIwMjk5LgoKMjAwNS0xMS0yMSAxNDoyODoyMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBSZW5hbWUgZ3N0X2NhcHNfc3RydWN0dXJlX2ZpeGF0ZV8qIHRvIGdzdF9zdHJ1Y3R1cmVfZml4YXRlXyogKCMzMjIwMjcpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9maXhhdGVfZmllbGRfbmVhcmVzdF9pbnQpLAoJICAoZ3N0X3N0cnVjdHVyZV9maXhhdGVfZmllbGRfbmVhcmVzdF9kb3VibGUpLAoJICAoZ3N0X3N0cnVjdHVyZV9maXhhdGVfZmllbGRfYm9vbGVhbik6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICAqIHdpbjMyL2dzdHJlYW1lci5kZWY6CgkgIFJlbmFtZSBnc3RfY2Fwc19zdHJ1Y3R1cmVfZml4YXRlXyogdG8gZ3N0X3N0cnVjdHVyZV9maXhhdGVfKgoJICAoIzMyMjAyNykKCjIwMDUtMTEtMjEgMTQ6MjU6MjEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLio6IFBvcnQgZmQ6Ly8gVVJJIGhhbmRsZXIgZnJvbSAwLjggdG8gZmRzcmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6IChfZG9faW5pdCksIChnc3RfZmRzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmRzcmNfaW5pdCksIChnc3RfZmRzcmNfZGlzcG9zZSksIChnc3RfZmRzcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mZHNyY191cmlfZ2V0X3R5cGUpLCAoZ3N0X2Zkc3JjX3VyaV9nZXRfcHJvdG9jb2xzKSwKCSAgKGdzdF9mZHNyY191cmlfZ2V0X3VyaSksIChnc3RfZmRzcmNfdXJpX3NldF91cmkpLAoJICAoZ3N0X2Zkc3JjX3VyaV9oYW5kbGVyX2luaXQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICBQb3J0IGZkOi8vIFVSSSBoYW5kbGVyIGZyb20gMC44IHRvIGZkc3JjCgoyMDA1LTExLTIxIDEzOjI2OjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgTW9yZSBzZWdtZW50IHVwZGF0ZXMgYW5kIG1vcmUgY2hlY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0c2VnbWVudHNfc3VpdGUpLAoJICAobWFpbik6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2luaXQpLCAoZ3N0X3NlZ21lbnRfc2V0X2R1cmF0aW9uKSwKCSAgKGdzdF9zZWdtZW50X3NldF9sYXN0X3N0b3ApLCAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLAoJICAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnQpLCAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLAoJICAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKSwgKGdzdF9zZWdtZW50X2NsaXApOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIE1vcmUgc2VnbWVudCB1cGRhdGVzIGFuZCBtb3JlIGNoZWNrcy4KCjIwMDUtMTEtMjEgMTM6MjY6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuKjogRHJvcCBsZWFkaW5nICclJyBmcm9tIEdTVF9GT1VSQ0NfRk9STUFULCB0aHVzIG1ha2luZyBpdCBjb25zaXN0ZW50IHdpdGggb3VyIG90aGVyIGZvcm1hdCBkZWZpbmVzICgjMzIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfdHJhbnNmb3JtX2ZvdXJjY19zdHJpbmcpLAoJICAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mb3VyY2MpOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBEcm9wIGxlYWRpbmcgJyUnIGZyb20gR1NUX0ZPVVJDQ19GT1JNQVQsIHRodXMgbWFraW5nIGl0CgkgIGNvbnNpc3RlbnQgd2l0aCBvdXIgb3RoZXIgZm9ybWF0IGRlZmluZXMgKCMzMjAzMjQpLgoKMjAwNS0xMS0yMSAxMzoxMjoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBSZXZlcnQgcHJldmlvdXMgY29tbWl0LiBWYWx1ZSBsaXN0cyBhcmUgYnkgZGVmaW5pdGlvbiBub3QgZml4ZWQsIGFzIHRoZXkgYXJlIGEgbGlzdCBvZiBwb3NzaWJsZSB2YWx1ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2lzX2ZpeGVkKToKCSAgUmV2ZXJ0IHByZXZpb3VzIGNvbW1pdC4gVmFsdWUgbGlzdHMgYXJlIGJ5IGRlZmluaXRpb24KCSAgbm90IGZpeGVkLCBhcyB0aGV5IGFyZSBhIGxpc3Qgb2YgcG9zc2libGUgdmFsdWVzLgoKMjAwNS0xMS0yMSAxMzowMzozNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGV2ZW50LmggKEdTVF9FVkVOVF9GSUxMRVIpOiBSZW1vdmVkLiBDYW4gYmUgYWRkZWQgYmFjayBkdXJpbmcgdGhlIHN0YWJsZSBzZXJpZXMgaWYgd2UgbmVlZCBpdC4gRml4ZXMgIzMxOTE3OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGV2ZW50LmggKEdTVF9FVkVOVF9GSUxMRVIpOiBSZW1vdmVkLiBDYW4gYmUgYWRkZWQgYmFjawoJICBkdXJpbmcgdGhlIHN0YWJsZSBzZXJpZXMgaWYgd2UgbmVlZCBpdC4gRml4ZXMgIzMxOTE3OC4KCSAgKiBnc3QvZ3N0ZXZlbnQuYyAoZ3N0X2V2ZW50X25ld19maWxsZXIpOiBSZW1vdmVkLgoJICAqIGNoZWNrL2dzdC9nc3RldmVudC5jOiBVcGRhdGUgY29tbWVudCBhYm91dCBmaWxsZXIgZXZlbnRzLgoKMjAwNS0xMS0yMSAxMjo0Mjo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBTaG91bGQgaGFuZGxlIGJvdGggdmFsdWUgYXJyYXlzIGFuZCB2YWx1ZSBsaXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfaXNfZml4ZWQpOgoJICBTaG91bGQgaGFuZGxlIGJvdGggdmFsdWUgYXJyYXlzIGFuZCB2YWx1ZSBsaXN0cy4KCjIwMDUtMTEtMjEgMTI6Mjc6MDEgKzAwMDAgIEFsZXNzYW5kcm8gRGVzc2luYSA8YWxlc3NhbmRyb0BubnZhLm9yZz4KCgkgIGdzdC9nc3R2YWx1ZS5jIChnc3RfdmFsdWVfaXNfZml4ZWQpOiBVc2UgZ3N0X3ZhbHVlX2FycmF5IGZ1bmN0aW9ucyB0byBhY2Nlc3MgYXJyYXlzLiBGaXhlcyAjMzIxOTYyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgcGF0Y2ggYnk6IEFsZXNzYW5kcm8gRGVzc2luYSA8YWxlc3NhbmRybyBubnZhIG9yZz4KCSAgKiBnc3QvZ3N0dmFsdWUuYyAoZ3N0X3ZhbHVlX2lzX2ZpeGVkKTogVXNlIGdzdF92YWx1ZV9hcnJheQoJICBmdW5jdGlvbnMgdG8gYWNjZXNzIGFycmF5cy4gRml4ZXMgIzMyMTk2Mi4KCjIwMDUtMTEtMjEgMTE6MjY6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6IGdzdF9jb2xsZWN0cGFkc19nZXRfdHlwZSA9PiBnc3RfY29sbGVjdF9wYWRzX2dldF90eXBlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgIGdzdF9jb2xsZWN0cGFkc19nZXRfdHlwZSA9PiBnc3RfY29sbGVjdF9wYWRzX2dldF90eXBlLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgUmVtb3ZlIHVudXNlZCBTSUdOQUxfSEFORE9GRiBlbnVtLgoKMjAwNS0xMS0yMSAxMTowNjo0MiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGV2ZW50LmggKEdzdEV2ZW50VHlwZUZsYWdzKTogTmV3IGRhdGEgdHlwZSwgdGhlIGZsYWdzIG9mIHRoZSBldmVudCB0eXBlICh1cHN0cmVhbSwgZG93bnN0cmVhbSwgc2VyaWFsaXplZCkuIFJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RldmVudC5oIChHc3RFdmVudFR5cGVGbGFncyk6IE5ldyBkYXRhIHR5cGUsIHRoZSBmbGFncyBvZgoJICB0aGUgZXZlbnQgdHlwZSAodXBzdHJlYW0sIGRvd25zdHJlYW0sIHNlcmlhbGl6ZWQpLiBSZW5hbWVkCgkgIEdTVF9FVkRJUl8qIGFuZCBHU1RfRVZTRVIgdG8gR1NUX0VWRU5UX1RZUEVfKi4KCSAgKEdzdEV2ZW50VHlwZSk6IFVzZSBHc3RFdmVudFR5cGVGbGFncy4gUmVuYW1lIENVU1RPTV9VUCB0bwoJICBDVVNUT01fVVBTVFJFQU0sIENVU1RPTV9EUyB0byBDVVNUT01fRE9XTlNUUkVBTSwgZXRjLgoJICAqIGdzdC9nc3RldmVudC5jOiBVcGRhdGUgZm9yIG5ldyBDVVNUT00gZXZlbnQgbmFtZXMuCgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmM6IFVwZGF0ZSBjaGVjayBmb3IgbmV3IENVU1RPTSBldmVudCBuYW1lcy4KCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYyAoZ3N0X2V2ZW50X3R5cGVfZ2V0X2ZsYWdzKTogTmV3IGZ1bmN0aW9uLiBGaXhlcwoJICBidWcgIzMxOTM5Mi4KCjIwMDUtMTEtMjEgMTE6MDA6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBSZW5hbWUgZ3N0X2NvbGxlY3BhZHNfZm9vKCkgPT4gZ3N0X2NvbGxlY3RfcGFkc19mb28oKS4gRG9jdW1lbnQgdW5pbXBsZW1lbnRlZCBmdW5jdGlvbnMgYXMgdW5pbXBsZW1lbnRlZCAoIzMyMDc2NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2xpYmdzdGJhc2UuZGVmOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2Jhc2VfaW5pdCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NsYXNzX2luaXQpLCAoZ3N0X2NvbGxlY3RfcGFkc19pbml0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZmluYWxpemUpLCAoZ3N0X2NvbGxlY3RfcGFkc19uZXcpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zZXRfZnVuY3Rpb24pLCAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksIChnc3RfY29sbGVjdF9wYWRzX2lzX2FjdGl2ZSksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NvbGxlY3QpLCAoZ3N0X2NvbGxlY3RfcGFkc19jb2xsZWN0X3JhbmdlKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3RhcnQpLCAoZ3N0X2NvbGxlY3RfcGFkc19zdG9wKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfcGVlayksIChnc3RfY29sbGVjdF9wYWRzX3BvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2F2YWlsYWJsZSksIChnc3RfY29sbGVjdF9wYWRzX3JlYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19mbHVzaCksIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIFJlbmFtZSBnc3RfY29sbGVjcGFkc19mb28oKSA9PiBnc3RfY29sbGVjdF9wYWRzX2ZvbygpLiBEb2N1bWVudAoJICB1bmltcGxlbWVudGVkIGZ1bmN0aW9ucyBhcyB1bmltcGxlbWVudGVkICgjMzIwNzY2KS4KCjIwMDUtMTEtMjEgMTA6NDE6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0bWVzc2FnZS5jOiBJbXByb3ZlIGRvY3MgZm9yIERVUkFUSU9OIG1lc3NhZ2UgKHVzYWdlIG9mIGR1cmF0aW9uIHBhcmFtZXRlcikgKCMzMjAxMTMpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIEltcHJvdmUgZG9jcyBmb3IgRFVSQVRJT04gbWVzc2FnZSAodXNhZ2Ugb2YgZHVyYXRpb24gcGFyYW1ldGVyKQoJICAoIzMyMDExMykKCjIwMDUtMTEtMjEgMTA6MDQ6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIHVwZGF0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlCgoyMDA1LTExLTIxIDA5OjQ0OjQ2ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgYWRkIGxhdGVzdCAucGMgZmlsZSB0byBzcGVjCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbGF0ZXN0IC5wYyBmaWxlIHRvIHNwZWMKCjIwMDUtMTEtMjAgMTk6MTE6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGRlZCBzZWdtZW50IGhlbHBlciBzdHJ1Y3R1cmUgYW5kIG1ldGhvZHMuIE5vdCBmdWxseSBpbXBsZW1lbnRlZCB5ZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RldmVudHNfc3VpdGUpLAoJICAobWFpbik6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfaW5pdCksIChnc3Rfc2VnbWVudF9zZXRfZHVyYXRpb24pLAoJICAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLCAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnQpLAoJICAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLCAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKSwKCSAgKGdzdF9zZWdtZW50X2NsaXApOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIEFkZGVkIHNlZ21lbnQgaGVscGVyIHN0cnVjdHVyZSBhbmQgbWV0aG9kcy4gTm90IGZ1bGx5IGltcGxlbWVudGVkCgkgIHlldC4KCSAgQWRkZWQgc2VnbWVudCBjaGVjay4KCjIwMDUtMTEtMjAgMTc6MTI6NDkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ3N0L2dzdHZhbHVlLmM6IEFkZCBhIGRlc2VyaWFsaXNhdGlvbiB0ZXN0IGZvciBmcmFjdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBBZGQgYSBkZXNlcmlhbGlzYXRpb24gdGVzdCBmb3IgZnJhY3Rpb25zCgkgICogZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOiAobWVzc2FnZV9sb29wKSwKCSAgKG1ha2VfcGlwZWxpbmUpLCAobWFpbik6CgkgIEZpeCB1cCBtZXRhZGF0YSByZWFkaW5nIHNhbXBsZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgRGVidWcgZm9ybWF0IGZpeAoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X25lZ290aWF0ZSk6CgkgIERvbid0IHRyeSBhbmQgZml4YXRlIGVtcHR5IGNhcHMKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgV3JhcCBpbiBHX0JFR0lOX0RFQ0xTL0dfRU5EX0RFQ0xTCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29sbGVjdF9mcmFjdGlvbiksCgkgIChnc3RfdmFsdWVfc2V0X2ZyYWN0aW9uKSwgKGdzdF92YWx1ZV9nZXRfZnJhY3Rpb25fZGVub21pbmF0b3IpLAoJICAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9zdHJpbmdfZnJhY3Rpb24pLAoJICAoZ3N0X3ZhbHVlX2NvbXBhcmVfZnJhY3Rpb24pOgoJICBBZGQgc29tZSBleHRyYSBndWFyZHMgdG8gZW5zdXJlIHRoYXQgd2UgZG9uJ3QgZW5kIHVwCgkgIHdpdGggYW4gaW52YWxpZCBkZW5vbWluYXRvciBvZiAwIGluIGEgZ3N0ZnJhY3Rpb24gYW5kCgkgIHRoYXQgZnJhY3Rpb25zIGFsd2F5cyBnZXQgcmVkdWNlZC4KCjIwMDUtMTEtMjAgMTQ6NTY6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIFNvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggY2hhbmdlbG9nIGluIGxhc3QgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBTb21ldGhpbmcgd2VudCB3cm9uZyB3aXRoIGNoYW5nZWxvZyBpbiBsYXN0IGNvbW1pdAoKMjAwNS0xMS0yMCAxNDo1MDo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvYyBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiBnc3QvZ3N0Zm9ybWF0LmM6CgkgICogZ3N0L2dzdGZvcm1hdC5oOgoJICAqIGdzdC9nc3RpbmRleC5oOgoJICAqIGdzdC9nc3RxdWVyeS5jOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBEb2MgZml4ZXMuCgoyMDA1LTExLTIwIDEzOjI4OjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgTWFrZSBhIHByb3BlciBlbnVtIG9mIHRoZSBmbGFnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgIE1ha2UgYSBwcm9wZXIgZW51bSBvZiB0aGUgZmxhZy4KCjIwMDUtMTEtMTkgMTg6NTc6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgdHlwZSB0byBxdWFyayBhbmQgdHlwZSB0byBzdHJpbmcgY29udmVyc2lvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZ3N0L2dzdGZvcm1hdC5jOiAoX2dzdF9mb3JtYXRfaW5pdGlhbGl6ZSksIChnc3RfZm9ybWF0X2dldF9uYW1lKSwKCSAgKGdzdF9mb3JtYXRfdG9fcXVhcmspLCAoZ3N0X2Zvcm1hdF9yZWdpc3Rlcik6CgkgICogZ3N0L2dzdGZvcm1hdC5oOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoX2dzdF9xdWVyeV9pbml0aWFsaXplKSwKCSAgKGdzdF9xdWVyeV90eXBlX2dldF9uYW1lKSwgKGdzdF9xdWVyeV90eXBlX3RvX3F1YXJrKSwKCSAgKGdzdF9xdWVyeV90eXBlX3JlZ2lzdGVyKToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQWRkIHR5cGUgdG8gcXVhcmsgYW5kIHR5cGUgdG8gc3RyaW5nIGNvbnZlcnNpb25zLgoKMjAwNS0xMS0xOSAxODozMjowMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5oIChHU1RfQlVGRkVSX0ZMQUdfT1JJR0lOQUwpOiBSZW1vdmVkLiBGaXhlcyAjMzIwMDk3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YnVmZmVyLmggKEdTVF9CVUZGRVJfRkxBR19PUklHSU5BTCk6IFJlbW92ZWQuIEZpeGVzCgkgICMzMjAwOTcuCgoyMDA1LTExLTE5IDE4OjI4OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgTWFrZSBtZXNzYWdlIGhhbmRsaW5nIG92ZXJyaWRhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksCgkgIChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoYmluX2J1c19oYW5kbGVyKSwKCSAgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBNYWtlIG1lc3NhZ2UgaGFuZGxpbmcgb3ZlcnJpZGFibGUuCgoyMDA1LTExLTE5IDE4OjI2OjM1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmggKEdTVF9QQURfSVNfVVNBQkxFKTogUmVtb3ZlZC4gRml4ZXMgIzMyMTIzNS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5oIChHU1RfUEFEX0lTX1VTQUJMRSk6IFJlbW92ZWQuIEZpeGVzICMzMjEyMzUuCgoyMDA1LTExLTE5IDE4OjE3OjI5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Y2xvY2suKjogQ2hhbmdlIHJlc29sdXRpb24gdG8gYmUgYSBHc3RDbG9ja1RpbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RjbG9jay5jIChHc3RDbG9jaywgR3N0Q2xvY2tDbGFzcyk6IENoYW5nZSByZXNvbHV0aW9uIHRvCgkgIGJlIGEgR3N0Q2xvY2tUaW1lLgoJICAoZ3N0X2Nsb2NrX3NldF9yZXNvbHV0aW9uLCBnc3RfY2xvY2tfZ2V0X3Jlc29sdXRpb24pOiBSZXNvbHV0aW9uCgkgIGlzIGEgR3N0Q2xvY2tUaW1lLiBGaXhlcyAjMzIxNzEwLgoKMjAwNS0xMS0xOSAxODowNjo1NiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGNsb2NrLmggKEdzdENsb2NrKTogUmVtb3ZlIG9mZnNldCBwcm9wZXJ0eS4gQWRkIGludGVybmFsX2NhbGlicmF0aW9uIGFuZCBleHRlcm5hbF9jYWxpYnJhdGlvbi4gRml4IHBhZGRpbmcuIFBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RjbG9jay5oIChHc3RDbG9jayk6IFJlbW92ZSBvZmZzZXQgcHJvcGVydHkuIEFkZAoJICBpbnRlcm5hbF9jYWxpYnJhdGlvbiBhbmQgZXh0ZXJuYWxfY2FsaWJyYXRpb24uIEZpeCBwYWRkaW5nLiBQYWQKCSAgYWxzbyBieSBHc3RDbG9ja1RpbWUgc28gd2UgZG9uJ3QgcnVuIGludG8gcHJvYmxlbXMuCgkgICogZ3N0L2dzdGNsb2NrLmMgKGdzdF9jbG9ja19zZXRfcmF0ZV9vZmZzZXQpOiBSZW1vdmUuCgkgIChnc3RfY2xvY2tfZ2V0X3JhdGVfb2Zmc2V0KTogUmVtb3ZlLgoJICAoZ3N0X2Nsb2NrX3NldF90aW1lX2FkanVzdCk6IFJlbW92ZS4gRml4ZXMgIzMyMTcxMi4KCjIwMDUtMTEtMTkgMTc6NTA6NTIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5oOiBnc3QvZ3N0dXRpbHMuYyAoZ19zdGF0aWNfcmVjX2NvbmRfd2FpdCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogZ3N0L2dzdHV0aWxzLmMgKGdfc3RhdGljX3JlY19jb25kX3dhaXQpCgkgIChnX3N0YXRpY19yZWNfY29uZF90aW1lZF93YWl0KTogUmVtb3ZlZCwgbm8gbG9uZ2VyIG5lZWRlZC4KCSAgKiBnc3QvZ3N0YmluLmM6IFJlbW92ZSB0ZXJyaWJsZSBjb250aW51ZV9zdGF0ZSBwcm90b3R5cGUuCgkgICogZ3N0L2dzdGVsZW1lbnQuaCAoZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUpOiBNYWtlIHB1YmxpYy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSk6IFJlbW92ZWQsIHJlcGxhY2VkCgkgIGJ5IGNvbnRpbnVlX3N0YXRlLiBGaXhlcyAjMzE5Mzg5LgoKMjAwNS0xMS0xOSAxNzoyODo1OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGluZGV4LmggKEdzdEluZGV4RmlsdGVyKTogQWN0dWFsbHkgcGFzcyBvbiB0aGUgdXNlcl9kYXRhLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0aW5kZXguaCAoR3N0SW5kZXhGaWx0ZXIpOiBBY3R1YWxseSBwYXNzIG9uIHRoZSB1c2VyX2RhdGEuCgkgIFJlYWxseSBmaXhlcyAjMTY4NDM4LiBIb3dldmVyIEkgZG9uJ3Qgc2VlIGFueXdoZXJlIHdoZXJlIHRoZQoJICBmaWx0ZXIgZnVuY3Rpb24gaXMgY2FsbGVkLi4uIHN0dXBpZCBHU3RyZWFtZXIuLi4KCjIwMDUtMTEtMTkgMTc6MjY6MjcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RpbmRleC5oIChHc3RJbmRleCk6IEFkZCBmaWVsZCBmb3IgdXNlcl9kYXRhX2Rlc3Ryb3kuIFdlIGRvbid0IGhhdmUgYSBkaXNwb3NlIGZ1bmN0aW9uLCBzbyBpdCB3b24ndCBnZXQgY2FsbGVkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0aW5kZXguaCAoR3N0SW5kZXgpOiBBZGQgZmllbGQgZm9yIHVzZXJfZGF0YV9kZXN0cm95LiBXZQoJICBkb24ndCBoYXZlIGEgZGlzcG9zZSBmdW5jdGlvbiwgc28gaXQgd29uJ3QgZ2V0IGNhbGxlZCB3aGVuIHRoZQoJICBvYmplY3QgaXMgdW5yZWZmZWQsIGJ1dCBvaCB3ZWxsIQoJICAqIGdzdC9nc3RpbmRleC5jIChnc3RfaW5kZXhfc2V0X2ZpbHRlcl9mdWxsKTogTmV3IEFQSSBmdW5jdGlvbiwKCSAgYWxsb3dzIGEgZGVzdHJveSBmdW5jdGlvbiB0byBiZSBzZXQgc28gdXNlcl9kYXRhIGNhbiBiZSBmcmVlZC4KCSAgRml4ZXMgIzE2ODQzOC4KCSAgKGdzdF9pbmRleF9zZXRfZmlsdGVyKTogQ2FsbCBnc3RfaW5kZXhfc2V0X2ZpbHRlcl9mdWxsLgoKMjAwNS0xMS0xOSAxNzowODoyMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdHZhbHVlLmMgKHRlc3Rfc3RyaW5nKTogQWRkIHRlc3QgZm9yIGJ1ZyAjMTY1NjUwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYyAodGVzdF9zdHJpbmcpOiBBZGQgdGVzdCBmb3IgYnVnICMxNjU2NTAuCgkgICogZ3N0L2dzdHZhbHVlLmMgKGdzdF9zdHJpbmdfd3JhcCk6IFRyeWluZyB0byBzZXJpYWxpemUgYSBOVUxMCgkgIHN0cmluZyBzaG91bGQgcHJvZHVjZSBhbiBlcnJvciwgZ2l2ZW4gdGhlIGxhY2sgb2YgYSB3YXkgdG8KCSAgcmVwcmVzZW50IE5VTEwgc3RyaW5ncy4gRml4ZXMgIzE2NTY1MC4KCjIwMDUtMTEtMTkgMTY6NDY6MzAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5oOiBnc3QvZ3N0dmFsdWUuYyAoZ3N0X3ZhbHVlX2FycmF5X2FwcGVuZF92YWx1ZSkgKGdzdF92YWx1ZV9hcnJheV9wcmVwZW5kX3ZhbHVlLCBnc3RfdmFsdWVfYXJyYXlfZ2V0X3NpemUpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jIChnc3RfdmFsdWVfYXJyYXlfYXBwZW5kX3ZhbHVlKQoJICAoZ3N0X3ZhbHVlX2FycmF5X3ByZXBlbmRfdmFsdWUsIGdzdF92YWx1ZV9hcnJheV9nZXRfc2l6ZSkKCSAgKGdzdF92YWx1ZV9hcnJheV9nZXRfdmFsdWUpOiBOZXcgQVBJLCBjb3BpZWQgZnJvbQoJICBnc3RfdmFsdWVfbGlzdF8qLCBvbmx5IG9wZXJhdGVzIG9uIGFycmF5cy4KCSAgKGdzdF92YWx1ZV9saXN0X2FwcGVuZF92YWx1ZSwgZ3N0X3ZhbHVlX2xpc3RfcHJlcGVuZF92YWx1ZSkKCSAgKGdzdF92YWx1ZV9saXN0X2NvbmNhdCwgZ3N0X3ZhbHVlX2xpc3RfZ2V0X3NpemUpCgkgIChnc3RfdmFsdWVfbGlzdF9nZXRfdmFsdWUpOiBPbmx5IG9wZXJhdGUgb24gbGlzdHMuIEZpeGVzICMxNTY2MzMuCgkgICogZ3N0L2dzdHZhbHVlLmMgKGdzdF92YWx1ZV9pbml0X2xpc3Rfb3JfYXJyYXkpOiBSZW5hbWVkIGZyb20KCSAgaW5pdF9saXN0LCBiZWNhdXNlIGl0IHdvcmtzIG9uIGJvdGguCgkgIChjb3B5X2dhcnJheV9vZl9nc3R2YWx1ZSk6IFJlbmFtZWQgZnJvbSBnc3RfdmFsdWVfbGlzdF9jb3B5X2FycmF5LgoJICAoZ3N0X3ZhbHVlX2NvcHlfbGlzdF9vcl9hcnJheSk6IFJlbmFtZWQgZnJvbSBjb3B5X2xpc3QuCgkgIChnc3RfdmFsdWVfZnJlZV9saXN0X29yX2FycmF5KTogUmVuYW1lZCBmcm9tIGZyZWVfbGlzdC4KCSAgKGdzdF92YWx1ZV9jb2xsZWN0X2xpc3Rfb3JfYXJyYXkpOiBSZW5hbWVkIGZyb20gY29sbGVjdF9saXN0LgoJICAoZ3N0X3ZhbHVlX2xjb3B5X2xpc3Rfb3JfYXJyYXkpOiBSZW5hbWVkIGZyb20gbGNvcHlfbGlzdC4KCSAgKGdzdF92YWx1ZV9saXN0X29yX2FycmF5X3BlZWtfcG9pbnRlcik6IFJlbmFtZWQgZnJvbQoJICBsaXN0X3BlZWtfcG9pbnRlci4KCSAgKF9nc3RfdmFsdWVfYXJyYXlfdmFsdWVfdGFibGUsIF9nc3RfdmFsdWVfbGlzdF92YWx1ZV90YWJsZSk6CgkgIFVwZGF0ZSB2YWx1ZSB0YWJsZSBmdW5jdGlvbnMuCgkgIChnc3RfdmFsdWVfY29tcGFyZV9saXN0X29yX2FycmF5KTogUmVuYW1lZCBmcm9tIGNvbXBhcmVfbGlzdC4KCjIwMDUtMTEtMTkgMTY6MDU6MTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdHRhZ2xpc3QuaDogV2hvb3BzLCBmb3JlYWNoIGZ1bmN0aW9uIHJldHVybnMgdm9pZC4gQWxzbyBmaXggc29tZSBjb25zdG5lc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdHRhZ2xpc3QuaDogV2hvb3BzLCBmb3JlYWNoIGZ1bmN0aW9uIHJldHVybnMgdm9pZC4gQWxzbyBmaXgKCSAgc29tZSBjb25zdG5lc3MuCgoyMDA1LTExLTE5IDE1OjUxOjQxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0dGFnbGlzdC4qOiBPcGVyYXRlcyBvbiBhIGNvbnN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaCAoZ3N0X3RhZ19saXN0X2ZvcmVhY2gpOiBPcGVyYXRlcyBvbiBhIGNvbnN0CgkgIEdzdFRhZ0xpc3QqLiBGaXhlcyAjMTQzNDcyLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDogQ2xhcmlmeSB3aGF0IHRoZSBmb3JlYWNoL21hcCBmdW5jdGlvbnMgY2FuCgkgIG9yIGNhbid0IGRvIHRvIHRoZWlyIGFyZ3VtZW50cy4KCjIwMDUtMTEtMTggMTk6MjE6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2xvY2suYzogRG9jIGFuZCBBUEkgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX3NldF9jYWxpYnJhdGlvbiksCgkgIChnc3RfY2xvY2tfZ2V0X2NhbGlicmF0aW9uKToKCSAgRG9jIGFuZCBBUEkgZml4ZXMuCgkgIENhbGxpYnJhdGlvbiBjYW4gYmUgc2V0IHdpdGggaW50ZXJuYWwgdGltZSBlcXVhbCB0byBjdXJyZW50CgkgIGludGVybmFsIHRpbWUgdG9vLgoKMjAwNS0xMS0xOCAxODo1NToyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0ZXJyb3IuKjogZG9jdW1lbnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgIGRvY3VtZW50CgoyMDA1LTExLTE4IDE4OjM4OjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBkb2N1bWVudCBvbiByZXF1aXJlbWVudHMgZm9yIG1vdmluZyBwbHVnaW5zIHRvIGdvb2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvY3VtZW50IG9uIHJlcXVpcmVtZW50cyBmb3IgbW92aW5nIHBsdWdpbnMgdG8gZ29vZAoKMjAwNS0xMS0xOCAxNjoyNDo1NiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgQWRkIG5ldCBwa2djb25maWcgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC5wYy5pbjoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSAgKiBwa2djb25maWcvTWFrZWZpbGUuYW06IEFkZCBuZXQgcGtnY29uZmlnIGZpbGVzLgoKMjAwNS0xMS0xOCAxNjowNDoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogZG9jcyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICAqIGdzdC9nc3R0cmFjZS5jOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBkb2NzIGZpeGVzCgoyMDA1LTExLTE4IDE1OjUyOjI0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IFR1cm4gb2ZmIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiBUdXJuIG9mZiBkZWJ1Z2dpbmcuCgkgICogY2hlY2svbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKHRlc3RfZnVuY3Rpb25pbmcpOiBBc3NlcnQgdGhhdCB0aGUKCSAgdGltZXMgY29ubnZlcmdlIHNvbWV3aGF0LiBDYW4ndCBtYWtlIGEgcmVhbCB0ZXN0LgoKMjAwNS0xMS0xOCAxNTozMDoxOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jIChkb19saW5lYXJfcmVncmVzc2lvbik6IFVzZSBhbGwgaW50ZWdlciBhcml0aG1ldGljLiBSZXR1cm4gdGhlIG1pbmltdW0gb2YgdGhlIGRvbWFpbiwgd2hpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pOiBVc2UgYWxsCgkgIGludGVnZXIgYXJpdGhtZXRpYy4gUmV0dXJuIHRoZSBtaW5pbXVtIG9mIHRoZSBkb21haW4sIHdoaWNoIGNhbiBiZQoJICBzZXQgYXMgImludGVybmFsIiBmb3IgZ3N0X2Nsb2NrX3NldF9jYWxpYnJhdGlvbi4KCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX29ic2VydmVfdGltZXMpOiBDYWxsIF9zZXRfY2FsaWJyYXRpb24uCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcpOiBDYWxsIF9zZXRfY2FsaWJyYXRpb24gaW5zdGVhZCBvZgoJICByYXRlX29mZnNldC4KCSAgKiBjaGVjay9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAodGVzdF9mdW5jdGlvbmluZyk6IFVzZSB0aGUgcmlnaHQKCSAgYWRqdXN0bWVudCBhcGkuCgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdGNsb2NrLmMgKGdzdF9jbG9ja19nZXRfY2FsaWJyYXRpb24pCgkgIChnc3RfY2xvY2tfc2V0X2NhbGlicmF0aW9uKTogTmV3IGZ1bmN0aW9ucywgb2Jzb2xldGUgdGhlIG9uZXMgSQoJICBhZGRlZCB5ZXN0ZXJkYXkuIERvaC4gUHJlY2lzaW9uIGlzc3VlcyBtZWFuIHdlIGhhdmUgdG8gZXh0cmFwb2xhdGUKCSAgZnJvbSBhIHBvaW50IGluIHRoZSBtb3JlIHJlY2VudCBwYXN0IHRoYW4gMTk3MC4KCSAgKGdzdF9jbG9ja19nZXRfcmF0ZV9vZmZzZXQsIGdzdF9jbG9ja19zZXRfcmF0ZV9vZmZzZXQpOiBNYXJrIGFzCgkgIG9ic29sZXRlLgoJICAoZ3N0X2Nsb2NrX2FkanVzdF91bmxvY2tlZCk6IFVzZSB0aGUgcmlnaHQgY2FsaWJyYXRpb24gZGF0YS4KCjIwMDUtMTEtMTggMTQ6NDk6MjggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBBbHNvIHJlc2V0IHRoZSAtPmN1cnJlbnRfKiB2YWx1ZXMgaW4gUkVBRFktPlBBVVNFRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBBbHNvIHJlc2V0IHRoZSAtPmN1cnJlbnRfKiB2YWx1ZXMgaW4gUkVBRFktPlBBVVNFRAoKMjAwNS0xMS0xOCAxNDoxMzoyOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jIChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpOiBXaG9vcHMsIGNoZWNrIHRoZSByaWdodCBmZC4gQWxzbyBhZGQgc29tZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAoZ3N0X25ldF9jbGllbnRfY2xvY2tfdGhyZWFkKToKCSAgV2hvb3BzLCBjaGVjayB0aGUgcmlnaHQgZmQuIEFsc28gYWRkIHNvbWUgZGVidWdnaW5nLgoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfb2JzZXJ2ZV90aW1lcyk6IEFkanVzdCBmb3IgaW50NjQgb2Zmc2V0LgoJICAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pOiBBZGQgYSBjcmFwbG9hZCBvZiBkZWJ1Z2dpbmcuIFN1YnRyYWN0IG9mZgoJICB0aGUgbWluaW11bSB2YWx1ZXMgZnJvbSB0aGUgaW5wdXQgc2VyaWVzIHRvIGRpc2NhcmQgdW5uZWVkZWQgYml0cy4KCSAgVXNlIG9ubHkgaW50IGFyaXRobWV0aWMuIFRoZXJlIGlzIHN0aWxsIGRvdWJsZSBhcml0aG1ldGljIHdoZW4KCSAgY2FsY3VsYXRpbmcgdGhlIGludGVyY2VwdCB0aGF0IG5lZWRzIGZpeGluZy4gUmV0dXJuIGJvb2xlYW4gdG8KCSAgaW5kaWNhdGUgc3VjY2VzczsgRkFMU0Ugd291bGQgbWVhbiB0aGUgZG9tYWluIG9yIHJhbmdlIGlzIHRvbwoJICBncmVhdC4gU3RpbGwgbmVlZHMgZml4ZXMuCgoyMDA1LTExLTE4IDEzOjE4OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRm9yIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHN0cmVhbSB0aW1lLCB3ZSBuZWVkIHRvIHN1YnRyYWN0IGFjY3VtdWxhdGVkIHRpbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIEZvciB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiBzdHJlYW0gdGltZSwgd2UgbmVlZCB0byBzdWJ0cmFjdAoJICBhY2N1bXVsYXRlZCB0aW1lLgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19hc3luY190aHJlYWQpOgoJICBSZWxlYXNlIGxvY2sgYmVmb3JlIGNhbGxpbmcgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIG9mIGFzeW5jCgkgIGVudHJpZXMuCgoyMDA1LTExLTE4IDExOjU3OjMwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2NsYXNzX2luaXQpOiBQb3J0IGdvZXMgYWxsIHRoZSB3YXkgdG8gTUFYVUlOVDE2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2NsYXNzX2luaXQpOgoJICBQb3J0IGdvZXMgYWxsIHRoZSB3YXkgdG8gTUFYVUlOVDE2LgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IE1ha2UgdGhlIHBvcnQgcmFuZ2UgdGhlIHNhbWUgYXMKCSAgZm9yIHRoZSBrZXJuZWw6IDAgYXNzaWducywgb3RoZXJ3aXNlIHBvcnRzIGFyZSBsZXNzIHRoYW4KCSAgTUFYVUlOVDE2LgoJICAqIGNoZWNrL25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogQWRhcHQgZm9yIDAgPT0ga2VybmVsIGFzc2lnbnMKCSAgcG9ydCBjaGFuZ2UuCgkgICogY2hlY2svbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKHRlc3RfZnVuY3Rpb25pbmcpOiBBZGQgdGhlIHN0YXJ0CgkgIG9mIGFub3RoZXIgdGVzdC4KCjIwMDUtMTEtMTggMTE6MDM6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLio6IFJlbW92aW5nIGEgY2xvY2sgcHJvdmlkZXIgZnJvbSBhIGJpbiwgdHJpZ2dlcnMgYSBjbG9jayBsb3N0IG1lc3NhZ2Ugc28gdGhhdCBhIG5ldyBjbG9jayB3aWxsIGJlIHNlbGVjdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIFJlbW92aW5nIGEgY2xvY2sgcHJvdmlkZXIgZnJvbSBhIGJpbiwgdHJpZ2dlcnMgYSBjbG9jayBsb3N0IG1lc3NhZ2UKCSAgc28gdGhhdCBhIG5ldyBjbG9jayB3aWxsIGJlIHNlbGVjdGVkLgoJICBBZGRpbmcgYSBjbG9jayB0byBhIGJpbiB0cmlnZ2VycyBhIGNsb2NrIHByb3ZpZGVyIG1lc3NhZ2UuCgkgIE1ha2Ugc3VyZSB3ZSByZXNlbGVjdCBhIGNsb2NrIHdoZW4gd2UgcmVjZWl2ZWQgYSBjbG9jayBsb3N0IG1lc3NhZ2UuCgkgIEtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIGVsZW1lbnQgdGhhdCBwcm92aWRlZCB0aGUgY2xvY2suCgoyMDA1LTExLTE4IDEwOjU0OjU1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldyk6IEFkanVzdCB0aGUgY2xvY2sgaW5pdGlhbGx5IHNvIGl0IHByb2R1Y2VzIHZhbHVlcyBhcm91bmQgdGhlIGIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jIChnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcpOiBBZGp1c3QKCSAgdGhlIGNsb2NrIGluaXRpYWxseSBzbyBpdCBwcm9kdWNlcyB2YWx1ZXMgYXJvdW5kIHRoZSBiYXNlIHRpbWUuCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19jbGFzc19pbml0KTogVHlwbyBmaXguCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja190aHJlYWQpOiBBZGQgbm90ZSBvbiB3aGVuIHRoZSBzb2NrZXQgZ2V0cwoJICBjbG9zZWQuCgoyMDA1LTExLTE3IDE4OjUwOjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiBGcmVlIHJlbW90ZSBhbmQgbG9jYWwgdGltZSBhcnJheXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2ZpbmFsaXplKToKCSAgRnJlZSByZW1vdGUgYW5kIGxvY2FsIHRpbWUgYXJyYXlzLgoKMjAwNS0xMS0xNyAxODoxODo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogRml4IGNvbXBpbGF0aW9uLCB1bmluaXRpYWxpemVkIHZhcnMgYW5kIGEgZm9yZ290dGVuIGNvbnRpbnVlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChkb19saW5lYXJfcmVncmVzc2lvbiksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19kb19zZWxlY3QpLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfdGhyZWFkKToKCSAgRml4IGNvbXBpbGF0aW9uLCB1bmluaXRpYWxpemVkIHZhcnMgYW5kIGEgZm9yZ290dGVuIGNvbnRpbnVlLgoKMjAwNS0xMS0xNyAxNzo1NToxNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svOiBBZGQgYSBtb3N0IG1pbmltYWwgdGVzdCBmb3IgdGhlIG5ldCBjbGllbnQgY2xvY2suIE1vcmUgdG8gY29tZSBsYXRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svTWFrZWZpbGUuYW0gKGNoZWNrX1BST0dSQU1TKToKCSAgKiBjaGVjay9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogQWRkIGEgbW9zdCBtaW5pbWFsIHRlc3QgZm9yIHRoZQoJICBuZXQgY2xpZW50IGNsb2NrLiBNb3JlIHRvIGNvbWUgbGF0ZXIuCgkgICogZ3N0L25ldC9nc3RuZXQuaDoKCSAgKiBnc3QvbmV0L01ha2VmaWxlLmFtOiBBZGQgbmV0Y2xpZW50Y2xvY2suCgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogTmV3IGZpbGVzLCBpbXBsZW1lbnQgYW4gdW50ZXN0ZWQKCSAgR3N0Q2xvY2sgdGhhdCB0YWtlcyBpdHMgdGltZSBmcm9tIGEgbmV0d29yayB0aW1lIHByb3ZpZGVyLgoJICBJbXBsZW1lbnRzIHRoZSBhbGdvcml0aG0gaW4gbmV0d29yay1jbG9jay5zY20uCgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY20gKCp3aW5kb3ctc2l6ZSopOiBSZW5hbWUgZnJvbQoJICAqcXVldWUtbGVuZ3RoKi4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbSAobmV0d29yay10aW1lKToKCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLXV0aWxzLnNjbSAocS1wdXNoKTogVXBkYXRlIGNhbGxlcnMuCgoyMDA1LTExLTE3IDE2OjAyOjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBBbmQgdW5yZWYgdGhlIGNoaWxkIHRvby4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXcpOgoJICBBbmQgdW5yZWYgdGhlIGNoaWxkIHRvby4uCgoyMDA1LTExLTE3IDE0OjUxOjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBSZWZhY3RvciB0aGUgc29ydCBpdGVyYXRvciBzbyBpdCBjYW4gYmUgdXNlZCB3aGlsZSBob2xkaW5nIHRoZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2Rpc3Bvc2UpLCAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25ldyksIChnc3RfYmluX2l0ZXJhdGVfc29ydGVkKToKCSAgUmVmYWN0b3IgdGhlIHNvcnQgaXRlcmF0b3Igc28gaXQgY2FuIGJlIHVzZWQgd2hpbGUgaG9sZGluZyB0aGUKCSAgTE9DSyB0b28uCgkgIE1ha2UgY2xvY2sgc2VsZWN0aW9uIHNlbGVjdCBhIGNsb2NrIGNsb3Nlc3QgdG8gdGhlIHNvdXJjZS4KCjIwMDUtMTEtMTcgMTI6MzY6MzAgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RjbG9jay4qOiBBbm9ueW1vdXMgc3RydWN0cyBhcmUgYSBnY2MgKGFuZCBzb21lIG90aGVyIGNvbXBpbGVycykgZXh0ZW5zaW9uLCBzbyBkb24ndCB1c2UgdGhlbS4gU2luY2UgdGhpcyBpcyBvbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19pbml0KSwgKGdzdF9jbG9ja19hZGp1c3RfdW5sb2NrZWQpLAoJICAoZ3N0X2Nsb2NrX3NldF9yYXRlX29mZnNldCksIChnc3RfY2xvY2tfZ2V0X3JhdGVfb2Zmc2V0KToKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgQW5vbnltb3VzIHN0cnVjdHMgYXJlIGEgZ2NjIChhbmQgc29tZSBvdGhlciBjb21waWxlcnMpIGV4dGVuc2lvbiwgc28KCSAgZG9uJ3QgdXNlIHRoZW0uIFNpbmNlIHRoaXMgaXMgb25seSBmb3IgQUJJLWNvbXBhdGliaWxpdHksIGFuZCBvdXIKCSAgQVBJL0FCSSBmcmVlemUgaXMgb3ZlciBpbiBhIGZldyBkYXlzLCB0aGlzIHdob2xlIHRoaW5nIHdpbGwgb25seQoJICBsYXN0IGEgZmV3IGRheXMsIHNvIGRvbid0IGJvdGhlciB0cnlpbmcgdG8gdGhpbmsgdXAgYSBtZWFuaW5nZnVsCgkgIG5hbWUgZm9yIHRoZSBzdHJ1Y3QuCgoyMDA1LTExLTE3IDExOjUxOjQ5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Y2xvY2suaCAoR3N0Q2xvY2spOiBBZGQgcmF0ZSBhbmQgb2Zmc2V0IHByb3BlcnRpZXMsIHByZXNlcnZpbmcgQUJJIHN0YWJpbGl0eS4gQWRkIHJhdGUvb2Zmc2V0IGFjY2Vzc29ycy4gV2lsbCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGNsb2NrLmggKEdzdENsb2NrKTogQWRkIHJhdGUgYW5kIG9mZnNldCBwcm9wZXJ0aWVzLAoJICBwcmVzZXJ2aW5nIEFCSSBzdGFiaWxpdHkuIEFkZCByYXRlL29mZnNldCBhY2Nlc3NvcnMuIFdpbGwgZmlsZSBidWcKCSAgZm9yIHRoZSBmcmVlemUgYnJlYWsuCgkgICogZ3N0L2dzdGNsb2NrLmMgKGdzdF9jbG9ja19hZGp1c3RfdW5sb2NrZWQpOiBJbXBsZW1lbnQgdXNpbmcgcmF0ZQoJICBhbmQgb2Zmc2V0LCB0cnlpbmcgdG8ga2VlcCBwcmVjaXNpb24gYW5kIGF2b2lkaW5nCgkgIHVuZGVyZmxvdy9vdmVyZmxvdy4KCSAgKGdzdF9jbG9ja19zZXRfcmF0ZV9vZmZzZXQsIGdzdF9jbG9ja19nZXRfcmF0ZV9vZmZzZXQpOiBOZXcKCSAgZnVuY3Rpb25zLiBNYWtlIGdzdF9jbG9ja19zZXRfdGltZV9hZGp1c3Qgb2Jzb2xldGUuCgkgIChnc3RfY2xvY2tfc2V0X3RpbWVfYWRqdXN0KTogTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgb2Jzb2xldGUuCgkgIFdpbGwgZmlsZSBidWcgc29vbi4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6IE1ha2UgdGhlIEFCSS1zdGFiaWxpdHkgaGFjawoJICBncmVwcGFibGUgYnkgdXNpbmcgR1NUX1BBRERJTkctMSsxLgoKMjAwNS0xMS0xNyAxMToyNTozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9OT1RFUy0wLjEuMToKCSogZG9jcy9yYW5kb20vTk9URVMtMC4yLjA6CgkqIGRvY3MvcmFuZG9tL1RPRE8tcG9zdC0wLjEuMDoKCSogZG9jcy9yYW5kb20vYXJjaDoKCSogZG9jcy9yYW5kb20vY29yb3V0aW5lczoKCSogZG9jcy9yYW5kb20vZGVzaWduOgoJKiBkb2NzL3JhbmRvbS9mYWN0b3J5aW5mbzoKCSogZG9jcy9yYW5kb20vZ2Jvb2xlYW46CgkqIGRvY3MvcmFuZG9tL3BhZGFyY2g6CgkqIGRvY3MvcmFuZG9tL3NlcXVlbmNlOgoJKiBkb2NzL3JhbmRvbS9zdGF0ZS10cmFuc2l0aW9uczoKCSogZG9jcy9yYW5kb20vc3RhdGVzOgoJKiBkb2NzL3JhbmRvbS9zdGF0ZXMubmV3OgoJKiBkb2NzL3JhbmRvbS9zdGF0ZXMub2xkOgoJKiBkb2NzL3JhbmRvbS93YWxrdGhyb3VnaDoKCSAgcmVtb3ZlIGNvbXBsZXRlbHkgb3V0ZGF0ZWQgcmFuZG9tIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBjb21wbGV0ZWx5IG91dGRhdGVkIHJhbmRvbSBkb2NzCgoyMDA1LTExLTE3IDA5OjM3OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYzogQXNzZXJ0aW9uIHNob3VsZCBjaGVjayBmb3IgQ0xPQ0tfTE9TVCwgbm90IE5FV19DTE9DSyAoIzMyMTY0OCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9wYXJzZV9jbG9ja19sb3N0KToKCSAgQXNzZXJ0aW9uIHNob3VsZCBjaGVjayBmb3IgQ0xPQ0tfTE9TVCwgbm90IE5FV19DTE9DSyAoIzMyMTY0OCkuCgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgRG9uJ3QgdXNlIGMrKyBzdHlsZSBjb21tZW50cyBpbiBoZWFkZXJzICgjMzIxNjM4KS4KCjIwMDUtMTEtMTYgMTg6Mzc6NTcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jIChnc3RfbmV0X3RpbWVfcGFja2V0X3NlbmQpOiBGcmVlIGJ1ZmZlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmMgKGdzdF9uZXRfdGltZV9wYWNrZXRfc2VuZCk6IEZyZWUKCSAgYnVmZmVyLgoKMjAwNS0xMS0xNiAxODoxNjo1MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiBDaGVjayB0byBzZWUgdGhhdCB0aGUgdGltZSBwcm92aWRlciBhY3R1YWxseSBwcm92aWRlcyB0aW1lcy4gV29ya3MsIHlvIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IENoZWNrIHRvIHNlZSB0aGF0IHRoZSB0aW1lCgkgIHByb3ZpZGVyIGFjdHVhbGx5IHByb3ZpZGVzIHRpbWVzLiBXb3JrcywgeW8hCgoyMDA1LTExLTE2IDE4OjA5OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IEVuYWJsZSBtb3JlIHRlc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgRW5hYmxlIG1vcmUgdGVzdHMuCgkgICogY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBTZXQgZWxlbWVudCB0byBOVUxMIGJlZm9yZSBkaXNwb3NpbmcgaXQuCgoyMDA1LTExLTE2IDE3OjUzOjU0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4CgoyMDA1LTExLTE2IDE3OjUyOjA0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvbmV0LzogVXNlIHRoZSB0aW1lcGFja2V0IHN0dWZmIGluIHRoZSBwcm92aWRlciwgaW5jbHVkZSBpdCBmcm9tIGdzdG5ldC5oLCBhbmQgYWRkIGl0IHRvIHRoZSBidWlsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbmV0L2dzdG5ldC5oOgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDogVXNlIHRoZSB0aW1lcGFja2V0IHN0dWZmIGluIHRoZQoJICBwcm92aWRlciwgaW5jbHVkZSBpdCBmcm9tIGdzdG5ldC5oLCBhbmQgYWRkIGl0IHRvIHRoZSBidWlsZC4KCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzogTmV3IGZpbGVzLCBhYnN0cmFjdHMgb3V0IHRoZSBwYWNrZXQKCSAgc2VuZGluZyBhbmQgcmVjZWl2aW5nLgoKMjAwNS0xMS0xNiAxNzozNTowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBFbmFibGUgdmFsZ3JpbmQgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBFbmFibGUgdmFsZ3JpbmQgY2hlY2suCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19hbGxvY19wYXJlbnQpLAoJICAoZ3N0X2Zha2Vfc3JjX2FsbG9jX2J1ZmZlcik6CgkgIEZpeCBtZW1sZWFrLgoKMjAwNS0xMS0xNiAxNzoyMjozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IENhbGwgcGFyZW50IGZpbmFsaXplIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogKGdzdF9uZXRfdGltZV9wcm92aWRlcl9maW5hbGl6ZSk6CgkgIENhbGwgcGFyZW50IGZpbmFsaXplIHRvby4KCjIwMDUtMTEtMTYgMTc6MTg6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogRW5hYmxlIHZhbGdyaW5kIGNoZWNrIHRoYXQgc2hvdWxkIHdvcmsgZmluZSBub3cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBFbmFibGUgdmFsZ3JpbmQgY2hlY2sgdGhhdCBzaG91bGQgd29yayBmaW5lIG5vdy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaW5pdCk6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCk6CgkgIEZpeCBtZW1sZWFrcyBpbiBwYWQgYWxsb2NhdGlvbi4KCjIwMDUtMTEtMTYgMTY6NDk6NDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9uZXQvOiBOZXcgcGFydCBvZiBjb3JlIHRvIGhvbGQgbmV0d29yayBlbGVtZW50cyBhbmQgb2JqZWN0cy4gUHV0IGluIGNvcmUgYmVjYXVzZSBpdCBleHBvc2VzIEFQSSB0aGF0IGFwcGxpY2F0aW9ucy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvbmV0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9uZXQvZ3N0bmV0Lmg6IE5ldyBwYXJ0IG9mIGNvcmUgdG8gaG9sZCBuZXR3b3JrIGVsZW1lbnRzIGFuZAoJICBvYmplY3RzLiBQdXQgaW4gY29yZSBiZWNhdXNlIGl0IGV4cG9zZXMgQVBJIHRoYXQgYXBwbGljYXRpb25zIHdhbnQKCSAgdG8gdXNlLiBUaGUgbGlicmFyeSBpcyBuYW1lZCBsaWJnc3RuZXQtdGVtcG5hbWUgcmlnaHQgbm93IGJlY2F1c2UKCSAgb2YgdGhlIGV4aXN0aW5nIGxpYmdzdG5ldCBpbiBnc3QtcGx1Z2lucy1iYXNlLiBTb2x1dGlvbiBpcwoJICBwcm9iYWJseSB0byByZW5hbWUgdGhlIG9uZSBpbiBwbHVnaW5zLWJhc2U7IHdpbGwgZmlsZSBhIGJ1ZyBmb3IKCSAgdGhlIGZyZWV6ZSBicmVhay4KCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6IE5ldyBvYmplY3QgdG8gZXhwb3J0IGEgR3N0Q2xvY2sncwoJICBnZXRfdGltZSBjYWxsIG92ZXIgdGhlIG5ldHdvcmsuCgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9NYWtlZmlsZS5hbSAobGliX0xUTElCUkFSSUVTKTogQWRkIGdzdG5ldCB0byB0aGUgYnVpbGQuCgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiBBIG1vc3QgbWluaW1hbCB0ZXN0IHN1aXRlLiBXaWxsCgkgIGdldCBhZGRpdGlvbnMgc2hvcnRseS4KCjIwMDUtMTEtMTYgMTY6MDk6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHBhZC4qOiBhZGQgZ3N0X3BhZF9uZXdfZnJvbV9zdGF0aWNfdGVtcGxhdGUgZnVuY3Rpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbmV3X2Zyb21fc3RhdGljX3RlbXBsYXRlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIGFkZCBnc3RfcGFkX25ld19mcm9tX3N0YXRpY190ZW1wbGF0ZSBmdW5jdGlvbnMKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19zZXR1cF9zcmNfcGFkKSwKCSAgKGdzdF9jaGVja19zZXR1cF9zaW5rX3BhZCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9pbml0KToKCSAgYW5kIHVzZSB0aGVtCgoyMDA1LTExLTE2IDE2OjA2OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBSZW1vdmVkIHdhcm5pbmcsIGl0J3Mgbm90IHJlYWx5IGFuIGVycm9yIGVpdGhlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9wYXVzZV90YXNrKToKCSAgUmVtb3ZlZCB3YXJuaW5nLCBpdCdzIG5vdCByZWFseSBhbiBlcnJvciBlaXRoZXIuCgoyMDA1LTExLTE2IDE0OjI3OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBDaGVjayBpZiB0aGUgY2FwcyBhcmUgTlVMTCwgdGhpcyBjYW4gaGFwcGVuIGlmIHRoZSBlbGVtZW50IGlzIHNodXR0aW5nIGRvd24gYW5kIHRoZSBwYWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KToKCSAgQ2hlY2sgaWYgdGhlIGNhcHMgYXJlIE5VTEwsIHRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgZWxlbWVudAoJICBpcyBzaHV0dGluZyBkb3duIGFuZCB0aGUgcGFkIGNhcHMgYXJlIHNldCB0byBOVUxMLgoKMjAwNS0xMS0xNiAxMjo1Nzo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgZml4IHBhZCB0ZW1wYWx0ZSBsZWFrIGluIHRlZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHBhZCB0ZW1wYWx0ZSBsZWFrIGluIHRlZQoKMjAwNS0xMS0xNiAxMjo0MDoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiB1c2UgZ3N0X29iamVjdF9yZWYgd2hlbiBzZXR0aW5nIHRoZSBwYWQgdGVtcGxhdGU7IHRoaXMgd2lsbCB0cmlnZ2VyIHRoZSBwYWQgdGVtcGxhdGUgbGVha3Mgb24gR0xpYiAyLjYgYW5kIHRoZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6IChnX3ZhbHVlX2R1cF9nc3Rfb2JqZWN0KToKCSAgKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9wcm9wZXJ0eSk6CgkgIHVzZSBnc3Rfb2JqZWN0X3JlZiB3aGVuIHNldHRpbmcgdGhlIHBhZCB0ZW1wbGF0ZTsgdGhpcyB3aWxsCgkgIHRyaWdnZXIgdGhlIHBhZCB0ZW1wbGF0ZSBsZWFrcyBvbiBHTGliIDIuNiBhbmQgdGhlIHNsYXZlcwoKMjAwNS0xMS0xNiAxMjoyNToyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiByZW1vdmUgZnVuY3Rpb25zIGNvcGllZCBmcm9tIEdMaWIgMi42CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOiAoZ3N0X2ZsYWdzX2dldF9maXJzdF92YWx1ZSk6CgkgICogZ3N0L2dsaWItY29tcGF0Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIHJlbW92ZSBmdW5jdGlvbnMgY29waWVkIGZyb20gR0xpYiAyLjYKCjIwMDUtMTEtMTYgMTE6Mjk6NTcgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9NYWtlZmlsZS5hbTogRG9uJ3QgbGluayBhZ2FpbnN0IFZBTEdSSU5EX0xJQlMuIFRoYXQgd2FzIGFsd2F5cyB0aGUgd3JvbmcgdGhpbmcgdG8gZG8sIGJ1dCBvbmx5IGJyZWFrcyB3aXRoIG5ld2VyIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgIERvbid0IGxpbmsgYWdhaW5zdCBWQUxHUklORF9MSUJTLiBUaGF0IHdhcyBhbHdheXMgdGhlIHdyb25nIHRoaW5nIHRvCgkgIGRvLCBidXQgb25seSBicmVha3Mgd2l0aCBuZXdlciB2YWxncmluZCB2ZXJzaW9ucy4gV2UncmUgbm90IGEKCSAgdmFsZ3JpbmQgdG9vbCwgd2UgaGF2ZSBubyBsaW5rLXRpbWUgZGVwZW5kZW5jaWVzIG9uIGxpYmNvcmVncmluZC4KCjIwMDUtMTEtMTYgMTE6MDY6MDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBzb21lIGRlYnVnIGNoYW5nZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmVnb3RpYXRlKToKCSAgc29tZSBkZWJ1ZyBjaGFuZ2VzCgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgdHlwbyBmaXhlcwoKMjAwNS0xMS0xNSAyMzo1MzowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIFJldmVydCBhbGwgdGhlc2UgdW5yZWZzLCB0aGV5IGRvbid0IGV2ZW4gcGFzcyBtYWtlIGNoZWNrICEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmVydCBhbGwgdGhlc2UgdW5yZWZzLCB0aGV5IGRvbid0IGV2ZW4gcGFzcyBtYWtlIGNoZWNrICEKCjIwMDUtMTEtMTUgMTk6NDg6NDAgKzAwMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgQW5kIGdzdF9vYmplY3RfdW5yZWYgaGVyZSB0b28KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFuZCBnc3Rfb2JqZWN0X3VucmVmIGhlcmUgdG9vCgoyMDA1LTExLTE1IDE5OjMxOjA1ICswMDAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkgIGdzdC86IEZyZWUgcGFkIHRlbXBsYXRlcywgZml4ZXMgYSBjb3VwbGUgb2YgbGVha3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19pbml0KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaW5pdCk6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCk6CgkgIEZyZWUgcGFkIHRlbXBsYXRlcywgZml4ZXMgYSBjb3VwbGUgb2YgbGVha3MuCgoyMDA1LTExLTE1IDE5OjI0OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBHU1RfUEFEX1BBRF9URU1QTEFURShwYWQpIGdldHMgdGhlIHBhZCB0ZW1wbGF0ZSwgd2hpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfcHJvcGVydHkpOgoJICBHU1RfUEFEX1BBRF9URU1QTEFURShwYWQpIGdldHMgdGhlIHBhZCB0ZW1wbGF0ZSwgd2hpbGUKCSAgR1NUX1BBRF9URU1QTEFURShwYWQpIGRvZXMgYSBjYXN0LiBXZSB3YW50IHRoZSBmb3JtZXIgaGVyZS4KCSAgKCMzMjE0NTIpCgoyMDA1LTExLTE1IDE4OjM0OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGV2ZW50LmM6IFNtYWxsIGRvYyB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICBTbWFsbCBkb2MgdXBkYXRlLgoKMjAwNS0xMS0xNSAxNzo1Nzo1MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfc2V0X2Jhc2VfdGltZSk6IEFkZCBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X3NldF9iYXNlX3RpbWUpOiBBZGQgZGVidWdnaW5nLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jIChnc3RfcGlwZWxpbmVfc2V0X25ld19zdHJlYW1fdGltZSk6IERvY3VtZW50CgkgIHVzaW5nIEdTVF9DTE9DS19USU1FX05PTkUgdG8gZGlzYWJsZSBiYXNlIHRpbWUgbWFuYWdlbWVudC4KCSAgKGRvX3BpcGVsaW5lX3NlZWssIGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOiBEb24ndCByZXNldCBzdHJlYW0KCSAgdGltZSBpZiBpdCB3YXMgTk9ORSBiZWZvcmUuCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKTogT25seSBtdW5nZSB0aGUgYmFzZSB0aW1lIGlmCgkgIHN0cmVhbV90aW1lICE9IEdTVF9DTE9DS19USU1FX05PTkUuCgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmMgKHRlc3RfYmFzZV90aW1lKTogUHVudCBhcm91bmQgdGhlCgkgIHByb2JsZW0gb2YgdGhlIHByb2JlIG5vdCBiZWluZyBjYWxsZWQsIGJlY2F1c2UgdGhhdCdzIG5vdCB0aGUKCSAgaXNzdWUgSSdtIGxvb2tpbmcgYXQuIEFkZCBhIGNoZWNrIHRoYXQgc2V0dGluZyBzdHJlYW1fdGltZSB0byBOT05FCgkgIGRpc2FibGVzIGJhc2UgdGltZSBtYW5hZ2VtZW50LgoKMjAwNS0xMS0xNSAxNzoxODoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IHNlZ21lbnRfc3RvcCA9PSAtMSBhdCBzdGFydHVwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBzZWdtZW50X3N0b3AgPT0gLTEgYXQgc3RhcnR1cC4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6CgkgIEluaXQgc2VnbWVudCB2YWx1ZXMgYXQgc3RhcnQuCgoyMDA1LTExLTE1IDE2OjUyOjQ2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYyAodGVzdF9iYXNlX3RpbWUpOiBQdW50IGFyb3VuZCB0aGUgcHJvYmxlbSBvZiB0aGUgcHJvYmUgbm90IGJlaW5nIGNhbGxlZCwgYmVjYXVzZSB0aGF0J3Mgbm90IHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmMgKHRlc3RfYmFzZV90aW1lKTogUHVudCBhcm91bmQgdGhlCgkgIHByb2JsZW0gb2YgdGhlIHByb2JlIG5vdCBiZWluZyBjYWxsZWQsIGJlY2F1c2UgdGhhdCdzIG5vdCB0aGUKCSAgaXNzdWUgSSdtIGxvb2tpbmcgYXQuLi4KCjIwMDUtMTEtMTUgMTY6NDc6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAwIHNlZ21lbnQgdmFsdWVzIGFyZSAwIGluIGFueSBmb3JtYXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICAwIHNlZ21lbnQgdmFsdWVzIGFyZSAwIGluIGFueSBmb3JtYXQuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIFBhcnNlIG5ld3NlZ21lbnQgY29ycmVjdGx5IGluIGJhc2V0cmFuc2Zvcm0KCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBTeW5jIHRvIGNsb2NrIHVzaW5nIHVwZGF0ZWQgc2VnbWVudCB2YWx1ZXMuCgoyMDA1LTExLTE1IDE2OjI3OjA0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYyAodGVzdF9iYXNlX3RpbWUpOiBBZGQgY2hlY2sgdGhhdCB0aGUgYmFzZSB0aW1lIGFuZCBzdHJlYW0gdGltZSBhcmUgcmVzZXQgY29ycmVjdGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYyAodGVzdF9iYXNlX3RpbWUpOiBBZGQgY2hlY2sgdGhhdCB0aGUKCSAgYmFzZSB0aW1lIGFuZCBzdHJlYW0gdGltZSBhcmUgcmVzZXQgY29ycmVjdGx5LgoKMjAwNS0xMS0xNSAxNTo0NDo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFNvbWUgbW9yZSBUT0RPIGl0ZW1zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBTb21lIG1vcmUgVE9ETyBpdGVtcy4KCjIwMDUtMTEtMTUgMTI6MzU6NDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmMgKGdzdF9mYWtlX3NyY19jcmVhdGUpOiBJdCdzIG5vdCBhbiBlcnJvciBpZiB0aGUgdXNlciBzZWxlY3RlZCAibm8gY2xvY2siIGFzIHRoZSBjbG9ja2luZyBtZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jIChnc3RfZmFrZV9zcmNfY3JlYXRlKTogSXQncyBub3QgYW4KCSAgZXJyb3IgaWYgdGhlIHVzZXIgc2VsZWN0ZWQgIm5vIGNsb2NrIiBhcyB0aGUgY2xvY2tpbmcgbWV0aG9kLgoKMjAwNS0xMS0xNSAxMjoyOTowNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmMgKHRlc3RfYmFzZV90aW1lKTogTmV3IHRlc3QgZm9yIGJ1ZmZlciB0aW1lc3RhbXBzIHdpdGggbGl2ZSBjYXB0dXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYyAodGVzdF9iYXNlX3RpbWUpOiBOZXcgdGVzdCBmb3IgYnVmZmVyCgkgIHRpbWVzdGFtcHMgd2l0aCBsaXZlIGNhcHR1cmUuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYyAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSk6IElmIHRoZSBkYXRhcmF0ZQoJICBpcyAwIGJ1dCB3ZSBhcmUgYSBsaXZlIHNvdXJjZSwgdGltZXN0YW1wIHRoZSBidWZmZXJzIHVzaW5nIHRoZQoJICBlbGVtZW50J3MgY2xvY2suCgoyMDA1LTExLTE0IDE1OjE1OjQzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtb3JlIHNlY3Rpb24gZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlcnJvci5jOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0eG1sLmM6CgkgIG1vcmUgc2VjdGlvbiBkb2NzCgoyMDA1LTExLTE0IDE0OjQ1OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY29tbW9uL2dzdC5zdXBwOiBhZGQgc3VwcHJlc3Npb25zIGZyb20gV2ltJ3MgRGViaWFuIG1hY2hpbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL2dzdC5zdXBwOgoJICBhZGQgc3VwcHJlc3Npb25zIGZyb20gV2ltJ3MgRGViaWFuIG1hY2hpbmUKCjIwMDUtMTEtMTQgMTQ6MzY6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29tbW9uL2dzdC5zdXBwOiBhZGQgc3VwcHJlc3Npb25zIGZyb20gQW5keSdzIEFNRDY0IFVidW50dSBtYWNoaW5lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9nc3Quc3VwcDoKCSAgYWRkIHN1cHByZXNzaW9ucyBmcm9tIEFuZHkncyBBTUQ2NCBVYnVudHUgbWFjaGluZQoKMjAwNS0xMS0xNCAxMjo0Mzo0MyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3NldF9hY3RpdmUpOiBDaGFuZ2UgZG9jczsgcGFyZW50J3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3NldF9hY3RpdmUpOiBDaGFuZ2UgZG9jczsgcGFyZW50J3MKCSAgU1RBVEVfTE9DSyBub3QgbmVjZXNzYXJ5LiBGaXhlcyAjMzExNDg5LgoKMjAwNS0xMS0xNCAxMjoxNzo0NiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVycm9yLmMgKEZJTEVfQV9CVUcpOiBCZSBwb2xpdGUgKmFuZCogaGVscGZ1bC4gRml4ZXMgIzMwNTI5MS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVycm9yLmMgKEZJTEVfQV9CVUcpOiBCZSBwb2xpdGUgKmFuZCogaGVscGZ1bC4gRml4ZXMKCSAgIzMwNTI5MS4KCjIwMDUtMTEtMTQgMTE6NTg6NDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RpbmRleC5jIChnc3RfaW5kZXhfYWRkX29iamVjdCk6IE5vdGUgaW4gdGhlIGRvY3MgdGhhdCB0aGlzIGZ1bmN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGluZGV4LmMgKGdzdF9pbmRleF9hZGRfb2JqZWN0KTogTm90ZSBpbiB0aGUgZG9jcyB0aGF0CgkgIHRoaXMgZnVuY3Rpb24gaXMgbm90IGltcGxlbWVudGVkLgoKMjAwNS0xMS0xNCAxMDo0OTozNSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFJlZiB0aGUgc291cmNlIHBhZCBjYXBzIHdoaWxlIHdlIG5lZWQgdGhlbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTQgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKToKCSAgUmVmIHRoZSBzb3VyY2UgcGFkIGNhcHMgd2hpbGUgd2UgbmVlZCB0aGVtLgoJICBGaXhlcyAoIzMyMTM4NikKCjIwMDUtMTEtMTIgMTA6MjM6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svcGlwZWxpbmVzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMTEtMTIgMTA6MDQ6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgd2luMzIgZmlsZXMgZm9yIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB3aW4zMiBmaWxlcyBmb3IgSEVBRAoKMjAwNS0xMS0xMiAxMDowMzowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBkZWJ1ZyB0YXNrIGpvaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRlYnVnIHRhc2sgam9pbgoKMjAwNS0xMS0xMiAxMDowMDowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1xdW90ZXMueG1sOgoJICBmb3VuZCBhbm90aGVyIHF1b3RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmb3VuZCBhbm90aGVyIHF1b3RlCgoyMDA1LTExLTExIDIwOjEyOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkZWQgc29tZSBkb2NzIGZvciBHc3RDb2xsZWN0RGF0YS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkZWQgc29tZSBkb2NzIGZvciBHc3RDb2xsZWN0RGF0YS4KCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIFNvbWUgc21hbGwgY29kZSBleGFtcGxlIGZpeC4KCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIERvY3VtZW50IHNvbWUgbW9yZS4KCjIwMDUtMTEtMTEgMTk6MjY6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gaGVhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBoZWFkCgo9PT0gcmVsZWFzZSAwLjkuNSA9PT0KCjIwMDUtMTEtMTEgMTk6MjQ6MzAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuOS41CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC45LjUKCjIwMDUtMTEtMTEgMTg6MjU6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IENvcHkgbW9yZSBmbGFncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoX2dzdF9idWZmZXJfY29weSk6CgkgIENvcHkgbW9yZSBmbGFncy4KCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaXNfZXF1YWwpOgoJICBGaXggc29tZSBkb2NzLgoJICBNYWtlIF9pc19lcXVhbCBmYXN0IGluIHRoZSB0cml2aWFsIGNhc2VzLgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgTW9yZSBkb2NzLiBTcGlmaWZ5IC5oIGZpbGUuCgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIFNtYWxsIGRvYyB1cGRhdGUuCgoyMDA1LTExLTExIDE3OjE2OjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNS0xMS0xMSAxNjozNzoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogU21hbGwgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICBTbWFsbCBjbGVhbnVwcy4KCSAgSWYgd2UncmUgcHJvY2Vzc2luZyBhIGJ1ZmZlciBhbmQgbmVlZCB0byBhbGxvY2F0ZSBhbiBvdXRwdXQKCSAgYnVmZmVyLCB3ZSBjYW5ub3QgYWNjZXB0IGEgZm9ybWF0IGNoYW5nZS4gSWYgd2UgZGlkIGdldCBhCgkgIGZvcm1hdCBjaGFuZ2UsIHdlIGhhdmUgdG8gYWxsb2MgYSBidWZmZXIgb3Vyc2VsdmVzIG9mIHRoZQoJICByaWdodCBzaXplLgoKMjAwNS0xMS0xMSAxNjozNDoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogV2hpbGUgY2hlY2tpbmcgdGhlIGZsYWcgZm9yIHJlZW50cmFuY3kgaW4gdGhlIGdzdGNhcHMgZnVuY3Rpb24gaXMgbmljZSB0byBkZXRlY3QgcmVjdXJzaXZlIGludm9jYXRpb25zLC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9jYXBzKSwgKGdzdF9wYWRfcGVlcl9nZXRfY2Fwcyk6CgkgIFdoaWxlIGNoZWNraW5nIHRoZSBmbGFnIGZvciByZWVudHJhbmN5IGluIHRoZSBnc3RjYXBzIGZ1bmN0aW9uCgkgIGlzIG5pY2UgdG8gZGV0ZWN0IHJlY3Vyc2l2ZSBpbnZvY2F0aW9ucywgaXQgYWxzbyBtYWtlcyBpdAoJICBpbXBvc3NpYmxlIHRvIGNhbGwgZ2V0Y2FwcyBmcm9tIG11bHRpcGxlIHRocmVhZHMsIHdoaWNoIG11c3QgYmUKCSAgcG9zc2libGUuIFNvLCBjaGVja2luZyBmb3IgcmVjdXJzaXZlIGNhbGxzIGhhcyB0byBnby4KCjIwMDUtMTEtMTEgMTU6MTk6MzcgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IHN5bmMgb24gYnVmZmVycyB0aGF0IGZhbGwgcGFydGlhbGx5IG91dHNpZGUgb3VyIGN1cnJlbnQgc2VnbWVudC4gUHJldmVudHMgYW4gYXNzZXJ0aW9uIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgRG9uJ3Qgc3luYyBvbiBidWZmZXJzIHRoYXQgZmFsbCBwYXJ0aWFsbHkgb3V0c2lkZSBvdXIgY3VycmVudAoJICBzZWdtZW50LiBQcmV2ZW50cyBhbiBhc3NlcnRpb24gZmFpbHVyZS9hYm9ydCBwbGF5aW5nIHNvbWUgZmlsZXMuCgoyMDA1LTExLTEwIDE4OjE1OjI0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmMgKHRlc3RfbWVzc2FnZV9zdGF0ZV9jaGFuZ2VkX2NoaWxkcmVuKTogU3R5bGUgZml4Li4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jICh0ZXN0X21lc3NhZ2Vfc3RhdGVfY2hhbmdlZF9jaGlsZHJlbik6IFN0eWxlCgkgIGZpeC4uCgkgICogZ3N0L2dzdGJ1cy5jIChwb2xsX2Rlc3Ryb3ksIHBvbGxfZnVuYywgZ3N0X2J1c19wb2xsKTogSW1wbGVtZW50CgkgIGdzdF9idXNfcG9sbCB3aXRoIHRoZSBzaWduYWwgd2F0Y2guIEVuc3VyZXMgdGhhdCBwb2xsIGFuZCBhIHNpZ25hbAoJICB3YXRjaCBzZWUgdGhlIHNhbWUgbWVzc2FnZXMuCgkgICogY2hlY2svZ3N0L2dzdGJ1cy5jICh0ZXN0X3dhdGNoX3dpdGhfcG9sbCk6IE5ldyB0ZXN0LCBjaGVja3MgdGhhdAoJICBhIHBvbGwgYW5kIGEgd2F0Y2ggYXQgdGhlIHNhbWUgdGltZSBnZXQgdGhlIHNhbWUgbWVzc2FnZXMuCgoyMDA1LTExLTEwIDE3OjM3OjM5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IERvbid0IGNhbGwgZ3N0X2NhcHNfZG9fc2ltcGxpZnkgLSBpdCBkb2Vzbid0IHJlc3BlY3Qgb3JkZXIgb2YgY2FwcyBhbmQgaXQncyBub3QgbmVlZGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pbnRlcnNlY3QpOgoJICBEb24ndCBjYWxsIGdzdF9jYXBzX2RvX3NpbXBsaWZ5IC0gaXQgZG9lc24ndCByZXNwZWN0IG9yZGVyIG9mIGNhcHMKCSAgYW5kIGl0J3Mgbm90IG5lZWRlZC4KCjIwMDUtMTEtMTAgMTU6MDc6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBVcGRhdGVkIHRvZG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFVwZGF0ZWQgdG9kby4KCjIwMDUtMTEtMTAgMTQ6NDU6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS86IEltcGxlbWVudCBjbG9jayBzeW5jIGluIGJhc2UgY2xhc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY193YWl0KSwKCSAgKGdzdF9iYXNlX3NyY19kb19zeW5jKSwgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBJbXBsZW1lbnQgY2xvY2sgc3luYyBpbiBiYXNlIGNsYXNzLgoKMjAwNS0xMS0xMCAxMjozMjo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogRm9yd2FyZC1wb3J0IGEgMC44IHBhdGNoIHRvIGhhbmRsZSBlc2NhcGVkIHNwYWNlcyBpbiBzdHJ1Y3R1cmUgc3RyaW5nLCAgICAgICAgICBzbyB0aGF0IGdzdF9wYXJzZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfZmllbGQpLAoJICAoZ3N0X3N0cnVjdHVyZV9mcm9tX3N0cmluZyk6CgkgIEZvcndhcmQtcG9ydCBhIDAuOCBwYXRjaCB0byBoYW5kbGUgZXNjYXBlZCBzcGFjZXMgaW4gc3RydWN0dXJlIHN0cmluZywgICAgICAgICAgc28gdGhhdCBnc3RfcGFyc2VfbGF1bmNoKCkgY2FuIGRlYWwgd2l0aCBzcGFjZXMgaW4gZmlsdGVyZWQgbGluawoJICBjYXBzIChmaXhlcyAjMTY0NDc5KQoJICAqIGNoZWNrL2dzdC9jYXBzbGlzdC5oOgoJICAqIGNoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgYWRkIHVuaXQgdGVzdHMgZm9yIHRoaXMgY2hhbmdlCgoyMDA1LTExLTEwIDExOjE3OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRml4IGRvY3MsIG1vdmUgc29tZSBTVEFURSBtYWNyb3MgdG8gcHJpdmF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIEZpeCBkb2NzLCBtb3ZlIHNvbWUgU1RBVEUgbWFjcm9zIHRvIHByaXZhdGUuCgoyMDA1LTExLTEwIDEwOjE3OjAxICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEZ1cnRoZXIgaW1wcm92ZSBxdWVyeSBkb2NzLiBTdGlsbCBub3QgaGFwcHkgd2l0aCB0aGlzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRnVydGhlciBpbXByb3ZlIHF1ZXJ5IGRvY3MuIFN0aWxsIG5vdCBoYXBweSB3aXRoIHRoaXMuCgoyMDA1LTExLTEwIDA5OjE5OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IEFkZGVkIGNoZWNrIGZvciBidWcgIzMxNzM0MQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9naG9zdF9wYWRfc3VpdGUpOgoJICBBZGRlZCBjaGVjayBmb3IgYnVnICMzMTczNDEKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBTb21lIG1vcmUgc3BpZmZpZnlpbmcuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX2RvX2xpbmspOgoJICBDYWxsIHBlZXIgbGlua2Z1bmN0aW9uIGlmIHdlIGFyZSBhIHNvdXJjZSBwYWQuIFRvdGFsbHkgZml4ZXMKCSAgIzMxNzM0MQoJICAqIGdzdC9nc3RwYWQuYzoKCSAgVXBkYXRlIGRvY3MsIHNvdXJjZSBwYWRzIHNob3VsZCBjYWxsIHRoZSBwZWVyIGxpbmtmdW5jdGlvbgoJICBzbyB0aGV5IGNhbiBhdG9taWNhbGx5IHBlcmZvcm0gdGhlIHBhZCBsaW5rLgoKMjAwNS0xMS0wOSAxOTozMjozMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIEltcHJvdmUvZml4IGRvY3VtZW50YXRpb24gZm9yIEdzdFF1ZXJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSW1wcm92ZS9maXggZG9jdW1lbnRhdGlvbiBmb3IgR3N0UXVlcnkuCgkgIFRoaXMgc3RpbGwgbmVlZHMgc29tZSBtb3JlIHdvcmsgdG8gZXhwbGFpbiB3aGF0IHRoZSBxdWVyaWVzIGFjdHVhbGx5IG1lYW4uCgoyMDA1LTExLTA5IDE4OjQxOjUzICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBTbGlnaHRseSBwb2xpc2ggZG9jcyBmb3IgR3N0QWRhcHRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFNsaWdodGx5IHBvbGlzaCBkb2NzIGZvciBHc3RBZGFwdGVyLgoKMjAwNS0xMS0wOSAxODoxMDo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuKjogVWJlci1zcGlmZnktc3BpZmZpZnkgc29tZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBVYmVyLXNwaWZmeS1zcGlmZmlmeSBzb21lIG1vcmUuCgoyMDA1LTExLTA5IDE3OjU1OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogVXNlIEdTVF9ERUJVR19GVU5DUFRSKCkgbW9yZSBleHRlbnNpdmVseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0cGFkc19hZGRfcGFkKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfaW5pdCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2luaXQpOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9zZXRfaW50ZXJuYWwpLAoJICAoZ3N0X2dob3N0X3BhZF9pbml0KSwgKGdzdF9naG9zdF9wYWRfbmV3X25vdGFyZ2V0KToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpOgoJICBVc2UgR1NUX0RFQlVHX0ZVTkNQVFIoKSBtb3JlIGV4dGVuc2l2ZWx5LgoKMjAwNS0xMS0wOSAxNzozMjoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RvYmplY3QuKjogRG9jdW1lbnRhdGlvbiBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIERvY3VtZW50YXRpb24gZml4ZXMuCgoyMDA1LTExLTA5IDE3OjA2OjIwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiBGaXggZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJICBGaXggZG9jcy4KCjIwMDUtMTEtMDkgMTY6NDQ6NDAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvOgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOgoJICAqIGdzdC9nc3R0eXBlZmluZC5oOgoKMjAwNS0xMS0wOSAxNjozMjo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RpdGVyYXRvci5jOiBGaXggcmV2aXNpb24gZGF0YS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIEZpeCByZXZpc2lvbiBkYXRhLgoJICAqIGdzdC9nc3R0YXNrLmM6CgkgICogZ3N0L2dzdHRhc2suaDoKCSAgRml4IGRvY3MuCgoyMDA1LTExLTA5IDE2OjE2OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3R1cmkuaDoKCSAgRml4IGRvY3MuCgoyMDA1LTExLTA5IDE2OjAwOjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogTW92ZWQgdGhlIG1lc3NhZ2UgYXN5bmMgZGVsaXZlcnkgcHJpdmF0ZSBsb2NrIGFuZCBjb25kIHRvIHRoZSBwcml2YXRlIHNlY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIE1vdmVkIHRoZSBtZXNzYWdlIGFzeW5jIGRlbGl2ZXJ5IHByaXZhdGUgbG9jayBhbmQgY29uZAoJICB0byB0aGUgcHJpdmF0ZSBzZWN0aW9uLgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgRml4ZWQgZG9jcy4KCjIwMDUtMTEtMDkgMTU6MzQ6NDYgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBEb2N1bWVudCBHc3RVUklIYW5kbGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHVyaS5jOgoJICAqIGdzdC9nc3R1cmkuaDoKCSAgRG9jdW1lbnQgR3N0VVJJSGFuZGxlcgoKMjAwNS0xMS0wOSAxNTozMTowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RpdGVyYXRvci4qOiBGaXggaXRlcmF0b3IgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6IChnc3RfaXRlcmF0b3JfZm9sZCksIChnc3RfaXRlcmF0b3JfZm9yZWFjaCksCgkgIChnc3RfaXRlcmF0b3JfZmluZF9jdXN0b20pOgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOgoJICBGaXggaXRlcmF0b3IgZG9jcy4KCjIwMDUtMTEtMDkgMTU6MTA6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmg6IERvY3VtZW50IGFub3RoZXIgZmllbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgRG9jdW1lbnQgYW5vdGhlciBmaWVsZC4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBEb2N1bWVudC4KCjIwMDUtMTEtMDkgMTM6MTQ6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmg6IERvY3VtZW50ZWQgc3RydWN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBEb2N1bWVudGVkIHN0cnVjdHMuCgoyMDA1LTExLTA5IDEyOjM2OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkZWQgc29tZSBuZXcgbWFjcm9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGRlZCBzb21lIG5ldyBtYWNyb3MuCgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBEb2NzIHVwZGF0ZXMuCgoyMDA1LTExLTA5IDEyOjAxOjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogU29tZSBtb3JlIGl0ZW1zIGZvciB0aGUgVE9ETwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBTb21lIG1vcmUgaXRlbXMgZm9yIHRoZSBUT0RPCgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICBEb2N1bWVudCBHc3RDYXBzLgoKMjAwNS0xMS0wOSAxMDowNjozMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQWRkIHRoZSBiZWdpbm5pbmcgb2YgZG9jcyBoZXJlIC0tIGhhdmUgdG8gd29yayBvbiBzb21ldGhpbmcgZWxzZSBub3cgdGhvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTA5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEFkZCB0aGUgYmVnaW5uaW5nIG9mIGRvY3MgaGVyZSAtLSBoYXZlCgkgIHRvIHdvcmsgb24gc29tZXRoaW5nIGVsc2Ugbm93IHRoby4uLgoKMjAwNS0xMS0wOSAwOTo0ODoxNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYyAoZ3N0X2ZpbGVfc2lua19zdGFydCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMDkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmMgKGdzdF9maWxlX3Npbmtfc3RhcnQpCgkgIChnc3RfZmlsZV9zaW5rX3N0b3ApOiBOZXcgZnVuY3Rpb25zLCByZXBsYWNlIHRoZSBzdGF0ZSBjaGFuZ2UKCSAgaGFuZGxlci4KCSAgKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCk6IEhvb2sgdXAgdGhlIHN0YXJ0IGFuZCBzdG9wIGZ1bmN0aW9ucy4KCSAgKGdzdF9maWxlX3NpbmtfYmFzZV9pbml0KTogRG9uJ3Qgc2V0IHRoZSBzdGF0ZSBjaGFuZ2UgaGFuZGxlciBhbnkKCSAgbW9yZS4gSXQgd2FzIGEgYml0IHVnbHkgdG9vLCBiZWluZyBzZXQgZnJvbSBoZXJlLi4uCgkgIChnc3RfZmlsZV9zaW5rX2dldF9wcm9wZXJ0eSwgZ3N0X2ZpbGVfc2lua19zZXRfcHJvcGVydHkpOgoJICBDbGVhbnVwcy4uLgoJICAoZ3N0X2ZpbGVfc2lua19zZXRfbG9jYXRpb24pOiBNb3JlIHJvYnVzdCBjaGVjayB0aGF0IGRvZXNuJ3QgY2FsbAoJICBHU1RfU1RBVEUuIFVnZ2dnZ2cuCgoyMDA1LTExLTA5IDA5OjQ3OjEyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jIChnc3RfZmlsZV9zaW5rX3N0YXJ0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0wOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYyAoZ3N0X2ZpbGVfc2lua19zdGFydCkKCSAgKGdzdF9maWxlX3Npbmtfc3RvcCk6IE5ldyBmdW5jdGlvbnMsIHJlcGxhY2UgdGhlIHN0YXRlIGNoYW5nZQoJICBoYW5kbGVyLgoJICAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KTogSG9vayB1cCB0aGUgc3RhcnQgYW5kIHN0b3AgZnVuY3Rpb25zLgoJICAoZ3N0X2ZpbGVfc2lua19iYXNlX2luaXQpOiBEb24ndCBzZXQgdGhlIHN0YXRlIGNoYW5nZSBoYW5kbGVyIGFueQoJICBtb3JlLiBJdCB3YXMgYSBiaXQgdWdseSB0b28sIGJlaW5nIHNldCBmcm9tIGhlcmUuLi4KCSAgKGdzdF9maWxlX3NpbmtfZ2V0X3Byb3BlcnR5LCBnc3RfZmlsZV9zaW5rX3NldF9wcm9wZXJ0eSk6CgkgIENsZWFudXBzLi4uCgkgIChnc3RfZmlsZV9zaW5rX3NldF9sb2NhdGlvbik6IE1vcmUgcm9idXN0IGNoZWNrIHRoYXQgZG9lc24ndCBjYWxsCgkgIEdTVF9TVEFURS4gVWdnZ2dnZy4KCjIwMDUtMTEtMDggMTI6MzM6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEhvbGQgU1RSRUFNX0xPQ0sgd2hpbGUgcHVzaGluZyBuZXdzZWdtZW50IG9yIHRhZyBldmVudHMgYXMgd2VsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KToKCSAgSG9sZCBTVFJFQU1fTE9DSyB3aGlsZSBwdXNoaW5nIG5ld3NlZ21lbnQgb3IgdGFnIGV2ZW50cyBhcyB3ZWxsLgoKMjAwNS0xMS0wOCAxMTo1MjoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIHJldmVydCBwYXJ0IG9mIHRoZSBwYXRjaCBzbyB0aGF0IHBhdGhzIGFyZSBjb3JyZWN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZlcnQgcGFydCBvZiB0aGUgcGF0Y2ggc28gdGhhdCBwYXRocyBhcmUgY29ycmVjdAoKMjAwNS0xMS0wOCAxMToxMzowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEF2b2lkIGV4Y2Vzc2l2ZSB0eXBlY2hlY2tpbmcgaW4gbWFjcm9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2VtcHR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYWluKSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBBdm9pZCBleGNlc3NpdmUgdHlwZWNoZWNraW5nIGluIG1hY3Jvcy4KCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X2dldF90eXBlKSwKCSAgKGdzdF9taW5pX29iamVjdF9pbml0KSwgKGdzdF9taW5pX29iamVjdF9uZXcpLAoJICAoZ3N0X21pbmlfb2JqZWN0X2ZyZWUpOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfY2xhc3NfaW5pdCksIChnc3Rfb2JqZWN0X2luaXQpLAoJICAoZ3N0X29iamVjdF9maW5hbGl6ZSk6CgkgIFJlbW92ZSBjcnVmdCBjb2RlLCBvcHRpbWl6ZSBhbGxvY190cmFjZS4KCjIwMDUtMTEtMDcgMTg6MTY6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBmaXggdXAgUFMxIGZvciBzeXN0ZW1zIHRoYXQgdHJ5IHRvIHJlc2V0IGl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZml4IHVwIFBTMSBmb3Igc3lzdGVtcyB0aGF0IHRyeSB0byByZXNldCBpdAoKMjAwNS0xMS0wNyAxMDozMzowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogU2V0IHRoZSBzZWdtZW50X2VuZCB0byAtMSBpbml0aWFsbHkuIEZpeGVkIHR5cGVmaW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgU2V0IHRoZSBzZWdtZW50X2VuZCB0byAtMSBpbml0aWFsbHkuIEZpeGVkIHR5cGVmaW5kLgoKMjAwNS0xMS0wNyAxMDoxMzo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzogRGVidWcgY2F0ZWdvcnkgc2hvdWxkIGJlICdhZGFwdGVyJywgbm90ICdHc3RBZGFwdGVyJy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBEZWJ1ZyBjYXRlZ29yeSBzaG91bGQgYmUgJ2FkYXB0ZXInLCBub3QgJ0dzdEFkYXB0ZXInLgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfYmFzZV9pbml0KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19jbGFzc19pbml0KSwgKGdzdF9jb2xsZWN0cGFkc19pbml0KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19wZWVrKSwgKGdzdF9jb2xsZWN0cGFkc19wb3ApLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2V2ZW50KSwgKGdzdF9jb2xsZWN0cGFkc19jaGFpbik6CgkgIEFkZCBkZWJ1ZyBjYXRlZ29yeSBhbmQgc29tZSBkZWJ1Z2dpbmcgb3V0cHV0LiBVc2UgYm9pbGVycGxhdGUKCSAgbWFjcm9zLiBSZW1vdmUgc29tZSBleHRyYW5lb3VzIHdvcmRzIGZyb20gZG9jcy4KCjIwMDUtMTEtMDUgMTU6MTQ6MzMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdHB1c2hzcmMuYzogU2hvcnRlbiBieSAzMCUgdmlhIHVzZSBvZiBib2lsZXJwbGF0ZSBtYWNyby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOiBTaG9ydGVuIGJ5IDMwJSB2aWEgdXNlIG9mIGJvaWxlcnBsYXRlCgkgIG1hY3JvLgoKMjAwNS0xMS0wNCAyMDoxMjowMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbW9yZSBkb2NzIGFkZGVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBtb3JlIGRvY3MgYWRkZWQKCjIwMDUtMTEtMDQgMTU6MzM6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFNtYWxsIHVwZGF0ZSB0byBzdG9wIGF0IHRoZSBjb25maWd1cmVkIHNlZ21lbnRfZW5kIHBvc2l0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgU21hbGwgdXBkYXRlIHRvIHN0b3AgYXQgdGhlIGNvbmZpZ3VyZWQgc2VnbWVudF9lbmQKCSAgcG9zaXRpb24uCgoyMDA1LTExLTA0IDE1OjAyOjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnkuKjogYWRkZWQgbWlzc2luZyBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBhZGRlZCBtaXNzaW5nIGRvY3MKCjIwMDUtMTEtMDQgMTQ6MzU6MTAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IENoZWNrIGlmIHdlIGFyZSBkb2luZyBhIHNlZ21lbnQgc2VlayBhbmQgaGF2ZSBhcnJpdmVkIGF0IHRoZSBlbmQgb2YgdGhhdCBzZWdtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgQ2hlY2sgaWYgd2UgYXJlIGRvaW5nIGEgc2VnbWVudCBzZWVrIGFuZCBoYXZlIGFycml2ZWQgYXQgdGhlCgkgIGVuZCBvZiB0aGF0IHNlZ21lbnQuCgoyMDA1LTExLTA0IDEyOjA4OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBEb24ndCBsZWFrIGEgbXV0ZXggdW5sb2NrIGluIGNhc2Ugb2YgYW4gZXJyb3IuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9zdCksIChnc3RfYnVzX3NldF9zeW5jX2hhbmRsZXIpOgoJICBEb24ndCBsZWFrIGEgbXV0ZXggdW5sb2NrIGluIGNhc2Ugb2YgYW4gZXJyb3IuCgkgICogZ3N0L2dzdGJ1cy5oOgoJICBEb2MgZml4ZXMuCgoyMDA1LTExLTA0IDExOjQzOjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBHZXQgdGhlIGNvbnRleHQgdG8gd2FrZSB1cCBvbmx5IG9uY2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfY2xhc3NfaW5pdCksIChnc3RfYnVzX2luaXQpLAoJICAoZ3N0X2J1c19wb3N0KToKCSAgR2V0IHRoZSBjb250ZXh0IHRvIHdha2UgdXAgb25seSBvbmNlLgoKMjAwNS0xMS0wMyAyMDoxNzoyNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY2hlY2svc3RhdGVzL3NpbmtzLmM6IFVuY29tbWVudCBmaXhlZCBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVuY29tbWVudCBmaXhlZCBjaGVjay4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBVcGRhdGVkIFRPRE8uCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBJZiB3ZSBhcmUgZ29pbmcgdG8gUExBWUlORywgcG9zdCB0aGUgcmlnaHQgcGVuZGluZyBzdGF0ZQoJICB3aGVuIHdlIHBvc3QgdGhlIGludGVybWVkaWF0ZSBwYXVzZWQgbWVzc2FnZS4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgRG9uJ3QgcG9zdCBzdGF0ZSBjaGFuZ2VzIHRoYXQgd2VyZSBiZXR3ZWVuIHRoZSBzYW1lIHN0YXRlCgkgIGFuZCB3ZXJlIG5vdCBBU1lOQy4KCjIwMDUtMTEtMDMgMjA6MTQ6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9zdGF0ZXMvc2lua3MuYzogVW5jb21tZW50IGZpeGVkIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVW5jb21tZW50IGZpeGVkIGNoZWNrLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFVwZGF0ZWQgVE9ETy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIElmIHdlIGFyZSBnb2luZyB0byBQTEFZSU5HLCBwb3N0IHRoZSByaWdodCBwZW5kaW5nIHN0YXRlCgkgIHdoZW4gd2UgcG9zdCB0aGUgaW50ZXJtZWRpYXRlIHBhdXNlZCBtZXNzYWdlLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCBwb3N0IHN0YXRlIGNoYW5nZXMgdGhhdCB3ZXJlIGJldHdlZW4gdGhlIHNhbWUgc3RhdGUKCSAgYW5kIHdlcmUgbm90IEFTWU5DLgoKMjAwNS0xMS0wMyAxOTozODo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBkb2MgZml4ZXMKCjIwMDUtMTEtMDMgMTc6NTM6MjcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL3N0YXRlcy9zaW5rcy5jICh0ZXN0X2xpdmVzcmNfc2luayk6IEFkZCBjaGVja3MgdGhhdCB0aGUgc3RhdGUtY2hhbmdlZCBtZXNzYWdlcyBhY3R1YWxseSBoYXZlIHRoZSByaWdodCBvcmRlciBhbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0wMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYyAodGVzdF9saXZlc3JjX3NpbmspOiBBZGQgY2hlY2tzIHRoYXQgdGhlCgkgIHN0YXRlLWNoYW5nZWQgbWVzc2FnZXMgYWN0dWFsbHkgaGF2ZSB0aGUgcmlnaHQgb3JkZXIgYW5kIHRoZSByaWdodAoJICB2YWx1ZXMuCgoyMDA1LTExLTAzIDE3OjEyOjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svc3RhdGVzL3NpbmtzLmM6IEFkZGVkIHNvbWUgbW9yZSBjaGVja3MuIFNwZWNpZmljYWxseSB0aGUgY2FzZSB3aGVyZSBOT19QUkVST0xMIGVsZW1lbnRzIGFyZSBpbiB0aGUgcGlwZWxpbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X29iamVjdF9zdWl0ZSk6CgkgIEFkZGVkIHNvbWUgbW9yZSBjaGVja3MuIFNwZWNpZmljYWxseSB0aGUgY2FzZSB3aGVyZSBOT19QUkVST0xMCgkgIGVsZW1lbnRzIGFyZSBpbiB0aGUgcGlwZWxpbmUuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBQb3N0IFJFQURZLT5QQVVTRUQgc3RhdGUgY2hhbmdlIG1lc3NhZ2VzIHRvby4KCSAgRml4IGJ1ZyB3aGVyZSBWT0lEIHdhcyBwb3N0ZWQgYXMgcGVuZGluZyBzdGF0ZS4uLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVjYWxjX3N0YXRlKToKCSAgdXNlIF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKCkgdG8gY29udGludWUgdGhlIHN0YXRlIGNoYW5nZS4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgIExvdHMgb2Ygc3RhdGUgY2hhbmdlIGNsZWFudXBzLCBhc3NpZ24gdGhlIFNUQVRFX1JFVFVSTiBpbgoJICBhIG5ldyBjb250aW51ZV9zdGF0ZSgpIGZ1bmN0aW9uIHRoYXQgYWxzbyBwcm9wYWdhdGVzIHRoZQoJICBsYXN0IHJldHVybiB2YWx1ZSBmcm9tIGEgc3RhdGUgY2hhbmdlIHRvIHRoZSBhcHAuCgkgIFVwZGF0ZSBzb21lIGRlYnVnIHN0YXRlbWVudHMgd2l0aCBwcm9wZXIgY2F0ZWdvcnkuCgoyMDA1LTExLTAzIDE0OjIyOjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy86IFNtYWxsIGRvY3MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtcG9zaXRpb24ueG1sOgoJICBTbWFsbCBkb2NzIHVwZGF0ZXMuCgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBQZW9wbGUgdGhpbmsgISEgaXMgdWdseSwgdGhpcyBsb29rcyBiZXR0ZXIuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luYyk6CgkgIFJlbW92ZSAhISBzaW5jZSBpdCdzIGZpeGVkIGVsc2V3aGVyZSBub3cuCgoyMDA1LTExLTAzIDEzOjUyOjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogQWRkICEhIHRvIF9GTEFHX0lTX1NFVCBtYWNyb3MgdG8gbWFrZSB0aGUgcmVzdWx0IGJvb2xlYW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBBZGQgISEgdG8gX0ZMQUdfSVNfU0VUIG1hY3JvcyB0byBtYWtlIHRoZSByZXN1bHQgYm9vbGVhbi4KCjIwMDUtMTEtMDMgMTI6NDg6MzAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IGNvbXBhcmluZyBhIGZsYWcgYW5kIGEgZ2Jvb2xlYW4gcmFyZWx5IHJldHVybnMgY29oZXJlbnQgcmVzdWx0cy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKToKCSAgY29tcGFyaW5nIGEgZmxhZyBhbmQgYSBnYm9vbGVhbiByYXJlbHkgcmV0dXJucyBjb2hlcmVudCByZXN1bHRzLi4uCgkgIEFkZGVkIHR3byBjaGFyYWN0ZXJzICghISkgdG8gbWFrZSB0aGF0IHdvcmsgY29ycmVjdGx5LgoKMjAwNS0xMS0wMyAxMjoxNjo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidXMuYzogRml4IHNvbWUgdHlwb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfY2xhc3NfaW5pdCk6CgkgIEZpeCBzb21lIHR5cG9zLgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xvb3ApOgoJICBEb24ndCBhc3N1bWUgYSBtaW5pb2JqZWN0IHRoYXQgaXNuJ3QgYSBidWZmZXIgaXMgYW4KCSAgZXZlbnQgKGl0IGNvdWxkIGJlIHRoYXQgdGhlcmUgaXMgYSByZWZjb3VudGluZwoJICBwcm9ibGVtIHNvbWV3aGVyZSBhbmQgdGhlIHBvaW50ZXIgaXMgc3RhbGUgYW5kCgkgIHJlZmVycyB0byBhbiBhbHJlYWR5IGRlc3Ryb3llZCBtaW5pb2JqZWN0KS4KCjIwMDUtMTEtMDMgMTA6NTY6MjMgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBGaXggc29tZSB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMDMgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlcik6IEZpeCBzb21lIHR5cG9zLgoKMjAwNS0xMS0wMyAwOToxODo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDogVXBkYXRlIHNlZWsgZXhhbXBsZSBhbmQgZXhwbGFuYXRpb25zIHRvIGN1cnJlbnQgMC45IEFQSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtcG9zaXRpb24ueG1sOgoJICBVcGRhdGUgc2VlayBleGFtcGxlIGFuZCBleHBsYW5hdGlvbnMgdG8gY3VycmVudCAwLjkgQVBJLgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgIFJlbW92ZSBGSVhNRSBjb21tZW50IG5vdyB0aGF0IHRoZSBmb3VuZCBjYXBzCgkgIGFyZSB1bnJlZmZlZC4KCjIwMDUtMTEtMDMgMDA6Mzk6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgQWRkIGFub3RoZXIgR1NUX1NUUl9OVUxMIGluc3RhbmNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGQgYW5vdGhlciBHU1RfU1RSX05VTEwgaW5zdGFuY2UKCjIwMDUtMTEtMDIgMTk6MDQ6MjAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEZvbGxvdy11cCB0byBXaW0ncyBwYXRjaCwgc29sdmVzIGRlYWRsb2NrIGZvciBibG9ja2VkIGFuZCBmbHVzaGluZyBwYWRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGhhbmRsZV9wYWRfYmxvY2spOgoJICBGb2xsb3ctdXAgdG8gV2ltJ3MgcGF0Y2gsIHNvbHZlcyBkZWFkbG9jayBmb3IgYmxvY2tlZCBhbmQgZmx1c2hpbmcgcGFkcwoKMjAwNS0xMS0wMiAxODo0NDoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRml4IHR5cG8gaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOgoJICBGaXggdHlwbyBpbiBkb2NzLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpOgoJICBSZW1vdmUgdW51c2VkIHZhbHVlLgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBNZW50aW9uIHRoYXQgdGhlIHJldHVybmVkIGVsZW1lbnQgaXMgcmVmZmVkIGluIHRoZSBkb2NzLgoKMjAwNS0xMS0wMiAxODozMzowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogVW5sb2NrIGJsb2NrZWQgcGFkcyB3aGVuIHRoZXkgYXJlIGZsdXNoZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyKSwgKGhhbmRsZV9wYWRfYmxvY2spLAoJICAoZ3N0X3BhZF9wdXNoKSwgKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgIFVubG9jayBibG9ja2VkIHBhZHMgd2hlbiB0aGV5IGFyZSBmbHVzaGVkLgoKMjAwNS0xMS0wMiAxNTozNDoyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgZG9jIHVwZGF0ZXMKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICBmaXggZm9yIGEgbmFzdHkgbGl0dGxlIG1pc3NlZCBzaXR1YXRpb24gd2hlcmUgYW4gaW5zdGFsbGVkIHBsdWctaW4KCSAgd2hpY2ggd2FzIGluIHRoZSBjYWNoZSBkaWQgbm90IGdldCBvdmVycmlkZGVuIGJ5IGFuIHVuaW5zdGFsbGVkIG9uZQoJICB3aGljaCB3YXMgZWFybGllciBpbiB0aGUgcGx1Z2luIHBhdGggYmVjYXVzZSB0aGUgbmV3bHkgY3JlYXRlZCBwbHVnaW4KCSAgZm9yIHRoZSB1bmluc3RhbGxlZCBvbmUgKG5vdCBpbiB0aGUgcmVnaXN0cnkpIGRpZG4ndCBnZXQgaXRzCgkgIC0+cmVnaXN0ZXJlZCBzZXQgdG8gVFJVRQoKMjAwNS0xMS0wMiAxNTowODowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IEd1YXJkIHB1YmxpYyBBUEkgd2l0aCBhc3NlcnRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RwYWRzX3NldF9mdW5jdGlvbiksCgkgIChnc3RfY29sbGVjdHBhZHNfYWRkX3BhZCksIChnc3RfY29sbGVjdHBhZHNfcmVtb3ZlX3BhZCksCgkgIChnc3RfY29sbGVjdHBhZHNfaXNfYWN0aXZlKSwgKGdzdF9jb2xsZWN0cGFkc19jb2xsZWN0KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19jb2xsZWN0X3JhbmdlKSwgKGdzdF9jb2xsZWN0cGFkc19zdGFydCksCgkgIChnc3RfY29sbGVjdHBhZHNfc3RvcCksIChnc3RfY29sbGVjdHBhZHNfcGVlayksCgkgIChnc3RfY29sbGVjdHBhZHNfcG9wKSwgKGdzdF9jb2xsZWN0cGFkc19hdmFpbGFibGUpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX3JlYWQpLCAoZ3N0X2NvbGxlY3RwYWRzX2ZsdXNoKToKCSAgR3VhcmQgcHVibGljIEFQSSB3aXRoIGFzc2VydGlvbnMuCgkgICogZ3N0L2dzdHBhZC5jOgoJICBGaXggZG9jcyBmb3IgZ3N0X3BhZF9zZXRfbGlua19mdW5jdGlvbigpLgoKMjAwNS0xMS0wMiAxNDoyODowMiArMDAwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJICBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6IFVucmVmIGZvdW5kX2NhcHMgYWZ0ZXIgd2UgdXNlZCBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICBVbnJlZiBmb3VuZF9jYXBzIGFmdGVyIHdlIHVzZWQgaXQuCgoyMDA1LTExLTAyIDEyOjIwOjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogRG9uJ3QgdHJ5IHRvIHJlZiBOVUxMLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RwYWRzX3BlZWspOgoJICBEb24ndCB0cnkgdG8gcmVmIE5VTEwuCgoyMDA1LTExLTAyIDA5OjMxOjAyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhZGQgbW9yZSBzeW1ib2xzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbW9yZSBzeW1ib2xzCgoyMDA1LTExLTAyIDA5OjI3OjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhZGQgbW9yZSBzeW1ib2xzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbW9yZSBzeW1ib2xzCgoyMDA1LTExLTAyIDA5OjI0OjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlIGdlbmVyYXRlZCBjb25maWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBnZW5lcmF0ZWQgY29uZmlnCgoyMDA1LTExLTAyIDA5OjI0OjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBwcm92aWRlIGEgR1NUX0ZVTkNUSU9OIHRoYXQganVzdCBnaXZlcyBhIHN0cmluZyBmb3Igbm93CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwcm92aWRlIGEgR1NUX0ZVTkNUSU9OIHRoYXQganVzdCBnaXZlcyBhIHN0cmluZyBmb3Igbm93CgoyMDA1LTExLTAyIDA4OjU2OjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB1cGRhdGUgd2luMzIgY29waWVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgd2luMzIgY29waWVzCgoyMDA1LTExLTAxIDE5OjE2OjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgbW9yZSBkb2MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBkb2MgdXBkYXRlcwoKMjAwNS0xMS0wMSAxNzo0NTo0NiArMDAwMCAgTHVjYSBPZ25pYmVuZSA8bHVvZ25pQHRpbi5pdD4KCgkgIGdzdC9nc3QuYzogZml4IGRvY3MuIHBvcHQgaXMgZGVhdGgsIGxvbmcgbGl2ZSBHT3B0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIGZpeCBkb2NzLiBwb3B0IGlzIGRlYXRoLCBsb25nIGxpdmUgR09wdGlvbi4KCjIwMDUtMTAtMzEgMTE6NDQ6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmg6IFNtYWxsIGRvYyBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgU21hbGwgZG9jIGZpeC4KCjIwMDUtMTAtMzEgMDk6NTI6MTMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIEJvbyEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMzEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogQm9vIQoJICAqIGdzdC9nc3RxdWV1ZS5jIChnc3RfcXVldWVfY2hhaW4pOiBGaXggZG93bnN0cmVhbSBsZWFreSBtb2RlLgoJICAqIGdzdC9nc3RvYmplY3QuYyAoZ3N0X29iamVjdF9kaXNwYXRjaF9wcm9wZXJ0aWVzX2NoYW5nZWQpOiBObwoJICBuZWVkIHRvIHNlcmlhbGl6ZSBwcm9wZXJ0eSBub3RpZmljYXRpb25zIG9uIEdMaWIgMi44LiBHTGliIDIuNiBoYXMKCSAgdGhlIHBvc3NpYmlsaXR5IG9mIGRlYWRsb2NrcyBoZXJlIGlmIGNvZGUgY2FsbGluZyBub3RpZnkoKSBvcgoJICBzZXQoKSBoYXMgYSBsb2NrIHRoYXQgY2FuIGJlIHRha2VuIGluIGFub3RoZXIgbm90aWZ5IGhhbmRsZXIgKEFCQkEKCSAgd2l0aCBjbGFzcyBsb2NrIGFuZCBlLmcuIHB5dGhvbiBHSUwgc3RhdGUgbG9jaykuCgoyMDA1LTEwLTI4IDE4OjE4OjIzICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RidXMuYzogRG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTI4ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdGJ1cy5jOiBEb2MgdXBkYXRlcy4KCjIwMDUtMTAtMjggMTg6MTQ6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSAgRG9jIHVwZGF0ZXMuCgoyMDA1LTEwLTI4IDE4OjEwOjQxICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZG9jcy9nc3QvOiB0aGUgR3N0VVJJVHlwZSBkb2N1bWVudGF0aW9uIHBhZ2UgaXMgcHJpdmF0ZSwgaXQgb25seSBkZWZpbmVzIEdzdFVSSVR5cGUgd2hpY2ggc2hvdWxkIGJlIGRlZmluZWQgaW4gdGhlIEdzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgdGhlIEdzdFVSSVR5cGUgZG9jdW1lbnRhdGlvbiBwYWdlIGlzIHByaXZhdGUsIGl0IG9ubHkgZGVmaW5lcyBHc3RVUklUeXBlCgkgIHdoaWNoIHNob3VsZCBiZSBkZWZpbmVkIGluIHRoZSBHc3RVUklIYW5kbGVyIHBhZ2UKCjIwMDUtMTAtMjggMTc6MzU6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCjIwMDUtMTAtMjggMTc6MzU6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2N1bWVudGVkIHRoZSBjbG9ja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIERvY3VtZW50ZWQgdGhlIGNsb2Nrcy4KCjIwMDUtMTAtMjggMTc6MzQ6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZWQgY29uZmlnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGVkIGNvbmZpZwoKMjAwNS0xMC0yOCAxNzoyMDo0NSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBXb3JrIGFyb3VuZCBndGtkb2MgZGVmaWNpZW5jaWVzLCBkb2N1bWVudCBhIG1hY3JvIGRpZmZlcmVudGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgV29yayBhcm91bmQgZ3RrZG9jIGRlZmljaWVuY2llcywgZG9jdW1lbnQgYSBtYWNybyBkaWZmZXJlbnRseS4KCjIwMDUtMTAtMjggMTc6MDE6MTQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgSW1wcm92ZSBHc3RCdWZmZXIgZG9jdW1lbnRhdGlvbi4gSXQncyBub3cgMTAwJSBTcGlmZmllci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEltcHJvdmUgR3N0QnVmZmVyIGRvY3VtZW50YXRpb24uIEl0J3Mgbm93IDEwMCUgU3BpZmZpZXIuCgoyMDA1LTEwLTI4IDE2OjU0OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvUkVBRE1FOgoJICBzb21lIHN0eWxlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzb21lIHN0eWxlIGZpeGVzCgoyMDA1LTEwLTI4IDE2OjQ2OjU4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBtb3ZlIHNvbWUgbWFjcm9zIHRvIHByaXZhdGUgc2VjdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgbW92ZSBzb21lIG1hY3JvcyB0byBwcml2YXRlIHNlY3Rpb25zCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBhZGQgZGVzY3JpcHRpb25zIHByb3ZpZGVkIGJ5IGRzIGFuZCBzb21lIG1vcmUKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIG1hcmsgbWFjcm8gYXMgdG8gYmUgcmVtb3ZlZAoKMjAwNS0xMC0yOCAxNjoyMToyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IEFkZCBhbiBpdGVtIHRvIFRPRE8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIEFkZCBhbiBpdGVtIHRvIFRPRE8uCgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6IChnc3RfaXRlcmF0b3JfZm9sZCksCgkgIChnc3RfaXRlcmF0b3JfZmluZF9jdXN0b20pOgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOgoJICBBZGQgaXRlcmF0b3IgZG9jcy4KCjIwMDUtMTAtMjggMTY6MDg6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9SRUFETUU6CgkgIGFkZCBzdHlsZSBndWlkZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHN0eWxlIGd1aWRlCgoyMDA1LTEwLTI4IDEwOjQ1OjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBEb24ndCBsZWFrIGNsYXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCk6CgkgIERvbid0IGxlYWsgY2xhc3MuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2xvb3ApOgoJICBBbiBFT1MgZXZlbnQgbWFya3MgdGhlIHF1ZXVlIGFzIGNvbXBsZXRlbHkgZmlsbGVkLgoKMjAwNS0xMC0yNyAyMDo1OTowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNvbWUgbW9yZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgU29tZSBtb3JlIGRlYnVnZ2luZy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZmluYWxpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldHJhbmdlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbik6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBGaXggZGVidWdnaW5nLAoJICBQcm90ZWN0IHRyYW5zZm9ybSBhbmQgY29uY3VycmVudCBidWZmZXIgYWxsb2Mgd2l0aCBhIG5ldyBsb2NrLgoJICBUcnkgbm90IHRvIGJyZWFrIEFCSS9BUEkuCgoyMDA1LTEwLTI3IDE5OjM3OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBNb3ZlIHNvbWUgc3R1ZmYgYXJvdW5kIGFuZCBjbGVhbnVwIHRoaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X25ld3NlZ21lbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NvbmZpZ3VyZV9zZWdtZW50KSwgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KSwgKGdzdF9iYXNlX3NyY19ldmVudF9oYW5kbGVyKSwKCSAgKGdzdF9iYXNlX3NyY19wYWRfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19sb29wKSwKCSAgKGdzdF9iYXNlX3NyY191bmxvY2spLCAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmVnb3RpYXRlKSwKCSAgKGdzdF9iYXNlX3NyY19zdGFydCksIChnc3RfYmFzZV9zcmNfZGVhY3RpdmF0ZSksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgTW92ZSBzb21lIHN0dWZmIGFyb3VuZCBhbmQgY2xlYW51cCB0aGluZ3MuCgoyMDA1LTEwLTI3IDE1OjQ4OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBBZGQgbWlzc2luZyBicmVhayBzdGF0ZW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnkpOgoJICBBZGQgbWlzc2luZyBicmVhayBzdGF0ZW1lbnRzLgoKMjAwNS0xMC0yNyAxMzo0NzozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogQW4gZXh0cmEgcmVmY291bnQgaXMgdGFrZW4gaW4gYmFzZXNyYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBbiBleHRyYSByZWZjb3VudCBpcyB0YWtlbiBpbiBiYXNlc3JjLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19pbml0KSwgKGdzdF9iYXNlX3NyY19xdWVyeSksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19wYWRfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKToKCSAgU21hbGwgY2xlYW51cHMsIGNoZWNrIGZvciBmbHVzaGluZyBhZnRlciBiZWluZyB1bmxvY2tlZCBmcm9tIHRoZQoJICBMSVZFX0xPQ0suIHRha2UgcmVmY291bnRzIGNvcnJlY3RseSAobm90IHlldCBldmVyeXdoZXJlKS4KCSAgRG9uJ3Qgc2VuZCBvdXQgRU9TIHdoZW4gZ29pbmcgdG8gUkVBRFkuCgoyMDA1LTEwLTI3IDA4OjU1OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU29tZSBtb3JlIGRlYnVnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgU29tZSBtb3JlIGRlYnVnLgoJICAqIGdzdC9nc3RiaW4uYzogKG1lc3NhZ2VfY2hlY2spLCAoYmluX3JlcGxhY2VfbWVzc2FnZSksCgkgIChiaW5fcmVtb3ZlX21lc3NhZ2VzKSwgKGlzX2VvcyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKHVwZGF0ZV9kZWdyZWUpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLCAoYmluX2J1c19oYW5kbGVyKSwKCSAgKGJpbl9xdWVyeV9kdXJhdGlvbl9pbml0KSwgKGJpbl9xdWVyeV9kdXJhdGlvbl9mb2xkKSwKCSAgKGJpbl9xdWVyeV9kdXJhdGlvbl9kb25lKSwgKGJpbl9xdWVyeV9nZW5lcmljX2ZvbGQpLAoJICAoZ3N0X2Jpbl9xdWVyeSk6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIFJlbW92ZSBvbGQgb3B0aW9uLgoKMjAwNS0xMC0yNiAxODo1Nzo0MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZml4aW5nIGV4YW1wbGVzIGZpeGluZyBkb2NzIHR5cG9zIGNoYW5naW5nIGxvZyBwcmlvcml0eSBpbiBlcnJvciBzaXR1YXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOiAobWFpbik6CgkgICogZXhhbXBsZXMvcXVldWUvcXVldWUuYzogKGV2ZW50X2xvb3ApOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgZml4aW5nIGV4YW1wbGVzCgkgIGZpeGluZyBkb2NzIHR5cG9zCgkgIGNoYW5naW5nIGxvZyBwcmlvcml0eSBpbiBlcnJvciBzaXR1YXRpb25zCgoyMDA1LTEwLTI2IDEwOjExOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHNjcmlwdHMvY3ZzLXVwZGF0ZS5zaDoKCSAgbWFrZSBzdXJlIGRpcnMgZ2V0IGNoZWNrZWQgb3V0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWtlIHN1cmUgZGlycyBnZXQgY2hlY2tlZCBvdXQKCjIwMDUtMTAtMjYgMDk6NTY6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvTUFOSUZFU1Q6CgkgIGZpeCBkaXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZGlzdAoKMjAwNS0xMC0yNSAxNzo0MToyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogU29tZSBkb2MgYW5kIGRlYnVnIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKG1lc3NhZ2VfY2hlY2spLCAoYmluX3JlcGxhY2VfbWVzc2FnZSksCgkgIChiaW5fcmVtb3ZlX21lc3NhZ2VzKSwgKGlzX2VvcyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKHVwZGF0ZV9kZWdyZWUpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLCAoYmluX2J1c19oYW5kbGVyKSwKCSAgKGJpbl9xdWVyeV9kdXJhdGlvbl9pbml0KSwgKGJpbl9xdWVyeV9kdXJhdGlvbl9mb2xkKSwKCSAgKGJpbl9xdWVyeV9kdXJhdGlvbl9kb25lKSwgKGJpbl9xdWVyeV9nZW5lcmljX2ZvbGQpLAoJICAoZ3N0X2Jpbl9xdWVyeSk6CgkgIFNvbWUgZG9jIGFuZCBkZWJ1ZyB1cGRhdGVzLgoJICBDYWNoZSBwcmV2aW91c2x5IHJlcXVlc3RlZCBxdWVyeSBEVVJBVElPTiBmb3Igc3BlZWQuIGludmFsaWRhdGUKCSAgY2FjaGVkIGR1cmF0aW9uIGlmIGVsZW1lbnQgcG9zdHMgYSBEVVJBVElPTiBtZXNzYWdlLgoKMjAwNS0xMC0yNSAxNTozOTozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFVwZGF0ZSBUT0RPLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBVcGRhdGUgVE9ETy4KCSAgKiBnc3QvZ3N0YmluLmM6IChtZXNzYWdlX2NoZWNrKSwgKGJpbl9yZXBsYWNlX21lc3NhZ2UpLAoJICAoYmluX3JlbW92ZV9tZXNzYWdlcyksIChpc19lb3MpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgICh1cGRhdGVfZGVncmVlKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KSwgKGJpbl9idXNfaGFuZGxlciksCgkgIChiaW5fcXVlcnlfZHVyYXRpb25faW5pdCksIChiaW5fcXVlcnlfZHVyYXRpb25fZm9sZCksCgkgIChiaW5fcXVlcnlfZHVyYXRpb25fZG9uZSksIChiaW5fcXVlcnlfZ2VuZXJpY19mb2xkKSwKCSAgKGdzdF9iaW5fcXVlcnkpOgoJICBIYW5kbGUgU0VHTUVOVF9TVEFSVC9ET05FIG1lc3NhZ2VzIGNvcnJlY3RseS4KCSAgTW9yZSBldm9sdmVkIHF1ZXJ5IGFsZ29yaXRobSB0aGF0IGhhbmRsZXMgZHVyYXRpb24gcXVlcmllcwoJICBjb3JyZWN0bHkuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NlbmRfZXZlbnQpLCAoZ3N0X2VsZW1lbnRfcXVlcnkpLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfYWJvcnRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpOgoJICBTb21lIG1vcmUgZGVidWdnaW5nLgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFkZGVkIGRvYy4KCjIwMDUtMTAtMjUgMTA6MTU6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCB1c2UgaW52YWxpZCBzdHJlYW1fdGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgRG9uJ3QgdXNlIGludmFsaWQgc3RyZWFtX3RpbWUuCgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X25ld3NlZ21lbnQpOgoJICBzdHJlYW1fdGltZSBpbiBuZXdzZWdtZW50IGNhbm5vdCBiZSB1bmRlZmluZWQuCgoyMDA1LTEwLTI1IDEwOjEyOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBGb3Jnb3QgdGhlIGNoYW5nZWxvZyBsYXN0IHRpbWUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZvcmdvdCB0aGUgY2hhbmdlbG9nIGxhc3QgdGltZQoKMjAwNS0xMC0yNCAxNTo0MTo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuYzogRG9jIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICBEb2MgZml4LgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfbG9vcCk6CgkgIEZpeCBwb3RlbnRpYWwgZGVhZGxvY2sgd2hlbiBRVUVVRV9MT0NLIGlzIHRha2VuIGJlZm9yZSBTVFJFQU1fTE9DSy4KCjIwMDUtMTAtMjQgMTE6NTY6MDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvbGlicy90bXBsLzogdGhlc2UgYXJlIG9ic29sZXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy90bXBsL2dzdGRwYXJhbS5zZ21sOgoJICAqIGRvY3MvbGlicy90bXBsL2dzdGRwbGluaW50LnNnbWw6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0ZHBtYW4uc2dtbDoKCSAgKiBkb2NzL2xpYnMvdG1wbC9nc3RkcHNtb290aC5zZ21sOgoJICAqIGRvY3MvbGlicy90bXBsL2dzdHVuaXRjb252ZXJ0LnNnbWw6CgkgIHRoZXNlIGFyZSBvYnNvbGV0ZQoKMjAwNS0xMC0yNCAwOToxMzoyNyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIEZpeCBzb21lIG1pbm9yIGRvY3VtZW50YXRpb24gdHlwb3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpeCBzb21lIG1pbm9yIGRvY3VtZW50YXRpb24gdHlwb3MKCjIwMDUtMTAtMjMgMjM6MDQ6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBIRUFECgo9PT0gcmVsZWFzZSAwLjkuNCA9PT0KCjIwMDUtMTAtMjMgMjI6MzA6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB0aW1lIHRvIHJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRpbWUgdG8gcmVsZWFzZQoKMjAwNS0xMC0yMyAxMDo0OToyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9NQU5JRkVTVDoKCSAgYWRkIG1vcmUgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIGZpbGVzCgoyMDA1LTEwLTIzIDEwOjI5OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IFVzZSBmc2Vla28oKSBhbmQgZnRlbGxvKCkgaWYgYXZhaWxhYmxlLiBXaGVuIGZhbGxpbmcgYmFjayBvbiBsc2VlaygpIHRvIGdldCB0aGUgY3VycmVudCBvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19kb19zZWVrKSwKCSAgKGdzdF9maWxlX3NpbmtfZ2V0X2N1cnJlbnRfb2Zmc2V0KToKCSAgVXNlIGZzZWVrbygpIGFuZCBmdGVsbG8oKSBpZiBhdmFpbGFibGUuIFdoZW4gZmFsbGluZyBiYWNrIG9uCgkgIGxzZWVrKCkgdG8gZ2V0IHRoZSBjdXJyZW50IG9mZnNldCwgZmZsdXNoKCkgZmlyc3QgdG8gbWFrZSBzdXJlCgkgIGV2ZXJ5dGhpbmcgaXMgdXAtdG8tZGF0ZSBhbmQgd2UgZ2V0IHRoZSByaWdodCBvZmZzZXQuCgoyMDA1LTEwLTIzIDA5OjA4OjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGVycm9yLmg6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBvL1BPVEZJTEVTLmluOgoJICByZW1vdmUgcHJlbWF0dXJlbHkgYWRkZWQgZXJyb3IgY2F0ZWdvcnkgYW5kIGNsZWFuIHVwIHRoZSBpbnN0YW5jZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBwcmVtYXR1cmVseSBhZGRlZCBlcnJvciBjYXRlZ29yeSBhbmQgY2xlYW4gdXAgdGhlIGluc3RhbmNlcwoKMjAwNS0xMC0yMSAxNzo1MzozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNpbXBseSBzZXQgdGhlIHJpZ2h0IGZsYWcgd2hlbiBnb2luZyB0byBwbGF5aW5nLCB0aGF0J3MgYWxsIHdlIG5lZWQgdG8gZG8gaW5zdGVhZCBvZiBjYWxsaW5nIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLCAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFNpbXBseSBzZXQgdGhlIHJpZ2h0IGZsYWcgd2hlbiBnb2luZyB0byBwbGF5aW5nLCB0aGF0J3MgYWxsCgkgIHdlIG5lZWQgdG8gZG8gaW5zdGVhZCBvZiBjYWxsaW5nIGEgZnVuY3Rpb24gaW5zaWRlIHRoZSBvYmplY3QKCSAgbG9jayAodGhhdCBjb3VsZCB0YWtlIHRoZSBsb2NrIGFzIHdlbGwgYW5kIGRlYWRsb2NrKQoKMjAwNS0xMC0yMSAxNjoxODo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogRG9uJ3Qgd2FybiwgdGhlIHBlZXIgZWxlbWVudCBrbm93cyB3aGF0IHRvIGRvIGJlc3Qgd2hlbiB0aGUgc2VlayBmYWlsZWQsIGl0IG1pZ2h0IHRyeSBzb21ldGhpbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZG9fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIERvbid0IHdhcm4sIHRoZSBwZWVyIGVsZW1lbnQga25vd3Mgd2hhdCB0byBkbyBiZXN0IHdoZW4KCSAgdGhlIHNlZWsgZmFpbGVkLCBpdCBtaWdodCB0cnkgc29tZXRoaW5nIGVsc2UuCgoyMDA1LTEwLTIxIDE2OjE0OjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBGaXggc2Vla2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KToKCSAgRml4IHNlZWtpbmcuCgoyMDA1LTEwLTIxIDE1OjEzOjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6IE1vcmUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkgIE1vcmUgZG9jcy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfcHJlcGFyZV9idWYpOgoJICBDb3JyZWN0bHkgc2V0IGNhcHMsIGV2ZW4gb24gdGhlIHN1YmJ1ZmVyLgoKMjAwNS0xMC0yMSAxMTozNjozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFuZCAyJSBtb3JlIGRvYyBjb3ZlcmFnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHBhcnNlLmg6CgkgICogZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX2ZpbmFsaXplKSwgKGdzdF90YXNrX2Z1bmMpOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFuZCAyJSBtb3JlIGRvYyBjb3ZlcmFnZS4KCjIwMDUtMTAtMjEgMDk6MjQ6MjggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KTogQ2xlYW4gdXAgcGVyY2VudCBwb3NpdGlvbiByZXBvcnRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KTogQ2xlYW4gdXAgcGVyY2VudAoJICBwb3NpdGlvbiByZXBvcnRpbmcuCgoyMDA1LTEwLTIwIDIxOjA4OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTW9yZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKGdzdF9lcnJvcl9nZXRfbWVzc2FnZSk6CgkgICogZ3N0L2dzdHBhcnNlLmg6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIGdzdC9nc3R0cmFjZS5jOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBNb3JlIGRvY3MuCgoyMDA1LTEwLTIwIDIwOjQ2OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQW5vdGhlciAxJSBtb3JlIGNvdmVyYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIGdzdC9nc3RwYXJzZS5jOgoJICBBbm90aGVyIDElIG1vcmUgY292ZXJhZ2UuCgoyMDA1LTEwLTIwIDIwOjI1OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgWWF5ISAxJSBtb3JlIGRvY3MgY292ZXJhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X2Fib3J0X3N0YXRlKSwgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9zZXRfcG9zaXRpb24pLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX3Bvc2l0aW9uKSwgKGdzdF9xdWVyeV9zZXRfZHVyYXRpb24pLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2R1cmF0aW9uKSwgKGdzdF9xdWVyeV9uZXdfY29udmVydCk6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIFlheSEgMSUgbW9yZSBkb2NzIGNvdmVyYWdlLgoKMjAwNS0xMC0yMCAxOTo0NzowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IERvY3MgYW5kIGNvbnNpc3RlbmN5IGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfc2V0X3Bvc2l0aW9uKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9wb3NpdGlvbiksIChnc3RfcXVlcnlfc2V0X2R1cmF0aW9uKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9kdXJhdGlvbiksIChnc3RfcXVlcnlfbmV3X2NvbnZlcnQpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfcXVlcnlfY29udmVydCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIERvY3MgYW5kIGNvbnNpc3RlbmN5IGZpeGVzLgoKMjAwNS0xMC0yMCAxOTozMDo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R0YXNrLio6IE1vcmUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhc2suYzoKCSAgKiBnc3QvZ3N0dGFzay5oOgoJICBNb3JlIGRvY3MuCgoyMDA1LTEwLTIwIDE3OjIyOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBSZXdvcmtlZCB0aGUgbWVzc2FnZSBoYW5kbGluZyBhIGJpdCwgY2FjaGUgdGhlIG1lc3NhZ2VzIGluc3RlYWQgb2Ygb25seSB0aGUgc2VuZGVycy4gYWxvd3MgdXMgdG8gZG8gbW9yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKG1lc3NhZ2VfY2hlY2spLCAoYmluX3JlcGxhY2VfbWVzc2FnZSksCgkgIChiaW5fcmVtb3ZlX21lc3NhZ2VzKSwgKGlzX2VvcyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKHVwZGF0ZV9kZWdyZWUpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksIChnc3RfYmluX2Rpc3Bvc2UpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgUmV3b3JrZWQgdGhlIG1lc3NhZ2UgaGFuZGxpbmcgYSBiaXQsIGNhY2hlIHRoZSBtZXNzYWdlcyBpbnN0ZWFkIG9mCgkgIG9ubHkgdGhlIHNlbmRlcnMuIGFsb3dzIHVzIHRvIGRvIG1vcmUgaW4gdGhlIGZ1dHVyZS4KCjIwMDUtMTAtMjAgMTc6MTg6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBVcGRhdGUgVE9ETwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBVcGRhdGUgVE9ETwoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KToKCSAgRG9uJ3QgdXNlIGNsb2NrIHRpbWUgdG8gcmVwb3J0IHBvc2l0aW9uIHdoZW4gaW4gRU9TLgoKMjAwNS0xMC0yMCAxMzoxMDoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEZpeCBpbnRlcmZhY2Ugb3V0cHV0IHdpdGggZ3N0LWluc3BlY3QgLWE7IGRvbid0IHByaW50IG5ld2xpbmVzIGFmdGVyIGRvdWJsZS9mbG9hdCBwcm9wZXJ0aWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfaW50ZXJmYWNlcyksCgkgIChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyksIChwcmludF9lbGVtZW50X2luZm8pOgoJICBGaXggaW50ZXJmYWNlIG91dHB1dCB3aXRoIGdzdC1pbnNwZWN0IC1hOyBkb24ndCBwcmludAoJICBuZXdsaW5lcyBhZnRlciBkb3VibGUvZmxvYXQgcHJvcGVydGllcy4KCjIwMDUtMTAtMjAgMTE6NDg6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTcGVlZCB1cCBjdXJyZW50IHBvc2l0aW9uIGNhbGN1bGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSk6CgkgIFNwZWVkIHVwIGN1cnJlbnQgcG9zaXRpb24gY2FsY3VsYXRpb24uCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X25ld3NlZ21lbnQpOgoJICBDb3JyZWN0bHkgc2V0IHN0cmVhbSBwb3NpdGlvbiBpbiBuZXdzZWdtZW50LgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoYWRkX3RvX3F1ZXVlKSwKCSAgKHVwZGF0ZV9kZWdyZWUpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLAoJICAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX3Jlc3luYyksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfZnJlZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19jdXN0b20pOgoJICBDbGVhbiB1cCBkZWJ1Z2dpbmcgaW5mbwoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xpbmtfc3JjKSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfbG9vcCksIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSk6CgkgIFBhdXNlIHRhc2sgZmFzdGVyLgoKMjAwNS0xMC0xOSAxNzowNjo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEZpeCBxdWVyeSBoYW5kbGluZyBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwgKGRvX3BsYXlpbmcpOgoJICBGaXggcXVlcnkgaGFuZGxpbmcgYWdhaW4uCgoyMDA1LTEwLTE5IDE1OjUwOjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQVBJIGNoYW5nZSBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksIChkb19wbGF5aW5nKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnkpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19xdWVyeSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9oYW5kbGVfc3JjX3F1ZXJ5KSwgKGZpbmRfZWxlbWVudF9nZXRfbGVuZ3RoKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgIEFQSSBjaGFuZ2UgZml4LgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19wb3NpdGlvbiksCgkgIChnc3RfcXVlcnlfc2V0X3Bvc2l0aW9uKSwgKGdzdF9xdWVyeV9wYXJzZV9wb3NpdGlvbiksCgkgIChnc3RfcXVlcnlfbmV3X2R1cmF0aW9uKSwgKGdzdF9xdWVyeV9zZXRfZHVyYXRpb24pLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2R1cmF0aW9uKSwgKGdzdF9xdWVyeV9zZXRfc2VnbWVudCksCgkgIChnc3RfcXVlcnlfcGFyc2Vfc2VnbWVudCk6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEJ1bmRsaW5nIHF1ZXJ5IHBvc2l0aW9uL2R1cmF0aW9uIGlzIG5vdCBhIGdvb2QgaWRlYSBzaW5jZSBkdXJhdGlvbgoJICBkb2VzIG5vdCBjaGFuZ2UgbXVjaCBhbmQgd2UgZG9uJ3Qgd2FudCB0byByZWNhbGN1bGF0ZSBpdCBmb3IgZXZlcnkKCSAgcG9zaXRpb24gcXVlcnksIHNvIHRoZXkgYXJlIHNlcGFyYXRlZCBhZ2Fpbi4uCgkgIEJhc2UgdmFsdWUgaW4gc2VnbWVudCBxdWVyeSBpcyBub3QgbmVlZGVkLgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfcXVlcnlfcG9zaXRpb24pLAoJICAoZ3N0X2VsZW1lbnRfcXVlcnlfZHVyYXRpb24pLCAoZ3N0X3BhZF9xdWVyeV9wb3NpdGlvbiksCgkgIChnc3RfcGFkX3F1ZXJ5X2R1cmF0aW9uKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgVXBkYXRlcyBmb3IgcXVlcnkgQVBJIGNoYW5nZS4KCSAgQWRkZWQgc29tZSBkb2NzIGhlcmUgYW5kIHRoZXJlLgoKMjAwNS0xMC0xOSAxMTo0Mzo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay86IHdhaXQgb24gdGhyZWFkIHRvIGRpZSBzbyB3ZSBjYW4gY2hlY2sgcmVmY291bnQgY29ycmVjdGx5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9waXBlbGluZXMvY2xlYW51cC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICB3YWl0IG9uIHRocmVhZCB0byBkaWUgc28gd2UgY2FuIGNoZWNrIHJlZmNvdW50IGNvcnJlY3RseQoKMjAwNS0xMC0xOSAxMTo0MzoxOCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSB0b29scyBwYWNrYWdlIG5hbWluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHRvb2xzIHBhY2thZ2UgbmFtaW5nCgoyMDA1LTEwLTE5IDExOjQyOjM5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgbG9nIGFuIGlmIGJyYW5jaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbG9nIGFuIGlmIGJyYW5jaAoKMjAwNS0xMC0xOCAxNzozMDo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzogTWFrZSBjaGVjayBhIGxpdHRsZSBtb3JlIHRpbWUgY29uc3VtaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9waXBlbGluZXMvc3RyZXNzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2UgY2hlY2sgYSBsaXR0bGUgbW9yZSB0aW1lIGNvbnN1bWluZy4KCjIwMDUtMTAtMTggMTc6MDY6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay86IFNtYWxsIHN0YXRlIGNoYW5nZSB0b3J0dXJlIHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKHNpbXBsZV9sYXVuY2hfbGluZXNfc3VpdGUpLCAobWFpbik6CgkgIFNtYWxsIHN0YXRlIGNoYW5nZSB0b3J0dXJlIHRlc3QuCgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChkb19wbGF5aW5nKSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgTmV2ZXIgdGFrZSBzdGF0ZSBsb2NrIGZyb20gc3RyZWFtaW5nIHRocmVhZCwgY2xlYW4gdXAgdWdseQoJICBoYWNrcy4gVW5mb3J0dW5hdGx5IGNvcmUgZG9lcyBub3QgeWV0IHN1cHBvcnQgbmljZSB3YXlzIHRvCgkgIGFzeW5jIGNvbW1pdCBzdGF0ZS4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fcmVjYWxjX3N0YXRlKSwKCSAgKGJpbl9idXNfaGFuZGxlcik6CgkgIFN0YXJ0IHN0YXRlIHJlY2FsYyBpZiBhIFNUQVRFX0RJUlRZIG1lc3NhZ2UgaXMgcG9zdGVkLCBidXQgb25seQoJICBvbiB0aGUgdG9wbGV2ZWwgYmluLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50KSwKCSAgKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X2Fib3J0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgU3RhdGUgdmFyaWFibGVzIGFyZSBub3cgcHJvdGVjdGVkIHdpdGggdGhlIExPQ0ssIHRoZSBzdGF0ZQoJICBsb2NrIGlzIG9ubHkgdXNlZCB0byBzZXJpYWxpemUgX3NldF9zdGF0ZSgpLgoKMjAwNS0xMC0xOCAxNjoyNTozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNlcmlvdXNseSwgdGhpcyBpcyBiZXR0ZXIgdGhhbiBhIHByZXZpb3VzIGNvbW1pdCBhcyB3ZSBvbmx5IG5lZWQgdG8gbm90aWZ5IHRoZSBmYWN0IHRoYXQgYW4gZWxlbWVudCBjaGFuZ2VkIHN0YXRlIGluIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKSwgKG1lc3NhZ2VfcmVjZWl2ZWQpOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX3JlY2FsY19mdW5jKSwKCSAgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2Fib3J0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2RpcnR5KSwgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X2RvbmUpLCAoZ3N0X21lc3NhZ2VfbmV3X2R1cmF0aW9uKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X2RvbmUpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfZHVyYXRpb24pOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIFNlcmlvdXNseSwgdGhpcyBpcyBiZXR0ZXIgdGhhbiBhIHByZXZpb3VzIGNvbW1pdCBhcyB3ZSBvbmx5IG5lZWQKCSAgdG8gbm90aWZ5IHRoZSBmYWN0IHRoYXQgYW4gZWxlbWVudCBjaGFuZ2VkIHN0YXRlIGluIGEgc3RyZWFtaW5nCgkgIHRocmVhZCwgbWFya2luZyB0aGUgc3RhdGUgb2YgdGhlIHBhcmVudHMgZGlydHksIGhlbmNlIHRoZQoJICBTVEFURV9ESVJUWSBtZXNzYWdlIGluc3RlYWQgb2YgYWJ1c2luZyBhIGJvb2xlYW4gaW4gYSBTVEFURV9DSEFOR0UKCSAgbWVzc2FnZS4KCjIwMDUtMTAtMTggMTU6MTU6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBDbGVhbnVwcywgcHJlcGFyZSBmb3Igc3RhdGUgY2hhbmdlIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfYmluX3JlY2FsY19mdW5jKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X2Nsb2NrKSwKCSAgKGdzdF9lbGVtZW50X2Fib3J0X3N0YXRlKSwgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpOgoJICBDbGVhbnVwcywgcHJlcGFyZSBmb3Igc3RhdGUgY2hhbmdlIGZpeGVzLgoKMjAwNS0xMC0xOCAxNDoyOToyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFBlbmRpbmcgQUJJIGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIFBlbmRpbmcgQUJJIGNoYW5nZXMuCgkgIEdUaHJlYWRQb29sIGluIEdzdEJpbkNsYXNzIHRvIG1vbml0b3IgYXN5bmMgc3RhdGUgY2hhbmdlcy4KCSAgc3RhdGVfY29va2llIGluIEdzdEVsZW1lbnQgdG8gZGV0ZWN0IGNvbmN1cnJlbnQgZ3N0L3NldCBzdGF0ZS4KCSAgc2V0X3N0YXRlIGlzIG5vdyB2aXJ0dWFsIHRvbyBpbiBjYXNlIGEgdmVyeSBjb21wbGljYXRlZCBlbGVtZW50CgkgIGhhcyB0byBiZSBjb25zdHJ1Y3RlZC4KCjIwMDUtMTAtMTggMTM6MTk6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBNYWtlIG1lc3NhZ2VzIGZ1dHVyZSBwcm9vZi4gc3RhdGUtY2hhbmdlIGdldHMgYSBmbGFnIGlmIGl0IHdhcyBhIG1lc3NhZ2UgY29tbWluZyBmcm9tIHRoZSBzdHJlYW1pbmcgdGhyZWFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKSwgKG1lc3NhZ2VfcmVjZWl2ZWQpOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksCgkgIChnc3RfbWVzc2FnZV9uZXdfZHVyYXRpb24pLCAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9wYXJzZV9kdXJhdGlvbik6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgTWFrZSBtZXNzYWdlcyBmdXR1cmUgcHJvb2YuCgkgIHN0YXRlLWNoYW5nZSBnZXRzIGEgZmxhZyBpZiBpdCB3YXMgYSBtZXNzYWdlIGNvbW1pbmcgZnJvbSB0aGUKCSAgc3RyZWFtaW5nIHRocmVhZC4KCSAgc2VnbWVudC1zdGFydC9zdG9wIGNhbiBhbHNvIGJlIHNwZWNpZmllZCBpbiBvdGhlciBmb3JtYXRzLgoJICBBIG1lc3NhZ2UgdG8gbm90aWZ5IGFuIGFwcCB0aGF0IGEgcGlwZWxpbmUgY2hhbmdlZCBwbGF5YmFjawoJICBkdXJhdGlvbi4KCSAgQWxzbyBmaXggYSBHc3RNZXNzYWdlIGxlYWsgaW4gLWxhdW5jaAoKMjAwNS0xMC0xOCAxMDozMjo0OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfZGlzcG9zZSk6IE1vcmUgaGVscGZ1bCBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9kaXNwb3NlKTogTW9yZSBoZWxwZnVsIG1lc3NhZ2UuCgoyMDA1LTEwLTE4IDA4OjIwOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICByZW1vdmUgaW5mbyBtZXNzYWdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGluZm8gbWVzc2FnZXMKCjIwMDUtMTAtMTggMDc6MTM6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IHVucmVmIGEgcGx1Zy1pbiB3ZSBnZXQgdGhhdCB3YXMgYWxyZWFkeSBpbml0aWFsaXplZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICB1bnJlZiBhIHBsdWctaW4gd2UgZ2V0IHRoYXQgd2FzIGFscmVhZHkgaW5pdGlhbGl6ZWQKCjIwMDUtMTAtMTcgMjA6MTY6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZCBuZXcgYXBpIGVudHJpZXMgaGlkZSBpbnRlcm5hbCBtYWNybwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgYWRkIG5ldyBhcGkgZW50cmllcwoJICBoaWRlIGludGVybmFsIG1hY3JvCgoyMDA1LTEwLTE3IDE4OjA5OjMyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jIChnc3RfY29sbGVjdHBhZHNfY2hhaW4pOiBTbGlnaHQgY2xlYW51cC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYyAoZ3N0X2NvbGxlY3RwYWRzX2NoYWluKTogU2xpZ2h0CgkgIGNsZWFudXAuCgkgICogZ3N0L01ha2VmaWxlLmFtIChnc3RlbnVtdHlwZXMuYyk6IFRocmVhZHNhZmUgbm93LgoJICAqIGdzdC9nc3RldmVudC5jIChnc3RfZXZlbnRfbmV3LCBnc3RfZXZlbnRfZmluYWxpemUpOiBMT0cuCgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpOiBzL0lORk8vREVCVUcvLgoJICAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpOiBCZXR0ZXIgZGVidWcgbWVzc2FnZS4KCSAgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSk6IHMvSU5GTy9ERUJVRy8uCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlLCBnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmMgKGdzdF9tZXNzYWdlX2luaXQpOiBzL0lORk8vTE9HLy4KCSAgKGdzdF9tZXNzYWdlX25ld19jdXN0b20pOiBzL0lORk8vTE9HLy4KCjIwMDUtMTAtMTcgMTc6NDY6MzcgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBDaGVjayB2YWxpZGl0eSBvZiBlbmQgdGltZSBiYXNlZCBvbiBlbmQgdGltZSB2YXJpYWJsZSwgbm90IHN0YXJ0IHRpbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGVjayB2YWxpZGl0eSBvZiBlbmQgdGltZSBiYXNlZCBvbiBlbmQgdGltZSB2YXJpYWJsZSwgbm90IHN0YXJ0IHRpbWUuCgoyMDA1LTEwLTE3IDE3OjA1OjM4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtZXJnZSBjb250cm9sbGVyIHRlc3RzdWl0ZXMgZml4IGJyb2tlbiB0ZXN0cyByZW1vdmUgbWVtLWNodW5rIGZyb20gZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKiB0ZXN0c3VpdGUvY29udHJvbGxlci8uY3ZzaWdub3JlOgoJICAqIHRlc3RzdWl0ZS9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzdWl0ZS9jb250cm9sbGVyL2ludGVycG9sYXRvci5jOgoJICBtZXJnZSBjb250cm9sbGVyIHRlc3RzdWl0ZXMKCSAgZml4IGJyb2tlbiB0ZXN0cwoJICByZW1vdmUgbWVtLWNodW5rIGZyb20gZG9jcwoKMjAwNS0xMC0xNyAxNDo0MjoyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBvdXQuICBnZXQgb3V0LiAgeW91J3JlIGZpcmVkLiAgdG8gdGhlIEF0dGljICEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lbWNodW5rLmM6CgkgICogZ3N0L2dzdG1lbWNodW5rLmg6CgkgICogZ3N0L2dzdHRyYXNoc3RhY2suYzoKCSAgKiBnc3QvZ3N0dHJhc2hzdGFjay5oOgoJICBvdXQuICBnZXQgb3V0LiAgeW91J3JlIGZpcmVkLiAgdG8gdGhlIEF0dGljICEKCjIwMDUtMTAtMTcgMTQ6Mzc6MDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGNhcHMuYzogZml4IHNpZ25lZG5lc3MgaXNzdWVzIGluIGEgKGhvcGVmdWxseSkgY29ycmVjdCB3YXkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2ludGVyc2VjdCk6CgkgIGZpeCBzaWduZWRuZXNzIGlzc3VlcyBpbiBhIChob3BlZnVsbHkpIGNvcnJlY3Qgd2F5CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICBzb21lIGRlYnVnZ2luZwoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3Rfc2V0X3BhcmVudCk6CgkgIHNvbWUgZGVidWdnaW5nCgoyMDA1LTEwLTE3IDEwOjM3OjEzICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIEZpeCBhIGRvYyB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRml4IGEgZG9jIHR5cG8uCgoyMDA1LTEwLTE3IDA5OjI4OjM1ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5oOiBGaXggcHJvdG90eXBlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTcgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0dmFsdWUuaDogRml4IHByb3RvdHlwZXMuCgoyMDA1LTEwLTE2IDE0OjMyOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhZGQgZ3N0X3ZlcnNpb25fc3RyaW5nICgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgZ3N0X3ZlcnNpb25fc3RyaW5nICgpCgoyMDA1LTEwLTE2IDEzOjU1OjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBjb21tZW50OyB1cGRhdGUgd2luMzIgY29uZmlnLmgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvbW1lbnQ7IHVwZGF0ZSB3aW4zMiBjb25maWcuaAoKMjAwNS0xMC0xNiAxMjozNzoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBzY3JpcHRzL2N2cy11cGRhdGUuc2g6CgkgIERlYXIgQW5keTogaGVyZSdzIGEgc2NyaXB0IHRvIHVwZGF0ZSBzdHVmZiBmcm9tIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRGVhciBBbmR5OgoJICBoZXJlJ3MgYSBzY3JpcHQgdG8gdXBkYXRlIHN0dWZmIGZyb20gQ1ZTCgkgIExvdmUsCgkgIFRob21hcwoKMjAwNS0xMC0xNiAxMjoyODoyMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IGNsZWFuIHVwIGZ1cnRoZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBjbGVhbiB1cCBmdXJ0aGVyCgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIGl0J3MgUExVR0lORElSIG5vdwoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pbnRlcnNlY3QpOgoJICB1c2UgZ2ludDY0LCB0aGUgcmFuZ2UgY291bGQgYmUgYmlnZ2VyIHRoYW4gYSBndWludAoKMjAwNS0xMC0xNiAxMTo0ODowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIEdTdHJlYW1lciBjb25zdWx0YW50cyB3aWxsIG1ha2UgYSBsb3Qgb2YgbW9uZXkgaW4gMjAzOAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgR1N0cmVhbWVyIGNvbnN1bHRhbnRzIHdpbGwgbWFrZSBhIGxvdCBvZiBtb25leSBpbiAyMDM4CgoyMDA1LTEwLTE2IDEwOjU4OjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RjYXBzLmM6IEZpeCBndWludCBqIGRpdmluZyB1bmRlciAwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pbnRlcnNlY3QpOgoJICBGaXggZ3VpbnQgaiBkaXZpbmcgdW5kZXIgMAoKMjAwNS0xMC0xNiAxMDozODowMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjayBmb3IgcHJvY2Vzcy5oLCBkZWNsYXJlcyBnZXRwaWQoKSBvbiBXaW5kb3dzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBjaGVjayBmb3IgcHJvY2Vzcy5oLCBkZWNsYXJlcyBnZXRwaWQoKSBvbiBXaW5kb3dzCgkgICogZ3N0L2dzdGluZm8uYzoKCSAgaW5jbHVkZSBwcm9jZXNzLmggaWYgd2UgaGF2ZSBpdAoJICAqIGdzdC9nc3RtZW1jaHVuay5jOiAocG9wdWxhdGUpLCAoZ3N0X21lbV9jaHVua19uZXcpOgoJICAqIGdzdC9nc3RtZW1jaHVuay5oOgoJICBmaXggc2lnbmVkbmVzcyBpc3N1ZXMKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZml4IGdldF90eXBlJ3MKCjIwMDUtMTAtMTYgMTA6MjI6MjkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZml4IHNpZ25lZG5lc3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBzaWduZWRuZXNzCgoyMDA1LTEwLTE2IDEwOjE4OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBmaXggR1NUX1ZFUlNJT04KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBHU1RfVkVSU0lPTgoKMjAwNS0xMC0xNiAxMDoxNToyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgZml4IGlubGluZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGlubGluZQoKMjAwNS0xMC0xNiAxMDoxMjozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgZGVmaW5lIFBBQ0tBR0UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRlZmluZSBQQUNLQUdFCgoyMDA1LTEwLTE2IDEwOjEwOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICB1cGRhdGUgYXZhaWxhYmxlIGhlYWRlcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBhdmFpbGFibGUgaGVhZGVycwoKMjAwNS0xMC0xNiAwOTo1NjozMyArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBGaXggYSBiYWQgYnVnIHdpdGggYSBzaW1wbGUgZml4LiBCZWNhdXNlIG9mIHVuc2lnbmVkIGludHMsIGNhcHMgaW50ZXJzZWN0aW9uIHdhcyBnb2luZyBudXRzIGFuZCB0cnlpbmcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTYgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaW50ZXJzZWN0KTogRml4IGEgYmFkIGJ1ZyB3aXRoIGEKCSAgc2ltcGxlCgkgIGZpeC4gQmVjYXVzZSBvZiB1bnNpZ25lZCBpbnRzLCBjYXBzIGludGVyc2VjdGlvbiB3YXMgZ29pbmcgbnV0cwoJICBhbmQKCSAgdHJ5aW5nIHRvIGFjY2VzcyBzdHJ1Y3R1cmVzIHdpdGggR19NQVhVSU5UIGluZGV4LiBUaGF0IGZpeGVzCgkgIHZpZGVvdGVzdHNyYyAhIGZmbXBlZ2NvbG9yc3BhY2UgISBmYWtlc2luawoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKTogbG9ncwoJICBjb25zaXN0ZW5jeS4KCjIwMDUtMTAtMTYgMDk6NTU6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZQoKMjAwNS0xMC0xNiAwOTo1NDoyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIHR5cG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHR5cG8KCjIwMDUtMTAtMTYgMDk6NTE6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIHVwZGF0ZXMgZm9yIDJpbjMyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGVzIGZvciAyaW4zMgoKMjAwNS0xMC0xNiAwOTo0NDowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6CgkqIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBtb3JlIGRlZmluZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBkZWZpbmUgZml4ZXMKCjIwMDUtMTAtMTYgMDk6MjA6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiB1c2UgdGhlIGdldHRleHQgbWFjcm8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTYgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogY29uZmlndXJlLmFjOgoJICB1c2UgdGhlIGdldHRleHQgbWFjcm8KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6CgkgIHVwZGF0ZSBmb3IgR1NUX1BBQ0tBR0VfTkFNRSwgR1NUX1BBQ0tBR0VfT1JJR0lOCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGVkIGNvbmZpZy5oCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBhZGQgdGhlIHRlbXBsYXRlIHRvIGdlbmVyYXRlIGNvbmZpZy5oCgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJICAqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHVwZGF0ZWQgY29waWVzCgoyMDA1LTEwLTE2IDA5OjExOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC5wYy5pbjoKCSAgcmVtb3ZlIG1vcmUgUEtHX0NGTEFHUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG1vcmUgUEtHX0NGTEFHUwoKMjAwNS0xMC0xNiAwOToxMDoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBhZGQgdGhlIG5hbm8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X3ZlcnNpb24pOgoJICAqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkgIGFkZCB0aGUgbmFubwoKMjAwNS0xMC0xNiAwODo1OTozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICByZW1vdmUgR1NUX1BLR19DRkxBR1MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBHU1RfUEtHX0NGTEFHUwoKMjAwNS0xMC0xNSAyMjoyNDoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RldmVudC5oOiBPb3BzLCBhZGQgbWlzc2luZyBjbG9zaW5nIGJyYWNrZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBPb3BzLCBhZGQgbWlzc2luZyBjbG9zaW5nIGJyYWNrZXQuCgoyMDA1LTEwLTE1IDIxOjQxOjIwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogdXNlIGNvbW1vbiBtNCdzIGZvciBhcmd1bWVudCBjaGVja2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIHVzZSBjb21tb24gbTQncyBmb3IgYXJndW1lbnQgY2hlY2tpbmcKCjIwMDUtMTAtMTUgMjA6MzM6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgR1NUX0VWRU5UX1RZUEVfTkFNRSgpIG1hY3JvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBBZGQgR1NUX0VWRU5UX1RZUEVfTkFNRSgpIG1hY3JvLgoKMjAwNS0xMC0xNSAyMDowMDozMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXBkYXRlIGRlZnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBkZWZzCgoyMDA1LTEwLTE1IDE5OjU3OjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IHByaXZhdGl6ZSBtb3JlIHN5bWJvbHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICAqIGdzdC9nc3R0YXNrLmM6CgkgIHByaXZhdGl6ZSBtb3JlIHN5bWJvbHMKCjIwMDUtMTAtMTUgMTg6MjI6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBhZGQgc3JjZGlyLCBidWlsZGRpciBpbmNsdWRlcyB0byBHU1RfQUxMX0NGTEFHUywgc2luY2UgZXZlcnl0aGluZyB0aGF0IHVzZXMgR1N0cmVhbWVyIEFQSSBzaG91bGQgaGF2ZSB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgYWRkIHNyY2RpciwgYnVpbGRkaXIgaW5jbHVkZXMgdG8gR1NUX0FMTF9DRkxBR1MsIHNpbmNlCgkgIGV2ZXJ5dGhpbmcgdGhhdCB1c2VzIEdTdHJlYW1lciBBUEkgc2hvdWxkIGhhdmUgdGhlIGluY2x1ZGVzCgoyMDA1LTEwLTE1IDE3OjU5OjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdpdmUgZWFjaCB2YWx1ZSBhIF9nZXRfdHlwZSwgcmVtb3ZlcyB0aGUgREFUQSBleHBvcnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfZGF0ZV9nZXRfdHlwZSksIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBnaXZlIGVhY2ggdmFsdWUgYSBfZ2V0X3R5cGUsIHJlbW92ZXMgdGhlIERBVEEgZXhwb3J0cwoKMjAwNS0xMC0xNSAxNzoyMjozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgZml4IGxpbmsgZmxhZ3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBsaW5rIGZsYWdzCgoyMDA1LTEwLTE1IDE2OjM5OjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1cGRhdGUgZGVmcyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgZGVmcyBmaWxlCgoyMDA1LTEwLTE1IDE2OjM3OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1cGRhdGUgZGVmcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGRlZnMKCjIwMDUtMTAtMTUgMTY6MzM6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdC4qOiByZW1vdmUgX2dzdF9yZWdpc3RyeV9hdXRvX2xvYWQsIG5vdCB1c2VkIGFueW1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3QuaDoKCSAgcmVtb3ZlIF9nc3RfcmVnaXN0cnlfYXV0b19sb2FkLCBub3QgdXNlZCBhbnltb3JlCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBtYWtlIF9nZXRfdHlwZSBmdW5jdGlvbnMgc2ltaWxhciwgZml4ZXMgZGF0YSBleHBvcnQgZnJvbSBsaWJyYXJ5CgoyMDA1LTEwLTE1IDE2OjE2OjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgSSdtIHRvbyBsYXp5IHRvIGNvbW1lbnQgdGhpcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZ3RrLWRvYyBpbnNpc3RzIG9uIGluc2VydGluZyA8UEFSQT4gYXQgZXZlcnkgZW1wdHkgbGluZSwgc2lnaAoKMjAwNS0xMC0xNSAxNjowMTo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RmaWx0ZXIuYzoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGludGVyZmFjZS5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1lbWNodW5rLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaXR5cGUuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R4bWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICB2YXJpb3VzIHN0eWxlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB2YXJpb3VzIHN0eWxlIGZpeGVzCgoyMDA1LTEwLTE1IDE1OjUzOjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSogY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIGV4YW1wbGVzL2FwcHJlYWRlci9hcHByZWFkZXIuYzoKCSogZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIGV4YW1wbGVzL2N1dHRlci9jdXR0ZXIuYzoKCSogZXhhbXBsZXMvY3V0dGVyL2N1dHRlci5oOgoJKiBleGFtcGxlcy9taXhlci9taXhlci5jOgoJKiBleGFtcGxlcy9taXhlci9taXhlci5oOgoJKiBleGFtcGxlcy9yZXRhZy9yZXRhZy5jOgoJKiBleGFtcGxlcy9yZXRhZy90cmFuc2NvZGUuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvYXBwcmVhZGVyL2FwcHJlYWRlci5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jdXR0ZXIvY3V0dGVyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jdXR0ZXIvY3V0dGVyLmg6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9taXhlci9taXhlci5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuaDoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3JldGFnL3JldGFnLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9yZXRhZy90cmFuc2NvZGUuYzoKCSogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJKiB3aW4zMi9kaXJlbnQuYzoKCSogd2luMzIvZ3N0Y29uZmlnLmg6CgkqIHdpbjMyL2dzdHZlcnNpb24uaDoKCSogd2luMzIvZ3RjaGFyLmg6CgkqIHdpbjMyL21tYW4uaDoKCSogd2luMzIvdnM3L21tYW4uaDoKCSAgd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSBmaXhlcwoKMjAwNS0xMC0xNSAxNTo1MzoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2J5dGVzdHJlYW0vLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9ieXRlc3RyZWFtL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2J5dGVzdHJlYW0vZmlsZXBhZHNpbmsuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9ieXRlc3RyZWFtL2dzdGJzdGVzdC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2J5dGVzdHJlYW0vdGVzdDEuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9ieXRlc3RyZWFtL3Rlc3RmaWxlMToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL25vcm1hbGlzYXRpb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3JhbmRvbS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NsZWFudXAvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbGVhbnVwL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDEuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbGVhbnVwL2NsZWFudXAyLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xlYW51cC9jbGVhbnVwMy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbGVhbnVwL2NsZWFudXA1LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY29udHJvbGxlci9pbnRlcnBvbGF0b3IuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy9wcmludGZfZXh0ZW5zaW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvbmVnb3RpYXRpb24vLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9uZWdvdGlhdGlvbi9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9uZWdvdGlhdGlvbi9wYWRfbGluay5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhZC9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wYWQvY2hhaW5ub3B1bGwuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wYWQvZ2V0bm9wdXNoLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGFkL2xpbmsuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9zY2hlZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZ2lzdHJ5L01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZ2lzdHJ5L2dzdC1wcmludC1mb3JtYXRzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQyMTgzLTIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0MjE4My5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQzNzc3LTIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0Mzc3Ny5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQ3NzEzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDc4MTkuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0Nzg5NC0yLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDc4OTQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvZ3JvdXBfbGluay5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvcXVldWVfbGluay5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvcmVsaW5rLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy91bmxpbmsuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzL3VucmVmLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy91c2VsZXNzX2l0ZXJhdGlvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3N0YXRlcy9iaW4uYzoKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvYnl0ZXN0cmVhbS8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvYnl0ZXN0cmVhbS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2J5dGVzdHJlYW0vZmlsZXBhZHNpbmsuYzoKCSogdGVzdHN1aXRlL2J5dGVzdHJlYW0vZ3N0YnN0ZXN0LmM6CgkqIHRlc3RzdWl0ZS9ieXRlc3RyZWFtL3Rlc3QxLmM6CgkqIHRlc3RzdWl0ZS9ieXRlc3RyZWFtL3Rlc3RmaWxlMToKCSogdGVzdHN1aXRlL2NhcHMvbm9ybWFsaXNhdGlvbi5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9yYW5kb20uYzoKCSogdGVzdHN1aXRlL2NsZWFudXAvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2NsZWFudXAvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9jbGVhbnVwL2NsZWFudXAxLmM6CgkqIHRlc3RzdWl0ZS9jbGVhbnVwL2NsZWFudXAyLmM6CgkqIHRlc3RzdWl0ZS9jbGVhbnVwL2NsZWFudXAzLmM6CgkqIHRlc3RzdWl0ZS9jbGVhbnVwL2NsZWFudXA0LmM6CgkqIHRlc3RzdWl0ZS9jbGVhbnVwL2NsZWFudXA1LmM6CgkqIHRlc3RzdWl0ZS9jb250cm9sbGVyL2ludGVycG9sYXRvci5jOgoJKiB0ZXN0c3VpdGUvZGVidWcvcHJpbnRmX2V4dGVuc2lvbi5jOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzdWl0ZS9uZWdvdGlhdGlvbi8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvbmVnb3RpYXRpb24vTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9uZWdvdGlhdGlvbi9wYWRfbGluay5jOgoJKiB0ZXN0c3VpdGUvcGFkL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvcGFkL2NoYWlubm9wdWxsLmM6CgkqIHRlc3RzdWl0ZS9wYWQvZ2V0bm9wdXNoLmM6CgkqIHRlc3RzdWl0ZS9wYWQvbGluay5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvc2NoZWQuYzoKCSogdGVzdHN1aXRlL3JlZ2lzdHJ5L01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvcmVnaXN0cnkvZ3N0LXByaW50LWZvcm1hdHMuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQyMTgzLTIuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQyMTgzLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0Mzc3Ny0yLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0Mzc3Ny5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDc3MTMuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQ3ODE5LmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0Nzg5NC0yLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0Nzg5NC5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvZ3JvdXBfbGluay5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy9xdWV1ZV9saW5rLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzL3JlbGluay5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy91bmxpbmsuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvdW5yZWYuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvdXNlbGVzc19pdGVyYXRpb24uYzoKCSogdGVzdHN1aXRlL3N0YXRlcy9iaW4uYzoKCSAgcmVtb3ZlIG9ic29sZXRlIHRlc3RzIHdoaXRlc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBvYnNvbGV0ZSB0ZXN0cwoJICB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA1LTEwLTE1IDE1OjUyOjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogY29ycmVjdGx5IG1ha2UgY29uZGl0aW9uYWxzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgY29ycmVjdGx5IG1ha2UgY29uZGl0aW9uYWxzCgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBmaXggdHlwbyBjYXVzaW5nIGZkc3JjIG5vdCB0byBidWlsZAoKMjAwNS0xMC0xNSAxNTozMDoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkqIGdzdC9nbGliLWNvbXBhdC5jOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3Rmb3JtYXQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5kZXguaDoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5Lmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RpbnRlcmZhY2UuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RtYWNyb3MuaDoKCSogZ3N0L2dzdG1lbWNodW5rLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGdzdC9nc3RxdWV1ZS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIGdzdC9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSogZ3N0L2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSBmaXhlcwoKMjAwNS0xMC0xNSAxNTowMTozOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IGNoZWNrIGZvciBzb21lIGhlYWRlcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBjaGVjayBmb3Igc29tZSBoZWFkZXJzCgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBkb24ndCBjb21waWxlIGZkc3JjIHdpdGhvdXQgc3lzL3NvY2tldC5oCgkgICogZ3N0L2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9pbmRleGVycy9nc3RpbmRleGVycy5jOiAocGx1Z2luX2luaXQpOgoJICBkb24ndCBjb21waWxlIGZpbGVpbmRleCB3aXRob3V0IG1tYXAKCjIwMDUtMTAtMTUgMTM6NTg6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiByZW9yZ2FuaXplIGNsZWFuIHVwIGRvY3VtZW50IG1vcmUgcmVtb3ZlIGNydWZ0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgcmVvcmdhbml6ZQoJICBjbGVhbiB1cAoJICBkb2N1bWVudCBtb3JlCgkgIHJlbW92ZSBjcnVmdAoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGV4YW1wbGVzL2hlbGxvd29ybGQvTWFrZWZpbGUuYW06CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSAgKiBleGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzogKGV2ZW50X2xvb3ApOgoJICBjb21waWxlIGZpeGVzLCB0aG91Z2ggaXQncyBub3QgYmVpbmcgY29tcGlsZWQgY3VycmVudGx5CgoyMDA1LTEwLTE1IDEzOjI0OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgY2xlYW4gdXAgcGMgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNsZWFuIHVwIHBjIGZpbGVzCgoyMDA1LTEwLTE1IDEyOjAzOjMyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGxpYnMvZ3N0L2dldGJpdHMvLmdpdGlnbm9yZToKCSAgcmVtb3ZlIGRpcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGRpcgoKMjAwNS0xMC0xNSAxMDozNDoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGdzdC9zY2hlZHVsZXJzLy5naXRpZ25vcmU6CgkgIHJlbW92ZSBkaXJlY3RvcnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBkaXJlY3RvcnkKCjIwMDUtMTAtMTUgMDA6MjI6MDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R1cmkuYzoKCSAgc2lnbmVkbmVzcy90eXBlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzaWduZWRuZXNzL3R5cGUgZml4ZXMKCjIwMDUtMTAtMTUgMDA6MjA6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHNpZ25lZG5lc3MvdHlwZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc2lnbmVkbmVzcy90eXBlIGZpeGVzCgoyMDA1LTEwLTE1IDAwOjE1OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdHBhZC5jOgoJICBzaWduZWRuZXNzIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzaWduZWRuZXNzIGZpeGVzCgoyMDA1LTEwLTE1IDAwOjEyOjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIHNpZ25lZG5lc3MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNpZ25lZG5lc3MgZml4ZXMKCjIwMDUtMTAtMTQgMTc6MDE6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjaGVjay9nc3QvZ3N0dGFnLmM6IEFkZCBzb21lIHNpbXBsZSB0ZXN0cyBmb3IgdGhlIG5ldyB0YWdsaXN0IGRhdGUgQVBJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dGFnLmM6ICh0ZXN0X2RhdGVfdGFncyksIChnc3RfdGFnX3N1aXRlKToKCSAgQWRkIHNvbWUgc2ltcGxlIHRlc3RzIGZvciB0aGUgbmV3IHRhZ2xpc3QgZGF0ZSBBUEkuCgoyMDA1LTEwLTE0IDE0OjEwOjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2VsZW1lbnRzLzogQmVhdXRpZnkgJ2xhc3QtbWVzc2FnZScgb3V0cHV0OiBwcmludCAnbm9uZScgZm9yIGJ1ZmZlciB0aW1lc3RhbXBzIGFuZCBkdXJhdGlvbnMgaWYgbm9uZSBpcyBzZXQ7IGltcHJvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19yZW5kZXIpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY3JlYXRlKToKCSAgQmVhdXRpZnkgJ2xhc3QtbWVzc2FnZScgb3V0cHV0OiBwcmludCAnbm9uZScgZm9yIGJ1ZmZlciB0aW1lc3RhbXBzCgkgIGFuZCBkdXJhdGlvbnMgaWYgbm9uZSBpcyBzZXQ7IGltcHJvdmUgYWxpZ25tZW50IHdpdGggbmV4dCBtZXNzYWdlcy4KCjIwMDUtMTAtMTQgMTE6MDk6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgbmV3IEFQSSB0byBjaGVjayBwbHVnaW4gZmVhdHVyZSB2ZXJzaW9uIHJlcXVpcmVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9jaGVja192ZXJzaW9uKToKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X2RlZmF1bHRfcmVnaXN0cnlfY2hlY2tfZmVhdHVyZV92ZXJzaW9uKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IEFQSSB0byBjaGVjayBwbHVnaW4gZmVhdHVyZSB2ZXJzaW9uIHJlcXVpcmVtZW50cy4KCSAgKiBjaGVjay9nc3QvZ3N0cGx1Z2luLmM6ICh0ZXN0X3ZlcnNpb25fY2hlY2tzKSwgKGdzdF9wbHVnaW5fc3VpdGUpOgoJICBTb21lIGJhc2ljIHRlc3RzIGZvciB0aGUgYWJvdmUuCgoyMDA1LTEwLTEzIDIxOjI3OjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogZ3VhcmQgYWdhaW5zdCBOVUxMIHByaW50ZiAtIGhhcHBlbnMgd2hlbiBmb3IgZXhhbXBsZSBhIG1lc3NhZ2Ugc3RydWN0dXJlIHdpdGggR3N0Q2xvY2sgZ2V0cyBzZXJpYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMyAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3RvX3N0cmluZyk6CgkgIGd1YXJkIGFnYWluc3QgTlVMTCBwcmludGYgLSBoYXBwZW5zIHdoZW4gZm9yIGV4YW1wbGUKCSAgYSBtZXNzYWdlIHN0cnVjdHVyZSB3aXRoIEdzdENsb2NrIGdldHMgc2VyaWFsaXplZAoKMjAwNS0xMC0xMyAxODozMzoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IEZpeCBwcmVzdW1hYmxlIGNvcHknbidwYXN0by4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0cGFkc19ldmVudCk6CgkgIEZpeCBwcmVzdW1hYmxlIGNvcHknbidwYXN0by4KCjIwMDUtMTAtMTMgMTc6NTE6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGFkZCBjb3JyZWN0IGhlYWRlciBmb3IgV0lOMzIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBjb3JyZWN0IGhlYWRlciBmb3IgV0lOMzIKCjIwMDUtMTAtMTMgMTc6NDM6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2VsZW1lbnRzLzogZml4IHNvbWUgc2lnbmVkbmVzcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY3JlYXRlX3JlYWQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgZml4IHNvbWUgc2lnbmVkbmVzcwoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICBJIHdvbmRlciBpZiB0aGlzIGNvdWxkIGFjdHVhbGx5IHdyaXRlICsyR0IgZmlsZXMgYmVmb3JlCgoyMDA1LTEwLTEzIDE3OjI0OjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhZGQgYW4gZXhwb3J0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYW4gZXhwb3J0CgoyMDA1LTEwLTEzIDE3OjIwOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nbGliLWNvbXBhdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGluY2x1ZGUgaGVhZGVyIGNvcnJlY3RseTsgc2hvdyBtZSB0aGUgbmFtZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaW5jbHVkZSBoZWFkZXIgY29ycmVjdGx5OyBzaG93IG1lIHRoZSBuYW1lCgoyMDA1LTEwLTEzIDE2OjM0OjA0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIGZvbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZm9vCgoyMDA1LTEwLTEzIDE2OjI2OjEyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmMgKGdzdF9kcF9wYWNrZXRfZnJvbV9jYXBzKTogRml4IFRpbW1la2UgV2F5bWFucyBidWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYyAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHMpOgoJICBGaXggVGltbWVrZSBXYXltYW5zIGJ1Zy4KCSAgKGdzdF9kcF9jYXBzX2Zyb21fcGFja2V0KTogTWFrZSBzdXJlIHdlIHBhc3MgYSBOVUwtdGVybWluYXRlZAoJICBzdHJpbmcgb2YgdGhlIHByb3BlciBsZW5ndGggdG8gZ3N0X2NhcHNfZnJvbV9zdHJpbmcuIFRoZXJlJ3MgYQoJICBwb3RlbnRpYWwgZm9yLCBiZWZvcmUgdGhpcyBmaXgsIHRoYXQgdGhpcyBjb3VsZCBjYXVzZSBzb21lb25lCgkgIGNvbm5lY3Rpbmcgb3ZlciB0aGUgbmV0d29yayB0byBjYXVzZSBhIHNlZ2ZhdWx0IGlmIHRoZSBwYXlsb2FkIGlzCgkgIG5vdCBOVUwtdGVybWluYXRlZC4KCjIwMDUtMTAtMTMgMTU6Mjc6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGZpeGVkIHR5cG9zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZG9jcy9yYW5kb20vVE9ETy1wcmUtMC45OgoJICAqIGRvY3MvcmFuZG9tL29sZC9DaGFuZ2VMb2cuZ3N0cmVhbWVyOgoJICAqIGdzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgZml4ZWQgdHlwb3MKCjIwMDUtMTAtMTMgMTU6MjM6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogR0xpYiAyLjYgZ19mbGFnc19nZXRfZmlyc3RfdmFsdWUgaGFzIGEgYnVnIHRoYXQgdHJpZ2dlcnMgYW4gaW5maW5pdGUgbG9vcAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzogKGdzdF9mbGFnc19nZXRfZmlyc3RfdmFsdWUpOgoJICAqIGdzdC9nbGliLWNvbXBhdC5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ludF9oZWxwZXIpLAoJICAoZ3N0X3ZhbHVlX2NvbXBhcmVfZG91YmxlKSwgKGdzdF92YWx1ZV9zZXJpYWxpemVfZmxhZ3MpOgoJICBHTGliIDIuNiBnX2ZsYWdzX2dldF9maXJzdF92YWx1ZSBoYXMgYSBidWcgdGhhdCB0cmlnZ2VycyBhbgoJICBpbmZpbml0ZSBsb29wCgoyMDA1LTEwLTEzIDE1OjIyOjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9iYXNlLzogZml4IHVwIGRlYnVnZ2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMyAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgZml4IHVwIGRlYnVnZ2luZwoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBwcmludCBvdXQgY2xvY2sgbmljZWx5CgoyMDA1LTEwLTEzIDE1OjEzOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkZWQgZ3N0X3RhZ19saXN0X2dldF9kYXRlKCkgYW5kIGdzdF90YWdfbGlzdF9nZXRfZGF0ZV9pbmRleCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpLCAoZ3N0X3RhZ19saXN0X2dldF9kYXRlKSwKCSAgKGdzdF90YWdfbGlzdF9nZXRfZGF0ZV9pbmRleCk6CgkgIEFkZGVkIGdzdF90YWdfbGlzdF9nZXRfZGF0ZSgpIGFuZCBnc3RfdGFnX2xpc3RfZ2V0X2RhdGVfaW5kZXgoKS4KCSAgR1NUX1RBR19EQVRFIG5vdyBoYXMgYSB0YWcgdHlwZSBvZiBHU1RfVFlQRV9EQVRFICgjMTcwNzc3KS4KCjIwMDUtMTAtMTMgMTQ6NTU6MTcgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuKjogSGFuZGxlIG5ld3NlZ21lbnQgYW5kIHN0b3JlIGluZm9ybWF0aW9ucyBpbiBDb2xsZWN0RGF0YS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTMgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RwYWRzX2V2ZW50KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19jaGFpbik6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDogSGFuZGxlIG5ld3NlZ21lbnQgYW5kIHN0b3JlCgkgIGluZm9ybWF0aW9ucwoJICBpbiBDb2xsZWN0RGF0YS4KCjIwMDUtMTAtMTMgMDk6NTc6MTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGZpeCBHT3B0aW9uIGNvbnRleHQgbGVha3MgZG9jIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtcnVuLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAobWFpbik6CgkgIGZpeCBHT3B0aW9uIGNvbnRleHQgbGVha3MKCSAgZG9jIGZpeGVzCgoyMDA1LTEwLTEyIDIyOjM0OjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RidXMuYzogdXNlIEhBVkVfVU5JU1REX0gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICB1c2UgSEFWRV9VTklTVERfSAoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlIGNvbmZpZwoJICAqIHdpbjMyL3ZzNi9ncmFtbWFyLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0ZWxlbWVudHMuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICB1cGRhdGUgdnM2IGZpbGVzCgoyMDA1LTEwLTEyIDIyOjAwOjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgaGFkIGEgZmV3IHRvbyBtYW55IDBEIGJ5dGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBoYWQgYSBmZXcgdG9vIG1hbnkgMEQgYnl0ZXMKCjIwMDUtMTAtMTIgMjE6NTY6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2Jhc2UvOiBmaXggbW9yZSBndWludDY0PC0+Z2RvdWJsZSBjb252ZXJzaW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnkpOgoJICBmaXggbW9yZSBndWludDY0PC0+Z2RvdWJsZSBjb252ZXJzaW9ucwoKMjAwNS0xMC0xMiAyMDoyMzo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBNYWtlZmlsZS5hbTogYWRkIHdpbjMyLXVwZGF0ZSB0YXJnZXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgIGFkZCB3aW4zMi11cGRhdGUgdGFyZ2V0CgkgICogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkgICogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgYWRkIGZpbGVzIHRoYXQgdmlzdWFsIHN0dWRpbyBjYW4ndCBnZW5lcmF0ZQoKMjAwNS0xMC0xMiAxOTozODo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFByb3RlY3QgZmxhZ3Mgd2l0aCBwcm9wZXIgbG9jay4gdW5yZWYgcHJvdmlkZWQgY2FjaGVkIGNsb2NrIGluIGRpc3Bvc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksCgkgIChyZXNldF9kZWdyZWUpLCAoZ3N0X2Jpbl9kaXNwb3NlKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOgoJICBQcm90ZWN0IGZsYWdzIHdpdGggcHJvcGVyIGxvY2suCgkgIHVucmVmIHByb3ZpZGVkIGNhY2hlZCBjbG9jayBpbiBkaXNwb3NlLgoKMjAwNS0xMC0xMiAxOToxNDoyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGxheW91dCBjbGVhbnVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBsYXlvdXQgY2xlYW51cAoKMjAwNS0xMC0xMiAxOToxMDo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcmVtb3ZlZCB1bnVzZWQgZmxhZ3MgZnJvbSBtaW5pb2JqZWN0IGRvYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogd2luMzIvZ3N0ZW51bXR5cGVzLmM6IChnc3RfbWluaV9vYmplY3RfZmxhZ3NfZ2V0X3R5cGUpOgoJICByZW1vdmVkIHVudXNlZCBmbGFncyBmcm9tIG1pbmlvYmplY3QKCSAgZG9jIGZpeGVzCgoyMDA1LTEwLTEyIDE4OjAzOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL3ZzNi9ncmFtbWFyLmRzcDoKCSogd2luMzIvdnM2L2dzdF9pbnNwZWN0LmRzcDoKCSogd2luMzIvdnM2L2dzdF9sYXVuY2guZHNwOgoJKiB3aW4zMi92czYvZ3N0cmVhbWVyLmRzdzoKCSogd2luMzIvdnM2L2xpYmdzdGJhc2UuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0ZWxlbWVudHMuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSAgY29udmVydCB0byB1bml4IGxpbmUgZW5kczsgc2luY2UgdGhlIHNvdXJjZSBpcyBhbHNvIHVuaXgtc3R5bGUgbGluZSBlbmRzLCBkZXZlbG9wZXJzIGRvbid0IG5lZWQgdG8gZmlkZGxlIGFuZCBzcGVjaWFsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb252ZXJ0IHRvIHVuaXggbGluZSBlbmRzOyBzaW5jZSB0aGUgc291cmNlIGlzIGFsc28gdW5peC1zdHlsZSBsaW5lIGVuZHMsIGRldmVsb3BlcnMgZG9uJ3QgbmVlZCB0byBmaWRkbGUgYW5kIHNwZWNpYWwtY2FzZSwgYnV0IGNhbiBqdXN0IGFsbG93IHRyYW5zbGF0aW9uIG9uIHRoZSBmbHkKCjIwMDUtMTAtMTIgMTY6MDM6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogRmx1c2ggYmVmb3JlIHNlZWtpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19kb19zZWVrKSwKCSAgKGdzdF9maWxlX3NpbmtfZXZlbnQpLCAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICBGbHVzaCBiZWZvcmUgc2Vla2luZy4KCjIwMDUtMTAtMTIgMTU6NTg6MjQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3QuYyAoZ3N0X2luaXRfY2hlY2spOiBJZ25vcmUgdW5rbm93biBvcHRpb25zLCBhcyBoYXMgYWx3YXlzIGJlZW4gdGhlIGNhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3QuYyAoZ3N0X2luaXRfY2hlY2spOiBJZ25vcmUgdW5rbm93biBvcHRpb25zLCBhcyBoYXMKCSAgYWx3YXlzIGJlZW4gdGhlIGNhc2UuCgoyMDA1LTEwLTEyIDE0OjI4OjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICByZW5hbWVkIEdTVF9GTEFHUyBtYWNyb3MgdG8gR1NUX09CSkVDVF9GTEFHUyBtb3ZlZCBiaXRzaGlmdCBmcm9tIG1hY3JvIHRvIGVudW0gZGVmaW5pdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19pbml0KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19jaGVja19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwgKGdzdF9iYXNlX3NyY19zdG9wKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19zZXRfcHJvcGVydHkpOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksCgkgIChiaW5fZWxlbWVudF9pc19zaW5rKSwgKHJlc2V0X2RlZ3JlZSksIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3Bvc3QpLCAoZ3N0X2J1c19zZXRfZmx1c2hpbmcpOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfaXNfbG9ja2VkX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9sb2NrZWRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9pbml0KToKCSAgKiBnc3QvZ3N0aW5kZXguaDoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfaW5pdCksIChnc3Rfb2JqZWN0X3NpbmspLAoJICAoZ3N0X29iamVjdF9zZXRfcGFyZW50KToKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luYyksIChnc3RfcGFkX2lzX2Jsb2NrZWQpLAoJICAoZ3N0X3BhZF9nZXRfY2Fwc191bmxvY2tlZCksIChnc3RfcGFkX3NldF9jYXBzKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGdzdF9waXBlbGluZV91c2VfY2xvY2spLCAoZ3N0X3BpcGVsaW5lX2F1dG9fY2xvY2spOgoJICAqIGdzdC9nc3RwaXBlbGluZS5oOgoJICAqIGdzdC9pbmRleGVycy9nc3RmaWxlaW5kZXguYzogKGdzdF9maWxlX2luZGV4X2xvYWQpLAoJICAoZ3N0X2ZpbGVfaW5kZXhfY29tbWl0KToKCSAgKiB0ZXN0c3VpdGUvYnl0ZXN0cmVhbS9maWxlcGFkc2luay5jOiAoZ3N0X2ZwX3NpbmtfaW5pdCk6CgkgICogdGVzdHN1aXRlL3BhZC9saW5rLmM6IChnc3RfdGVzdF9zcmNfaW5pdCksCgkgIChnc3RfdGVzdF9maWx0ZXJfaW5pdCksIChnc3RfdGVzdF9zaW5rX2luaXQpOgoJICAqIHRlc3RzdWl0ZS9zdGF0ZXMvbG9ja2VkLmM6IChtYWluKToKCSAgcmVuYW1lZCBHU1RfRkxBR1MgbWFjcm9zIHRvIEdTVF9PQkpFQ1RfRkxBR1MKCSAgbW92ZWQgYml0c2hpZnQgZnJvbSBtYWNybyB0byBlbnVtIGRlZmluaXRpb24KCjIwMDUtMTAtMTIgMTQ6MTI6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBTb21lIG1vcmUgZGVidWdnaW5nIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19ldmVudCksCgkgIChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgIFNvbWUgbW9yZSBkZWJ1Z2dpbmcgaW5mby4KCjIwMDUtMTAtMTIgMTI6NTg6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTb21lIGRvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIFNvbWUgZG9jIHVwZGF0ZXMuCgkgIFJldmVydCBub24taW50ZW50aW9uYWwgY2hhbmdlLgoKMjAwNS0xMC0xMiAxMjoxODo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFVzZSBHc3RDbG9ja1RpbWUgaW4gX2dldF9zdGF0ZSgpIGluc3RlYWQgb2YgR1RpbWVWYWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RldmVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAodGVzdF9ldmVudCk6CgkgICogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzogKHJ1bl9waXBlbGluZSk6CgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoc3RvcF90eXBlZmluZGluZyk6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksCgkgIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9nZXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfYWJvcnRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksIChkb19waXBlbGluZV9zZWVrKSwKCSAgKGdzdF9waXBlbGluZV9wcm92aWRlX2Nsb2NrX2Z1bmMpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfbGlua19wYWRzX2ZpbHRlcmVkKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtdHlwZWZpbmQuYzogKG1haW4pOgoJICBVc2UgR3N0Q2xvY2tUaW1lIGluIF9nZXRfc3RhdGUoKSBpbnN0ZWFkIG9mIEdUaW1lVmFsLgoJICBSZW1vdmUgb2xkIGNvZGUgaW4gZ3N0dXRpbHMuYwoKMjAwNS0xMC0xMiAxMTo0OTozNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3BhdXNlX3Rhc2spOiBBY3R1YWxseSByZXR1cm4gRkFMU0UgaWYgdGhlcmUgaXMgbm8gdGFzay4gU2hvdWxkbid0IGFmZmVjdCBhbnkgY29kZSwgYXMgbm90aGluZyBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9wYXVzZV90YXNrKTogQWN0dWFsbHkgcmV0dXJuIEZBTFNFIGlmCgkgIHRoZXJlIGlzIG5vIHRhc2suIFNob3VsZG4ndCBhZmZlY3QgYW55IGNvZGUsIGFzIG5vdGhpbmcgaW4gb3VyCgkgIHBsdWdpbnMgY2hlY2tzIHRoaXMgcmV0dXJuIHZhbHVlLgoJICAoZ3N0X3BhZF9zdG9wX3Rhc2spOiBBbHNvIHRha2UgdGhlIHN0cmVhbSBsb2NrIGlmIHRoZSBwYWQgaGFzIG5vCgkgIHRhc2suIERvY3MgdXBkYXRlZC4KCjIwMDUtMTAtMTIgMTA6MDU6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IENsZWFudXAgYWN0aXZhdGlvbiBjb2RlLiBSZXNldCBvbGQgc3RhdGUgaWYgYWN0aXZhdGlvbiBmYWlsZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKHByZV9hY3RpdmF0ZSksIChwb3N0X2FjdGl2YXRlKSwKCSAgKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCksIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpOgoJICBDbGVhbnVwIGFjdGl2YXRpb24gY29kZS4gUmVzZXQgb2xkIHN0YXRlIGlmCgkgIGFjdGl2YXRpb24gZmFpbGVkLgoKMjAwNS0xMC0xMiAwOTowMjo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IE5vIG5lZWQgdG8gcHJlcm9sIGFmdGVyIHJlY2VpdmluZyBFT1MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBObyBuZWVkIHRvIHByZXJvbCBhZnRlciByZWNlaXZpbmcgRU9TLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19ldmVudCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19ldmVudF9oYW5kbGVyKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9ldmVudCk6CgkgIFByaW50IGV2ZW50cyBtb3JlIHZlcmJvc2VseS4KCjIwMDUtMTAtMTIgMDg6Mzg6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay86IE1vdmVkIHNpbmtzMiB0ZXN0Y29kZSBpbiBzaW5rcyBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3Rfb2JqZWN0X3N1aXRlKToKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MyLmM6CgkgIE1vdmVkIHNpbmtzMiB0ZXN0Y29kZSBpbiBzaW5rcyBjaGVjay4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksIChiaW5fYnVzX2hhbmRsZXIpOgoJICBGaXggcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uIHdoZW4gX2dldF9zdGF0ZSgpIGl0ZXJhdGVkIG92ZXIgYW4KCSAgQVNZTkMgZWxlbWVudCByaWdodCBiZWZvcmUgaXQgcG9zdGVkIGEgc3RhdGUgY29tcGxldGlvbi4KCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgRG8gcHJvcGVyIGNhc3QgaGVyZS4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3c2VnbWVudCksCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3c2VnbWVudCk6CgkgIEEgcGxheWJhY2sgcmF0ZSBvZiAwLjAgaXMgbm90IGFsbG93ZWQuCgoyMDA1LTEwLTEyIDAyOjI2OjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoKMjAwNS0xMC0xMiAwMjoyNToxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCjIwMDUtMTAtMTIgMDI6MjM6MjkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgoyMDA1LTEwLTEyIDAyOjE5OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoKMjAwNS0xMC0xMiAwMjoxNjoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCjIwMDUtMTAtMTEgMTg6MDM6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgd2luMzIvOiBWaXN1YWwgU3R1ZGlvIDYgcHJvamVjdCBmaWxlcywgYW5kIGEgbmV3IGNvbW1vbiBkaXJlY3RvcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTExICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgKiB3aW4zMi9jb21tb24vZGlyZW50LmM6IChfdG9wZW5kaXIpLCAoX3RyZWFkZGlyKSwgKF90Y2xvc2VkaXIpLAoJICAoX3RyZXdpbmRkaXIpLCAoX3R0ZWxsZGlyKSwgKF90c2Vla2Rpcik6CgkgICogd2luMzIvY29tbW9uL2RpcmVudC5oOgoJICAqIHdpbjMyL2NvbW1vbi9ndGNoYXIuaDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgICogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJICAqIHdpbjMyL3ZzNi9nc3RfaW5zcGVjdC5kc3A6CgkgICogd2luMzIvdnM2L2dzdF9sYXVuY2guZHNwOgoJICAqIHdpbjMyL3ZzNi9nc3RyZWFtZXIuZHN3OgoJICAqIHdpbjMyL3ZzNi9saWJnc3RiYXNlLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0ZWxlbWVudHMuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICBWaXN1YWwgU3R1ZGlvIDYgcHJvamVjdCBmaWxlcywgYW5kIGEgbmV3IGNvbW1vbiBkaXJlY3RvcnkuCgkgIFBoZWFyLgoKMjAwNS0xMC0xMSAxNzozMzoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgZm9yZ290IHRoaXMgb25lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmb3Jnb3QgdGhpcyBvbmUKCjIwMDUtMTAtMTEgMTc6MzI6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay4qOiBDb3JyZWN0bHkgcGFyc2UgbmV3c2VnbWVudCBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBDb3JyZWN0bHkgcGFyc2UgbmV3c2VnbWVudCBpbmZvLgoKMjAwNS0xMC0xMSAxNjo1NDo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0LmM6IHNwbGl0IHBsdWdpbiBwYXRocyBjb3JyZWN0bHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTEgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgc3BsaXQgcGx1Z2luIHBhdGhzIGNvcnJlY3RseQoKMjAwNS0xMC0xMSAxNjoyODo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZGVkIGV4dHJhIGZsYWcgdG8gbmV3c2VnbWVudCBmb3IgZnV0dXJlIEFQSSBmcmVlemUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RldmVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X25ld3NlZ21lbnQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2V2ZW50KToKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3c2VnbWVudCksCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3c2VnbWVudCk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEFkZGVkIGV4dHJhIGZsYWcgdG8gbmV3c2VnbWVudCBmb3IgZnV0dXJlIEFQSSBmcmVlemUuCgkgIFVwZGF0ZWQgY2hlY2sgYW5kIGJhc2UgZWxlbWVudHMuCgoyMDA1LTEwLTExIDE2OjI1OjM1ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLio6IEhhbmRsZSBFT1MgY29ycmVjdGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfaW5pdCksCgkgIChnc3RfY29sbGVjdHBhZHNfYWRkX3BhZCksIChnc3RfY29sbGVjdHBhZHNfcG9wKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19ldmVudCksIChnc3RfY29sbGVjdHBhZHNfY2hhaW4pOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6IEhhbmRsZSBFT1MgY29ycmVjdGx5LgoKMjAwNS0xMC0xMSAxNjoyMTowNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgbW9yZSBzdHIgbnVsbCBwcm90ZWN0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIHN0ciBudWxsIHByb3RlY3Rpb24KCjIwMDUtMTAtMTEgMTY6MDU6MTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdC1pMThuLWxpYi5oOiBjaGVjayBmb3IgRU5BQkxFX05MUywgbm90IEdFVFRFWFRfUEFDS0FHRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LWkxOG4tbGliLmg6CgkgIGNoZWNrIGZvciBFTkFCTEVfTkxTLCBub3QgR0VUVEVYVF9QQUNLQUdFCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfYWRkX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKSwKCSAgKF9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMpOgoJICBwcm90ZWN0IHBvc3NpYmx5IE5VTEwgc3RyaW5ncwoJICAqIGdzdC9wYXJzZS90eXBlcy5oOgoJICBjb25maWcuaCBhbHJlYWR5IGluY2x1ZGVkIGJlZm9yZQoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChtYWluKToKCSAgc3lzL3dhaXQuaCBhbHNvIGRvZXNutHQgZXhpc3Qgb24gbWluZ3csIHNvIGNoYW5nZSB0aGUgaWZkZWYgY2hlY2sKCSAgY2hlY2sgZm9yIEVOQUJMRV9OTFMsIG5vdCBHRVRURVhUX1BBQ0tBR0UKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgY2hlY2sgZm9yIEVOQUJMRV9OTFMsIG5vdCBHRVRURVhUX1BBQ0tBR0UKCSAgVGhpcyBjb21taXQgYnJvdWdodCB0byB5b3UgZnJvbSBtc3lzL21pbmd3CgoyMDA1LTEwLTExIDE1OjI2OjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogaWYgd2UgZG9uJ3QgaGF2ZSBnbGliLCBmYWlsIGJlZm9yZSB0ZXN0aW5nIDIuOAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIGlmIHdlIGRvbid0IGhhdmUgZ2xpYiwgZmFpbCBiZWZvcmUgdGVzdGluZyAyLjgKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKToKCSAgZml4IGEgbGVhaywgc2hvdWxkIGZpeCBwbHVnaW5zLWJhc2UgdGVzdHN1aXRlCgoyMDA1LTEwLTExIDE1OjIzOjEwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKHByZV9hY3RpdmF0ZSk6IFJlbmFtZWQgZnJvbSBwcmVfYWN0aXZhdGVfc3dpdGNoLCB0YWtlIHRoZSBtb2RlIHdlJ3JlIGdvaW5nIHRvIGFzIGFuIGFyZy4gR28gaGVhZCBhbmQgc2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChwcmVfYWN0aXZhdGUpOiBSZW5hbWVkIGZyb20gcHJlX2FjdGl2YXRlX3N3aXRjaCwKCSAgdGFrZSB0aGUgbW9kZSB3ZSdyZSBnb2luZyB0byBhcyBhbiBhcmcuIEdvIGhlYWQgYW5kIHNldCB0aGUgbW9kZQoJICBhbmQgZmx1c2hpbmcgZmxhZ3Mgbm93LCBzbyB0aGF0IGlmIHRoZSBhY3RpdmF0ZSBmdW5jdGlvbiBzdGFydHMgYQoJICB0aHJlYWQgYWxsIHRoZSBmbGFncyB3aWxsIGJlIGluIHRoZSByaWdodCBzdGF0ZS4KCSAgKHBvc3RfYWN0aXZhdGUpOiBSZW5hbWVkIGFsc28uIEp1c3QgaGFuZGxlIG1ha2luZyBzdXJlIHN0cmVhbWluZwoJICBmaW5pc2hlcyBmb3IgdGhlIGRlYWN0aXZhdGlvbiBjYXNlLCBhbmQgc2V0dGluZyB0aGUgZGVhY3RpdmF0ZWQKCSAgbW9kZS4KCSAgKGdzdF9wYWRfc2V0X2FjdGl2ZSk6IENvbXBsYWluIGxvdWRseSBpZiBkZWFjdGl2YXRpb24gZmFpbHMuCgkgIChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpOiBBZGFwdCB0byBwcmUvcG9zdF9hY3RpdmF0ZSBjaGFuZ2VzLgoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKTogQWRhcHQgdG8gcHJlL3Bvc3RfYWN0aXZhdGUgY2hhbmdlcywKCSAgcmVtb3ZlIHRoZSB0ZXJyaWJsZSBoYWNrLgoKMjAwNS0xMC0xMSAxNTowNTo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uKjogUHJlcGFyZSB0byBtYWtlIGN1cnJlbnQgRU9TIG1lc3NhZ2UgcXVldWUgbW9yZSBnZW5lcmljLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2luaXQpLCAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoaXNfZW9zKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksCgkgIChnc3RfYmluX3JlY2FsY19zdGF0ZSksIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9iaW5fZGlzcG9zZSksIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgUHJlcGFyZSB0byBtYWtlIGN1cnJlbnQgRU9TIG1lc3NhZ2UgcXVldWUgbW9yZSBnZW5lcmljLgoJICBGaXggc29tZSB0eXBvcy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfbmV3c2VnbWVudCksCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3c2VnbWVudCk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIFJlbmFtZSBiYXNlIHRvIHN0cmVhbV90aW1lLgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEZpeCB0eXBvIGluIGRvY3MuCgoyMDA1LTEwLTExIDEyOjU4OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi4qOiBXb3JrIG9uIHByb3BlciBjbG9jayBzZWxlY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faW5pdCksIChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksCgkgIChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgV29yayBvbiBwcm9wZXIgY2xvY2sgc2VsZWN0aW9uLgoKMjAwNS0xMC0xMSAxMjo0MjoyMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci4qOiBBZGRlZCBHTGlzdCogdmVyc2lvbiBvZiBfcmVtb3ZlX3Byb3BlcnRpZXMoKSBpbiBvcmRlciB0byBiZSBhYmxlIHRvIHdyYXAgaXQgaW4gYi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX3JlbW92ZV9wcm9wZXJ0aWVzX2xpc3QpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICBBZGRlZCBHTGlzdCogdmVyc2lvbiBvZiBfcmVtb3ZlX3Byb3BlcnRpZXMoKSBpbiBvcmRlciB0byBiZSBhYmxlIHRvIHdyYXAKCSAgaXQgaW4gYmluZGluZ3MuCgoyMDA1LTEwLTExIDExOjA4OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OiBTb21lIG1vcmUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBTb21lIG1vcmUgZG9jcy4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3NldF9jbG9ja19mdW5jKSwgKGdzdF9iaW5fcmVjYWxjX3N0YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgRG9jIHVwZGF0ZXMuIERvbid0IGRpc3RyaWJ1dGUgdGhlIHNhbWUgY2xvY2sgb3ZlciBhbmQgb3ZlciBhZ2Fpbi4KCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgRG9jIHVwZGF0ZXMuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X2Zsb3dfZ2V0X25hbWUpLCAoZ3N0X2Zsb3dfdG9fcXVhcmspLAoJICAoZ3N0X3BhZF9nZXRfdHlwZSksIChnc3RfcGFkX3B1c2gpLCAoZ3N0X3BhZF9wdXNoX2V2ZW50KSwKCSAgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBNYWtlIHByb2JlIGVtaXNzaW9uIHRocmVhZHNhZmUgYWdhaW4uCgkgIFJlZ2lzdGVyIHF1YXJrcyBhbmQgbW92ZSBfZ2V0X25hbWUoKSBmcm9tIHV0aWxzLgoJICBEb2MgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3BpcGVsaW5lX3Byb3ZpZGVfY2xvY2tfZnVuYyk6CgkgIE9ubHkgcmVkaXN0cmlidXRlIHRoZSBjbG9jayBvZiBpdCBjaGFuZ2VkLgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBEb2MgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgTW92ZWQgdGhlIF9mbG93X2dldF9uYW1lKCkgdG8gR3N0UGFkLgoKMjAwNS0xMC0xMSAwOToxNDo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgaWYgd2UgbG9nIG91ciBpbml0LCBzaG91bGQgYWxzbyBsb2cgZmluYWxpemUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlmIHdlIGxvZyBvdXIgaW5pdCwgc2hvdWxkIGFsc28gbG9nIGZpbmFsaXplCgoyMDA1LTEwLTEwIDIzOjU1OjM5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZ3N0LWxpYnMvZ2RwLmM6CgkqIGNoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIGNvbW1vbjoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJICBmaXggbW9yZSB2YWxncmluZCB3YXJuaW5ncyBiZWZvcmUgdHVybmluZyB1cCB0aGUgaGVhdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IG1vcmUgdmFsZ3JpbmQgd2FybmluZ3MgYmVmb3JlIHR1cm5pbmcgdXAgdGhlIGhlYXQKCjIwMDUtMTAtMTAgMjM6MTE6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgZG9uJ3QgZGVjbGFyZSBvbiB0aGUgcHJvcGVyIGRlZmluZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgZGVjbGFyZSBvbiB0aGUgcHJvcGVyIGRlZmluZQoKMjAwNS0xMC0xMCAyMjo1OToyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICB1bm1hbmdsZSB0aGUgbmVzdGluZyBhIGxpdHRsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdW5tYW5nbGUgdGhlIG5lc3RpbmcgYSBsaXR0bGUKCjIwMDUtMTAtMTAgMjI6NDk6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L3BhcnNlL2dyYW1tYXIueTogc29tZSBjbGVhbnVwIGJlZm9yZSB0aGUgaGFja2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBzb21lIGNsZWFudXAgYmVmb3JlIHRoZSBoYWNraW5nCgoyMDA1LTEwLTEwIDE4OjE2OjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogdXNlIGNvbnZlcnNpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeSk6CgkgIHVzZSBjb252ZXJzaW9ucwoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2d1aW50NjRfdG9fZ2RvdWJsZSksCgkgIChnc3RfZ2RvdWJsZV90b19ndWludDY0KSwgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZSk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIGV4dGVybmFsaXplLCBiYXNlc3JjIHVzZXMgaXQKCSAgb2J2aW91c2x5IHRoZSBpbXBsZW1lbnRhdGlvbiBuZWVkcyB0ZXN0aW5nCgoyMDA1LTEwLTEwIDE3OjA1OjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBhbm90aGVyIGNhc3QgYml0ZXMgdGhlIGR1c3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFub3RoZXIgY2FzdCBiaXRlcyB0aGUgZHVzdAoKMjAwNS0xMC0xMCAxNjo0NTo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgYW5vdGhlciBjYXN0IGJpdGVzIHRoZSBkdXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhbm90aGVyIGNhc3QgYml0ZXMgdGhlIGR1c3QKCjIwMDUtMTAtMTAgMTY6NDM6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9zY2hlZC86CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL3NjaGVkL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL3NjaGVkL3NvcnQuYzogKG1ha2VfcGlwZWxpbmUxKSwgKG1ha2VfcGlwZWxpbmUyKSwKCSAgKG1ha2VfcGlwZWxpbmUzKSwgKG1ha2VfcGlwZWxpbmU0KSwgKHByaW50X2VsZW0pLCAobWFpbik6CgoyMDA1LTEwLTEwIDE2OjM4OjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3R1dGlscy5jOiBhcHBhcmVudGx5IGNvbnZlcnRpbmcgZnJvbSBndWludDY0IHRvIGRvdWJsZSBpcyBub3QgaW1wbGVtZW50ZWQgb24gTVNWQwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGd1aW50NjRfdG9fZ2RvdWJsZSksIChnc3RfdXRpbF91aW50NjRfc2NhbGUpOgoJICBhcHBhcmVudGx5IGNvbnZlcnRpbmcgZnJvbSBndWludDY0IHRvIGRvdWJsZSBpcyBub3QgaW1wbGVtZW50ZWQKCSAgb24gTVNWQwoKMjAwNS0xMC0xMCAxNjozODoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrLzogQ2hlY2sgZml4ZXMsIHVzZSBBUEkgYXMgc3RhdGVkIGluIGRlc2lnbiBkb2NzLCByZW1vdmUgaGFja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3BpcGVsaW5lX3N1aXRlKToKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MyLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3Rfb2JqZWN0X3N1aXRlKSwKCSAgKG1haW4pOgoJICBDaGVjayBmaXhlcywgdXNlIEFQSSBhcyBzdGF0ZWQgaW4gZGVzaWduIGRvY3MsIHJlbW92ZSBoYWNrcy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgQ2F0Y2ggc3RvcHBpbmcgb3VyIHRhc2sgd2hpbGUgd2UncmUgc2h1dHRpbmcgZG93bi4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2luaXQpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksCgkgIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfaW5pdCksCgkgIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9hYm9ydF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBOZXcgc3RhdGUgY2hhbmdlIGFsZ29yaXRobSAoc2VlICMzMTgxMTYpCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksCgkgIChnc3RfcGlwZWxpbmVfaW5pdCksIChnc3RfcGlwZWxpbmVfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9waXBlbGluZV9nZXRfcHJvcGVydHkpLCAoZG9fcGlwZWxpbmVfc2VlayksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwgKGdzdF9waXBlbGluZV9wcm92aWRlX2Nsb2NrX2Z1bmMpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBSZW1vdmUgY3J1ZGUgc3RhdGUgY2hhbmdlIGhhY2tzLgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBSZW1vdmUgY3J1ZGUgaGFja3MuCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIEZpeGVzIGZvciBzdGF0ZSBjaGFuZ2UuIE5lZWRzIHNvbWUgbW9yZSB3b3JrIHRvIGZ1bGx5IHVzZSB0aGUKCSAgbmV3IHN0dWZmLgoKMjAwNS0xMC0xMCAxNjoyMDo0MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvTWFrZWZpbGUuYW0gKG5vaW5zdF9QUk9HUkFNUyk6IE5vIG1vcmUgaW5pdC5jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbSAobm9pbnN0X1BST0dSQU1TKTogTm8gbW9yZSBpbml0LmMuCgoyMDA1LTEwLTEwIDE2OjA0OjI4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0LmMgKEdfT1BUSU9OX0ZMQUdfTk9fQVJHKTogQXBwYXJlbnRseSBHTGliIDIuOCByZXF1aXJlcyB0aGlzIGZsYWcsIGJ1dCBpdCdzIG5vdCBldmVuIGluIEdMaWIgMi42LiBPZGQuIEhhY2sgYXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdC5jIChHX09QVElPTl9GTEFHX05PX0FSRyk6IEFwcGFyZW50bHkgR0xpYiAyLjggcmVxdWlyZXMKCSAgdGhpcyBmbGFnLCBidXQgaXQncyBub3QgZXZlbiBpbiBHTGliIDIuNi4gT2RkLiBIYWNrIGFyb3VuZCB0aGUKCSAgaXNzdWUuCgoyMDA1LTEwLTEwIDE1OjU4OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGl0ZXJhdG9yLmM6IEZpeCBteSBwcmV2aW91cyBjb21taXQ6IEdUeXBlcyBwYXNzZWQgdG8gZ3N0X2l0ZXJhdG9yX25ldygpIGNhbiBiZSBmdW5kYW1lbnRhbCB0eXBlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6IChnc3RfaXRlcmF0b3JfbmV3KToKCSAgRml4IG15IHByZXZpb3VzIGNvbW1pdDogR1R5cGVzIHBhc3NlZCB0byBnc3RfaXRlcmF0b3JfbmV3KCkKCSAgY2FuIGJlIGZ1bmRhbWVudGFsIHR5cGVzLgoKMjAwNS0xMC0xMCAxNTo1NTozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFVzZSBzcmMvc2luayBwYWRzIGxpc3RzIGZvciB0aGUgcmVzcGVjdGl2ZSBpdGVyYXRvcnMgaW5zdGVhZCBvZiBmaWx0ZXJpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9pdGVyYXRlX3BhZF9saXN0KSwKCSAgKGdzdF9lbGVtZW50X2l0ZXJhdGVfcGFkcyksIChnc3RfZWxlbWVudF9pdGVyYXRlX3NyY19wYWRzKSwKCSAgKGdzdF9lbGVtZW50X2l0ZXJhdGVfc2lua19wYWRzKToKCSAgVXNlIHNyYy9zaW5rIHBhZHMgbGlzdHMgZm9yIHRoZSByZXNwZWN0aXZlIGl0ZXJhdG9ycyBpbnN0ZWFkCgkgIG9mIGZpbHRlcmluZy4KCjIwMDUtMTAtMTAgMTU6NTM6NTkgKzAwMDAgIFJvbmFsZCA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgTWVyZ2VkIGluIHBvcHQgcmVtb3ZhbCArIEdPcHRpb24gYWRkaXRpb24gcGF0Y2ggZnJvbSBSb25hbGQsIGJ1ZyAjMTY5NzcyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgTWVyZ2VkIGluIHBvcHQgcmVtb3ZhbCArIEdPcHRpb24gYWRkaXRpb24gcGF0Y2ggZnJvbSBSb25hbGQsIGJ1ZwoJICAjMTY5NzcyLgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBTVEFURV8oVU4pTE9DS19GVUxMLCBtb3ZlCgkgIEdzdEVsZW1lbnQgbWFjcm9zIGFyb3VuZCwgcmVtb3ZlIHBvcHQtcmVsYXRlZCBzeW1ib2xzLCBhZGQgZ29wdGlvbgoJICBzdHVmZi4KCSAgKiBjb25maWd1cmUuYWM6IFJlbW92ZSBwb3B0IGNoZWNrcywgcmVxdWlyZSBHTGliIDIuNiBmb3IgR09wdGlvbi4KCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06IE5vIFBPUFRfQ0ZMQUdTLgoJICAqIGV4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaW5pdC54bWw6IERvYyB1cGRhdGVzIHdpdGggYW4gZXhhbXBsZS4KCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKSwgKGdzdF9pbml0X2NoZWNrKSwKCSAgKGdzdF9pbml0KSwgKHBhcnNlX29uZV9vcHRpb24pLCAocGFyc2VfZ29wdGlvbl9hcmcpOgoJICAqIGdzdC9nc3QuaDogUmVtb3ZlZCBnc3RfaW5pdF93aXRoX3BvcHRfdGFibGUgYW5kIGZyaWVuZHMuIFRvb2sgYQoJICBiaXQgb2YgaGFuZCBtZXJnaW5nIGFuZCBkZWJ1Z2dpbmcgdG8gZ2V0IHRoZSBHT3B0aW9uIHN0dWZmIHdvcmtpbmcKCSAgdGhvLgoJICAqIHRlc3RzL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtcnVuLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAobWFpbik6IFRoYW5rcyBSb25hbGQhCgoyMDA1LTEwLTEwIDE1OjMwOjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGl0ZXJhdG9yLmM6IEFkZCBhc3NlcnRpb25zIHRvIG1ha2Ugc3VyZSBwYXNzZWQgR1R5cGUgaXMgbGlrZWx5IHRvIHJlYWxseSBiZSBhIEdUeXBlIChhcyB0aGUgY29tcGlsZXIgd29uJ3QgY2F0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOiAoZ3N0X2l0ZXJhdG9yX25ldyk6CgkgIEFkZCBhc3NlcnRpb25zIHRvIG1ha2Ugc3VyZSBwYXNzZWQgR1R5cGUgaXMgbGlrZWx5IHRvIHJlYWxseQoJICBiZSBhIEdUeXBlIChhcyB0aGUgY29tcGlsZXIgd29uJ3QgY2F0Y2ggaXQgaWYgdGhlIHNpemUgYW5kCgkgIEdUeXBlIGFyZ3VtZW50cyBnZXQgbWl4ZWQgdXAsIHNlZSAjMzE4NDQ3KS4KCjIwMDUtMTAtMTAgMTU6Mjc6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IFBhc3MgR1R5cGUgYW5kIHNpemUgYXJndW1lbnRzIHRvIGdzdF9pdGVyYXRvcl9uZXcoKSBpbiB0aGUgcmlnaHQgb3JkZXIgKG1heWJlIHdlIHNob3VsZCBtYWtlIF9uZXcoKSB0YWsuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9pdGVyYXRlX3NvcnRlZCk6CgkgIFBhc3MgR1R5cGUgYW5kIHNpemUgYXJndW1lbnRzIHRvIGdzdF9pdGVyYXRvcl9uZXcoKSBpbiB0aGUgcmlnaHQKCSAgb3JkZXIgKG1heWJlIHdlIHNob3VsZCBtYWtlIF9uZXcoKSB0YWtlIHRoZSBHVHlwZSBhcyBmaXJzdCBhcmd1bWVudAoJICBqdXN0IGxpa2UgX25ld19saXN0KCk/KSAoIzMxODQ0NykuCgoyMDA1LTEwLTEwIDE1OjE3OjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogQW5kIGZyZWUgdGhlIEdTdGF0aWNSZWNNdXRleCB0b28KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2ZpbmFsaXplKToKCSAgQW5kIGZyZWUgdGhlIEdTdGF0aWNSZWNNdXRleCB0b28KCjIwMDUtMTAtMTAgMTQ6MzM6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvR1N0cmVhbWVyLnZjcHJvajoKCSogd2luMzIvdnM3L0dTdHJlYW1lci52Y3Byb2o6CgkgIGRvbid0IGVjaG8gcGF0aAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgZWNobyBwYXRoCgoyMDA1LTEwLTEwIDE0OjMzOjEzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9pbml0LCBnc3RfZWxlbWVudF9maW5hbGl6ZSk6IEFsbG9jYXRlIGFuZCBmcmVlIHRoZSBtdXRleCBwcm9wZXJseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfaW5pdCwgZ3N0X2VsZW1lbnRfZmluYWxpemUpOgoJICBBbGxvY2F0ZSBhbmQgZnJlZSB0aGUgbXV0ZXggcHJvcGVybHkuCgkgICogZ3N0L2dzdGVsZW1lbnQuaCAoR1NUX1NUQVRFX1VOTE9DS19GVUxMLCBHU1RfU1RBVEVfTE9DS19GVUxMKToKCSAgTmV3IG1hY3Jvcy4KCSAgKEdzdEVsZW1lbnQpOiBUaGUgc3RhdGVfbG9jayBpcyBub3cgcmVjdXJzaXZlLiBSZWJ1aWxkIHlvdXIKCSAgcGx1Z2lucywgc3Vja2Vycy4gT2xkIG1hY3JvcyBhZGFwdGVkLgoKMjAwNS0xMC0xMCAxNDoyMzo1NyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJICBjaGFuZ2Vsb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNoYW5nZWxvZwoKMjAwNS0xMC0xMCAxNDoyMzoyNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogRG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IERvYyB1cGRhdGVzLgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGdzdC9nc3R1dGlscy5jIChnX3N0YXRpY19yZWNfY29uZF90aW1lZF93YWl0KQoJICAoZ19zdGF0aWNfcmVjX2NvbmRfd2FpdCk6IFBvcnRlZCBmcm9tIHN0YXRlIGNoYW5nZXMgcGF0Y2gsIHdoaWxlCgkgIHdlIHdhaXQgb24gYnVnICMzMTc4MDIgdG8gYmUgc29sdmVkIGluIGEgd2VsbC1kaXN0cmlidXRlZCBHTGliLgoKMjAwNS0xMC0xMCAxNDoxNToxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9NQU5JRkVTVDoKCSogd2luMzIvbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2xpYmdzdGJhc2UudmNwcm9qOgoJKiB3aW4zMi9saW5rX29sZHJ1bnRpbWUuYzoKCSogd2luMzIvdnM3L2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi92czcvbGliZ3N0YmFzZS52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9saW5rX29sZHJ1bnRpbWUuYzoKCSAgYWRkIG1vcmUgd2luMzIgYnVpbGQgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIHdpbjMyIGJ1aWxkIGZpbGVzCgoyMDA1LTEwLTEwIDE0OjAzOjI1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGVfZnVuYyk6IFJlbmFtZWQgZnJvbSBnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUsIHZhcmlhYmxlIG5hbWUgY2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlX2Z1bmMpOiBSZW5hbWVkIGZyb20KCSAgZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlLCB2YXJpYWJsZSBuYW1lIGNoYW5nZXMuCgkgIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOiBTcGxpdCBvdXQgb2YgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlIGluCgkgIHByZXBhcmF0aW9uIGZvciB0aGUgc3RhdGUgY2hhbmdlIG1lcmdlLiBEb2Vzbid0IHBheSBhdHRlbnRpb24gdG8KCSAgdGhlICd0cmFuc2l0aW9uJyBhcmd1bWVudC4KCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6IFVwZGF0ZXMsIGhvcGVmdWxseSBwdXJlbHkgY29zbWV0aWMuCgkgIChnc3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50KTogTVQtc2FmZXR5LiBQb3J0ZWQgZnJvbSB0aGUKCSAgc3RhdGUgY2hhbmdlIHBhdGNoLgoJICAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpOiBSZW5hbWVkIGZyb20gZ2V0X3N0YXRlLCBjb3NtZXRpYwoJICBjaGFuZ2VzLgoKMjAwNS0xMC0xMCAxMzo1MjoxOCArMDAwMCAgU2ViYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB1cGRhdGVzIGZvciB0aGUgd2luMzIgYnVpbGQgKHBhdGNoIGZyb20gU2ViYXN0aWVuIE1vdXR0ZSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogd2luMzIvR1N0cmVhbWVyLnZjcHJvajoKCSAgKiB3aW4zMi9jb25maWcuaDoKCSAgKiB3aW4zMi9kaXJlbnQuYzogKF90c2Vla2Rpcik6CgkgICogd2luMzIvZ3N0LWluc3BlY3QudmNwcm9qOgoJICAqIHdpbjMyL2dzdC1sYXVuY2gudmNwcm9qOgoJICAqIHdpbjMyL2dzdGNvbmZpZy5oOgoJICAqIHdpbjMyL2dzdGVsZW1lbnRzLnZjcHJvajoKCSAgKiB3aW4zMi9nc3RlbnVtdHlwZXMuYzogKGdzdF9vYmplY3RfZmxhZ3NfZ2V0X3R5cGUpOgoJICAqIHdpbjMyL2dzdHJlYW1lci5kZWY6CgkgICogd2luMzIvbXN2YzcxLnNsbjoKCSAgdXBkYXRlcyBmb3IgdGhlIHdpbjMyIGJ1aWxkIChwYXRjaCBmcm9tIFNlYmFzdGllbiBNb3V0dGUpCgoyMDA1LTEwLTEwIDExOjUyOjU4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YmluLmMgKGdzdF9iaW5fZ2V0X3N0YXRlX2Z1bmMpOiBSZW5hbWVkIGZyb20gZ3N0X2Jpbl9nZXRfc3RhdGUsIGNsZWFuZWQgdXAgKGJ1dCBubyBsb2dpYyBjaGFuZ2VzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJpbi5jIChnc3RfYmluX2dldF9zdGF0ZV9mdW5jKTogUmVuYW1lZCBmcm9tCgkgIGdzdF9iaW5fZ2V0X3N0YXRlLCBjbGVhbmVkIHVwIChidXQgbm8gbG9naWMgY2hhbmdlcykuCgkgIChiaW5fZWxlbWVudF9pc19zaW5rKTogQ29tbWVudCB1cGRhdGVzLgoJICAoc2lua19pdGVyYXRvcl9maWx0ZXIpOiBSZW1vdmUgbmVlZGxlc3MgY2FzdC4KCSAgKGdzdF9iaW5faXRlcmF0ZV9zaW5rcyk6IERvYyB1cGRhdGUuCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKTogUmVuYW1lZCBmcm9tIGdzdF9iaW5fY2hhbmdlX3N0YXRlLAoJICBjbGVhbmVkIHVwIChidXQgbm8gbG9naWMgY2hhbmdlcykuCgoyMDA1LTEwLTEwIDExOjA0OjU1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9zdGF0ZXMvc2lua3MuYyAodGVzdF9zcmNfc2luayk6IENsZWFudXBzIGZyb20gdGhlIHN0YXRlIGNoYW5nZSBwYXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmMgKHRlc3Rfc3JjX3NpbmspOiBDbGVhbnVwcyBmcm9tIHRoZSBzdGF0ZQoJICBjaGFuZ2UgcGF0Y2guCgkgICh0ZXN0X2xpdmVzcmNfc2luayk6IFN5bmMgb24gdGhlIHN0YXRlLgoKMjAwNS0xMC0xMCAxMDo1OTozMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYyAocnVuX3BpcGVsaW5lKTogTWVyZ2UgZnJvbSB0aGUgc3RhdGUgY2hhbmdlIHBhdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jIChydW5fcGlwZWxpbmUpOiBNZXJnZSBmcm9tCgkgIHRoZSBzdGF0ZSBjaGFuZ2UgcGF0Y2guCgoyMDA1LTEwLTEwIDEwOjU3OjQwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYyAodGVzdF9naG9zdF9wYWRzKTogTWVyZ2UgZnJvbSB0aGUgc3RhdGUgY2hhbmdlIHBhdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYyAodGVzdF9naG9zdF9wYWRzKTogTWVyZ2UgZnJvbSB0aGUgc3RhdGUKCSAgY2hhbmdlIHBhdGNoLgoKMjAwNS0xMC0xMCAxMDo1MDoxMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBNZXJnZSBpbiBzb21lIHN0eWxlIGZpeGVzIGFuZCBhZGRpdGlvbmFsIGNoZWNrcyBmcm9tIFdpbSdzIHN0YXRlIGNoYW5nZSBwYXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiBNZXJnZSBpbiBzb21lIHN0eWxlIGZpeGVzIGFuZCBhZGRpdGlvbmFsCgkgIGNoZWNrcyBmcm9tIFdpbSdzIHN0YXRlIGNoYW5nZSBwYXRjaC4KCjIwMDUtMTAtMTAgMTA6NDM6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBDaGVjayB3aGV0aGVyIHdlIGhhdmUgdGhlIHJlcXVlc3RlZCBkYXRhIGFscmVhZHkgaW4gb3VyIGxpc3Qgb2YgY2FjaGVkIGJ1ZmZlcnMgYmVmb3JlIHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspLAoJICAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOgoJICBDaGVjayB3aGV0aGVyIHdlIGhhdmUgdGhlIHJlcXVlc3RlZCBkYXRhIGFscmVhZHkgaW4gb3VyIGxpc3Qgb2YKCSAgY2FjaGVkIGJ1ZmZlcnMgYmVmb3JlIHB1bGxpbmcgYSBuZXcgYnVmZmVyOyBhbHNvIG1ha2UgdGhlIGJ1ZmZlcgoJICBsaXN0IGEgR1NMaXN0LiBTcGVlZHMgdXAgdHlwZWZpbmRpbmcgYnkgY2EuIDUtMTAlIGFsdG9nZXRoZXIuCgoyMDA1LTEwLTEwIDA5OjQ4OjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IGRvYyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgIGRvYyB1cGRhdGVzCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemVfaW50X2hlbHBlcik6CgkgIGRvbid0IHVzZSBsb25nIGxvbmcsIGl0J3Mgbm90IHBvcnRhYmxlLiAgUmVwbGFjaW5nIHdpdGgKCSAgZ2ludDY0IHNlZW1zIHRvIHdvcms7IGxldCdzIGhvcGUgbm8gc2tlbGV0b25zIGZhbGwgb3V0IG9mIHRoZSBjbG9zZXQuCgoyMDA1LTEwLTEwIDA4OjUxOjU5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBhdXRvZ2VuLnNoIChDT05GSUdVUkVfREVGX09QVCk6IE5vIG1vcmUgLS1wbHVnaW4tYnVpZGRpciwgeWF5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGF1dG9nZW4uc2ggKENPTkZJR1VSRV9ERUZfT1BUKTogTm8gbW9yZSAtLXBsdWdpbi1idWlkZGlyLCB5YXkKCjIwMDUtMTAtMDkgMjA6NDk6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1vcmUgZG9jcywgZml4IGNvbXBpbGF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKToKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBtb3JlIGRvY3MsIGZpeCBjb21waWxhdGlvbgoKMjAwNS0xMC0wOSAyMDoxOTo0OCArMDAwMCAgUGhpbGlwcGUgS2FsYWYgPHBoaWxpcHBlLmthbGFmQGNvbGxhYm9yYS5jby51az4KCgkgIGdzdC9nc3RtZXNzYWdlLmM6IEZpeGVkIGEgZmV3IGZvcmdvdHRlbiB2YXJpYWJsZXMgb24gcHJldmlvdXMgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTA5ICBQaGlsaXBwZSBLaGFsYWYgPGJ1cmdlckBzcGVlZHkub3JnPgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIEZpeGVkIGEgZmV3IGZvcmdvdHRlbiB2YXJpYWJsZXMgb24gcHJldmlvdXMgY29tbWl0CgoyMDA1LTEwLTA5IDE3OjU5OjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogRml4IGV2aWwgdHlwZWZpbmQgY3Jhc2hlcjogZ2V0cmFuZ2UoKSBtaWdodCByZXR1cm4gYSBzaG9ydCBidWZmZXIgYXQgdGhlIGVuZCBvZiBhIGZpbGUsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9wZWVrKToKCSAgRml4IGV2aWwgdHlwZWZpbmQgY3Jhc2hlcjogZ2V0cmFuZ2UoKSBtaWdodCByZXR1cm4gYSBzaG9ydAoJICBidWZmZXIgYXQgdGhlIGVuZCBvZiBhIGZpbGUsIGJ1dCBnc3RfdHlwZV9maW5kX3BlZWsoKSBtdXN0CgkgIGVpdGhlciByZXR1cm4gdGhlIGZ1bGwgZGF0YSBhcyByZXF1ZXN0ZWQgb3IgTlVMTCwgYnV0CgkgIG5ldmVyIGEgc2hvcnQgYnVmZmVyLgoKMjAwNS0xMC0wOSAxNzo1MzozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0bWVzc2FnZS4qOiBkb24ndCB1c2UgbmV3LCBpdCdzIGEgQysrIGtleXdvcmQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIGRvbid0IHVzZSBuZXcsIGl0J3MgYSBDKysga2V5d29yZAoKMjAwNS0xMC0wOSAxNzoyMjozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBvbmNlIGlzIGVub3VnaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgb25jZSBpcyBlbm91Z2gKCjIwMDUtMTAtMDggMTg6MjE6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBTbWFsbCBkb2NzIGFuZCBkZWJ1ZyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChpc19lb3MpLCAodXBkYXRlX2RlZ3JlZSksIChnc3RfYmluX3F1ZXJ5KToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICBTbWFsbCBkb2NzIGFuZCBkZWJ1ZyB1cGRhdGVzLgoKMjAwNS0xMC0wOCAxODowNzoyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbW9yZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgbW9yZSBkb2NzCgoyMDA1LTEwLTA4IDE4OjAxOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBGaXggdHlwb3MsIGFkZCBjb21tZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoaXNfZW9zKSwgKHVwZGF0ZV9kZWdyZWUpLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X2Jpbl9kaXNwb3NlKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgIEZpeCB0eXBvcywgYWRkIGNvbW1lbnRzLgoJICBDbGVhciBFT1MgbGlzdCB3aGVuIGdvaW5nIHRvIFBBVVNFRCBmcm9tIGFueSBkaXJlY3Rpb24gYW5kIGRvIGl0CgkgIGluIGEgdGhyZWFkc2FmZSB3YXkuCgkgIEdldCBiYXNlIHRpbWUgaW4gYSB0aHJlYWRzYWZlIHdheSB0b28uCgkgIEZpeCBjb25mdXNpbmcgZGVidWcgaW4gdGhlIGNoYW5nZV9zdGF0ZSBmdW5jdGlvbi4KCSAgVmFyaW91cyBvdGhlciBtYWxsIGNsZWFudXBzLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UpOgoJICBGaXggdmVyeSB2ZXJib3NlIGJ1cyBwb3N0aW5nIGNvZGUuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksCgkgIChnc3RfcGlwZWxpbmVfc2V0X3Byb3BlcnR5KSwgKGdzdF9waXBlbGluZV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgIFNtYWxsIEFSR18gLT4gUFJPUF8gY2xlYW51cAoKMjAwNS0xMC0wOCAxNzozMDoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRG8gYSBsZXNzIENQVSBkZW1hbmRpbmcgRU9TIGNoZWNrIGJlY2F1c2Ugd2UgY2FuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChpc19lb3MpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgRG8gYSBsZXNzIENQVSBkZW1hbmRpbmcgRU9TIGNoZWNrIGJlY2F1c2Ugd2UgY2FuLgoKMjAwNS0xMC0wOCAxNzoxNzoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC86IEl0J3MgYWJvdXQgdGltZSB3ZSBidW1wIHRoZSB2ZXJzaW9uIG51bWJlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX2hlYWRlcl9mcm9tX2J1ZmZlciksIChnc3RfZHBfcGFja2V0X2Zyb21fY2FwcyksCgkgIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnQpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZHAtcHJpdmF0ZS5oOgoJICBJdCdzIGFib3V0IHRpbWUgd2UgYnVtcCB0aGUgdmVyc2lvbiBudW1iZXIuCgkgIFNpbmNlIGV2ZW50IHR5cGVzIGRvbid0IGZpdCBpbiB0aGUgZ3VpbnQ4IGFueW1vcmUgZGVzY3JpYmluZwoJICB0aGUgcGF5bG9hZCB0eXBlLCBtYWtlIHBheWxvYWQgdHlwZSAxNiBiaXRzIHdpZGUuCgoyMDA1LTEwLTA4IDE2OjQ5OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBNYW55IGRvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0ZWxlbWVudC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBNYW55IGRvYyB1cGRhdGVzLgoKMjAwNS0xMC0wOCAxNjoxMzo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RldmVudC4qOiBGaXggZXZlbnQgcXVhcmsgcmVnaXN0cmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgRml4IGV2ZW50IHF1YXJrIHJlZ2lzdHJhdGlvbi4KCSAgQWRkIHNvbWUgc3BhY2UgYmV0d2VlbiBldmVudHMgc28gd2UgY2FuIGluc2VydCB0aGVtIGluIHRoZQoJICByaWdodCBncm91cHMuCgoyMDA1LTEwLTA4IDE0OjU3OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQmV0dGVyIGxvZyBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2J1ZmZlcik6CgkgIEJldHRlciBsb2cgbWVzc2FnZS4KCSAgKiBnc3QvZ3N0YnVzLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgTW9yZSBkb2NzLgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpLCAoZ3N0X3F1ZXVlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX3NldF9wcm9wZXJ0eSksIChnc3RfcXVldWVfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZ3N0cXVldWUuaDoKCSAgUmVtb3ZlIG9sZCB1bnVzZWQgcHJvcGVydGllcy4KCjIwMDUtMTAtMDggMTQ6NDg6MTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxvdHMgb2YgbmV3IGRvY3MgYW5kIGRvYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgbG90cyBvZiBuZXcgZG9jcyBhbmQgZG9jIGZpeGVzCgoyMDA1LTEwLTA4IDE0OjQxOjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBmaXggYSBsZWFrIEkgaW50cm9kdWNlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGEgbGVhayBJIGludHJvZHVjZWQKCjIwMDUtMTAtMDggMTM6NTc6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogT25seSBldmVyIGxvYWQgb25lIHBsdWdpbiBmb3IgYSBnaXZlbiBwbHVnaW4gYmFzZW5hbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fZmluYWxpemUpLCAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9sb29rdXBfbG9ja2VkKSwKCSAgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9wbHVnaW4pOgoJICBPbmx5IGV2ZXIgbG9hZCBvbmUgcGx1Z2luIGZvciBhIGdpdmVuIHBsdWdpbiBiYXNlbmFtZS4KCSAgVGhpcyBlbnN1cmVzIGNvcnJlY3Qgb3ZlcnJpZGluZyBvZiBHU1RfUExVR0lOX1BBVEggb3ZlcgoJICBHU1RfUExVR0lOX1NZU1RFTV9QQVRIIGFuZCBvZiBob21lIGRpciBwbHVnaW5zIG92ZXIKCSAgc3lzdGVtIGluc3RhbGxlZCBwbHVnaW5zLgoKMjAwNS0xMC0wOCAxMzozOTowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFByZXBhcmUgZm9yIGRvaW5nIFFPUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfYnVmZmVyKToKCSAgUHJlcGFyZSBmb3IgZG9pbmcgUU9TLgoKMjAwNS0xMC0wOCAxMzoxMDozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrLzogQWxsb3cgbmV3IGNsb2NrIG1lc3NhZ2UgdG9vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBbGxvdyBuZXcgY2xvY2sgbWVzc2FnZSB0b28uCgoyMDA1LTEwLTA4IDEyOjU2OjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuKjogQWxzbyBjYXJyeSB0aGUgY2xvY2sgaW4gcXVlc3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3dhcm5pbmcpLCAoZ3N0X21lc3NhZ2VfbmV3X3RhZyksCgkgIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksIChnc3RfbWVzc2FnZV9uZXdfY2xvY2tfcHJvdmlkZSksCgkgIChnc3RfbWVzc2FnZV9uZXdfY2xvY2tfbG9zdCksIChnc3RfbWVzc2FnZV9uZXdfbmV3X2Nsb2NrKSwKCSAgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X3N0YXJ0KSwgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X2RvbmUpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9jbG9ja19wcm92aWRlKSwgKGdzdF9tZXNzYWdlX3BhcnNlX2Nsb2NrX2xvc3QpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfbmV3X2Nsb2NrKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBbHNvIGNhcnJ5IHRoZSBjbG9jayBpbiBxdWVzdGlvbi4KCjIwMDUtMTAtMDggMTI6MzY6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWVzc2FnZS4qOiBDbGVhbiB1cC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19jdXN0b20pLAoJICAoZ3N0X21lc3NhZ2VfbmV3X2VvcyksIChnc3RfbWVzc2FnZV9uZXdfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3dhcm5pbmcpLCAoZ3N0X21lc3NhZ2VfbmV3X3RhZyksCgkgIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksIChnc3RfbWVzc2FnZV9uZXdfY2xvY2tfcHJvdmlkZSksCgkgIChnc3RfbWVzc2FnZV9uZXdfbmV3X2Nsb2NrKSwgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X2RvbmUpLCAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9jbG9ja19wcm92aWRlKSwgKGdzdF9tZXNzYWdlX3BhcnNlX25ld19jbG9jayk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQ2xlYW4gdXAuCgkgIEFkZGVkIGNsb2NrIHJlbGF0ZWQgbWVzc2FnZXMuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgUG9zdCBtZXNzYWdlIHdoZW4gdGhlIGNsb2NrIGNoYW5nZWQuCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIFByaW50IG5ldyBjbG9jay4KCjIwMDUtMTAtMDggMTE6MTY6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBDYW4ndCBwYXNzIE5VTEwgc3RyaW5ncyB0byBnX3ByaW50KCkgb24gd2luZG93cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgQ2FuJ3QgcGFzcyBOVUxMIHN0cmluZ3MgdG8gZ19wcmludCgpIG9uIHdpbmRvd3MuCgoyMDA1LTEwLTA4IDExOjEyOjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvOiBhZGQgYSBjaGFwdGVyIG9uIHJ1bm5pbmcgR1N0cmVhbWVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgICogZG9jcy92ZXJzaW9uLmVudGl0aWVzLmluOgoJICBhZGQgYSBjaGFwdGVyIG9uIHJ1bm5pbmcgR1N0cmVhbWVyLgoJICBkb2N1bWVudCBHU1RfREVCVUcgYW5kIEdTVF9QTFVHSU4qIGVudiB2YXJzCgoyMDA1LTEwLTA4IDExOjEwOjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIE1ha2VmaWxlLmFtOiByZW1vdmUgaW5jbHVkZSBkaXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgIHJlbW92ZSBpbmNsdWRlIGRpcgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgcmVtb3ZlIFBMVUdJTlNfQlVJTERESVIgc3R1ZmYKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICByZW9yZGVyIHBhcnNpbmcgb2YgR1NUX1BMVUdJTl9QQVRIIGFuZCBHU1RfUExVR0lOX1NZU1RFTV9QQVRICgkgICogaWRpb3R0ZXN0Lm1hazoKCSAgcmVtb3ZlLCBpdCB3YXMgY29uZGVzY2VuZGluZyBhbmQgbm90IG5lZWRlZAoKMjAwNS0xMC0wOCAwOTo1ODozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLio6IFJlcG9zdCBFT1MgbWVzc2FnZSB3aGlsZSBnb2luZyB0byBQTEFZSU5HIGlmIHN0aWxsIEVPUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXQpLCAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIFJlcG9zdCBFT1MgbWVzc2FnZSB3aGlsZSBnb2luZyB0byBQTEFZSU5HIGlmIHN0aWxsIEVPUy4KCSAgTWFrZSBzdXJlIHRoYXQgd2hlbiByZWNlaXZpbmcgYSBGTFVTSF9TVEFSVCB3ZSBkb24ndCBhdHRlbXB0CgkgIHRvIHN5bmMgb24gdGhlIGNsb2NrIGFueW1vcmUuCgoyMDA1LTEwLTA4IDA5OjM4OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBCZXR0ZXIgbWVzc2FnZSBwcmludG91dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIEJldHRlciBtZXNzYWdlIHByaW50b3V0LgoKMjAwNS0xMC0wOCAwOToyNDoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IE1ha2UgQ2hpbGRQcm94eSB0aHJlYWRzYWZlIGFuZCBmaXggbWVtIGxlYWtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoaWxkX3Byb3h5X2dldF9jaGlsZF9ieV9pbmRleCksCgkgIChnc3RfYmluX2NoaWxkX3Byb3h5X2dldF9jaGlsZHJlbl9jb3VudCk6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuYzogKGdzdF9jaGlsZF9wcm94eV9nZXRfY2hpbGRfYnlfbmFtZSksCgkgIChnc3RfY2hpbGRfcHJveHlfbG9va3VwKSwgKGdzdF9jaGlsZF9wcm94eV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X2dldF92YWxpc3QpLCAoZ3N0X2NoaWxkX3Byb3h5X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfY2hpbGRfcHJveHlfc2V0X3ZhbGlzdCk6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgTWFrZSBDaGlsZFByb3h5IHRocmVhZHNhZmUgYW5kIGZpeCBtZW0gbGVha3MuCgoyMDA1LTEwLTA4IDA5OjA5OjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3QuYzogZGVidWcgdGhlIEdTVF9QTFVHSU5fIGVudiB2YXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIGRlYnVnIHRoZSBHU1RfUExVR0lOXyBlbnYgdmFycwoKMjAwNS0xMC0wOCAwODo1ODo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZGVkIGV4dHJhIGZpZWxkIHRvIFNUQVRFX0NIQU5HRSBtZXNzYWdlIHdpdGggdGhlIHBlbmRpbmcgc3RhdGUsIHdoaWNoIHdpbGwgYmUgZGlmZmVyZW50IGZyb20gdGhlIG5ldyBzdGF0ZSBzb29uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKSwgKG1lc3NhZ2VfcmVjZWl2ZWQpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIEFkZGVkIGV4dHJhIGZpZWxkIHRvIFNUQVRFX0NIQU5HRSBtZXNzYWdlIHdpdGggdGhlIHBlbmRpbmcKCSAgc3RhdGUsIHdoaWNoIHdpbGwgYmUgZGlmZmVyZW50IGZyb20gdGhlIG5ldyBzdGF0ZSBzb29uLgoKMjAwNS0xMC0wOCAwODowMDozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFNtYWxsIGNsZWFudXBzIGFuZCBkb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19wb3ApOgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19hc3luY190aHJlYWQpOgoJICBTbWFsbCBjbGVhbnVwcyBhbmQgZG9jIHVwZGF0ZXMuCgoyMDA1LTEwLTA4IDA2OjQ5OjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IGxvZyBkaXN0cmlidXRpbmcgY2xvY2tzIGFuZCBiYXNlIHRpbWUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wcmUpOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpOgoJICBsb2cgZGlzdHJpYnV0aW5nIGNsb2NrcyBhbmQgYmFzZSB0aW1lCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfYWRkX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKSwgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGgpOgoJICBjbGVhbiB1cCB0aGUgZGVidWdnaW5nIG91dHB1dCBhIGxpdHRsZQoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUpOgoJICB3YXJuIGFib3V0IGEgbWVtbGVhayAoSSd2ZSBhY3R1YWxseSBzZWVuIHRoaXMgYmUgdXNlZCwgdGhvdWdoCgkgIGl0IHdhcyBwcm9iYWJseSBhIGJ1ZykKCjIwMDUtMTAtMDggMDY6NDI6MzAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgYWRkIHR3byBuZXcgZnVuY3Rpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgdHdvIG5ldyBmdW5jdGlvbnMKCjIwMDUtMTAtMDcgMTg6MTc6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLio6IE1ha2UgdGhlIG5ld3NlZ21lbnQgZXZlbnQgY3VzdG9taXphYmxlIGJ5IHN1YmNsYXNzZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19pbml0KSwgKGdzdF9iYXNlX3NyY19kZWZhdWx0X25ld3NlZ21lbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX25ld3NlZ21lbnQpLCAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIE1ha2UgdGhlIG5ld3NlZ21lbnQgZXZlbnQgY3VzdG9taXphYmxlIGJ5IHN1YmNsYXNzZXMuCgoyMDA1LTEwLTA3IDE4OjAyOjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGV2ZW50Lio6IE5ldyBldmVudCBmb3IgZnV0dXJlIGlkZWEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19idWZmZXJzaXplKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9idWZmZXJzaXplKToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgTmV3IGV2ZW50IGZvciBmdXR1cmUgaWRlYS4KCjIwMDUtMTAtMDcgMTY6Mjg6NTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSk6IERvYyB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTA3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSk6IERvYyB1cGRhdGUuCgoyMDA1LTEwLTA3IDE2OjEzOjUxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBVcGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTA3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFVwZGF0ZS4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jIChnc3RfbWVzc2FnZV9uZXdfYXBwbGljYXRpb24pOiBNYWRlIGludG8gYQoJICBmdW5jdGlvbiBsaWtlIGhvbmVzdCBBUEkgY2FsbHMuCgkgIChnc3RfbWVzc2FnZV9uZXdfZWxlbWVudCk6IE5ldyBtZXNzYWdlIHR5cGUuCgkgICogZ3N0L2dzdG1lc3NhZ2UuaCAoZW51bSk6IEFkZCBHU1RfTUVTU0FHRV9FTEVNRU5UIHR5cGUuCgoyMDA1LTEwLTA3IDE1OjI1OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIGZkc3JjIGRvZXMgbm90IGJ1aWxkIGN1cnJlbnRseSBvbiB3aW4zMiBkdWUgdG8gc29ja2V0cGFpcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmRzcmMgZG9lcyBub3QgYnVpbGQgY3VycmVudGx5IG9uIHdpbjMyIGR1ZSB0byBzb2NrZXRwYWlyCgoyMDA1LTEwLTA3IDE1OjIyOjM4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9lbGVtZW50cy9mYWtlc3JjLmMgKHRlc3Rfbm9fcHJlcm9sbCk6IE5ldyBjaGVjaywgY2hlY2tzIHRoYXQgc2V0dGluZyBhIGxpdmUgZmFrZXNyYyB0byBQQVVTRUQgcmV0dXJucyBOT19QUkVST0wuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jICh0ZXN0X25vX3ByZXJvbGwpOiBOZXcgY2hlY2ssIGNoZWNrcwoJICB0aGF0IHNldHRpbmcgYSBsaXZlIGZha2VzcmMgdG8gUEFVU0VEIHJldHVybnMgTk9fUFJFUk9MTCBib3RoCgkgIHRpbWVzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6IEFsbG93IGEKCSAgTk9fUFJFUk9MTCBmcm9tIGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSB0byBmYWxsIHRocm91Z2guCgoyMDA1LTEwLTA3IDE1OjEzOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZG9uJ3QgdXNlIGlmIG5vdCBkZWNsYXJlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgdXNlIGlmIG5vdCBkZWNsYXJlZAoKMjAwNS0xMC0wNyAxMjo1MjoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBBY3RpdmF0aW5nIGEgZ2hvc3RwYWQgd2l0aCBubyBpbnRlcm5hbCBwYWQgaW4gcHVzaCBtb2RlIGlzIG9rLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfZ2V0X2ludGVybmFsKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCk6CgkgIEFjdGl2YXRpbmcgYSBnaG9zdHBhZCB3aXRoIG5vIGludGVybmFsIHBhZCBpbiBwdXNoIG1vZGUKCSAgaXMgb2suCgoyMDA1LTEwLTA3IDEyOjQ1OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RvYmplY3QuaDogdGhlcmUncyBubyBwb2ludCBpbiB3cmFwcGluZyBGTEFHX1NFVC9fVU5TRVQgaW4gU1RNVCBtYWNyb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgdGhlcmUncyBubyBwb2ludCBpbiB3cmFwcGluZyBGTEFHX1NFVC9fVU5TRVQgaW4gU1RNVCBtYWNyb3MuCgkgIEZpeGVzIGNvbXBpbGF0aW9uIG9uIFdpbmRvd3MuCgoyMDA1LTEwLTA3IDEwOjMyOjI0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgUHJpbnQgb3V0IGZlYXR1cmUgYW5kIHBsdWdpbiBjb3VudCBhdCB0aGUgZW5kIHdoZW4gcHJpbnRpbmcgb3V0IGFsbCBmZWF0dXJlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFByaW50IG91dCBmZWF0dXJlIGFuZCBwbHVnaW4gY291bnQgYXQgdGhlIGVuZCB3aGVuIHByaW50aW5nIG91dAoJICBhbGwgZmVhdHVyZXMuCgkgIEFsc28gYWRkIGEgY2hhbmdlbG9nIGVudHJ5IHdoaWNoIEknZCB3cml0dGVuIGJ1dCBub3QgY29tbWl0dGVkPwoKMjAwNS0xMC0wNyAwMDoxNDo0NSArMDAwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJICBBZGQgYSBHVHlwZSB0byBHc3RJdGVyYXRvciwgdXBkYXRlIGNhbGxzaXRlcyBhbmQgdGVzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RpdGVyYXRvci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faXRlcmF0ZV9lbGVtZW50cyksCgkgIChnc3RfYmluX2l0ZXJhdGVfcmVjdXJzZSksIChnc3RfYmluX2l0ZXJhdGVfc29ydGVkKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfaXRlcmF0ZV9wYWRzKToKCSAgKiBnc3QvZ3N0Zm9ybWF0LmM6IChnc3RfZm9ybWF0X2l0ZXJhdGVfZGVmaW5pdGlvbnMpOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOiAoZ3N0X2l0ZXJhdG9yX2luaXQpLCAoZ3N0X2l0ZXJhdG9yX25ldyksCgkgIChnc3RfaXRlcmF0b3JfbmV3X2xpc3QpLCAoZ3N0X2l0ZXJhdG9yX2ZpbHRlcik6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfdHlwZV9pdGVyYXRlX2RlZmluaXRpb25zKToKCSAgQWRkIGEgR1R5cGUgdG8gR3N0SXRlcmF0b3IsIHVwZGF0ZSBjYWxsc2l0ZXMgYW5kIHRlc3RzLgoKMjAwNS0xMC0wNiAyMTowOToxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGRvaC4gIHVzZSBjb3JyZWN0IHZhcmlhYmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2guICB1c2UgY29ycmVjdCB2YXJpYWJsZQoKMjAwNS0xMC0wNiAxNzowMDo1MCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHZlcnNpb24gZ3N0cmVhbWVyLXRvb2xzIHBhY2thZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHZlcnNpb24gZ3N0cmVhbWVyLXRvb2xzIHBhY2thZ2UKCjIwMDUtMTAtMDYgMTQ6MjA6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGluaXRpYWxpemUgcXVhcmtzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpbml0aWFsaXplIHF1YXJrcwoKMjAwNS0xMC0wNiAxNDowMTo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0cGFkLmM6IGdpdmUgZXZlbnRzIGEgY2hhbmNlIHRvIGJlIGhhbmRsZWQgYnkgZXZlbnQgcHJvYmVzIHdoZW4gdGhlIHBhZCBpcyBub3QgbGlua2VkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZXZlbnRfZGVmYXVsdF9kaXNwYXRjaCk6CgkgIGdpdmUgZXZlbnRzIGEgY2hhbmNlIHRvIGJlIGhhbmRsZWQgYnkgZXZlbnQgcHJvYmVzIHdoZW4gdGhlIHBhZAoJICBpcyBub3QgbGlua2VkCgoyMDA1LTEwLTA2IDEzOjU1OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RldmVudC4qOiBhZGQgc3RyaW5nIHJlcHJlc2VudGF0aW9ucyBmb3IgZXZlbnQgdHlwZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfdHlwZV9nZXRfbmFtZSksCgkgIChnc3RfZXZlbnRfdHlwZV90b19xdWFyayksIChnc3RfZXZlbnRfZmluYWxpemUpLCAoZ3N0X2V2ZW50X25ldyk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIGFkZCBzdHJpbmcgcmVwcmVzZW50YXRpb25zIGZvciBldmVudCB0eXBlcwoKMjAwNS0xMC0wNiAxMzo0Mjo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSBmaXhlcwoKMjAwNS0xMC0wNiAxMzoyNDoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBEb24ndCB1c2UgTlVMTCBwb2ludGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2Nsb3NlX2ZpbGUpOgoJICBEb24ndCB1c2UgTlVMTCBwb2ludGVycy4KCjIwMDUtMTAtMDYgMDk6NDk6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0Lzogd2lkZW4gdGhlIGRlYnVnIGNhdGVnb3J5IGluIG91dHB1dCB0byBmaXQgdGhlIGJpZ2dlc3Qgb25lIHdlIGhhdmUgYWRkIGEgYnVzIGNhdGVnb3J5IGFuZCB1c2UgaXQgcGxheSB3aXRoIHRoZSBjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RidXMuYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgd2lkZW4gdGhlIGRlYnVnIGNhdGVnb3J5IGluIG91dHB1dCB0byBmaXQgdGhlIGJpZ2dlc3Qgb25lIHdlIGhhdmUKCSAgYWRkIGEgYnVzIGNhdGVnb3J5IGFuZCB1c2UgaXQKCSAgcGxheSB3aXRoIHRoZSBjb2xvcnMKCSAgZml4IHVwIHNvbWUgY2F0ZWdvcmllcwoKMjAwNS0xMC0wNiAwNzo0Mjo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBmaXJzdCBzdGFiIGF0IHJlb3JnYW5pemluZyBkb2NzIGZvciBwYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpcnN0IHN0YWIgYXQgcmVvcmdhbml6aW5nIGRvY3MgZm9yIHBhZAoKMjAwNS0xMC0wNiAwNzoxMzowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogYWRkIHB1c2ggYWN0aXZhdGlvbiBvZiBzaW5rIGdob3N0IHBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTA2ICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9kb19hY3RpdmF0ZV9wdXNoKToKCSAgYWRkIHB1c2ggYWN0aXZhdGlvbiBvZiBzaW5rIGdob3N0IHBhZHMuCgkgIEFuZHllLCBwbGVhc2UgdmVyaWZ5CgoyMDA1LTEwLTA1IDIyOjM1OjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZG9jIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvYyB1cGRhdGVzCgoyMDA1LTEwLTA1IDIxOjM0OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3R1dGlscy5jOiBmaXggYSBidWcgaW4gdGhlIGNhc2Ugd2hlcmUgbmVpdGhlciBlbGVtZW50IGhhcyBhIHBhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2xpbmtfcGFkcyk6CgkgIGZpeCBhIGJ1ZyBpbiB0aGUgY2FzZSB3aGVyZSBuZWl0aGVyIGVsZW1lbnQgaGFzIGEgcGFkCgkgICogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9lbGVtZW50X3N1aXRlKToKCSAgYWRkIGEgdGVzdCBmb3IgdGhhdCBjYXNlCgoyMDA1LTEwLTA1IDE3OjAxOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB1bnJlZiBvdXIgdGVzdCBidWZmZXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1bnJlZiBvdXIgdGVzdCBidWZmZXJzCgoyMDA1LTEwLTA1IDE2OjE2OjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RwYWQuYzogZW1pdCBoYXZlLWRhdGEgYmVmb3JlIGNoZWNraW5nIGZvciBwZWVycy4gIFRoaXMgYWxsb3dzIGZvciBwcm9iZSBoYW5kbGVycyB0byBjb25uZWN0IGVsZW1lbnRzLiAgVGhpcyBoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3B1c2gpLCAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgZW1pdCBoYXZlLWRhdGEgYmVmb3JlIGNoZWNraW5nIGZvciBwZWVycy4gIFRoaXMgYWxsb3dzCgkgIGZvciBwcm9iZSBoYW5kbGVycyB0byBjb25uZWN0IGVsZW1lbnRzLiAgVGhpcyBoZWxwcyBhdXRvcGx1Z2dlcnMuCgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoX3Byb2JlX2hhbmRsZXIpLAoJICAoZ3N0X3BhZF9zdWl0ZSk6CgkgIGFkZCBzaXggY2hlY2tzLCBsaW5rZWQvdW5saW5rZWQgd2l0aCBuby90cnVlL2ZhbHNlIHByb2JlCgoyMDA1LTEwLTA1IDExOjUwOjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgaW5kZW50IGlmZGVmcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaW5kZW50IGlmZGVmcwoKMjAwNS0xMC0wNCAxODo0NjowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9lbGVtZW50cy86IFByb3RlY3QgbGFzdF9tZXNzYWdlIHdpdGggbG9jay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfZmFrZV9zaW5rX2V2ZW50KSwgKGdzdF9mYWtlX3NpbmtfcHJlcm9sbCksCgkgIChnc3RfZmFrZV9zaW5rX3JlbmRlciksIChnc3RfZmFrZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19ldmVudF9oYW5kbGVyKSwKCSAgKGdzdF9mYWtlX3NyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSksCgkgIChnc3RfZmFrZV9zcmNfc3RvcCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfc3RvcCk6CgkgIFByb3RlY3QgbGFzdF9tZXNzYWdlIHdpdGggbG9jay4KCjIwMDUtMTAtMDQgMTU6MDQ6NTAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0Zm9ybWF0Lmg6IEFkZGVkIHByZWNpc2lvbiBpbiB0aGUgY29tbWVudHMgZm9yIEdTVF9GT1JNQVRfREVGQVVMVAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkgIEFkZGVkIHByZWNpc2lvbiBpbiB0aGUgY29tbWVudHMgZm9yIEdTVF9GT1JNQVRfREVGQVVMVAoKMjAwNS0xMC0wNCAxMzoxOTo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIHVwZGF0ZSB1bmluc3RhbGxlZCBzY3JpcHQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB1bmluc3RhbGxlZCBzY3JpcHQKCjIwMDUtMTAtMDQgMTI6MDI6MzQgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICByZW1vdmUgc29tZSBmaWxlcyB0aGF0IGFyZSBubyBsb25nZXIgdGhlcmUgZnJvbSBzcGVjIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBzb21lIGZpbGVzIHRoYXQgYXJlIG5vIGxvbmdlciB0aGVyZSBmcm9tIHNwZWMgZmlsZQoKMjAwNS0xMC0wNCAxMTo1MTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogRG9uJ3QgdHJ5IHRvIHJ1biBlcnJvbmVvdXMgcGlwZWxpbmVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgRG9uJ3QgdHJ5IHRvIHJ1biBlcnJvbmVvdXMgcGlwZWxpbmVzLgoKMjAwNS0xMC0wNCAxMToxMDowNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdGVycm9yLmM6IEFkZCBhbm90aGVyIGVycm9yIHN0cmluZyB1c2VkIGluIGEgZmV3IGV4aXN0aW5nIHBsdWdpbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOiAoX2dzdF9zdHJlYW1fZXJyb3JzX2luaXQpOgoJICBBZGQgYW5vdGhlciBlcnJvciBzdHJpbmcgdXNlZCBpbiBhIGZldyBleGlzdGluZyBwbHVnaW5zLgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2xvYWQpOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X2luZm8pOgoJICBXaGVuIGEgZmVhdHVyZSBkaXNhcHBlYXJzIGZyb20gYSBwbHVnaW4gKGFuZCB0aGUgZmVhdHVyZSBleGlzdHMgaW4KCSAgdGhlIGNhY2hlZCByZWdpc3RyeSBmaWxlKSwgdGhpbmdzIHdlbnQgaG9ycmlibHkgd3JvbmcuIFRoaXMgaXNuJ3QgYQoJICBjb21wbGV0ZSBmaXgsIHdlIHNob3VsZCBhY3R1YWxseSBiZSByZW1vdmluZyB0aGUgJ21pc3NpbmcnIGZlYXR1cmVzCgkgIGZyb20gdGhlIGZlYXR1cmVzIGxpc3Qgd2hlbiB3ZSBsb2FkIHRoZSBhY3R1YWwgcGx1Z2luLiBUaGF0J3Mgbm90CgkgIHlldCBpbXBsZW1lbnRlZC4KCjIwMDUtMTAtMDQgMTE6MDk6NDEgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBXZSBkb24ndCBuZWVkIHRoaXMgaGVhZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0wNCAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3RidXMuYzogV2UgZG9uJ3QgbmVlZCB0aGlzIGhlYWRlci4KCjIwMDUtMTAtMDMgMTc6NTc6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gaGVhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBoZWFkCgo9PT0gcmVsZWFzZSAwLjkuMyA9PT0KCjIwMDUtMTAtMDMgMTc6NDc6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUFETUU6CgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICByZWxlYXNlIHRpbWUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2UgdGltZQoKMjAwNS0xMC0wMiAyMzoyNDoyNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpOiBUaGVyZSBpcyBhIHJhY2UgY29uZGl0aW9uIHdoZXJlYnkgY2FsbGluZyBhIHBhZCdzIGFjdGl2YXRlcHVzaCgpIGZ1bmN0aW9uIGNhbiBzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTAzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKTogVGhlcmUgaXMgYSByYWNlIGNvbmRpdGlvbgoJICB3aGVyZWJ5IGNhbGxpbmcgYSBwYWQncyBhY3RpdmF0ZXB1c2goKSBmdW5jdGlvbiBjYW4gc3RhcnQgYSB0aHJlYWQKCSAgdGhhdCBzdGFydHMgdG8gcHVzaCBvciBwdWxsIGJlZm9yZSB0aGUgcGFkIGdldHMgdGhlIEZMVVNISU5HIGZsYWcKCSAgdW5zZXQuIEhhY2sgYXJvdW5kIGl0IGJ5IGhvbGRpbmcgdGhlIHN0cmVhbSBsb2NrIHVudGlsIHRoZSBmbGFnIGlzCgkgIHNldC4gTmVlZCB0byByZXBsYWNlIHRoaXMgd2l0aCBhIHByb3BlciBzb2x1dGlvbi4gVG9nZXRoZXIgd2l0aAoJICB0aGUgZ2hvc3QgcGFkIGZpeGVzLCB0aGlzIGZpeGVzIG1wMyBwbGF5aW5nL3RhZ3JlYWRpbmcuCgoyMDA1LTEwLTAyIDIzOjIxOjA0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIGNoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2hhbmdlbG9nCgoyMDA1LTEwLTAyIDIzOjIwOjI2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDogQWRkIGEgbm90ZSBhYm91dCBhY3RpdmF0aW9uIG9mIHByb3h5IHBhZHMgb3V0c2lkZSBvZiBnaG9zdCBwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0wMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDogQWRkIGEgbm90ZSBhYm91dCBhY3RpdmF0aW9uIG9mCgkgIHByb3h5IHBhZHMgb3V0c2lkZSBvZiBnaG9zdCBwYWRzLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiBJbXBsZW1lbnQgdGhlIGdob3N0IHBhZCBhY3RpdmF0aW9uIGRlc2lnbi4KCjIwMDUtMTAtMDIgMTg6NTc6MDcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RvYmplY3QuaCAoR1NUX09CSkVDVF9SRUZDT1VOVF9WQUxVRSk6IEp1c3QgdXNlIHRoZSBpbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTAyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RvYmplY3QuaCAoR1NUX09CSkVDVF9SRUZDT1VOVF9WQUxVRSk6IEp1c3QgdXNlIHRoZSBpbnQuCgkgIEl0IGlzIHZvbGF0aWxlLCBhZnRlciBhbGwuCgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6IEZsZXNoIG91dCBhY3RpdmF0aW9uIHdpdGgKCSAgZ2hvc3QgcGFkcy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19pbml0KTogVXNlCgkgIEdTVF9ERUJVR19GVU5DUFRSLgoKMjAwNS0xMC0wMiAxODozMDoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogRml4ICh1bnVzZWQpIEFNX0NPTkRJVElPTkFMIHRlc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEZpeCAodW51c2VkKSBBTV9DT05ESVRJT05BTCB0ZXN0cy4KCjIwMDUtMTAtMDEgMTc6MTE6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuYzogQWRkIGFzc2VydGlvbiB0aGF0IG1ha2VzIHN1cmUgc3JjX3ZhbCBpcyA+PTAsIGp1c3QgbGlrZSBnc3RfcXVlcnlfbmV3X2NvbnZlcnQoKSBoYXMuICgjMzE1ODk1KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYWRfcXVlcnlfY29udmVydCk6CgkgIEFkZCBhc3NlcnRpb24gdGhhdCBtYWtlcyBzdXJlIHNyY192YWwgaXMgPj0wLCBqdXN0IGxpa2UKCSAgZ3N0X3F1ZXJ5X25ld19jb252ZXJ0KCkgaGFzLiAoIzMxNTg5NSkKCjIwMDUtMDktMzAgMTU6NDM6MDMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IExldCdzIG5vdCBpdGVyYXRlIHBhZHMgd2UncmUgbm90IGludGVyZXN0ZWQgaW4sIGl0IGF2b2lkcyBnZXR0aW5nIHNreS1oaWdoIHJlZmNvdW50cyBvbiBzaW5rcGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2RvX3B1c2gpLCAoZ3N0X3RlZV9oYW5kbGVfYnVmZmVyKToKCSAgTGV0J3Mgbm90IGl0ZXJhdGUgcGFkcyB3ZSdyZSBub3QgaW50ZXJlc3RlZCBpbiwgaXQgYXZvaWRzIGdldHRpbmcKCSAgc2t5LWhpZ2ggcmVmY291bnRzIG9uIHNpbmtwYWQuCgoyMDA1LTA5LTMwIDA4OjI5OjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogU21hbGwgdHdlYWssIGVsZW1lbnQgaW4gQVNZTkMgcmVtYWlucyBBU1lOQy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBTbWFsbCB0d2VhaywgZWxlbWVudCBpbiBBU1lOQyByZW1haW5zIEFTWU5DLgoKMjAwNS0wOS0zMCAwODowMDoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IE9ubHkgZXJyb3IgaXMgYW4gZXJyb3IuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIE9ubHkgZXJyb3IgaXMgYW4gZXJyb3IuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICBCZXR0ZXIgZGVidWdnaW5nLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyKSwgKGdzdF9wYWRfY2hhaW4pOgoJICBBbHNvIGNhbGwgcGFkX2Jsb2NrIGluIHBhZCBhbGxvYy4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9mbG93X2dldF9uYW1lKToKCSAgQmV0dGVyIGRlYnVnZ2luZy4KCjIwMDUtMDktMjkgMjA6MjY6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEZpeCBkb2N1bWVudGF0aW9uIHR5cG9zLiBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBGaXggZG9jdW1lbnRhdGlvbiB0eXBvcy4gQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoKMjAwNS0wOS0yOSAyMDoxNjo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGRpc2FibGUgcmVmY291bnQgY2hlY2tzIHVudGlsIHdlIHRyYWNrIHRoZSBkYW5nbGluZyByZWYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRpc2FibGUgcmVmY291bnQgY2hlY2tzIHVudGlsIHdlIHRyYWNrIHRoZSBkYW5nbGluZyByZWYKCjIwMDUtMDktMjkgMTk6NDU6MjcgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBNYWtlIHNvbWUgZXJyb3IgbWVzc2FnZXMgbW9yZSBlbmQtdXNlciBmcmllbmRseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOiBNYWtlIHNvbWUgZXJyb3IgbWVzc2FnZXMKCSAgbW9yZSBlbmQtdXNlciBmcmllbmRseS4KCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAobWFpbik6IENoZWNrIGlmIGNvbW1hbmQtbGluZSBhcmd1bWVudCBpcwoJICBhIGZpbGUgYW5kIGF0dGVtcHQgdG8gbG9hZCB0aGF0IGZpbGUgYXMgYSBwbHVnaW4uCgoyMDA1LTA5LTI5IDE4OjM3OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrLzogZml4IHRlc3RzIGZvciB0aGUgbmV3IHdhcm5pbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOgoJICBmaXggdGVzdHMgZm9yIHRoZSBuZXcgd2FybmluZwoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBhZGQgYSB0ZXN0IGZvciBwaXBlbGluZSBhbmQgYnVzIGludGVyYWN0aW9uCgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudHMgc2hvdWxkIGJlIE5VTEwgaWYgdGhleSBnZXQgZGlzcG9zZWQ7IGFkZCBhIHdhcm5pbmcgaWYgbm90CgoyMDA1LTA5LTI5IDE4OjM1OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RvYmplY3QuYzogZm9yIDIuNiByZWZjb3VudGluZywgbWFrZSBkZWJ1ZyBsb2cgbW9yZSBjb3JyZWN0IGJ5IHByaW50aW5nIHRoZSBhY3R1YWwgcmVmY291bnRzIGF0IHRoZSB0aW1lIG9mIHN3YS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGZvciAyLjYgcmVmY291bnRpbmcsIG1ha2UgZGVidWcgbG9nIG1vcmUgY29ycmVjdCBieSBwcmludGluZwoJICB0aGUgYWN0dWFsIHJlZmNvdW50cyBhdCB0aGUgdGltZSBvZiBzd2FwIChXaW0pCgoyMDA1LTA5LTI5IDE4OjI1OjUwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIHVzZSBtZXNzYWdlIHR5cGUgbmFtZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVzZSBtZXNzYWdlIHR5cGUgbmFtZXMKCjIwMDUtMDktMjkgMTY6MDY6MTggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgY2hhbmdlbG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjaGFuZ2Vsb2cKCjIwMDUtMDktMjkgMTY6MDQ6MzEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RidXMuYyAoZ3N0X2J1c19yZW1vdmVfc2lnbmFsX3dhdGNoKTogTmV3IGZ1bmN0aW9uLCByZW1vdmVzIHNpZ25hbCB3YXRjaGVzIHByZXZpb3VzbHkgYWRkZWQgdmlhIGdzdF9idXNfYWRkX3NpZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YnVzLmMgKGdzdF9idXNfcmVtb3ZlX3NpZ25hbF93YXRjaCk6IE5ldyBmdW5jdGlvbiwKCSAgcmVtb3ZlcyBzaWduYWwgd2F0Y2hlcyBwcmV2aW91c2x5IGFkZGVkIHZpYQoJICBnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2guCgkgIChnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2gpOiBEb24ndCByZXR1cm4gdGhlIHNvdXJjZSBpZCwganVzdCBzdG9yZQoJICBpdCBvbiB0aGUgYnVzIGlmIHRoZXJlIHdhc24ndCBhbiBpZCBhbHJlYWR5LgoJICAqIGdzdC9nc3RidXMuaCAoR3N0QnVzKTogQWRkIGEgY291cGxlIG5ldyBmaWVsZHMuIEFQSSBjaGFuZ2VzIGZvcgoJICBhZGRfc2lnbmFsX3dhdGNoIGFuZCByZW1vdmVfc2lnbmFsX3dhdGNoLgoKMjAwNS0wOS0yOSAxNTozOToyMiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBCZXR0ZXIgaWYgd2UgYWN0dWFsbHkgaXRlcmF0ZSB0aGUgbGlzdCA6KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX25ld19saXN0KToKCSAgQmV0dGVyIGlmIHdlIGFjdHVhbGx5IGl0ZXJhdGUgdGhlIGxpc3QgOikKCjIwMDUtMDktMjkgMTM6MDc6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IENoYW5nZSBmb3IgbmV3IGJ1cyBBUEkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQ2hhbmdlIGZvciBuZXcgYnVzIEFQSS4KCSAgKiBjaGVjay9nc3QvZ3N0YnVzLmM6IChtZXNzYWdlX2Z1bmNfZW9zKSwgKG1lc3NhZ2VfZnVuY19hcHApLAoJICAoc2VuZF9tZXNzYWdlcyksIChHU1RfU1RBUlRfVEVTVCksIChnc3RidXNfc3VpdGUpOgoJICBDaGFuZ2UgZm9yIG5ldyBidXMgc2lnbmFsIEFQSS4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2NsYXNzX2luaXQpLCAoZ3N0X2J1c19oYXZlX3BlbmRpbmcpLAoJICAoZ3N0X2J1c19zb3VyY2VfcHJlcGFyZSksIChnc3RfYnVzX3NvdXJjZV9jaGVjayksCgkgIChnc3RfYnVzX2NyZWF0ZV93YXRjaCksIChnc3RfYnVzX2FkZF93YXRjaF9mdWxsKSwKCSAgKGdzdF9idXNfYWRkX3dhdGNoKSwgKGdzdF9idXNfcG9sbCksIChnc3RfYnVzX2FzeW5jX3NpZ25hbF9mdW5jKSwKCSAgKGdzdF9idXNfc3luY19zaWduYWxfaGFuZGxlciksIChnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2gpOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgUmVtb3ZlIHN1cHBvcnQgZm9yIG11bHRpcGxlIEdTb3VyY2VzIG9wZXJhdGluZyBvbiBkaWZmZXJlbnQKCSAgbWVzc2FnZSB0eXBlcyBhcyBpdCBpcyB0b28gY29tcGxleCBhbmQgdW5uZWVkZWQgd2hlbiB1c2luZwoJICBzaWduYWxzLgoJICBBZGRlZCBzdXBwb3J0IGZvciByZWNlaXZpbmcgc2lnbmFscyBmcm9tIHRoZSBidXMuCgoyMDA1LTA5LTI5IDEyOjM3OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHJlbmFtZSBmaWx0ZXItY2FwcyB0byBjYXBzIHByb3BlcnR5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIHJlbmFtZSBmaWx0ZXItY2FwcyB0byBjYXBzIHByb3BlcnR5CgoyMDA1LTA5LTI5IDEyOjA1OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IE1vcmUgcm9idXN0IGZyYWN0aW9uIHN0cmluZyBwYXJzaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mcmFjdGlvbik6CgkgIE1vcmUgcm9idXN0IGZyYWN0aW9uIHN0cmluZyBwYXJzaW5nLgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBNZW50aW9uIGdzdF9wYWRfdXNlX2V4cGxpY2l0X2NhcHMoKSA9PiBnc3RfcGFkX3VzZV9maXhlZF9jYXBzKCkKCjIwMDUtMDktMjkgMTA6NTY6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBUaG91IHNoYWx0IG5vdCBmcmVlIGEgc3RydWN0dXJlIGFuZCB0aGVuIGNvbnRpbnVlIHVzaW5nIGl0IGluIHRoZSBuZXh0IGxvb3AgaXRlcmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfZG9fc2ltcGxpZnkpOgoJICBUaG91IHNoYWx0IG5vdCBmcmVlIGEgc3RydWN0dXJlIGFuZCB0aGVuIGNvbnRpbnVlIHVzaW5nIGl0CgkgIGluIHRoZSBuZXh0IGxvb3AgaXRlcmF0aW9uLgoJICAqIGNoZWNrL2dzdC9nc3RjYXBzLmM6IChjaGVja19mb3VyY2NfbGlzdCksICh0ZXN0X3NpbXBsaWZ5KSwKCSAgKGdzdF9jYXBzX3N1aXRlKToKCSAgQWRkIHRlc3QgY2FzZSBmb3IgY2FwcyBzaW1wbGlmaWNhdGlvbi4KCjIwMDUtMDktMjkgMDk6NDQ6MzUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgcmVtb3ZlIHR3byByZW1vdmVkIGZ1bmN0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHR3byByZW1vdmVkIGZ1bmN0aW9ucwoKMjAwNS0wOS0yOSAwOTo0MjoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogT29wcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBPb3BzLgoKMjAwNS0wOS0yOSAwOTozOTozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogQWRkIGJ1cyB0byBiaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIGJ1cyB0byBiaW4uCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5faW5pdCksCgkgIChhZGRfdG9fcXVldWUpLCAoY2xlYXJfcXVldWUpLCAocmVzZXRfZGVncmVlKSwgKHVwZGF0ZV9kZWdyZWUpLAoJICAoZmluZF9lbGVtZW50KSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KSwKCSAgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9yZXN5bmMpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX2ZyZWUpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX3NvcnRlZCksIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKSwgKGdzdF9iaW5fZGlzcG9zZSk6CgkgIEEgYmluIGRvZXMgbm90IGhhdmUgYSBidXMsIGl0IGdldHMgdGhlIGJ1cyBmcm9tIHRoZSBwYXJlbnQuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3JlcXVpcmVzX2Nsb2NrKSwKCSAgKGdzdF9lbGVtZW50X3Byb3ZpZGVzX2Nsb2NrKSwgKGdzdF9lbGVtZW50X2lzX2luZGV4YWJsZSksCgkgIChnc3RfZWxlbWVudF9pc19sb2NrZWRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9idXNfZnVuYyk6CgkgIFNtYWxsIGNsZWFudXBzLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BpcGVsaW5lX2luaXQpLCAoZ3N0X3BpcGVsaW5lX3Byb3ZpZGVfY2xvY2tfZnVuYyk6CgkgIFRoZSBwaXBlbGluZSBwcm92aWRlcyBhIGJ1cy4KCjIwMDUtMDktMjkgMDI6MzI6MzcgKzAwMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYyAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCk6IFVzZSBnc3Rfc3RydWN0dXJlX2dldF9lbnVtIGluc3RlYWQgb2YgZ3N0X3N0cnVjdHVyZV9nZXRfaW50CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmMgKGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQpOiBVc2UKCSAgZ3N0X3N0cnVjdHVyZV9nZXRfZW51bSBpbnN0ZWFkIG9mIGdzdF9zdHJ1Y3R1cmVfZ2V0X2ludAoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYyAoZ3N0X3N0cnVjdHVyZV9nZXRfZW51bSk6IEltcGwuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oIChnc3Rfc3RydWN0dXJlX2dldF9lbnVtKTogQWRkCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogRGl0dG8KCjIwMDUtMDktMjkgMDE6NTc6MDAgKzAwMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYyAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpOiBVc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYyAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpOiBVc2UKCSAgR1NUX1RZUEVfU1RBVEUgaW5zdGVhZCBvZiBHX1RZUEVfSU5ULCBtYWlubHkgZm9yIGxhbmd1YWdlIGJpbmRpbmdzCgkgIHdoaWNoIGRvZXMgaW50cm9zcGVjdGlvbi4KCSAgUmV2aWV3ZWQgYnkgQ2hyaXN0aWFuIFNjaGFsbGVyCgoyMDA1LTA5LTI4IDE4OjE0OjEzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkgIGZpeGVkIHVtbGF1dHMgaW4gQ2hhbmdlTG9nIGFnYWluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXhlZCB1bWxhdXRzIGluIENoYW5nZUxvZyBhZ2FpbgoKMjAwNS0wOS0yOCAxNzozMDoxMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogZG9uJ3QgZG8gZHVtbXkgZ19zdHJkdXAoKXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzogKGdzdF9kZWJ1Z19sb2dfZGVmYXVsdCk6CgkgIGRvbid0IGRvIGR1bW15IGdfc3RyZHVwKClzCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChvbl9vYmplY3RfY29udHJvbGxlZF9wcm9wZXJ0eV9jaGFuZ2VkKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyksIChnc3RfY29udHJvbGxlcl9uZXdfdmFsaXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX25ld19saXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX3JlbW92ZV9wcm9wZXJ0aWVzX3ZhbGlzdCksIChnc3RfY29udHJvbGxlcl9zZXQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfZ2V0KSwgKGdzdF9jb250cm9sbGVyX3N5bmNfdmFsdWVzKSwKCSAgKGdzdF9jb250cm9sbGVyX2dldF92YWx1ZV9hcnJheSksIChfZ3N0X2NvbnRyb2xsZXJfY2xhc3NfaW5pdCksCgkgIChnc3RfY29udHJvbGxlcl9nZXRfdHlwZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9maW5kX3RpbWVkX3ZhbHVlX25vZGUpOgoJICBjb252ZXJ0IC8vIHRvIC8qKi8gY29tbWVudHMKCjIwMDUtMDktMjggMTY6NDM6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLio6IEFkZGVkIGFzeW5jLW1lc3NhZ2UgYW5kIHN5bmMtbWVzc2FnZSBzaWduYWxzIHRvIHRoZSBidXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKG1hcnNoYWxfVk9JRF9fTUlOSU9CSkVDVCksIChnc3RfYnVzX2NsYXNzX2luaXQpLAoJICAoZ3N0X2J1c19wb3N0KSwgKHBvbGxfZnVuYyksIChnc3RfYnVzX2FzeW5jX3NpZ25hbF9mdW5jKSwKCSAgKGdzdF9idXNfc3luY19zaWduYWxfaGFuZGxlcik6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICBBZGRlZCBhc3luYy1tZXNzYWdlIGFuZCBzeW5jLW1lc3NhZ2Ugc2lnbmFscyB0byB0aGUgYnVzLgoJICBBZGRlZCBoZWxwZXIgQnVzRnVuYyB0byBlbWl0IHNpZ25hbHMgZm9yIGFsbCBwb3N0ZWQgbWVzc2FnZXMuCgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX3R5cGVfZ2V0X25hbWUpLAoJICAoZ3N0X21lc3NhZ2VfdHlwZV90b19xdWFyayksIChnc3RfbWVzc2FnZV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgUmVnaXN0ZXIgcXVhcmtzIGZvciBtZXNzYWdlIG5hbWVzLgoKMjAwNS0wOS0yOCAxNjozOToyOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgYWRkZWQgYW5vdGhlciBjb25zdHJ1Y3RvciBmb3IgbGFuZ3VhZ2UgYmluZGluZ3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX25ld192YWxpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfbmV3X2xpc3QpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICBhZGRlZCBhbm90aGVyIGNvbnN0cnVjdG9yIGZvciBsYW5ndWFnZSBiaW5kaW5ncwoKMjAwNS0wOS0yOCAxNTo0NToyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogYWRkIGFub3RoZXIgY2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfcGlwZWxpbmVfc3VpdGUpOgoJICBhZGQgYW5vdGhlciBjaGVjawoJICAqIGdzdC9nc3RidXMuYzoKCSAgYWRkIHNvbWUgZG9jCgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfaW5pdCk6CgkgIHNsaWdodGx5IG1vcmUgcmVhZGFibGUgY29sb3IgZm9yIHJlZmNvdW50IGRlYnVnZ2luZwoKMjAwNS0wOS0yOCAxMzo0MToyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogU21hbGwgZG9jIGZpeGVzLiBnZXRfY2xvY2sgLT4gcHJvdmlkZV9jbG9jay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGFkZF90b19xdWV1ZSksIChjbGVhcl9xdWV1ZSksIChyZXNldF9kZWdyZWUpLCAodXBkYXRlX2RlZ3JlZSksCgkgIChmaW5kX2VsZW1lbnQpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLAoJICAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX3Jlc3luYyksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfZnJlZSksCgkgIChnc3RfYmluX2l0ZXJhdGVfc29ydGVkKSwgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2Jpbl9kaXNwb3NlKToKCSAgU21hbGwgZG9jIGZpeGVzLiBnZXRfY2xvY2sgLT4gcHJvdmlkZV9jbG9jay4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCksCgkgIChnc3RfZWxlbWVudF9wcm92aWRlc19jbG9jayksIChnc3RfZWxlbWVudF9wcm92aWRlX2Nsb2NrKSwKCSAgKGdzdF9lbGVtZW50X2dldF9jbG9jayksIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgTWFrZSBnZXQvc2V0X2Nsb2NrKCkgc3ltZXRyaWMuIEFkZCBwcm92aWRlX2Nsb2NrIHZtZXRob2Qgc2luY2UKCSAgdGhhdCBpcyBhY3R1YWxseSB3aGF0IHRoaXMgZnVuY3Rpb24gZG9lcy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3BpcGVsaW5lX3Byb3ZpZGVfY2xvY2tfZnVuYyksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X2Nsb2NrKToKCSAgZ2V0X2Nsb2NrIC0+IHByb3ZpZGVfY2xvY2suCgoyMDA1LTA5LTI4IDEzOjA1OjEyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY191bmxvY2spOiBDb21tZW50IGEgYml0IGluIGxpZXUgb2YgcmVhbCBkb2NzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTI4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX3VubG9jayk6IENvbW1lbnQgYSBiaXQgaW4KCSAgbGlldSBvZiByZWFsIGRvY3MuLi4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzogQ2xlYW5lZCB1cCBhIGJpdC4KCjIwMDUtMDktMjggMTI6NTI6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZWxlbWVudHMvOiBNYWtlIGVsZW1lbnQgZGV0YWlscyBzdGF0aWMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBNYWtlIGVsZW1lbnQgZGV0YWlscyBzdGF0aWMuCgoyMDA1LTA5LTI4IDExOjAzOjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBTb21lIGRvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYWRkX3RvX3F1ZXVlKSwgKGNsZWFyX3F1ZXVlKSwgKHJlc2V0X291dGRlZ3JlZSksCgkgICh1cGRhdGVfb3V0ZGVncmVlKSwgKGZpbmRfZWxlbWVudCksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfcmVzeW5jKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9mcmVlKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9zb3J0ZWQpLCAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZSksIChnc3RfYmluX2Rpc3Bvc2UpOgoJICBTb21lIGRvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgQ2xlYW4gdXAgZGlzcG9zZSBoYW5kbGVycy4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X3JlZiksIChnc3Rfb2JqZWN0X3VucmVmKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2Rpc3Bvc2UpOgoJICBDbGVhbiB1cCBkaXNwb3NlIGhhbmRsZXIuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgUmVtb3ZlZCBzcHVyaW91cyBVTkxPQ0suCgoyMDA1LTA5LTI3IDIwOjQwOjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhZGRlZCB0d28gbmV3IGZ1bmN0aW9ucyB0byB0aGUgZG9jcyBkb2N1bWVudHMgYWxsIHVuZG9jdW1lbnRlZCBHc3RYWFhGbGFncyBjb21wbGV0ZWQgc29tZSBpbmNvbXBsZXRlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOgoJICAqIGdzdC9nc3RwaXBlbGluZS5oOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGdzdC9nc3R4bWwuaDoKCSAgYWRkZWQgdHdvIG5ldyBmdW5jdGlvbnMgdG8gdGhlIGRvY3MKCSAgZG9jdW1lbnRzIGFsbCB1bmRvY3VtZW50ZWQgR3N0WFhYRmxhZ3MKCSAgY29tcGxldGVkIHNvbWUgaW5jb21wbGV0ZSBkb2NzCgoyMDA1LTA5LTI3IDE4OjMzOjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IHJlbW92ZSBub3cgdXNlbGVzcyBhbmQgbGVha3kgcmVzdXJyZWN0aW9uIGNvZGUgaW4gZGlzcG9zZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2Rpc3Bvc2UpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9kaXNwb3NlKToKCSAgcmVtb3ZlIG5vdyB1c2VsZXNzIGFuZCBsZWFreSByZXN1cnJlY3Rpb24gY29kZSBpbiBkaXNwb3NlCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2luaXQpOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jcmVhdGUpOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3Rfc2V0X3BhcmVudCk6CgkgIGFkZCBzb21lIGRlYnVnZ2luZwoKMjAwNS0wOS0yNyAxNzowMDoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFVwZGF0ZSBUT0RPLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBVcGRhdGUgVE9ETy4KCSAgKiBnc3QvZ3N0YmluLmM6IChhZGRfdG9fcXVldWUpLCAoY2xlYXJfcXVldWUpLCAocmVzZXRfb3V0ZGVncmVlKSwKCSAgKHVwZGF0ZV9vdXRkZWdyZWUpLCAoZmluZF9lbGVtZW50KSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KSwKCSAgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9yZXN5bmMpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX2ZyZWUpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX3NvcnRlZCksIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBSZW1vdmUgZWxlbWVudCB2YXJpYWJsZSwgd2Uga2VlcCBlbGVtZW50IGluZm8gaW4gdGhlIGl0ZXJhdG9yIG5vdy4KCjIwMDUtMDktMjcgMTY6MzA6MjYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogRml4IGVycm9yLWNoZWNraW5nIHJldHVybiB2YWx1ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTI3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogRml4IGVycm9yLWNoZWNraW5nIHJldHVybgoJICB2YWx1ZXMuCgoyMDA1LTA5LTI3IDE2OjE2OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBFbmFibGUgY2hlY2sgdGhhdCB3b3JrcyBub3cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRW5hYmxlIGNoZWNrIHRoYXQgd29ya3Mgbm93LgoJICAqIGdzdC9nc3RiaW4uYzogKGFkZF90b19xdWV1ZSksIChjbGVhcl9xdWV1ZSksIChyZXNldF9vdXRkZWdyZWUpLAoJICAodXBkYXRlX291dGRlZ3JlZSksIChmaW5kX2VsZW1lbnQpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLAoJICAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX3Jlc3luYyksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfZnJlZSksCgkgIChnc3RfYmluX2l0ZXJhdGVfc29ydGVkKSwgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgUmVkaWQgdGhlIHN0YXRlIGNoYW5nZSBhbGdvcml0aG0gdXNpbmcgYSB0b3BvbG9naWNhbCBzb3J0IGFsZ28uCgkgIEhhbmRsZXMgYWxsIGNhc2VzIGNvcnJlY3RseS4KCSAgRXhwb3NlZCBpdGVyYXRvciBmb3Igc3RhdGUgY2hhbmdlIG9yZGVyLgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIFRlbXAgc3RvcmFnZSBmb3Igc3RhdGUgY2hhbmdlcy4gTmVlZCB0byBnZXQgcmlkIG9mIHRoaXMgc29vbi4KCjIwMDUtMDktMjcgMTU6Mzc6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBMZWFrIGZpeGVzLCB0aGUgZm9sZCBmdW5jdGlvbnMgbmVlZCB0byB1bnJlZiB0aGUgcGFzc2VkIG9iamVjdCBhbmQgX2dldF9wYXJlbnRfKigpIHJldHVybnMgcmVmIHRvIHBhcmVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9pbml0KSwgKGdzdF90ZWVfZG9fcHVzaCk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChpbnRlcnNlY3RfY2Fwc19mdW5jKSwgKGdzdF9wYWRfcHJveHlfZ2V0Y2FwcyksCgkgIChsaW5rX2ZvbGRfZnVuYyksIChnc3RfcGFkX3Byb3h5X3NldGNhcHMpOgoJICBMZWFrIGZpeGVzLCB0aGUgZm9sZCBmdW5jdGlvbnMgbmVlZCB0byB1bnJlZiB0aGUgcGFzc2VkIG9iamVjdCBhbmQKCSAgX2dldF9wYXJlbnRfKigpIHJldHVybnMgcmVmIHRvIHBhcmVudC4KCjIwMDUtMDktMjcgMTM6MjU6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6IFBsdWcgbGVhayBpbiB0ZXN0IGNhc2UgYW5kIGZpeCAnbWFrZSBjaGVjay12YWxncmluZCcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAodGVzdF9tYWtlX3dyaXRhYmxlKToKCSAgUGx1ZyBsZWFrIGluIHRlc3QgY2FzZSBhbmQgZml4ICdtYWtlIGNoZWNrLXZhbGdyaW5kJwoKMjAwNS0wOS0yNyAxMzowNzoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidWZmZXIuYzogU2V0IFJFQURPTkxZIGZsYWcgb24gc3ViYnVmZmVycywgc28gdGhhdCBnc3RfYnVmZmVyX21ha2Vfd3JpdGFibGUoKSB3b3JrcyBjb3JyZWN0bHkgaW4gYWxsIGNpcmN1bXN0YS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3Rfc3ViYnVmZmVyX2luaXQpOgoJICBTZXQgUkVBRE9OTFkgZmxhZyBvbiBzdWJidWZmZXJzLCBzbyB0aGF0IGdzdF9idWZmZXJfbWFrZV93cml0YWJsZSgpCgkgIHdvcmtzIGNvcnJlY3RseSBpbiBhbGwgY2lyY3Vtc3RhbmNlcyAod2UgY291bGQgaGF2ZSBqdXN0IGNvcGllZAoJICB0aGUgcGFyZW50IGJ1ZmZlcidzIHJlYWRvbmx5IGZsYWcsIGJ1dCBjb25jZXB0dWFsbHkgaXQgc2VlbXMKCSAgY2xlYW5lciB0byBtYXJrIGFsbCBzdWJidWZmZXJzIGFzIHJlYWQtb25seSkuIChiYXNlZCBvbiBwYXRjaAoJICBieSBBbGVzc2FuZHJvIERlY2luYSwgIzMxNDcxMCkuCgkgICogY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoY3JlYXRlX3JlYWRfb25seV9idWZmZXIpLAoJICAodGVzdF9tYWtlX3dyaXRhYmxlKSwgKHRlc3Rfc3ViYnVmZmVyX21ha2Vfd3JpdGFibGUpLAoJICAoZ3N0X3Rlc3Rfc3VpdGUpOgoJICBBZGQgc29tZSB0ZXN0cyBmb3IgZ3N0X2J1ZmZlcl9tYWtlX3dyaXRhYmxlKCkuCgoyMDA1LTA5LTI3IDA5OjU3OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiB1c2UgZ3N0X29iamVjdF9oYXNfYW5jZXN0b3IoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2VsZW1lbnRfaXNfc2VtaV9zaW5rKSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgdXNlIGdzdF9vYmplY3RfaGFzX2FuY2VzdG9yKCkuCgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9oYXNfYW5jZXN0b3IpOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgZ3N0X29iamVjdF9oYXNfYW5jZXN0b3IoKSBjb3BpZWQgZnJvbSBnc3RiaW4uYyBhcyBpdCBpcyBhCgkgIHVzZWZ1bGwgZnVuY3Rpb24uCgkgICogdGVzdHMvaW5zdGFudGlhdGUvY3JlYXRlLmM6IChjcmVhdGVfYWxsX2VsZW1lbnRzKToKCSAgKiB0ZXN0cy9sYXQuYzogKGhhbmRvZmZfc3JjKSwgKGhhbmRvZmZfc2luayk6CgkgICogdGVzdHMvc2NoZWQvcnVueG1sLmM6IChtYWluKToKCSAgKiB0ZXN0cy9zZWVraW5nL3NlZWtpbmcxLmM6IChtYWluKToKCSAgKiB0ZXN0cy90aHJlYWRzdGF0ZS90aHJlYWRzdGF0ZTIuYzogKGJ1c19oYW5kbGVyKSwgKHRpbWVvdXRfZnVuYyksCgkgIChtYWluKToKCSAgRml4IGNvbXBpbGF0aW9uIG9mIHNvbWUgdGVzdHMuCgoyMDA1LTA5LTI3IDA5OjI5OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVycm9yLmg6IFJlbW92ZSBjb21tZW50LiBHU1RfVFlQRV9HX0VSUk9SIGlzIGhlcmUgdG8gc3RheSwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgIFJlbW92ZSBjb21tZW50LiBHU1RfVFlQRV9HX0VSUk9SIGlzIGhlcmUgdG8gc3RheSwKCSAgR19UWVBFX0VSUk9SIGhhcyBiZWVuIFdPTlRGSVgnZWQgYnkgdGhlIEdMaWIgZm9sa3MKCSAgKCMzMTY5NjEsICMzMDA2MTApLgoKMjAwNS0wOS0yNiAxODoyMjowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogQWRkZWQgY2hlY2sgdGhhdCBzaG93cyBlcnJvciBpbiBzdGF0ZSBjaGFuZ2Ugb3JkZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9iaW5fc3VpdGUpOgoJICBBZGRlZCBjaGVjayB0aGF0IHNob3dzIGVycm9yIGluIHN0YXRlIGNoYW5nZSBvcmRlci4KCjIwMDUtMDktMjYgMTc6NDY6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IE1ha2Ugc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIHVzZSAzIHF1ZXVlcyBhZ2Fpbiwgd2Ugd2VyZSBhZGRpbmcgZWxlbWVudHMgaW4gdGhlIHdyb25nIG9yZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgIE1ha2Ugc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIHVzZSAzIHF1ZXVlcyBhZ2Fpbiwgd2Ugd2VyZQoJICBhZGRpbmcgZWxlbWVudHMgaW4gdGhlIHdyb25nIG9yZGVyLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9kb191bmxpbmspOgoJICBTb21lIGRlYnVnIGluZm8sCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9kaXNwb3NlKToKCSAgQWRkZWQgc29tZSBkZWJ1ZyBpbmZvIGZpcnN0LgoKMjAwNS0wOS0yNiAxNzo0MDozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZGVzaWduLzogUmVwbGFjZSBhbGwgX3B1bGxfcmVnaW9uKCkgd2l0aCBfcHVsbF9yYW5nZSgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkgIFJlcGxhY2UgYWxsIF9wdWxsX3JlZ2lvbigpIHdpdGggX3B1bGxfcmFuZ2UoKQoKMjAwNS0wOS0yNiAxNjoxOToyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHRyeSB0aGUgZm91cnRoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cnkgdGhlIGZvdXJ0aAoKMjAwNS0wOS0yNiAxNjoxMjowNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGZvbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZm9vCgoyMDA1LTA5LTI2IDE2OjA3OjU0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYyAoX2dzdF92YWx1ZV9pbml0aWFsaXplKTogQmV0dGVyIGZha2VvdXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTI2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R2YWx1ZS5jIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOiBCZXR0ZXIgZmFrZW91dC4KCjIwMDUtMDktMjYgMTU6NDk6MjMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogVXBkYXRlIGZvciBjb250cm9sbGVyIGFwaSBjaGFuZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTI2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogVXBkYXRlIGZvciBjb250cm9sbGVyIGFwaSBjaGFuZ2UuCgoyMDA1LTA5LTI2IDE1OjQzOjMwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBSZW1vdmUgbWVtY2h1bmsgYmVuY2htYXJrIHN0dWZmLCB0aGlzIGlzIHRha2VuIG92ZXIgYnkgR0xpYiBidWcgMTE4NDM5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgICogdGVzdHMvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvbWVtY2h1bms6IFJlbW92ZSBtZW1jaHVuayBiZW5jaG1hcmsgc3R1ZmYsIHRoaXMgaXMgdGFrZW4KCSAgb3ZlciBieSBHTGliIGJ1ZyAxMTg0MzkuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua193YWl0KTogRmFjdG9yIG91dCB0aGUgd2FpdAoJICByb3V0aW5lcyB0byBhIGZ1bmN0aW9uLgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEkgYW0gYSBnb29kIHBlcnNvbiB0b2RheS4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oIChnc3RfY29udHJvbGxlcl9zeW5jX3ZhbHVlcykKCSAgKGdzdF9vYmplY3Rfc3luY192YWx1ZXMpOiBSZW5hbWVkIGZyb20gc2lua192YWx1ZXMuIFVnaC4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOiBVcGRhdGUgZm9yIF9fZ3N0X2NvbnRyb2xsZXJfa2V5LgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jIChfX2dzdF9jb250cm9sbGVyX2tleSk6CgkgIFJlbmFtZWQgZnJvbSBjb250cm9sbGVyX2tleSwgYXMgaXQgaXMgZXhwb3J0ZWQuCgkgICogZ3N0L2dzdHZhbHVlLmMgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6IEZha2Ugb3V0IHRoZSBjb21waWxlci4KCjIwMDUtMDktMjYgMTU6MDM6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cXVlcnl1dGlscy5jOgoJKiBnc3QvZ3N0cXVlcnl1dGlscy5oOgoJICByZW1vdmUgcXVlcnl1dGlscyBoZWFkZXJzIGFmdGVyIG1vdmluZyB0aGUgdHdvIHVzZWQgZnVuY3Rpb25zIHRvIGdzdHF1ZXJ5LiAgYWxzbyBmaXhlcyBidWlsZCBwcm9ibGVtIGZvciBnc3RzaWRkZWMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBxdWVyeXV0aWxzIGhlYWRlcnMgYWZ0ZXIgbW92aW5nIHRoZSB0d28gdXNlZCBmdW5jdGlvbnMKCSAgdG8gZ3N0cXVlcnkuICBhbHNvIGZpeGVzIGJ1aWxkIHByb2JsZW0gZm9yIGdzdHNpZGRlYwoKMjAwNS0wOS0yNiAxMzo0MDoyMSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIENvcnJlY3Qgc3ludGF4IGZvciBkZWJ1ZyBvcHRpb24gaW4gZ3N0LWxhdW5jaCBtYW5wYWdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDb3JyZWN0IHN5bnRheCBmb3IgZGVidWcgb3B0aW9uIGluIGdzdC1sYXVuY2ggbWFucGFnZQoKMjAwNS0wOS0yNiAxMToyMTo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogU29tZSBtb3JlIGRlYnVnZ2luZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19pc19zZWVrYWJsZSksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgU29tZSBtb3JlIGRlYnVnZ2luZyBpbmZvLgoKMjAwNS0wOS0yNSAxODozNDo0OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgYWRkZWQgbW9yZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGdzdC9nc3RpbmRleC5oOgoJICBhZGRlZCBtb3JlIGRvY3MKCjIwMDUtMDktMjUgMTI6MTE6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGlubGluZWQgdGhlIGxhc3QgdHdvIGRvY3MgZmlsZXMgcmVtb3ZlZCB0aGUgdG1wbCBkaXJlY3RvcnkgZnJvbSBjdnMgKG5vIG1vcmUgY29uZmxpY3RzIGhlcmUhKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBpcGVsaW5lLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICBpbmxpbmVkIHRoZSBsYXN0IHR3byBkb2NzIGZpbGVzCgkgIHJlbW92ZWQgdGhlIHRtcGwgZGlyZWN0b3J5IGZyb20gY3ZzIChubyBtb3JlIGNvbmZsaWN0cyBoZXJlISkKCjIwMDUtMDktMjUgMTE6MTk6MjIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGlubGluZWQgdHdvIG1vcmUgZG9jcyBmYWN0b3JlZCBnc3RwYWR0ZW1wbGF0ZSBvdXQgb2YgZ3N0cGFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwYWR0ZW1wbGF0ZS5zZ21sOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpLCAoZ3N0X3BhZF9kaXNwb3NlKSwKCSAgKGdzdF9wYWRfZmluYWxpemUpLCAoZ3N0X3BhZF9zZXRfcGFkX3RlbXBsYXRlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IChnc3RfcGFkX3RlbXBsYXRlX2dldF90eXBlKSwKCSAgKGdzdF9wYWRfdGVtcGxhdGVfY2xhc3NfaW5pdCksIChnc3RfcGFkX3RlbXBsYXRlX2luaXQpLAoJICAoZ3N0X3BhZF90ZW1wbGF0ZV9kaXNwb3NlKSwgKG5hbWVfaXNfdmFsaWQpLAoJICAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0KSwgKGdzdF9wYWRfdGVtcGxhdGVfbmV3KSwKCSAgKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF9jYXBzKSwgKGdzdF9wYWRfdGVtcGxhdGVfZ2V0X2NhcHMpLAoJICAoZ3N0X3BhZF90ZW1wbGF0ZV9wYWRfY3JlYXRlZCk6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgIGlubGluZWQgdHdvIG1vcmUgZG9jcwoJICBmYWN0b3JlZCBnc3RwYWR0ZW1wbGF0ZSBvdXQgb2YgZ3N0cGFkCgoyMDA1LTA5LTI0IDE0OjM1OjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBGaXggdGVzdCBjYXNlOiB3ZSBjYW4ndCByZWx5IG9uIGEgZml4ZWQgc3RhdGUgY2hhbmdlIG9yZGVyIHdoZW4gZ29pbmcgZnJvbSBSRUFEWSA9PiBQQVVTRUQgYmVjYXVzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKHRlc3RfY2hpbGRyZW5fc3RhdGVfY2hhbmdlX29yZGVyX2ZsYWdnZWRfc2luayksCgkgICh0ZXN0X2NoaWxkcmVuX3N0YXRlX2NoYW5nZV9vcmRlcl9zZW1pX3NpbmspOgoJICBGaXggdGVzdCBjYXNlOiB3ZSBjYW4ndCByZWx5IG9uIGEgZml4ZWQgc3RhdGUgY2hhbmdlIG9yZGVyIHdoZW4KCSAgZ29pbmcgZnJvbSBSRUFEWSA9PiBQQVVTRUQgYmVjYXVzZSB0aGUgc2luayBtaWdodCBjb21taXQgaXRzCgkgIG5ldyBzdGF0ZSBmaXJzdCB3aGVuIHRoZSBmaXJzdCBidWZmZXIgY3JlYXRlZCBieSB0aGUgc291cmNlCgkgIHJlYWNoZXMgdGhlIHNpbmsgYmVmb3JlIHRoZSBzb3VyY2UgaGFzIGZpbmlzaGVkIGl0cyBjaGFuZ2Ugc3RhdGUuCgkgIChUZXN0IGNhc2Ugc3RpbGwgZmFpbHMgYXQgdGltZXMsIHNlZSAjMzE2ODU2LCBjb21tZW50IDUgb253YXJkcykKCjIwMDUtMDktMjQgMTQ6MTQ6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBWYXJpb3VzIGRvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YnVzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGZpbHRlci5jOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBWYXJpb3VzIGRvY3VtZW50YXRpb24gdXBkYXRlcy4KCjIwMDUtMDktMjQgMTE6NDE6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGNsb2NrLmg6IFdlbGwsIHRoYXQncyBlbWJhcmFzc2luZy4gIEx1Y2tpbHkgd2Ugd2VyZW4ndCB1c2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgV2VsbCwgdGhhdCdzIGVtYmFyYXNzaW5nLiAgTHVja2lseSB3ZSB3ZXJlbid0IHVzaW5nCgkgIEdTVF9DTE9DS19ESUZGIGFueXdoZXJlLgoKMjAwNS0wOS0yMyAxODowODo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb21tb24vZ3RrLWRvYy5tYWs6IGRvbid0IGZhaWwgb24gYnVpbGRpbmcgWE1MLCBGQzQgc2xhdmUgc2hvd3MgYSBidW5jaCBvZiBkb2MgbWlzc2luZyBiaXRzIHRoYXQgSSBkb24ndCBnZXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL2d0ay1kb2MubWFrOgoJICBkb24ndCBmYWlsIG9uIGJ1aWxkaW5nIFhNTCwgRkM0IHNsYXZlIHNob3dzIGEgYnVuY2ggb2YgZG9jCgkgIG1pc3NpbmcgYml0cyB0aGF0IEkgZG9uJ3QgZ2V0CgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc29tZSBkb2MgdXBkYXRlcwoKMjAwNS0wOS0yMyAxODowMjoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBibHVyYiBhYm91dCBob3cgdGhlIGJ1cyBnb2VzIGludG8gZmx1c2hpbmcgbW9kZSBhbmQgZHJvcHMgYWxsIG1lc3NhZ2VzIHdoZW4gaXRzIGJpbiBnb2VzIGZyb20gUkVBRFkgaW50byBOVUxMIHN0YXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RidXMudHh0OgoJICAqIGdzdC9nc3RidXMuYzoKCSAgQWRkIGJsdXJiIGFib3V0IGhvdyB0aGUgYnVzIGdvZXMgaW50byBmbHVzaGluZyBtb2RlIGFuZAoJICBkcm9wcyBhbGwgbWVzc2FnZXMgd2hlbiBpdHMgYmluIGdvZXMgZnJvbSBSRUFEWSBpbnRvIE5VTEwKCSAgc3RhdGUuCgoyMDA1LTA5LTIzIDE3OjQ2OjA2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGFkZCBhIG1ldGhvZCB0byBnZXQgYSBHc3RDbG9ja1RpbWUgb3V0IG9mIGEgc3RydWN0dXJlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9nZXRfY2xvY2tfdGltZSk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBhZGQgYSBtZXRob2QgdG8gZ2V0IGEgR3N0Q2xvY2tUaW1lIG91dCBvZiBhIHN0cnVjdHVyZQoKMjAwNS0wOS0yMyAxNzoxNzo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogQWRkZWQgdGVzdCB0byBjaGVjayBzdGF0ZSBjaGFuZ2Ugb3JkZXIgaW4gYmlucyAoY2FuIHN0aWxsIGJlIG1hZGUgdG8gZmFpbCBoZXJlIHVuZGVyIGhlYXZ5IGRpc2sgbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6ICh0ZXN0X2NoaWxkcmVuX3N0YXRlX2NoYW5nZV9vcmRlcl9mbGFnZ2VkX3NpbmspLAoJICAodGVzdF9jaGlsZHJlbl9zdGF0ZV9jaGFuZ2Vfb3JkZXJfc2VtaV9zaW5rKSwgKGdzdF9iaW5fc3VpdGUpOgoJICBBZGRlZCB0ZXN0IHRvIGNoZWNrIHN0YXRlIGNoYW5nZSBvcmRlciBpbiBiaW5zIChjYW4gc3RpbGwgYmUgbWFkZQoJICB0byBmYWlsIGhlcmUgdW5kZXIgaGVhdnkgZGlzayBsb2FkOyBiYWlscyBvdXQgd2l0aCAnUHVzaCBvbiBwYWQKCSAgZmFrZXNpbms6c2luazAsIGJ1dCBpdCB3YXMgbm90IGFjdGl2YXRlZCBpbiBwdXNoIG1vZGUnKS4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICBGaXggc3RhdGUgY2hhbmdlIG9yZGVyIHdoZW4gdGhlcmUgaXMgb25seSBhIHNlbWkgc2luayAoIzMxNjg1NikKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2NsYXNzX2luaXQpOgoJICBVc2UgX2NsYXNzX3BlZWtfcGFyZW50KCksIG5vdCBfY2xhc3NfcmVmKCk7IGZpeCBkb2NzIHRvIHNheQoJICAnZGVmYXVsdCBtYWluIGNvbnRleHQnIGluc3RlYWQgb2YgJ21haW5sb29wJyB3aGVyZSB0aGF0IGlzCgkgIHdoYXQncyBtZWFudC4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIEZpeCB0eXBvcyBpbiBkZWJ1ZyBtZXNzYWdlcwoKMjAwNS0wOS0yMyAxNjozNTo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGZpeCBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZG9jcwoKMjAwNS0wOS0yMyAxNTo0ODoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBkb24ndCBicmVhayBkb2NzIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBicmVhayBkb2NzIGJ1aWxkCgoyMDA1LTA5LTIzIDE1OjM2OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHZhcmlvdXMgZG9jIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9SRUFETUU6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jbGFzc19pbml0KSwgKGdzdF9wYWRfY2hhaW4pOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIHZhcmlvdXMgZG9jIHVwZGF0ZXMKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgY2hhbmdlIGFuIGFzc2VydCBpbnRvIGFuIGVycm9yIHVudGlsIGl0IGdldHMgZml4ZWQgcHJvcGVybHkKCjIwMDUtMDktMjMgMTQ6MzE6MjEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGlubGluZWQgMyBtb3JlIGJpaWlpZyBkb2MgZmlsZXMgYW5kIGFkZGVkIHNvbWUgbWlzc2luZyBkb2NzIG9uIHRoZSBmbHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RpbmZvLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RvYmplY3Quc2dtbDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBpbmxpbmVkIDMgbW9yZSBiaWlpaWcgZG9jIGZpbGVzIGFuZCBhZGRlZCBzb21lIG1pc3NpbmcgZG9jcyBvbiB0aGUgZmx5CgoyMDA1LTA5LTIzIDExOjQxOjMwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHB1dCBiYWNrIHNvdXJjZSBpbiByZWdpc3RyeS4gIGFkZCBjaGVja3MgZm9yIGZpbmRfcGx1Z2luLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiBjaGVjay9nc3QvZ3N0cGx1Z2luLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfcGx1Z2luX3N1aXRlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV94bWxfc2F2ZV9wbHVnaW4pOgoJICBwdXQgYmFjayBzb3VyY2UgaW4gcmVnaXN0cnkuICBhZGQgY2hlY2tzIGZvciBmaW5kX3BsdWdpbi4KCSAgKiB0ZXN0c3VpdGUvc3RhdGVzL2Jpbi5jOiAoYXNzZXJ0X3N0YXRlKSwgKGVtcHR5X2JpbiksCgkgICh0ZXN0X2FkZGluZ19vbmVfZWxlbWVudCksIChtYWluKToKCSAgKiB0ZXN0c3VpdGUvc3RhdGVzL2xvY2tlZC5jOiAobWFpbik6CgkgIHNvbWUgY29tcGlsZS9ydW4gZml4ZXMKCjIwMDUtMDktMjIgMjA6MDI6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIGZpeCBsZWFrIGluIHRoZSB0ZXN0IGl0c2VsZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGxlYWsgaW4gdGhlIHRlc3QgaXRzZWxmCgoyMDA1LTA5LTIyIDE4OjA3OjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUHJlcGFyZSBmb3IgbW9yZSBhY2N1cmF0ZSBwb3NpdGlvbiByZXBvcnRpbmcgYW5kIHF1ZXJ5IGhhbmRsaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3Npbmtfc2VuZF9ldmVudCksIChnc3RfYmFzZV9zaW5rX3BlZXJfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSk6CgkgIFByZXBhcmUgZm9yIG1vcmUgYWNjdXJhdGUgcG9zaXRpb24gcmVwb3J0aW5nIGFuZCBxdWVyeQoJICBoYW5kbGluZy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOgoJICBBZGQgc29tZSBjb21tZW50LgoKMjAwNS0wOS0yMiAxNzo0MDo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWVyeS4qOiBNb3JlIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19zZWdtZW50KSwgKGdzdF9xdWVyeV9zZXRfc2VnbWVudCksCgkgIChnc3RfcXVlcnlfcGFyc2Vfc2VnbWVudCk6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIE1vcmUgZG9jdW1lbnRhdGlvbi4KCSAgQWRkIHNlZ21lbnQgcXVlcnkgZm9yIGZ1dHVyZSB1c2UuCgoyMDA1LTA5LTIyIDE2OjUxOjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBTb21lIG1vcmUgZGVidWcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyk6CgkgIFNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZW5kX2V2ZW50KToKCSAgU2ltcGxpZnkgc2VuZF9ldmVudAoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIERvbid0IGtub3cgaG93IGZsYWdzIGdvdCBicm9rZW4uCgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEFkZGVkIG5ldyBxdWVyeS4KCjIwMDUtMDktMjIgMTU6Mzg6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjaGVjay9nc3QvZ3N0dmFsdWUuYzogQWRkIHNpbXBsaXN0aWMgdGVzdCBzdWl0ZSBmb3IgR1NUX1RZUEVfREFURSBzZXJpYWxpc2F0aW9uIGFuZCBkZXNlcmlhbGlzYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAodGVzdF9kYXRlKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIEFkZCBzaW1wbGlzdGljIHRlc3Qgc3VpdGUgZm9yIEdTVF9UWVBFX0RBVEUgc2VyaWFsaXNhdGlvbiBhbmQKCSAgZGVzZXJpYWxpc2F0aW9uLgoKMjAwNS0wOS0yMiAxNTowODowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBHU1RfVFlQRV9EQVRFLCBhIGJveGVkIHR5cGUgdGhhdCB3cmFwcyBHRGF0ZSwgYW5kIHRoZSB1c3VhbCBidW5jaCBvZiB1dGlsaXR5IGZ1bmN0aW9ucyBhbG9uZyB3aXRoIGEgaGFjayB0aGF0IGNoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfc2V0X3ZhbGlzdCksCgkgIChnc3Rfc3RydWN0dXJlX2dldF9kYXRlKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2V0X2RhdGUpLCAoZ3N0X3ZhbHVlX2dldF9kYXRlKSwKCSAgKGdzdF9kYXRlX2NvcHkpLCAoZ3N0X3ZhbHVlX2NvbXBhcmVfZGF0ZSksCgkgIChnc3RfdmFsdWVfc2VyaWFsaXplX2RhdGUpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2RhdGUpLAoJICAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9kYXRlX3N0cmluZyksCgkgIChnc3RfdmFsdWVfdHJhbnNmb3JtX3N0cmluZ19kYXRlKSwgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIEFkZCBHU1RfVFlQRV9EQVRFLCBhIGJveGVkIHR5cGUgdGhhdCB3cmFwcyBHRGF0ZSwgYW5kIHRoZSB1c3VhbAoJICBidW5jaCBvZiB1dGlsaXR5IGZ1bmN0aW9ucyBhbG9uZyB3aXRoIGEgaGFjayB0aGF0IGNoZWNrcyB0aGF0CgkgIGRldmVsb3BlcnMgZG9uJ3QgYWNjaWRlbnRhbGx5IHVzZSBHX1RZUEVfREFURSB3aGVyZSBHU1RfVFlQRV9EQVRFCgkgIGlzIHJlcXVpcmVkLiBQYXJ0IG9mIHRoZSBncmFuZCBzY2hlbWUgaW4gIzE3MDc3Ny4KCjIwMDUtMDktMjIgMTI6MDU6MDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3Rjb25maWcuaC5pbjogUHN5Y2ggb3V0IGd0ay1kb2MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTIyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjogUHN5Y2ggb3V0IGd0ay1kb2MuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIEdTVF9IQVZFX0dMSUJfMl84LgoJICAqIGNoZWNrL01ha2VmaWxlLmFtIChjaGVja19QUk9HUkFNUyk6IEFkZCBnc3RwbHVnaW4gdG8gdGhlIHRlc3RzLgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmMgKHByaW50X2VsZW1lbnRfbGlzdCk6IFBsdWcgc29tZQoJICBpbmNvbnNlcXVlbnRpYWwgbGVha3MuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmMgKGdzdF9yZWdpc3RyeV9nZXRfZGVmYXVsdCk6IERvYy4KCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmMgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9jYWxsX2Z1bmN0aW9uKToKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYyAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jcmVhdGUpOgoJICAqIGdzdC9nc3RpbmRleGZhY3RvcnkuYyAoZ3N0X2luZGV4X2ZhY3RvcnlfY3JlYXRlKTogVXBkYXRlIGZvcgoJICByZWZjb3VudCBjaGFuZ2VzLgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmMgKGdzdF9wbHVnaW5fZmVhdHVyZV9saXN0X2ZyZWUpOiBEb2MuCgkgIChnc3RfcGx1Z2luX2ZlYXR1cmVfbG9hZCk6IERvYywgZG9uJ3QgZWF0IHJlZnMuCgkgICogZ3N0L2dzdHBsdWdpbi5jIChnc3RfcGx1Z2luX2xvYWQpOiBEb2MsIGRvbid0IGVhdCByZWZzLgoJICAoZ3N0X3BsdWdpbl9saXN0X2ZyZWUpOiBEb2MuCgkgIChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6IERvYyB1cGRhdGVzLgoKMjAwNS0wOS0yMiAwOTozMDo0MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jIChnc3RfYnVmZmVyX2dldF9jYXBzKTogTGlrZSBhbGwgb3VyIF9nZXQgYWNjZXNzb3JzIHJldHVybmluZyByZWZjb3VudGVkIG9iamVjdHMsIHJldHVybiBhIHJlZi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJ1ZmZlci5jIChnc3RfYnVmZmVyX2dldF9jYXBzKTogTGlrZSBhbGwgb3VyIF9nZXQKCSAgYWNjZXNzb3JzIHJldHVybmluZyByZWZjb3VudGVkIG9iamVjdHMsIHJldHVybiBhIHJlZi4KCSAgKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmMgKEdTVF9TVEFSVF9URVNUKTogVXNlIHJlZmNvdW50LWlkZW1wb3RlbnQKCSAgYWNjZXNzb3IgZm9yIGNhcHMuIElERU1QT1RFTkNFLiBPaCB5ZXMuCgoyMDA1LTA5LTIxIDIxOjM5OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogQWRkIG11dGV4IHRvIHNlcmlhbGlzZSBhY2Nlc3MgdG8gdGhlIGhhc2ggdGFibGUgd2l0aCB0aGUgZnVuY3Rpb24gcG9pbnRlciA9PiBmdW5jdGlvbiBuYW1lIHN0cmluZyBtYXBwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGdzdC9nc3RpbmZvLmM6IChfZ3N0X2RlYnVnX25hbWVvZl9mdW5jcHRyKSwKCSAgKF9nc3RfZGVidWdfcmVnaXN0ZXJfZnVuY3B0cik6CgkgIEFkZCBtdXRleCB0byBzZXJpYWxpc2UgYWNjZXNzIHRvIHRoZSBoYXNoIHRhYmxlIHdpdGgKCSAgdGhlIGZ1bmN0aW9uIHBvaW50ZXIgPT4gZnVuY3Rpb24gbmFtZSBzdHJpbmcgbWFwcGluZzsKCSAgbWFrZSB0aGF0IGhhc2ggdGFibGUgc3RhdGljIHNjb3BlICgjMzE2ODA5KS4KCSAgKiBnc3QvcmVnaXN0cmllcy8uY3ZzaWdub3JlOgoJICBSZW1vdmUgbGVmdC1vdmVyIGZpbGUuCgoyMDA1LTA5LTIxIDE1OjU1OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6IEFuZCBzb21ldGhpbmcgYWJvdXQgbmV3c2VnbWVudCBldmVudHMgYW5kIGNhcHMtb24tYnVmZmVycyB0byB0aGUgcG9ydGluZyBndWlkZSAoZmVlbCBmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBBbmQgc29tZXRoaW5nIGFib3V0IG5ld3NlZ21lbnQgZXZlbnRzIGFuZCBjYXBzLW9uLWJ1ZmZlcnMgdG8KCSAgdGhlIHBvcnRpbmcgZ3VpZGUgKGZlZWwgZnJlZSB0byBpbXByb3ZlKS4KCjIwMDUtMDktMjEgMTM6MjQ6MzMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICBUZXN0IHRoYXQgcmVtb3ZpbmcgcHJvYmVzIGZyb20gd2l0aGluIHRoZSBwcm9iZSBmdW5jdGlvbnMgd29ya3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAodGVzdF9idWZmZXJfcHJvYmVfb25jZSk6IFRlc3QgdGhhdCByZW1vdmluZyBwcm9iZXMgZnJvbSB3aXRoaW4KCSAgdGhlIHByb2JlIGZ1bmN0aW9ucyB3b3Jrcy4KCjIwMDUtMDktMjEgMTM6MTE6MjIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3R1dGlscy5jICh0ZXN0X2J1ZmZlcl9wcm9iZV9uX3RpbWVzKTogQWRkIHRlc3RzIGZvciBkYXRhIGFuZCBldmVudCBwcm9iZXMgb24gdGhlIHNhbWUgcGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0dXRpbHMuYyAodGVzdF9idWZmZXJfcHJvYmVfbl90aW1lcyk6IEFkZCB0ZXN0cyBmb3IKCSAgZGF0YSBhbmQgZXZlbnQgcHJvYmVzIG9uIHRoZSBzYW1lIHBhZC4KCjIwMDUtMDktMjEgMTI6MjE6MTAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3R1dGlscy5jOiBOZXcgZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdHV0aWxzLmM6IE5ldyBmaWxlLgoJICAodGVzdF9idWZmZXJfcHJvYmVfbl90aW1lcyk6IEEgc2ltcGxlIGJ1ZmZlciBwcm9iZSB0ZXN0LiBNb3JlIHRvCgkgIGNvbWUsIGZvb2xpb3MuCgkgICogZ3N0L2dzdHV0aWxzLmMgKGdzdF9wYWRfYWRkX2J1ZmZlcl9wcm9iZSk6IENvbm5lY3QgdG8KCSAgaGF2ZS1kYXRhOjpidWZmZXIsIG5vdCBoYXZlLWRhdGEuCgkgIChnc3RfcGFkX2FkZF9ldmVudF9wcm9iZSk6IExpa2V3aXNlIGZvciBoYXZlLWRhdGE6OmV2ZW50LgoJICAoZ3N0X3BhZF9hZGRfZGF0YV9wcm9iZSk6IE1vcmUgZG9jcy4gVGhlIHBhcnQgYWJvdXQgJ3Jlc29sdmluZyB0aGUKCSAgcGVlcicgaXNuJ3QgcXVpdGUgcmlnaHQgeWV0IHRob3VnaC4KCSAgKGdzdF9wYWRfcmVtb3ZlX2J1ZmZlcl9wcm9iZSwgZ3N0X3BhZF9yZW1vdmVfZXZlbnRfcHJvYmUpCgkgIChnc3RfcGFkX3JlbW92ZV9kYXRhX3Byb2JlKTogQ2hhbmdlIHRvIHRha2UgdGhlIGd1aW50IGhhbmRsZXJfaWQKCSAgYXMgdGhlaXIgYXJnLCBub3QgdGhlIGZ1bmN0aW9uK2RhdGEsIHdoaWNoIGlzIG1vcmUgZ2xpYi1saWtlLgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9lbWl0X2hhdmVfZGF0YV9zaWduYWwpOiBBZGQgYSBkZXRhaWwgdG8KCSAgdGhlIHNpZ25hbCBlbWlzc2lvbiB0byBpbmRpY2F0ZSBpZiB0aGUgZGF0YSBpcyBhIGJ1ZmZlciBvciBhbgoJICBldmVudC4KCSAgKGdzdF9wYWRfZ2V0X3R5cGUpOiBJbml0aWFsaXplIGJ1ZmZlciBhbmQgZXZlbnQgcXVhcmtzLgoJICAoZ3N0X3BhZF9jbGFzc19pbml0KTogaGF2ZS1kYXRhIGlzIG5vdyBhIGRldGFpbGVkIHNpZ25hbCwgeWVzIGl0CgkgIGlzLgoKMjAwNS0wOS0yMSAxMTo1MjowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IERvbid0IHB1dCBmdW5jdGlvbmFsIGNvZGUgaW4gZ19yZXR1cm5faWZfZmFpbCgpIG9yIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKCkgc3RhdGVtZW50cywgb3RoZXJ3aXNlIHRoaW5ncyB3aWxsIGJyZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX3NpemUpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfc2V0X3ZhbHVlX2Zyb21fc3RyaW5nKSwKCSAgKGdzdF91dGlsX3NldF9vYmplY3RfYXJnKToKCSAgRG9uJ3QgcHV0IGZ1bmN0aW9uYWwgY29kZSBpbiBnX3JldHVybl9pZl9mYWlsKCkgb3IKCSAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoKSBzdGF0ZW1lbnRzLCBvdGhlcndpc2UgdGhpbmdzIHdpbGwKCSAgYnJlYWsgd2hlbiBHX0RJU0FCTEVfQ0hFQ0tTIGlzIGRlZmluZWQgZHVyaW5nIGNvbXBpbGF0aW9uLgoKMjAwNS0wOS0yMSAwOTo0ODo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saWVkIGFub3RoZXIgb25lIGFuZCBhZGRlZCAgc29tZSBvYnZpb3VzIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgaW5saWVkIGFub3RoZXIgb25lIGFuZCBhZGRlZCAgc29tZSBvYnZpb3VzIGRvY3MKCjIwMDUtMDktMjEgMDk6MTM6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuKjogUHJvcGVybHkgaW1wbGVtZW50IGZkc3JjLiBSZW1vdmVkIHNpZ25hbCBhbmQgdGltZW91dCwgYmV0dGVyIGltcGxlbWVudGVkIHNvbWV3aGVyZSBlbHNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZHNyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mZHNyY19pbml0KSwgKGdzdF9mZHNyY19zdGFydCksIChnc3RfZmRzcmNfc3RvcCksCgkgIChnc3RfZmRzcmNfdW5sb2NrKSwgKGdzdF9mZHNyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Zkc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfZmRzcmNfY3JlYXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgUHJvcGVybHkgaW1wbGVtZW50IGZkc3JjLiBSZW1vdmVkIHNpZ25hbCBhbmQgdGltZW91dCwKCSAgYmV0dGVyIGltcGxlbWVudGVkIHNvbWV3aGVyZSBlbHNlLgoKMjAwNS0wOS0yMSAwODo1ODo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saW5lZCBtb3JlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0aW1wbGVtZW50c2ludGVyZmFjZS5zZ21sOgoJICAqIGdzdC9nc3RpbnRlcmZhY2UuYzoKCSAgaW5saW5lZCBtb3JlIGRvY3MKCjIwMDUtMDktMjEgMDg6NDA6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0LzogcmVtb3ZlIG9ic29sZXRlIGRvYyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZW51bXR5cGVzLnNnbWw6CgkgIHJlbW92ZSBvYnNvbGV0ZSBkb2MgZmlsZQoKMjAwNS0wOS0yMSAwNzozNzowMiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogRHJpbmsgYSBsaXR0bGUgYmVlciwgZml4IGEgbGl0dGxlIGxlYWsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKTogRHJpbmsgYQoJICBsaXR0bGUgYmVlciwgZml4IGEgbGl0dGxlIGxlYWsuCgoyMDA1LTA5LTIwIDIwOjU0OjM3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbnVtdHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbXBsZW1lbnRzaW50ZXJmYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXguc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmZvLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkdGVtcGxhdGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwaXBlbGluZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkgIHJlbW92ZSBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGZpbGVzCgoyMDA1LTA5LTIwIDIwOjQwOjAwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtb3JlIGRvY3MgaW5saW5lZCwgc3BsaXR0ZWQgZ3N0aW5kZXgue2MsaH0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RpbmRleC5oOgoJICAqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzogKGdzdF9pbmRleF9mYWN0b3J5X2dldF90eXBlKSwKCSAgKGdzdF9pbmRleF9mYWN0b3J5X2NsYXNzX2luaXQpLCAoZ3N0X2luZGV4X2ZhY3RvcnlfaW5pdCksCgkgIChnc3RfaW5kZXhfZmFjdG9yeV9maW5hbGl6ZSksIChnc3RfaW5kZXhfZmFjdG9yeV9uZXcpLAoJICAoZ3N0X2luZGV4X2ZhY3RvcnlfZGVzdHJveSksIChnc3RfaW5kZXhfZmFjdG9yeV9maW5kKSwKCSAgKGdzdF9pbmRleF9mYWN0b3J5X2NyZWF0ZSksIChnc3RfaW5kZXhfZmFjdG9yeV9tYWtlKToKCSAgKiBnc3QvZ3N0aW5kZXhmYWN0b3J5Lmg6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfbmV3X3ZhbGlzdCk6CgkgIG1vcmUgZG9jcyBpbmxpbmVkLCBzcGxpdHRlZCBnc3RpbmRleC57YyxofQoKMjAwNS0wOS0yMCAyMDoxOTo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBmaXggYSBsZWFrIGluIGNvbnRyb2xsZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBhIGxlYWsgaW4gY29udHJvbGxlcgoKMjAwNS0wOS0yMCAxOToxNjo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBTZXQgc3luYyB0byBGQUxTRSBieSBkZWZhdWx0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfaW5pdCk6CgkgIFNldCBzeW5jIHRvIEZBTFNFIGJ5IGRlZmF1bHQuCgoyMDA1LTA5LTIwIDE3OjM4OjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogTWFrZSBzeW5jIHByb3BlcnR5IHNldHRhYmxlIGZyb20gc3ViY2xhc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pbml0KToKCSAgTWFrZSBzeW5jIHByb3BlcnR5IHNldHRhYmxlIGZyb20gc3ViY2xhc3MuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2luaXQpLAoJICAoZ3N0X2Zha2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBTZXQgc3luYyB0byBGQUxTRSBieSBkZWZhdWx0LgoKMjAwNS0wOS0yMCAxNzozMDozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFRoZSB0aW1lb3V0IGhhbmRsZXIgc2hvdWxkIGhhdmUgbG93ZXIgcHJpb3JpdHkgdGhhbiB0aGUgc291cmNlIHNvIHdlIGRvbid0IHRpbWVvdXQgYmVmb3JlIHBvcHBpbmcgYSBtZXNzYWdlIHdpdGggMCB0aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChwb2xsX2Z1bmMpLCAocG9sbF90aW1lb3V0KSwgKGdzdF9idXNfcG9sbCk6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIFRoZSB0aW1lb3V0IGhhbmRsZXIgc2hvdWxkIGhhdmUgbG93ZXIgcHJpb3JpdHkgdGhhbiB0aGUgc291cmNlCgkgIHNvIHdlIGRvbid0IHRpbWVvdXQgYmVmb3JlIHBvcHBpbmcgYSBtZXNzYWdlIHdpdGggMCB0aW1lb3V0LgoJICBEdW1wIGVycm9yIG1lc3NhZ2VzIGFmdGVyIGZhaWxlZCBzdGF0ZSBjaGFuZ2UuCgoyMDA1LTA5LTIwIDE3OjIxOjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogRml4IHR3byB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgRml4IHR3byB0eXBvcy4KCjIwMDUtMDktMjAgMTU6NDU6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcmVtb3ZlIHRoZSBzeW5jIHByb3BlcnR5IGZyb20gZmFrZXNpbmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RldmVudC5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJICByZW1vdmUgdGhlIHN5bmMgcHJvcGVydHkgZnJvbSBmYWtlc2luay4KCSAgaGFzIHRoZSBzaWRlIGVmZmVjdCBvZiBzZXR0aW5nIHN5bmMgVFJVRQoJICBmb3IgZmFrZXNpbmssIHdoaWNoIGlzIGEgY2hhbmdlLiAgQW55b25lIHdobyBrbm93cyBob3cKCSAgdG8gZml4IHRoaXMgbmljZWx5IGluIGEgR09iamVjdC15IHdheSwgZmVlbCBmcmVlLgoKMjAwNS0wOS0yMCAxNToxOTowOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDogcmVtb3ZlIHByb2JlIHJlZnNlY3Rpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgcmVtb3ZlIHByb2JlIHJlZnNlY3Rpb24KCjIwMDUtMDktMjAgMTI6NTA6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBkaXNhYmxlIHZhbGdyaW5kaW5nIHRoZSBjb250cm9sbGVyIHRlc3QgYWdhaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGRpc2FibGUgdmFsZ3JpbmRpbmcgdGhlIGNvbnRyb2xsZXIgdGVzdCBhZ2FpbgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIHVwZGF0ZSBmb3IgYXBpLWNoYW5nZXMKCjIwMDUtMDktMjAgMTI6MDU6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay4qOiBBZGRlZCBzeW5jIHByb3BlcnR5IHRvIGJhc2VzaW5rIHRvIGRpc2FibGUgY2xvY2sgc3luYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX3NldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zaW5rX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZGVkIHN5bmMgcHJvcGVydHkgdG8gYmFzZXNpbmsgdG8gZGlzYWJsZSBjbG9jayBzeW5jLgoKMjAwNS0wOS0yMCAxMTowOTo1MCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmMgKGdzdF9lbGVtZW50X2ZhY3RvcnlfY3JlYXRlKTogQXZvaWQgZWF0aW5nIHRoZSBjYWxsZXIncyByZWZjb3VudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmMgKGdzdF9lbGVtZW50X2ZhY3RvcnlfY3JlYXRlKTogQXZvaWQKCSAgZWF0aW5nIHRoZSBjYWxsZXIncyByZWZjb3VudC4KCSAgKiBnc3QvZ3N0b2JqZWN0LmggKEdTVF9PQkpFQ1RfUkVGQ09VTlQpCgkgIChHU1RfT0JKRUNUX1JFRkNPVU5UX1ZBTFVFKTogQ29uZGl0aW9uYWxseSBmb25kbGUgdGhlIHJpZ2h0CgkgIHJlZmNvdW50LgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbiAoR1NUX0hBVkVfR0xJQl8yXzgpOgoJICAqIGNvbmZpZ3VyZS5hYyAoR1NUX0hBVkVfR0xJQl8yXzhfREVGSU5FKTogTWFrZSB0aGUgYXZhaWxhYmlsaXR5CgkgIG9mIEdMaWIgMi44IHB1YmxpYywgc28gd2UgY2FuIGtub3cgd2hpY2ggcmVmY291bnQgdG8gY2hlY2sgaW4KCSAgdGVzdHMuCgkgICogZ3N0L2dzdG9iamVjdC5jOiBVc2UgdGhlIEdTVF9IQVZFX0dMSUJfMl84IGRlZmluZS4KCSAgKGdzdF9vYmplY3RfaW5pdCk6IE9ubHkgc2V0IHRoZSBnc3QgcmVmY291bnQgaWYgd2UncmUgZ29pbmcgYWhlYWQKCSAgd2l0aCB0aGUgcmVmY291bnQgaGFjay4KCjIwMDUtMDktMjAgMTA6NDE6MDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1vcmUgbGVha3MgcGx1bWJlZCwgYWRkZWQgbW9yZSBkZWJ1Zy1sb2dnaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogKHBsdWdpbl9pbml0KSwgKEdTVF9TVEFSVF9URVNUKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX25ld192YWxpc3QpOgoJICBtb3JlIGxlYWtzIHBsdW1iZWQsIGFkZGVkIG1vcmUgZGVidWctbG9nZ2luZwoJICAqIGdzdC9nc3RtYWNyb3MuaDoKCSAgd2hpdGVzcGFjZSBmaXgKCjIwMDUtMDktMjAgMDk6NDc6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICByZW1vdmUgaW5jbHVkZSBvZiByZW1vdmVkIGhlYWRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGluY2x1ZGUgb2YgcmVtb3ZlZCBoZWFkZXIKCjIwMDUtMDktMjAgMDk6Mjg6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IENvbW1pdCBmcm9tIHRoZSBQb2xpdGljYWwgUGFydHkgRm9yIE1vcmUgQXRvbWljIENWUyBDb21taXRzLCBzbyB0aGF0IHBlb3BsZSBkb24ndCB3YXN0ZSB0b28gbXVjaCBvZiB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoX2dzdF9jbG9ja19pZF9mcmVlKToKCSAgQ29tbWl0IGZyb20gdGhlIFBvbGl0aWNhbCBQYXJ0eSBGb3IgTW9yZSBBdG9taWMgQ1ZTIENvbW1pdHMsCgkgIHNvIHRoYXQgcGVvcGxlIGRvbid0IHdhc3RlIHRvbyBtdWNoIG9mIHRoZWlyIGRheSBmaXNoaW5nCgkgIG91dCBvYnZpb3VzIGxlYWtzIG91dCBvZiBtYXNzaXZlIGNvbW1pdHMuCgkgIE9oLCBhbmQgZml4IGEgcHJldHR5IGRhbW4gb2J2aW91cyBsZWFrIGluIHRoZSBtZW1jaHVuawoJICByZW1vdmFsIGNvZGUuCgoyMDA1LTA5LTIwIDA5OjIzOjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjaGVjay86IHBsdWcgbWVtLWxlYWssIHJlLWFkZCB0byB2YWxncmluZGFibGUgdGVzdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiAocGx1Z2luX2luaXQpLCAoR1NUX1NUQVJUX1RFU1QpOgoJICBwbHVnIG1lbS1sZWFrLCByZS1hZGQgdG8gdmFsZ3JpbmRhYmxlIHRlc3RzCgoyMDA1LTA5LTIwIDA5OjA4OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICB1bmJyZWFrIHRoZSBidWlsZCBmb3IgdGhvc2Ugd2hvIGhhdmUgY2hyb25pYyBhcnRocml0aXMgYW5kIHR5cGluZyAibWFrZSBjaGVjayIgaXMganVzdCB0b28gdGF4aW5nIG9uIHRoZSBoYW5kcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdW5icmVhayB0aGUgYnVpbGQgZm9yIHRob3NlIHdobyBoYXZlIGNocm9uaWMgYXJ0aHJpdGlzCgkgIGFuZCB0eXBpbmcgIm1ha2UgY2hlY2siIGlzIGp1c3QgdG9vIHRheGluZyBvbiB0aGUgaGFuZHMKCjIwMDUtMDktMjAgMDg6MjU6MzIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3QuaDogUmUtYWRkIG1hcnNoYWwgdG8gZ3N0LmgncyBpbmNsdWRlIGxpc3QgLS0gaWYgd2UgcmVhbGx5IHdhbnQgaXQgb3V0LCB5b3Ugc2hvdWxkIGZpeCBwbHVnaW5zIGF0IHRoZSBzYW1lIHRpbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTIwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3QuaDogUmUtYWRkIG1hcnNoYWwgdG8gZ3N0LmgncyBpbmNsdWRlIGxpc3QgLS0gaWYgd2UKCSAgcmVhbGx5IHdhbnQgaXQgb3V0LCB5b3Ugc2hvdWxkIGZpeCBwbHVnaW5zIGF0IHRoZSBzYW1lIHRpbWUuCgoyMDA1LTA5LTIwIDA3OjMyOjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhZGRlZCBtaXNzaW5nIHN5bWJvbHMgdG8gYXBpIGRvY3MgZGlzYWJsZSByZWYtY291bnQgaGFjayBpZiB3ZSBoYXZlIGdsaWIgPj0gMi44CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RvYmplY3QuYzoKCSAgYWRkZWQgbWlzc2luZyBzeW1ib2xzIHRvIGFwaSBkb2NzCgkgIGRpc2FibGUgcmVmLWNvdW50IGhhY2sgaWYgd2UgaGF2ZSBnbGliID49IDIuOAoKMjAwNS0wOS0yMCAwNjoyODozMyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBkb2NzL2dzdC9NYWtlZmlsZS5hbTogSWdub3JlIGEgZmV3IG1vcmUgaW50ZXJuYWwgaGVhZGVycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbTogSWdub3JlIGEgZmV3IG1vcmUgaW50ZXJuYWwgaGVhZGVycwoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6IFJlbW92ZSBvbGQgc2VjdGlvbnMKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBSZW1vdmUgb2xkIHNlY3Rpb25zCgkgICogZG9jcy9nc3QvdG1wbC9nc3RvYmplY3Quc2dtbDogdXBkYXRlCgkgICogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDogdXBkYXRlCgkgICogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW5mZWF0dXJlLnNnbWw6IHVwZGF0ZQoJICAqIGRvY3MvcmFuZG9tL2RzLzAuOS1zdWdnZXN0ZWQtY2hhbmdlczogdXBkYXRlLgoJICAqIGdzdC9NYWtlZmlsZS5hbTogcmVtb3ZlIG1lbWNodW5rIGFuZCB0cmFzaHN0YWNrLCBzaW5jZSB0aGV5J3JlCgkgIG5vdCB1c2VkLgoJICAqIGdzdC9nc3QuYzogKGdzdF9kZWluaXQpOiByZW5hbWUgZ3N0X3JlZ2lzdHJ5X2RlaW5pdCB0byBfY2xlYW51cAoJICAqIGdzdC9nc3QuaDogZG9uJ3QgaW5jbHVkZSBzb21lIGhlYWRlcnMKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOiBhZGQgZ3N0bWFyc2hhbC5oCgkgICogZ3N0L2dzdGNsb2NrLmM6IERvbid0IHVzZSBtZW1jaHVua3MKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiBBZGQgc29tZSBkb2NzCgkgICogZ3N0L2dzdG9iamVjdC5jOiByZW1vdmUgREVTVFJPWUVEIGZsYWcsIHNpbmNlIGl0J3MgcmVkdW5kYW50CgkgICogZ3N0L2dzdG9iamVjdC5oOiBzYW1lCgkgICogZ3N0L2dzdHBsdWdpbi5jOiBpbmNsdWRlIGdzdG1hY3Jvcy5oCgkgICogZ3N0L2dzdHBsdWdpbi5oOiBkb24ndCBpbmNsdWRlIGdzdG1hY3Jvcy5oLCBzaW5jZSBpdCdzIHByaXZhdGUKCSAgKiBnc3QvZ3N0cXVlcnkuYzogZG9uJ3QgdXNlIG1lbWNodW5rcwoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiByZW5hbWUgZ3N0X3JlZ2lzdHJ5X2RlaW5pdCgpCgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6IHNhbWUKCjIwMDUtMDktMjAgMDU6MTM6MzAgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDogUmVtb3ZlIGRvY3MgZm9yIGdldGJpdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDogUmVtb3ZlIGRvY3MgZm9yIGdldGJpdHMKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvbGlicy90bXBsL2dzdGdldGJpdHMuc2dtbDoKCSAgKiBkb2NzL2xpYnMvdG1wbC9nc3RwdXRiaXRzLnNnbWw6CgoyMDA1LTA5LTIwIDAwOjI3OjM3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IEFkZCBhIHNsZWVwIHRvIGVuc3VyZSBlbGVtZW50cyBoYXZlIGEgY2hhbmNlIHRvIHN0YXJ0IHRoZWlyIHBhZCB0YXNrcyBiZWZvcmUgc2h1dGRvd24uIFJlZHVjZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nZW5lcmljL3N0YXRlcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoc3RhdGVzX3N1aXRlKToKCSAgQWRkIGEgc2xlZXAgdG8gZW5zdXJlIGVsZW1lbnRzIGhhdmUgYSBjaGFuY2UgdG8gc3RhcnQgdGhlaXIKCSAgcGFkIHRhc2tzIGJlZm9yZSBzaHV0ZG93bi4gUmVkdWNlcyByYWN5IHRlc3QgcmVzdWx0cy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZHNyY19pbml0KSwgKGdzdF9mZHNyY19jcmVhdGUpOgoJICBUaW1lIG91dCB0aGUgc2VsZWN0IGV2ZXJ5IG5vdyBhbmQgdGhlbiB0byBjaGVjayBmb3Igc2h1dGRvd24uCgoyMDA1LTA5LTE5IDIwOjAxOjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvZ3N0ZW51bXR5cGVzLio6IFVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvZ3N0ZW51bXR5cGVzLmM6CgkgICogd2luMzIvZ3N0ZW51bXR5cGVzLmg6CgkgIFVwZGF0ZS4KCjIwMDUtMDktMTkgMTY6MzI6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogQXV0b21hdGljYWxseSBQQVVTRSBhbmQgUkVTVU1FIGEgcGlwZWxpbmUgd2hlbiBhIGZsdXNoaW5nIHNlZWsgaXMgcGVyZm9ybWVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGRvX3BpcGVsaW5lX3NlZWspLCAoZ3N0X3BpcGVsaW5lX3NlbmRfZXZlbnQpOgoJICBBdXRvbWF0aWNhbGx5IFBBVVNFIGFuZCBSRVNVTUUgYSBwaXBlbGluZSB3aGVuIGEgZmx1c2hpbmcgc2VlawoJICBpcyBwZXJmb3JtZWQuCgkgIFJlbW92ZWQgb2xkIGZpbGVzLgoKMjAwNS0wOS0xOSAxNjoyODo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIHdoaXRlc3BhY2UgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIGZpeAoKMjAwNS0wOS0xOSAxNToxMjoyNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5Lmg6IFNwYWNpbmcgZml4ZW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOiBTcGFjaW5nIGZpeGVuLgoKMjAwNS0wOS0xOSAxNDo1NToyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogSGFuZGxlIHN0YXRlIGNoYW5nZSBmYWlsdXJlIG1vcmUgY29ycmVjdGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgSGFuZGxlIHN0YXRlIGNoYW5nZSBmYWlsdXJlIG1vcmUgY29ycmVjdGx5LgoKMjAwNS0wOS0xOSAxNDo0MTo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay86IGVuYWJsZSBjbGVhbnVwIGFnYWluIGFmdGVyIGZpeGluZyB0aGUgbGVhawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9waXBlbGluZXMvY2xlYW51cC5jOiAocnVuX3BpcGVsaW5lKToKCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiAocnVuX3BpcGVsaW5lKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgZW5hYmxlIGNsZWFudXAgYWdhaW4gYWZ0ZXIgZml4aW5nIHRoZSBsZWFrCgkgICogZG9jcy9SRUFETUU6CgkgIHNvbWUgbW9yZSBpbmZvIG9uIGRvY3MKCjIwMDUtMDktMTkgMTQ6MjA6MzcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBkb24ndCBjb21wbGFpbiBhYm91dCBteSBBUk0gLnNvIGZpbGVzLiAgQW5vdGhlciByZWFzb24gd2h5IGl0IGRvZXMgbWFrZSBzZW5zZSB0byBoYXZlIHBsdWdpbnMgZm9sbG93IGEgc3RhbmRhcmQgZmlsZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IGNvbXBsYWluIGFib3V0IG15IEFSTSAuc28gZmlsZXMuICBBbm90aGVyIHJlYXNvbiB3aHkgaXQgZG9lcyBtYWtlIHNlbnNlCgkgIHRvIGhhdmUgcGx1Z2lucyBmb2xsb3cgYSBzdGFuZGFyZCBmaWxlIG5hbWUgcGF0dGVybiBsaWtlIGxpYmdzdCh3aGF0ZXZlcikuc28KCjIwMDUtMDktMTkgMTQ6MDk6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IHJlLWVuYWJsZSB0ZXN0cyBub3cgdGhhdCBsZWFrcyBhcmUgcGx1Z2dlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgcmUtZW5hYmxlIHRlc3RzIG5vdyB0aGF0IGxlYWtzIGFyZSBwbHVnZ2VkCgkgICogY2hlY2svZ3N0L2dzdC5jOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgYWRkIHNvbWUgbW9yZSB0ZXN0cyB3aGlsZSBmaXhpbmcgbGVha3MKCSAgKiBjb21tb24vY2hlY2subWFrOgoJICBtYWtlIHN1cmUgYmluYXJpZXMgYXJlIHVwdG9kYXRlIHdoZW4gdmFsZ3JpbmRpbmcvZ2RiaW5nCgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICByZW1vdmUgYSByZWYgdG9vIG1hbnksIGFuZCBhZGQgYSBGSVhNRSBmb3Igd2hlbiB3ZSBnZXQKCSAgcm91bmQgdG8gZGlzcG9zaW5nIG9mIGNsYXNzZXMKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIGZpeCB0aGUgcmVmY291bnRpbmcgd2hlbiBsb2FkaW5nIGEgcGx1Z2luIGZyb20gYSBmaWxlIGFuZAoJICB0aGUgY29kZSBwcmV0ZW5kcyB0aGF0IHRoZSBwb2ludGVyIGlzIHRoZSBzYW1lIGV2ZW4gdGhvdWdoCgkgIG9mIGNvdXJzZSBpdCBjYW4gY2hhbmdlCgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgdW5yZWYgcGx1Z2lucyBtYXJrZWQgY2FjaGVkIChhIGJpdCBjb25mdXNpbmcgYXMgYSBuYW1lKQoJICBhcyB0aGUgZG9jcyBzdGF0ZSBzaG91bGQgYmUgZG9uZQoJICB2YXJpb3VzIGRvYyBhZGRpdGlvbnMgdG8gZXhwbGFpbiByZWZjb3VudGluZwoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICBkZWJ1Z2dpbmcKCjIwMDUtMDktMTkgMTQ6MDk6MzcgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUgc3BlYyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgc3BlYyBmaWxlCgoyMDA1LTA5LTE5IDExOjE4OjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgR3N0QnVzSGFuZGxlciAtPiBHc3RCdXNGdW5jLCByZXR1cm4gdmFsdWUgaGFzIHRoZSBzYW1lIG1lYW5pbmcgYXMgYW55IG90aGVyIEdTb3VyY2UgKEZBTFNFID09IHJlbW92ZSBzb3VyY2UpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChwb3BfbWVzc2FnZXMpLCAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RidXMuYzogKG1lc3NhZ2VfZnVuY19lb3MpLCAobWVzc2FnZV9mdW5jX2FwcCksCgkgIChzZW5kX21lc3NhZ2VzKSwgKEdTVF9TVEFSVF9URVNUKSwgKGdzdGJ1c19zdWl0ZSk6CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzogKHJ1bl9waXBlbGluZSk6CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzogKHJ1bl9waXBlbGluZSksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19oYXZlX3BlbmRpbmcpLCAoZ3N0X2J1c19zb3VyY2VfcHJlcGFyZSksCgkgIChnc3RfYnVzX3NvdXJjZV9jaGVjayksIChnc3RfYnVzX3NvdXJjZV9kaXNwYXRjaCksCgkgIChnc3RfYnVzX2NyZWF0ZV93YXRjaCksIChnc3RfYnVzX2FkZF93YXRjaF9mdWxsKSwKCSAgKGdzdF9idXNfYWRkX3dhdGNoKSwgKHBvbGxfZnVuYyksIChwb2xsX3RpbWVvdXQpLCAoZ3N0X2J1c19wb2xsKToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgICogdG9vbHMvZ3N0LW1kNXN1bS5jOiAoZXZlbnRfbG9vcCk6CgkgIEdzdEJ1c0hhbmRsZXIgLT4gR3N0QnVzRnVuYywgcmV0dXJuIHZhbHVlIGhhcyB0aGUgc2FtZSBtZWFuaW5nIGFzCgkgIGFueSBvdGhlciBHU291cmNlIChGQUxTRSA9PSByZW1vdmUgc291cmNlKS4KCSAgX2FkZF93YXRjaCgpIGFuZCBfYWRkX3dhdGNoX2Z1bGwoKSBub3cgdGFrZSBhIE1lc3NhZ2VUeXBlIG1hc2sgdG8KCSAgb25seSBoYW5kbGUgc3BlY2lmaWMgdHlwZXMgb2YgbWVzc2FnZXMuCgkgIF9wb2xsKCkgcmV0dXJucyB0aGUgR3N0TWVzc2FnZSBpbnN0ZWFkIG9mIHRoZSBtZXNzYWdlIHR5cGUgdG8gYXZvaWQKCSAgcmFjZSBjb25kaXRpb25zLgoJICBfaGF2ZV9wZW5kaW5nKCkgdGFrZXMgYSBNZXNzYWdlVHlwZSBtYXNrIG5vdyB0b28uCgkgIEFkZGVkIHRlc3RzdWl0ZSBmb3IgbXVsdGlwbGUgYnVzIHdhdGNoZXMuCgkgIEZpeCB0ZXN0c3VpdGVzIGFuZCBhcHBsaWNhdGlvbnMgZm9yIG5ldyBidXMgQVBJLgoKMjAwNS0wOS0xOCAyMjoxNToyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgbWFyayBhIGJ1bmNoIG9mIHRoZSB0ZXN0cyBhcyB0byBmaXggdW50aWwgd2UgZml4IHRoZW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1hcmsgYSBidW5jaCBvZiB0aGUgdGVzdHMgYXMgdG8gZml4IHVudGlsIHdlIGZpeCB0aGVtCgoyMDA1LTA5LTE4IDIxOjQwOjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbW1vbi9jaGVjay5tYWs6IHVzZSBHU1RfUExVR0lOIHNldHRpbmdzIGZvciB2YWxncmluZCB0ZXN0cyBhcyB3ZWxsLCBzbyB3ZSdyZSB2YWxncmluZGluZyB0aGUgY29ycmVjdCB0aGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vY2hlY2subWFrOgoJICB1c2UgR1NUX1BMVUdJTiBzZXR0aW5ncyBmb3IgdmFsZ3JpbmQgdGVzdHMgYXMgd2VsbCwgc28gd2UncmUKCSAgdmFsZ3JpbmRpbmcgdGhlIGNvcnJlY3QgdGhpbmcKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICBwbHVnIGFub3RoZXIgbGVhawoKMjAwNS0wOS0xOCAyMToyNDo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC9nc3QuYzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkgIHZhcmlvdXMgY2xlYW51cHMgYW5kIG1lbWxlYWsgcGx1Z2dpbmcuICBtYWtlIHZhbGdyaW5kIGlzIGhhcHB5IG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHZhcmlvdXMgY2xlYW51cHMgYW5kIG1lbWxlYWsgcGx1Z2dpbmcuICBtYWtlIHZhbGdyaW5kIGlzIGhhcHB5IG5vdy4KCjIwMDUtMDktMTggMjE6MjM6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9nc3QvLmdpdGlnbm9yZToKCSogY29tbW9uOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSAgYWRkIGNoZWNrLXZhbGdyaW5kIHRhcmdldAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGNoZWNrLXZhbGdyaW5kIHRhcmdldAoKMjAwNS0wOS0xOCAwOToxNToxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgbG9hZGluZyBhIHBsdWdpbiBjYW4gcmV0dXJuIE5VTEwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGxvYWRpbmcgYSBwbHVnaW4gY2FuIHJldHVybiBOVUxMCgoyMDA1LTA5LTE4IDA3OjQxOjI4ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IFJldmVydCB0aGUgR09wdGlvbiBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiBSZXZlcnQgdGhlIEdPcHRpb24gY29kZS4KCjIwMDUtMDktMTggMDY6NTk6MjUgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IEZpeCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOiBGaXggZW52aXJvbm1lbnQgdmFyaWFibGVzLgoJICAqIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzogRml4IGZvciBBUEkgY2hhbmdlcy4KCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiBGaXggZm9yIEFQSSBjaGFuZ2VzLgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IEZpeCBmb3IgQVBJIGNoYW5nZXMuCgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJICAqIGdzdC9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSAgKiBnc3QvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgKiBnc3Qvc2NoZWR1bGVycy9NYWtlZmlsZS5hbToKCSAgQ2hhbmdlIHJlZ2lzdHJ5IHRvIGtlZXAgdHJhY2sgb2YgYm90aCBwbHVnaW5zIGFuZCBmZWF0dXJlcywKCSAgcmVtb3ZpbmcgdGhlIGZlYXR1cmUgdHJhY2tpbmcgZnJvbSBwbHVnaW5zIHRoZW1zZWx2ZXMuCgoyMDA1LTA5LTE3IDE4OjE0OjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgYWRkIHZhbGdyaW5kIHRhcmdldDsgZGlzYWJsZSBnc3RwbHVnaW4gdW50aWwgaXQgcGFzc2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgdmFsZ3JpbmQgdGFyZ2V0OyBkaXNhYmxlIGdzdHBsdWdpbiB1bnRpbCBpdCBwYXNzZXMKCjIwMDUtMDktMTcgMTg6MTE6MjcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogTWFrZWZpbGUuYW06CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjb21tb246CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBhZGQgdmFsZ3JpbmQgdGFyZ2V0OyBkaXNhYmxlIGdzdHBsdWdpbiB1bnRpbCBpdCBwYXNzZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCB2YWxncmluZCB0YXJnZXQ7IGRpc2FibGUgZ3N0cGx1Z2luIHVudGlsIGl0IHBhc3NlcwoKMjAwNS0wOS0xNiAxMToyNDoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIGFkZCBtaXNpbmcgaW5jbHVkZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1pc2luZyBpbmNsdWRlCgoyMDA1LTA5LTE2IDA4OjE3OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgc2V0IHRoZSByaWdodCB2YXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNldCB0aGUgcmlnaHQgdmFyCgoyMDA1LTA5LTE2IDA4OjE0OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0b29scy9nc3QtcmVnaXN0ZXIuMS5pbjoKCSAgcmVtb3ZlIGdzdC1yZWdpc3RlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGdzdC1yZWdpc3RlcgoKMjAwNS0wOS0xNiAwNDo1NDoyNCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBHZXR0aW5nIHRpcmVkIG9mIGRlYnVnZ2luZy4gIERpc2FibGVkIGFsbCB0aGUgdW5yZWZmaW5nIG9mIHBsdWdpbnMgYW5kIGZlYXR1cmVzLCB3aGljaCBmaXhlcyB0aGUgc2VnZmF1bHRzLCBidXQgb2YgY28uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBHZXR0aW5nIHRpcmVkIG9mIGRlYnVnZ2luZy4gIERpc2FibGVkIGFsbCB0aGUgdW5yZWZmaW5nIG9mCgkgIHBsdWdpbnMgYW5kIGZlYXR1cmVzLCB3aGljaCBmaXhlcyB0aGUgc2VnZmF1bHRzLCBidXQgb2YKCSAgY291cnNlIGxlYWtzIGxpa2UgY3JhenkuICBBdCBsZWFzdCBwbGF5YmluIHdvcmtzLgoKMjAwNS0wOS0xNiAwMzo0NjoxNCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjaGVjay9nc3QvZ3N0cGx1Z2luLmM6IE1vcmUgdGVzdGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0cGx1Z2luLmM6IChyZWdpc3Rlcl9jaGVja19lbGVtZW50cyksCgkgIChHU1RfU1RBUlRfVEVTVCksIChwZWVrKSwgKHN1Z2dlc3QpLCAoZ3N0X3BsdWdpbl9zdWl0ZSk6CgkgIE1vcmUgdGVzdGluZwoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogRml4IHJlZmNvdW50aW5nLgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgoyMDA1LTA5LTE2IDAwOjM3OjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICB1bnZlcmJvc2lmeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdW52ZXJib3NpZnkKCjIwMDUtMDktMTYgMDA6MDg6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgc29tZSB3aGl0ZXNwYWNlIHRvIHRyaWdnZXIgYSBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc29tZSB3aGl0ZXNwYWNlIHRvIHRyaWdnZXIgYSBidWlsZAoKMjAwNS0wOS0xNiAwMDowMjoyNyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0aW5kZXguYzogZ2V0IHJlZmNvdW50aW5nIGNvcnJlY3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmRleC5jOiBnZXQgcmVmY291bnRpbmcgY29ycmVjdC4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogSGFuZGxlIHRoZSBjYXNlIHdoZXJlIGEgZmVhdHVyZS9wbHVnaW4gaXMKCSAgbm90IGZvdW5kLgoKMjAwNS0wOS0xNSAyMzo1MToyNCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjaGVjay86IEFkZCB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzogQWRkIHRlc3QKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IEZpeCBwcm9ibGVtcyBub3RpY2VkIGJ5IHRlc3RzdWl0ZQoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCjIwMDUtMDktMTUgMjA6NTY6MzAgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBJbXBsZW1lbnQgc2VtaS1kZWNlbnQgcmVjb3VudGluZyBhbmQgbG9ja2luZyBpbiBwbHVnaW5zIGFuZCBwbHVnaW4gZmVhdHVyZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogSW1wbGVtZW50IHNlbWktZGVjZW50IHJlY291bnRpbmcgYW5kIGxvY2tpbmcKCSAgaW4gcGx1Z2lucyBhbmQgcGx1Z2luIGZlYXR1cmVzLgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgoyMDA1LTA5LTE1IDE0OjIxOjA4ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIEltcGxlbWVudCBtaXNzaW5nIGZ1bmN0aW9uLiBUaGlzIGlzIGVub3VnaCB0byBnZXQgdGhlIGJhc2ljcyBvZiB0eXBlZmluZGluZyB3b3JraW5nIC0gb2dnZGVtdXggc3VjY2VlZHMgbm93LiBkZWNvZGViaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSW1wbGVtZW50IG1pc3NpbmcgZnVuY3Rpb24uIFRoaXMgaXMgZW5vdWdoIHRvIGdldCB0aGUgYmFzaWNzIG9mCgkgIHR5cGVmaW5kaW5nIHdvcmtpbmcgLSBvZ2dkZW11eCBzdWNjZWVkcyBub3cuIGRlY29kZWJpbiBpcyBzdGlsbCBicm9rZW4uCgoyMDA1LTA5LTE1IDA1OjU4OjM3ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogQWRkIC1uby11bmRlZmluZWQgdG8gR1NUX1BMVUdJTl9MREZMQUdTIChidWcgIzMxNjA3NikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOiBBZGQgLW5vLXVuZGVmaW5lZCB0byBHU1RfUExVR0lOX0xERkxBR1MgKGJ1ZwoJICAjMzE2MDc2KQoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOiBBZGQgLW5vLXVuZGVmaW5lZCB0byBMREZMQUdTIGZvciBsaWJzCgkgICogZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoKMjAwNS0wOS0xNSAwNTo0ODozMCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjb25maWd1cmUuYWM6IFJlbW92ZSBnZXRiaXRzIGxpYnJhcnkuICBOb3RoaW5nIHVzZXMgaXQsIGFuZCBpdCBzaG91bGQgYmUgaW4gc29tZXRoaW5nIGxpa2UgbGlib2lsIGlmIHNvbWVvbmUgZGlkIHdhbnQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOiBSZW1vdmUgZ2V0Yml0cyBsaWJyYXJ5LiAgTm90aGluZyB1c2VzIGl0LCBhbmQKCSAgaXQgc2hvdWxkIGJlIGluIHNvbWV0aGluZyBsaWtlIGxpYm9pbCBpZiBzb21lb25lIGRpZCB3YW50CgkgIHRvIHVzZSBpdC4KCSAgKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9nZXRiaXRzL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2dldGJpdHMvZ2J0ZXN0LmM6CgkgICogbGlicy9nc3QvZ2V0Yml0cy9nZXRiaXRzLmM6CgkgICogbGlicy9nc3QvZ2V0Yml0cy9nZXRiaXRzLmg6CgkgICogbGlicy9nc3QvZ2V0Yml0cy9nc3RnZXRiaXRzX2dlbmVyaWMuYzoKCSAgKiBsaWJzL2dzdC9nZXRiaXRzL2dzdGdldGJpdHNfaTM4Ni5zOgoJICAqIGxpYnMvZ3N0L2dldGJpdHMvZ3N0Z2V0Yml0c19pbmwuaDoKCjIwMDUtMDktMTUgMDU6NDI6MTMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBEaXN0IGdsaWItY29tcGF0LmgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOiBEaXN0IGdsaWItY29tcGF0LmgKCjIwMDUtMDktMTUgMDM6MjA6NDkgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgY29uZmlndXJlLmFjOiBSZW1vdmUgZ3N0L3JlZ2lzdHJpZXMsIHNpbmNlIGl0J3Mgbm8gbG9uZ2VyIHVzZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzogUmVtb3ZlIGdzdC9yZWdpc3RyaWVzLCBzaW5jZSBpdCdzIG5vIGxvbmdlciB1c2VkLgoJICAqIGdzdC9yZWdpc3RyaWVzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuaDoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L3JlZ2lzdHJpZXMvcmVnaXN0cnl0ZXN0LmM6CgoyMDA1LTA5LTE1IDAxOjM4OjMzICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC86IENvbnZlcmdlbmNlIGlzIG5lYXIuICBTZXJpb3VzbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICBDb252ZXJnZW5jZSBpcyBuZWFyLiAgU2VyaW91c2x5LgoKMjAwNS0wOS0xNSAwMTozNDo1MiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ2xpYi1jb21wYXQuKjogQXR0ZW1wdCAjNCB0byBhcHBlYXNlIHRoZSBidWlsZGJvdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOiAoZ19ta2Rpcl93aXRoX3BhcmVudHMpLCAoZ19ta2RpciksIChnX3N0YXQpOgoJICAqIGdzdC9nbGliLWNvbXBhdC5oOgoJICBBdHRlbXB0ICM0IHRvIGFwcGVhc2UgdGhlIGJ1aWxkYm90cy4KCjIwMDUtMDktMTUgMDE6MjY6NDIgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dsaWItY29tcGF0LmM6IEF0dGVtcHQgIzMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOiAoZ19ta2Rpcl93aXRoX3BhcmVudHMpLCAoZ19ta2RpciksIChnX3N0YXQpOgoJICBBdHRlbXB0ICMzLgoKMjAwNS0wOS0xNSAwMToyMDoyMiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ2xpYi1jb21wYXQuYzogQXR0ZW1wdCAjMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6IChnX21rZGlyX3dpdGhfcGFyZW50cyksIChnX21rZGlyKSwgKGdfc3RhdCk6CgkgIEF0dGVtcHQgIzIuCgoyMDA1LTA5LTE1IDAxOjE0OjE3ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9NYWtlZmlsZS5hbTogT2ggeWVhaCwgbGliZ3N0cmVhbWVyLnNvIG5lZWRzIHRvIGNvbnRhaW4gdGhlIG5ldyBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbTogT2ggeWVhaCwgbGliZ3N0cmVhbWVyLnNvIG5lZWRzIHRvIGNvbnRhaW4KCSAgdGhlIG5ldyBmdW5jdGlvbnMuCgoyMDA1LTA5LTE1IDAxOjEwOjUyICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nbGliLWNvbXBhdC4qOiBBZGQgc29tZSBmdW5jdGlvbnMgdGhhdCBhcmUgaW4gbmV3ZXIgdmVyc2lvbnMgb2YgZ2xpYiB0aGFuIHdlIGNhcmUgdG8gcmVxdWlyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6IChnX21rZGlyX3dpdGhfcGFyZW50cyksIChnX21rZGlyKSwgKGdfc3RhdCk6CgkgICogZ3N0L2dsaWItY29tcGF0Lmg6IEFkZCBzb21lIGZ1bmN0aW9ucyB0aGF0IGFyZSBpbiBuZXdlciB2ZXJzaW9ucwoJICBvZiBnbGliIHRoYW4gd2UgY2FyZSB0byByZXF1aXJlLgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBVc2UgdGhlbS4KCjIwMDUtMDktMTUgMDA6NDg6NDUgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgcG8vUE9URklMRVMuaW46IHJlbW92ZSBnc3QtcmVnaXN0ZXIuYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9QT1RGSUxFUy5pbjogcmVtb3ZlIGdzdC1yZWdpc3Rlci5jCgoyMDA1LTA5LTE1IDAwOjQyOjAzICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGRvY3MvZ3N0LzogRG9jdW1lbnRhdGlvbiB1cGRhdGVzIGZvciByZWdpc3RyeSBjaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW5mZWF0dXJlLnNnbWw6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcyBmb3IgcmVnaXN0cnkgY2hhbmdlcy4KCjIwMDUtMDktMTUgMDA6MzU6MTEgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IENvcHkgZ19ta2Rpcl93aXRoX3BhcmVudCgpIGZyb20gZ2xpYiwgYmVjYXVzZSB3ZSBkb24ndCByZXF1aXJlIGdsaWItMi44LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogQ29weSBnX21rZGlyX3dpdGhfcGFyZW50KCkgZnJvbSBnbGliLAoJICBiZWNhdXNlIHdlIGRvbid0IHJlcXVpcmUgZ2xpYi0yLjguCgoyMDA1LTA5LTE1IDAwOjIwOjE0ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBBZGRlZC4gIEVzc2VudGlhbGx5IG1vdmVkIG91dCBvZiB0aGUgcmVnaXN0cmllcyBkaXJlY3RvcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBBZGRlZC4gIEVzc2VudGlhbGx5IG1vdmVkIG91dCBvZiB0aGUKCSAgcmVnaXN0cmllcyBkaXJlY3RvcnkuCgoyMDA1LTA5LTE1IDAwOjEzOjI2ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIHJlbW92ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICAqIGdzdC9nc3RpbmRleC5jOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5cG9vbC5jOiByZW1vdmUKCSAgKiBnc3QvZ3N0cmVnaXN0cnlwb29sLmg6IHJlbW92ZQoJICAqIGdzdC9nc3R0eXBlZmluZC5jOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0dXJpLmM6CgkgICogdG9vbHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvZ3N0LWNvbXBwcmVwLmM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgKiB0b29scy9nc3QtcmVnaXN0ZXIuYzogcmVtb3ZlCgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgUmVnaXN0cnkgcmV3cml0ZS4gIENoYW5nZXMgcmVnaXN0cnkgZnJvbSBiZWluZyBhIGZpbGUgY3JlYXRlZAoJICBieSBhIHRvb2wgaW50byBhIHNpbXBsZSBjYWNoZSBmaWxlIGNyZWF0ZWQgYXV0b21hdGljYWxseSBieQoJICBsaWJnc3RyZWFtZXIuICBSZW1vdmVkIGdzdC1yZWdpc3RlciAoYmVjYXVzZSBpdCdzIG5vIGxvbmdlcgoJICBuZWVkZWQpLiAgUmVtb3ZlIHJlZ2lzdHJ5IHBvb2xzLCBiZWNhdXNlIHdlIG9ubHkgaGF2ZSBvbmUKCSAgcmVnaXN0cnkgaW1wbGVtZW50YXRpb24gKFhNTCkuICBGaXggdXAgb3RoZXIgc3Vic3lzdGVtcyBhcwoJICBuZWNlc3NhcnkuCgoyMDA1LTA5LTE0IDIyOjA1OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZW51bXR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW1wbGVtZW50c2ludGVyZmFjZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXhmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5mby5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZHRlbXBsYXRlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGlwZWxpbmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW5mZWF0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2YWx1ZS5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0Z2V0Yml0cy5zZ21sOgoJICB3aG9vcHMsIHdyb25nIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hvb3BzLCB3cm9uZyBjb21taXQKCjIwMDUtMDktMTQgMjI6MDE6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBkb2NzL1JFQURNRToKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZW51bXR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW1wbGVtZW50c2ludGVyZmFjZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXhmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5mby5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZHRlbXBsYXRlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGlwZWxpbmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW5mZWF0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2YWx1ZS5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0Z2V0Yml0cy5zZ21sOgoJICBub3RlcyBvbiBkb2N1bWVudGluZyBlbGVtZW50cyBhbmQgcGx1Z2lucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbm90ZXMgb24gZG9jdW1lbnRpbmcgZWxlbWVudHMgYW5kIHBsdWdpbnMKCjIwMDUtMDktMTQgMTU6MTY6MzMgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGNvbW1vbjoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBSZXN0IG9mIHRoZSBmaXggZm9yIDMxNjE1NTogZG9uJ3QgY29uZnVzZSBNaW5HVyB3aGVuIHJ1bm5pbmcgZ2xpYi1ta2VudW1zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXN0IG9mIHRoZSBmaXggZm9yIDMxNjE1NTogZG9uJ3QgY29uZnVzZSBNaW5HVyB3aGVuIHJ1bm5pbmcgZ2xpYi1ta2VudW1zCgoyMDA1LTA5LTEzIDE1OjAzOjA1ICswMDAwICBTdGV2ZSBMaG9tbWUgPHN0ZXZlLmxob21tZUBmcmVlLmZyPgoKCSAgZmlsZSBnc3QtdHlwZWZpbmQudmNwcm9qIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSBnc3QtdHlwZWZpbmQudmNwcm9qIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoKMjAwNS0wOS0xMyAxNDo0OToyMyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIERvbid0IHVzZSB3aW5kb3dzIGxpbmtpbmcgYXR0cmlidXRlcyBpbiBNaW5HVwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRG9uJ3QgdXNlIHdpbmRvd3MgbGlua2luZyBhdHRyaWJ1dGVzIGluIE1pbkdXCgoyMDA1LTA5LTEzIDExOjAwOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3R1dGlscy5jOiBBcHBhcmVudGx5IHBlb3BsZSB0aGluayBpdCdzIGJldHRlciBpZiB0aGlzIGZ1bmN0aW9uIGRvZXNuJ3QgdHJ5IHRvIHNldCB0aGUgc3RhdGUgdG8gd2hhdGV2ZXIgc3RhdGUgdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKHNldF9zdGF0ZV9hc3luY190aHJlYWRfZnVuYyksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfYXN5bmMpOgoJICBBcHBhcmVudGx5IHBlb3BsZSB0aGluayBpdCdzIGJldHRlciBpZiB0aGlzIGZ1bmN0aW9uIGRvZXNuJ3QKCSAgdHJ5IHRvIHNldCB0aGUgc3RhdGUgdG8gd2hhdGV2ZXIgc3RhdGUgd2FzIGFza2VkIGZvciBvbiB0aGUgZmlyc3QKCSAgY2FsbCB0byB0aGlzIGZ1bmN0aW9uIGZvciBhbnkgb2JqZWN0LiAgU2VyaW91c2x5LgoKMjAwNS0wOS0xMiAxODoxNDowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBhZGQgYSBnc3RfZWxlbWVudF9zZXRfc3RhdGVfYXN5bmMgbWV0aG9kIHRoYXQgc2V0cyB0aGUgc3RhdGUgYW5kIHN0YXJ0cyBhIHRocmVhZCB0byBtYWtlIHN1cmUgdGhlIHN0YXRlIGNoYW5nZSBjb21wbGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKHNldF9zdGF0ZV9hc3luY190aHJlYWRfZnVuYyksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfYXN5bmMpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBhZGQgYSBnc3RfZWxlbWVudF9zZXRfc3RhdGVfYXN5bmMgbWV0aG9kIHRoYXQKCSAgc2V0cyB0aGUgc3RhdGUgYW5kIHN0YXJ0cyBhIHRocmVhZCB0byBtYWtlIHN1cmUgdGhlIHN0YXRlCgkgIGNoYW5nZSBjb21wbGV0ZXMgYXMgYmVzdCBhcyBpdCBjYW4KCjIwMDUtMDktMTIgMTc6MDE6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGNvZGlmeSBkZXNpZ24rYmVoYXZpb3VyIGluIHRlc3RzdWl0ZSBhZnRlciBkaXNjdXNzaW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb2RpZnkgZGVzaWduK2JlaGF2aW91ciBpbiB0ZXN0c3VpdGUgYWZ0ZXIgZGlzY3Vzc2lvbgoKMjAwNS0wOS0xMiAxNjoxMDoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzLzogYWRkIGEgcXVvdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtcXVvdGVzLnhtbDoKCSAgYWRkIGEgcXVvdGUKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgYWRkIHNvbWUgZGVidWcKCjIwMDUtMDktMTIgMTM6NDU6MDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0LzogUmVtb3ZlIHRoZSByZXF1aXJlbWVudCBmb3Igc3ViLWNsYXNzZXMgdG8gY2FsbCB0aGUgcGFyZW50IGltcGxlbWVudGF0aW9uIG9mIHByZXBhcmVfb3V0cHV0X2J1ZmZlciB3aXRoIGEgd3JhcHBlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl90cmFuc2Zvcm1faXApLAoJICAoZ3N0X2NhcHNmaWx0ZXJfcHJlcGFyZV9idWYpOgoJICBSZW1vdmUgdGhlIHJlcXVpcmVtZW50IGZvciBzdWItY2xhc3NlcyB0byBjYWxsIHRoZSBwYXJlbnQKCSAgaW1wbGVtZW50YXRpb24gb2YgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIHdpdGggYSB3cmFwcGVyIGZ1bmN0aW9uLgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5oOgoJICBGaXggI2RlZmluZSB3cmFwcGVyCgoyMDA1LTA5LTExIDE5OjIyOjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBtb3JlIGRvYyBjbGVhbnVwcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBtb3JlIGRvYyBjbGVhbnVwcwoKMjAwNS0wOS0xMSAxMzowNzoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZG9jIGJ1aWxkIGNsZWFuLCBodXJyYXkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvYyBidWlsZCBjbGVhbiwgaHVycmF5CgoyMDA1LTA5LTExIDEyOjU3OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgdmFyaW91cyBkb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHZhcmlvdXMgZG9jIGZpeGVzCgoyMDA1LTA5LTExIDEyOjAyOjAyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgZml4IHNpbGx5IGJ1ZyB0aGF0IGNhdXNlZCBidWlsZCB0byBmYWlsIHdoZW4gY2hlY2sgaXMgbWlzc2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHNpbGx5IGJ1ZyB0aGF0IGNhdXNlZCBidWlsZCB0byBmYWlsIHdoZW4gY2hlY2sgaXMgbWlzc2luZwoKMjAwNS0wOS0xMSAxMjowMToxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2dzdC86IHJlYXJyYW5nZSBnc3R2YWx1ZSBzZWN0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R2YWx1ZS5zZ21sOgoJICByZWFycmFuZ2UgZ3N0dmFsdWUgc2VjdGlvbgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUpOgoJICBOT05FIC0+IFZPSUQKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIGRvYyB1cGRhdGVzCgoyMDA1LTA5LTExIDExOjU3OjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgZGVidWcgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRlYnVnIGZpeGVzCgoyMDA1LTA5LTA5IDIzOjQ1OjE1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogSGVhZGVyIGluY2x1ZGUgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6CgkgIEhlYWRlciBpbmNsdWRlIGZpeC4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZGVmYXVsdF9wcmVwYXJlX2J1ZiksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBTb21lIG1vcmUgYmFzZXRyYW5zZm9ybSBjaGFuZ2VzIGFuZCBmaXhlcyB0byBlbmFibGUgc3ViLWNsYXNzZXMKCSAgdGhhdCBtb2RpZnkgYnVmZmVyIG1ldGFkYXRhIG9ubHkuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2NsYXNzX2luaXQpLAoJICAoZ3N0X2NhcHNmaWx0ZXJfaW5pdCksIChnc3RfY2Fwc2ZpbHRlcl90cmFuc2Zvcm1faXApLAoJICAoZ3N0X2NhcHNmaWx0ZXJfcHJlcGFyZV9idWYpOgoJICBJZiB0aGUgb3V0cHV0IHBhZCBoYXMgZml4ZWQgYWxsb3dlZCBjYXBzIGFuZCBpbnB1dCBidWZmZXJzCgkgIGRvbid0IGhhdmUgYW55LCBzZXQgdGhlIGZpeGVkIGNhcHMgb24gb3V0Z29pbmcgYnVmZmVycy4KCjIwMDUtMDktMDkgMTg6MDU6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBvYmplY3QgZGVidWdnaW5nIGlzIGdvb2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG9iamVjdCBkZWJ1Z2dpbmcgaXMgZ29vZAoKMjAwNS0wOS0wOSAxNzo0MjoyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOiBNYWtlIHRoZSBlcnJvciBhIGxpdHRsZSBjbGVhcmVyIHdoZW4gdGhlIHRlc3QgZmFpbHMgYmVjYXVzZSBpZGVudGl0eSBtYWRlIGEgY29weSBvZiB0aGUgYnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSB0aGUgZXJyb3IgYSBsaXR0bGUgY2xlYXJlciB3aGVuIHRoZSB0ZXN0IGZhaWxzIGJlY2F1c2UKCSAgaWRlbnRpdHkgbWFkZSBhIGNvcHkgb2YgdGhlIGJ1ZmZlci4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBOZXcgc3ltYm9scyBpbiBnc3RiYXNldHJhbnNmb3JtLmgKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9kZWZhdWx0X3ByZXBhcmVfYnVmKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfdW5pdF9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9wYXNzdGhyb3VnaCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X2luX3BsYWNlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pc19pbl9wbGFjZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBDaGFuZ2UgQmFzZVRyYW5zZm9ybSB0byBzZXBhcmF0ZSBpbl9wbGFjZSBvcGVyYXRlIGZyb20gc2FtZV9jYXBzCgkgIG91dHB1dC4gaW5fcGxhY2UgaW1wbGllcyB0aGF0IHRoZSBlbGVtZW50IGNhbiBwZXJmb3JtIHRoZSB0cmFuc2Zvcm0KCSAgb24gaW5jb21pbmcgYnVmZmVycyBpbi1wbGFjZSwgZXZlbiBpZiB0aGUgY2FwcyBvbiB0aGUgb3V0cHV0IGFyZQoJICBkaWZmZXJlbnQuCgkgIFN1Yi1jbGFzcyBlbGVtZW50cyBjYW4gbm93IGltcGxlbWVudCBzcGVjaWFsIGJ1ZmZlciBhbGxvY2F0aW9uCgkgIG1ldGhvZHMgZm9yIG91dGdvaW5nIGJ1ZmZlcnMgaWYgdGhleSB3aXNoIHRvLgoJICBCaWcgZG9jdW1lbnRhdGlvbiBhZGRpdGlvbi4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfdHJhbnNmb3JtX2lwKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgQ2hhbmdlcyBmb3IgYmFzZXRyYW5zZm9ybSBtb2RpZmljYXRpb25zLgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZHNyY19pbml0KSwgKGdzdF9mZHNyY19jcmVhdGUpOgoJICBDb21waWxlIGZpeC4gRXh0cmEgZGVidWcgb3V0cHV0LgoKMjAwNS0wOS0wOSAxNToxOToyNCArMDAwMCAgU3RldmUgTGhvbW1lIDxzdGV2ZS5saG9tbWVAZnJlZS5mcj4KCgkgIGZpbGUgZ3N0Y29udHJvbC52Y3Byb2ogd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIGdzdGNvbnRyb2wudmNwcm9qIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoKMjAwNS0wOS0wOSAxNDozNDo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9nc3QvZ3N0cGFkLmM6IGFkZCB0ZXN0cyBmb3IgdmFsaWQgcGFkIG5hbWluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksIChuYW1lX2lzX3ZhbGlkKSwKCSAgKGdzdF9wYWRfc3VpdGUpOgoJICBhZGQgdGVzdHMgZm9yIHZhbGlkIHBhZCBuYW1pbmcKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19sb2dfbWVzc2FnZV9mdW5jKSwKCSAgKGdzdF9jaGVja19sb2dfY3JpdGljYWxfZnVuYyk6CgkgIGFkZCBBU1NFUlRfV0FSTklORwoJICByZW1vdmUgcHJpbnRpbmcgb2YgY29kZSwgaXQgaXMgZnJhZ2lsZSB3aGVuIHRoZSBjb2RlIGNvbnRhaW5zCgkgICUgYW5kIHRoZSBsaW5lIG51bWJlciBpcyBlbm91Z2ggaW5mbwoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5oOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfdGVtcGxhdGVfbmV3KToKCSAgZml4IG1lbWxlYWtzCgoyMDA1LTA5LTA5IDEzOjI4OjA2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSAgYW5kIHRoZSBjaGFuZ2Vsb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFuZCB0aGUgY2hhbmdlbG9nCgoyMDA1LTA5LTA5IDEzOjI2OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogc2F5IHdoYXQgQ0hFQ0sgZmxhZ3Mgd2UgdXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgc2F5IHdoYXQgQ0hFQ0sgZmxhZ3Mgd2UgdXNlCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1oZWxwZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1pbnRlcnBvbGF0aW9uLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfcGx1Z2luX2luZm8pOgoJICB3ZSBkb24ndCB1c2UgZGFzaGVzIGluIGhlYWRlciBuYW1lcwoKMjAwNS0wOS0wOSAxMjowMjo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay86IGFkZGluZyBhIHRlc3QgZm9yIHBpcGVsaW5lcyBhbmQgc3RhdGUgY2hhbmdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKHBvcF9tZXNzYWdlcyksIChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfcGlwZWxpbmVfc3VpdGUpLCAobWFpbik6CgkgIGFkZGluZyBhIHRlc3QgZm9yIHBpcGVsaW5lcyBhbmQgc3RhdGUgY2hhbmdlcwoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ2V0X3N0YXRlX2Z1bmMpOgoJICBhZGQgc29tZSBkZWJ1Z2dpbmcKCSAgKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZml4IHVwIHNwZWMgZmlsZQoKMjAwNS0wOS0wOCAxNzoyMzo1NyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJICBWYXJpb3VzIGZpeGVzIGZvciB1bnNlZWthYmxlLCB1bm1tYXBhYmxlLCBhbmQgbm9uLW5vcm1hbCBmaWxlcywgc28gdGhhdCBmYWxsYmFjayB0byByZWFkKCkgcmF0aGVyIHRoYW4gbW1hcCgpIHdvcmtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVmFyaW91cyBmaXhlcyBmb3IgdW5zZWVrYWJsZSwgdW5tbWFwYWJsZSwgYW5kIG5vbi1ub3JtYWwgZmlsZXMsIHNvIHRoYXQKCSAgZmFsbGJhY2sgdG8gcmVhZCgpIHJhdGhlciB0aGFuIG1tYXAoKSB3b3Jrcy4KCSAgQWxsb3cgbmV3c2VnbWVudCBldmVudHMgd2l0aCBzdGFydCA9PSBlbmQsIHNvIHRoYXQgY2FzZXMgd2hlcmUgdGhhdCdzCgkgIGNvcnJlY3Qgd29yayAoZS5nLiBmaWxlc3JjIG9uIGEgemVyby1zaXplIGZpbGUpLgoKMjAwNS0wOS0wOCAxMTo0NToxMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctc3RhdGUueG1sOgoJICBVcGRhdGUgdGhlIG1hbnVhbCBzZWN0aW9uIG9uIHN0YXRlIGNoYW5nZXMgZm9yIHdpbmdvJ3MgbmV3IEFQSQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIHRoZSBtYW51YWwgc2VjdGlvbiBvbiBzdGF0ZSBjaGFuZ2VzIGZvciB3aW5nbydzIG5ldyBBUEkKCjIwMDUtMDktMDcgMTU6MjI6MjkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBDYWxsIGdfbW9kdWxlX2Nsb3NlIHdoZW4gd2UgZG9uJ3QgbG9hZCB0aGUgbW9kdWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgQ2FsbCBnX21vZHVsZV9jbG9zZSB3aGVuIHdlIGRvbid0IGxvYWQgdGhlIG1vZHVsZQoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6CgkgIChnc3RfeG1sX3JlZ2lzdHJ5X2dldF9wcm9wZXJ0eSk6CgkgIFBvcnQgbGVhayBmaXggZnJvbSAwLjgKCjIwMDUtMDktMDcgMTQ6MDg6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHBvL1BPVEZJTEVTLmluOgoJICBtb3JlIHJlbmFtZSBmaXhpbmcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIHJlbmFtZSBmaXhpbmcgLi4uCgoyMDA1LTA5LTA3IDEzOjIyOjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICByZW5hbWVkIGdzdHRhZyAtPiBnc3R0YWdsaXN0LCBnc3R0YWdpbnRlcmZhY2UgLT4gZ3N0dGFnc2V0dGVyIGlubGluZWQgZG9jcyBmb3IgZ3N0dHJhY2UsIGdzdHRyYXNoc3RhY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0cmFjZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dHJhc2hzdGFjay5zZ21sOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogZ3N0L2dzdHRhZy5jOgoJICAqIGdzdC9nc3R0YWcuaDoKCSAgKiBnc3QvZ3N0dGFnaW50ZXJmYWNlLmM6CgkgICogZ3N0L2dzdHRhZ2ludGVyZmFjZS5oOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5oOgoJICAqIGdzdC9nc3R0cmFjZS5jOgoJICAqIGdzdC9nc3R0cmFjZS5oOgoJICAqIGdzdC9nc3R0cmFzaHN0YWNrLmM6CgkgIHJlbmFtZWQgZ3N0dGFnIC0+IGdzdHRhZ2xpc3QsIGdzdHRhZ2ludGVyZmFjZSAtPiBnc3R0YWdzZXR0ZXIKCSAgaW5saW5lZCBkb2NzIGZvciBnc3R0cmFjZSwgZ3N0dHJhc2hzdGFjawoKMjAwNS0wOS0wNyAxMjozNToyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0Lzogc3BsaXR0ZWQgZ3N0dHlwZWZpbmQgaW50byBnc3R0eXBlZmluZCwgZ3N0dHlwZWZpbmRmYWN0b3J5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZ2V0X3R5cGUpLAoJICAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2NsYXNzX2luaXQpLCAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2luaXQpLAoJICAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2Rpc3Bvc2UpLAoJICAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X3VubG9hZF90aHlzZWxmKSwKCSAgKGdzdF90eXBlX2ZpbmRfbG9hZF9wbHVnaW4pLCAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2dldF9saXN0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9nZXRfY2FwcyksCgkgIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZ2V0X2V4dGVuc2lvbnMpLAoJICAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2NhbGxfZnVuY3Rpb24pOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5LmM6CgkgIHNwbGl0dGVkIGdzdHR5cGVmaW5kIGludG8gZ3N0dHlwZWZpbmQsIGdzdHR5cGVmaW5kZmFjdG9yeQoKMjAwNS0wOS0wNyAxMDowNjo1NiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKTogRml4IGEgcmFjZSBjb25kaXRpb24gd2hlcmVieSB0aGUgcGFkJ3MgdGFzayBmdW5jdGlvbiBpcyBlbnRlcmVkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTA3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCk6IEZpeCBhIHJhY2UKCSAgY29uZGl0aW9uIHdoZXJlYnkgdGhlIHBhZCdzIHRhc2sgZnVuY3Rpb24gaXMgZW50ZXJlZCBiZWZvcmUgdGhlCgkgIHBhZF9tb2RlIHZhcmlhYmxlIHdhcyBzZXQuCgoyMDA1LTA5LTA2IDIyOjU3OjA1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQ2F0Y2ggbWlzYmVoYXZpbmcgcGFkX2FsbG9jIGZ1bmN0aW9ucyB0aGF0IGRvbid0IHNldCB1cCBjYXBzIGFuZCBkbyBpdCBmb3IgdGhlbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXIpOgoJICBDYXRjaCBtaXNiZWhhdmluZyBwYWRfYWxsb2MgZnVuY3Rpb25zIHRoYXQgZG9uJ3QKCSAgc2V0IHVwIGNhcHMgYW5kIGRvIGl0IGZvciB0aGVtLgoKMjAwNS0wOS0wNiAyMjowMzowMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzogdGVzdCBmb3IgcGlwZSE9TlVMTAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiAocnVuX3BpcGVsaW5lKToKCSAgdGVzdCBmb3IgcGlwZSE9TlVMTAoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdG1lbWNodW5rLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwYXJzZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnbGlzdC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnc2V0dGVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0eXBlZmluZC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZWZpbmRmYWN0b3J5LnNnbWw6CgkgICogZ3N0L2dzdG1lbWNodW5rLmM6CgkgICogZ3N0L2dzdHBhcnNlLmM6CgkgICogZ3N0L2dzdHRhZy5jOgoJICAqIGdzdC9nc3R0YWdpbnRlcmZhY2UuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSAgaW5saW5lZCBtb3JlIGRvY3MKCjIwMDUtMDktMDYgMTg6MTg6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBhZGQgYSBjaGVjayBmb3IgYSBnaG9zdHBhZCB0aGF0IGRvZXNuJ3QgaGF2ZSBhIHRhcmdldCBiZWluZyBsaW5rZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIGNoZWNrIGZvciBhIGdob3N0cGFkIHRoYXQgZG9lc24ndCBoYXZlIGEgdGFyZ2V0IGJlaW5nIGxpbmtlZAoKMjAwNS0wOS0wNiAxNDoxMToyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gaGVhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBoZWFkCgo9PT0gcmVsZWFzZSAwLjkuMiA9PT0KCjIwMDUtMDktMDYgMTQ6MDI6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUFETUU6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgcmVsZWFzaW5nIDAuOS4yCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC45LjIKCjIwMDUtMDktMDYgMTE6NDU6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJKiBjb21tb246CgkgIHVwZGF0ZSByZWFkbWUgd2l0aCBleHBsYW5hdGlvbiBvZiBtb2R1bGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgcmVhZG1lIHdpdGggZXhwbGFuYXRpb24gb2YgbW9kdWxlcwoKMjAwNS0wOS0wNiAwOTo1MjoyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogZG9jcy9yYW5kb20vQ2hhbmdlTG9nLTAuODoKCSAgY2hhbmdlbG9nIHNwbGl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjaGFuZ2Vsb2cgc3BsaXQKCjIwMDUtMDktMDUgMTc6NTU6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogYXV0b2dlbi5zaDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSAgbWFpbnRlbmFuY2UgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFpbnRlbmFuY2UgdXBkYXRlcwoKMjAwNS0wOS0wNSAxNzo1MzoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGFkZGluZyAtYmFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRpbmcgLWJhZAoKMjAwNS0wOS0wNSAxNjo1NDo1NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuKjogYW5kIHVwZGF0ZSB0byBuZXdlciBBUEkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuYzogYW5kIHVwZGF0ZSB0byBuZXdlciBBUEkuCgkgIEluY2lkZW50YWxseSB0aGV5IHNob3VsZCBiZSBhIGJpdCBmYXN0ZXIgbm93IHRoYXQgdGhleSBkb24ndCBoYXZlCgkgIHRvIHBhcnNlIHRoZSBjYXBzLgoKMjAwNS0wOS0wNSAxNjo1Mjo1NiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuKjogVW0uLi4gcmVzdXJyZWN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuYzogVW0uLi4gcmVzdXJyZWN0Li4uCgoyMDA1LTA5LTA1IDE2OjM2OjQ3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS4qOiBSZW1vdmUgZnJvbSBDVlMsIHRoZXkgd2VyZSByZXBsYWNlZCBieSB0aGUgbGlieG1sIHJlZ2lzdHJ5IGEgd2hpbGUgYmFjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5oOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5LmM6IFJlbW92ZSBmcm9tIENWUywgdGhleSB3ZXJlCgkgIHJlcGxhY2VkIGJ5IHRoZSBsaWJ4bWwgcmVnaXN0cnkgYSB3aGlsZSBiYWNrCgoyMDA1LTA5LTA1IDExOjU0OjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dlbmVyaWMvLmdpdGlnbm9yZToKCSogY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIGRvY3MvUkVBRE1FOgoJKiBleGFtcGxlcy9wd2cvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3B3Zy8uZ2l0aWdub3JlOgoJICBtYWludGVuYW5jZSB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWludGVuYW5jZSB1cGRhdGVzCgoyMDA1LTA5LTA1IDA5OjM4OjM4ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICBSZXZlciB0byAxLjgwIHZlcnNpb24gb2YgdGhpcyBmaWxlIGFzIEdzdFV0aWxzIGlzIG5vdCBhcyBkZWFkIGFzIGl0IHNlZW1lZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2ZXIgdG8gMS44MCB2ZXJzaW9uIG9mIHRoaXMgZmlsZSBhcyBHc3RVdGlscyBpcyBub3QgYXMgZGVhZCBhcyBpdCBzZWVtZWQKCjIwMDUtMDktMDUgMDk6MjM6NDQgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGNvbW1vbjoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgcmVtb3ZlIEdzdFV0aWxzIG1lbnRpb24gYXMgaXQgaXMgbm93IGdvbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBHc3RVdGlscyBtZW50aW9uIGFzIGl0IGlzIG5vdyBnb25lCgoyMDA1LTA5LTA0IDExOjAxOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBuZWVkIHRvIGFkZCAtbGNoZWNrIHRvIHRoZSBwa2djb25maWcgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbmVlZCB0byBhZGQgLWxjaGVjayB0byB0aGUgcGtnY29uZmlnIGZpbGUKCjIwMDUtMDktMDMgMTc6MzY6MjAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBmaXggZm9yIGEgY3JpdGljYWwgd2hlbiBhIG1vZHVsZSByZXR1cm5zIE5VTEwgb24gb3BlbmluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGZvciBhIGNyaXRpY2FsIHdoZW4gYSBtb2R1bGUgcmV0dXJucyBOVUxMIG9uIG9wZW5pbmcKCjIwMDUtMDktMDMgMTc6MDA6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBhZGQgYSBzb3VyY2UgcGx1Z2luIGRlc2NyaXB0aW9uIGZpZWxkLCB0byByZXByZXNlbnQgdGhlIHNvdXJjZSBtb2R1bGUgdGhpcyBwbHVnaW4gaXMgYSBwYXJ0IG9mLiAgQnkgZGVmYXVsdCBHU1RfUExVR0kuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIHNvdXJjZSBwbHVnaW4gZGVzY3JpcHRpb24gZmllbGQsIHRvIHJlcHJlc2VudCB0aGUgc291cmNlCgkgIG1vZHVsZSB0aGlzIHBsdWdpbiBpcyBhIHBhcnQgb2YuICBCeSBkZWZhdWx0IEdTVF9QTFVHSU5fREVGSU5FCgkgIHdpbGwgc2V0IGl0IHRvIFBBQ0tBR0UsIHdoaWNoIGlzIGF1dG9tYWtlJ3MgaWRlYSBvZiB0aGUgbmFtZSBvZgoJICB0aGUgc291cmNlIHByb2plY3QuCgoyMDA1LTA5LTAzIDE2OjE2OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZG9jcy9odG1saW5zdGFsbC5tYWs6CgkgIGZpeCBkaXN0Y2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkaXN0Y2hlY2sKCjIwMDUtMDktMDMgMTQ6MjA6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogTWFrZWZpbGUuYW06CgkqIGRvY3MvaHRtbGluc3RhbGwubWFrOgoJICBlbmFibGUgZG9jcyBidWlsZCBmb3IgZGlzdGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBlbmFibGUgZG9jcyBidWlsZCBmb3IgZGlzdGNoZWNrCgoyMDA1LTA5LTAzIDEzOjU0OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcGx1Z2lucy8uZ2l0aWdub3JlOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3Rkb2MtbWtkYjoKCSogZG9jcy9wbHVnaW5zL2dzdGRvYy1ta3RtcGw6CgkqIGRvY3MvcGx1Z2lucy9nc3Rkb2Mtc2Nhbm9iajoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnR5cGVzLmluOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9hYzNkZWMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvYWMzcGFyc2Uuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvYXVkaW9zY2FsZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9jb2Jpbi5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9kdmRzcmMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZXhhbXBsZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RhdmllbmNvZGVyLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdGpwZWcuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0anBlZ2RlYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RqcGVnZW5jLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdG1wZWcxZW5jb2Rlci5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RtcGVnMmVuYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RtcGVnMnBsYXkuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0bXBlZ19wbGF5LnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdG1wZWdhdWRpby5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RtcGcxMjMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0cGFyc2VhdS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RwYXJzZWF2aS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RwYXJzZXdhdi5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RyZWFtZXItcGx1Z2lucy11bnVzZWQuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0c3BlY3RydW0uc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0djRsc3JjLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHdpbmNvZGVjLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHdpbmRlYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3R3aW5lbmMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0eGEuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0eGluZy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9tZWRpYW4uc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvbXAxdmlkZW9wYXJzZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9tcDJ2aWRlb3BhcnNlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL21wM3BhcnNlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL21wZWcxcGFyc2Uuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvbXBlZzJwYXJzZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9tcGVnMnN1YnQuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvcnRqcGVnZGVjLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3J0anBlZ2VuYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9zbW9vdGguc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvc21vb3Rod2F2ZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9zcGluZGVudGl0eS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9zdGVyZW8uc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvc3luYWVzdGhlc2lhLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3N5c3RlbV9lbmNvZGUuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvdmNkc3JjLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3ZpZGVvc2NhbGUuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvdmlkZW9zaW5rLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3ZvbHVtZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC92b3JiaXNkZWMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvdm9yYmlzZW5jLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3Z1bWV0ZXIuc2dtbDoKCSAgcmVtb3ZlIG9sZCBwbHVnaW5zIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBvbGQgcGx1Z2lucyBkb2NzCgoyMDA1LTA5LTAzIDEzOjQ5OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTWFrZWZpbGUuYW06CgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2ZhcS9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZG9jcy9odG1saW5zdGFsbC5tYWs6CgkqIGRvY3MvbWFudWFsL01ha2VmaWxlLmFtOgoJKiBkb2NzL3B3Zy9NYWtlZmlsZS5hbToKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgY2xlYW4gdXAgZG9jcyBidWlsZCBhIGxpdHRsZTsgaGF2ZSBkb2NkaXIgYmUgYW4gb3ZlcnJpZGFibGUgaW5zdGFsbCBsb2NhdGlvbjsgc2VwYXJhdGUgZ3RrLWRvYyBhbmQgZG9jYm9vayBiaXRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjbGVhbiB1cCBkb2NzIGJ1aWxkIGEgbGl0dGxlOyBoYXZlIGRvY2RpciBiZSBhbiBvdmVycmlkYWJsZSBpbnN0YWxsIGxvY2F0aW9uOyBzZXBhcmF0ZSBndGstZG9jIGFuZCBkb2Nib29rIGJpdHMKCjIwMDUtMDktMDIgMjM6MzY6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHVyaS5oOgoJICB3aGl0ZXNwYWNlIGNsZWFudXBzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIGNsZWFudXBzCgoyMDA1LTA5LTAyIDIzOjE3OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQWRkIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3BhZF9idWZmZXJfYWxsb2MpOgoJICBBZGQgY29tbWVudC4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfaW5pdCksCgkgIChnc3RfZmFrZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIE1ha2Ugc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIHRocmVhZC1zYWZlLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyKToKCSAgU2V0IG9mZnNldCBvbiBnZW5lcmljIGJ1ZmZlciBhbGxvY2F0ZWQgYnkgZmFsbGJhY2suCgoyMDA1LTA5LTAyIDIzOjAzOjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3R0cmFzaHN0YWNrLmg6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCjIwMDUtMDktMDIgMjE6Mzc6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHJ1biB0aGUgd2luZ28tbWFnaWMgc2NyaXB0IGFnYWluc3QgdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpLAoJICAoZ3N0X2NvbnRyb2xsZXJfZmluZF9jb250cm9sbGVkX3Byb3BlcnR5KToKCSAgcnVuIHRoZSB3aW5nby1tYWdpYyBzY3JpcHQgYWdhaW5zdCB0aGUgZG9jcwoKMjAwNS0wOS0wMiAxODozNjowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZG9jcy9nc3QvdG1wbC9nc3RxdWV1ZS5zZ21sOgoJICByZW1vdmVkIGZpbGUgYWdhaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZWQgZmlsZSBhZ2FpbgoKMjAwNS0wOS0wMiAxNzoyMzowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbWVyZ2VkIGVsZW1lbnRkZXRhaWxzIGRvY3MgaW50byBlbGVtZW50ZmFjdG9yeSBkb2NzIGlubGluZWQgYm90aAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGRldGFpbHMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnRmYWN0b3J5LnNnbWw6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RidXMuYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgbWVyZ2VkIGVsZW1lbnRkZXRhaWxzIGRvY3MgaW50byBlbGVtZW50ZmFjdG9yeSBkb2NzCgkgIGlubGluZWQgYm90aAoKMjAwNS0wOS0wMiAxNjo0NDo1NyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuaDogQWRkIG1hZ2ljYWwgcGl4aWUgZHVzdCB0byBtYWtlIGdsaWItbWtlbnVtcyBjb25zaWRlciB0aGlzIGVudW0gYW4gZW51bSBhbmQgbm90IGEgZmxhZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTAyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6IEFkZCBtYWdpY2FsIHBpeGllIGR1c3QgdG8gbWFrZSBnbGliLW1rZW51bXMKCSAgY29uc2lkZXIgdGhpcyBlbnVtIGFuIGVudW0gYW5kIG5vdCBhIGZsYWdzLgoKMjAwNS0wOS0wMiAxNjoxNzoyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbW9yZSBkb2NzIGlubGluZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RnaG9zdHBhZC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0aXRlcmF0b3Iuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdG1hY3Jvcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVhbHBhZC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHJlZ2lzdHJ5cG9vbC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0c3RydWN0dXJlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RzeXN0ZW1jbG9jay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dHJhY2Uuc2dtbDoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgKiBnc3QvZ3N0bWFjcm9zLmg6CgkgICogZ3N0L2dzdG1lbWNodW5rLmM6CgkgICogZ3N0L2dzdG1lbWNodW5rLmg6CgkgICogZ3N0L2dzdHF1ZXVlLmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5cG9vbC5jOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgbW9yZSBkb2NzIGlubGluZWQKCjIwMDUtMDktMDIgMTU6NDI6MDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmggKEdzdFN0YXRlKTogUmVuYW1lZCBmcm9tIEdzdEVsZW1lbnRTdGF0ZSwgY2hhbmdlZCB0byBiZSBhIG5vcm1hbCBlbnVtIGluc3RlYWQgb2YgZmxhZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTAyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlbGVtZW50LmggKEdzdFN0YXRlKTogUmVuYW1lZCBmcm9tIEdzdEVsZW1lbnRTdGF0ZSwKCSAgY2hhbmdlZCB0byBiZSBhIG5vcm1hbCBlbnVtIGluc3RlYWQgb2YgZmxhZ3MuCgkgIChHc3RTdGF0ZUNoYW5nZVJldHVybik6IFJlbmFtZWQgZnJvbSBHc3RFbGVtZW50U3RhdGVSZXR1cm4sIG5hbWVzCgkgIG11bmdlZCB0byBiZSBHU1RfU1RBVEVfQ0hBTkdFXyouCgkgIChHU1RfU1RBVEVfQ0hBTkdFKTogUmVuYW1lZCBmcm9tIEdTVF9TVEFURV9UUkFOU0lUSU9OLCB1cGRhdGVkIHRvCgkgIHdvcmsgd2l0aCB0aGUgbmV3IHN0YXRlIHJlcHJlc2VudGF0aW9uLgoJICAoR3N0U3RhdGVDaGFuZ2UpOiBOZXcgZW51bWVyYXRpb24gb2YgcG9zc2libGUgc3RhdGUgdHJhbnNpdGlvbnMuCgkgIFJlcGxhY2VzIEdTVF9TVEFURV9GT09fVE9fQkFSIHdpdGggR1NUX1NUQVRFX0NIQU5HRV9GT09fVE9fQkFSLgoJICAoR3N0RWxlbWVudENsYXNzOjpjaGFuZ2Vfc3RhdGUpOiBQYXNzIHRoZSBHc3RTdGF0ZUNoYW5nZSBhbG9uZyBhcwoJICBhbiBhcmd1bWVudC4gSGVscHMgbGFuZ3VhZ2UgYmluZGluZ3MsIHNvIHRoZXkgZG9uJ3QgaGF2ZSB0byB1c2UKCSAgdHJpY2t5IGxvY2stbmVlZGluZyBtYWNyb3MgbGlrZSBHU1RfU1RBVEVfQ0hBTkdFICgpLgoJICAqIHNjcmlwdHMvdXBkYXRlLXN0YXRlcyAoZmlsZSk6IE5ldyBzY3JpcHQuIFJ1biBpdCBvbiBhIGZpbGUgdG8KCSAgdXBkYXRlIGl0IGZvciBzdGF0ZSBuYW1pbmcgYW5kIEFQSSBjaGFuZ2VzLiBVcGRhdGVzIGZpbGVzIGluCgkgIHBsYWNlLgoJICAqIEFsbCBmaWxlcyB1cGRhdGVkIGZvciB0aGUgbmV3IEFQSS4KCjIwMDUtMDktMDIgMTI6MTE6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGNsZWFuIHVwIHNwZWMgc29tZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjbGVhbiB1cCBzcGVjIHNvbWUgbW9yZQoKMjAwNS0wOS0wMiAxMjowODo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBmaXggYSBidW5jaCBvZiB1bmNoZWNrZWQgcmV0dXJuIHZhbHVlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHJhY2UuYzogKGdzdF90cmFjZV9mbHVzaCksIChnc3RfdHJhY2VfdGV4dF9mbHVzaCk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF9zZXRfdmFsdWVfZnJvbV9zdHJpbmcpLAoJICAoZ3N0X3V0aWxfc2V0X29iamVjdF9hcmcpOgoJICBmaXggYSBidW5jaCBvZiB1bmNoZWNrZWQgcmV0dXJuIHZhbHVlcwoJICAqIHRvb2xzL2dzdC1jb21wbGV0ZS5jOiAobWFpbik6CgkgICogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGNsZWFuIHVwIGEgbGl0dGxlCgoyMDA1LTA5LTAxIDE5OjA2OjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkb2NzL2dzdC90bXBsLy5naXRpZ25vcmU6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnbGlzdC5zZ21sOgoJICB1cGRhdGVkIC5jdnNpZ25vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZWQgLmN2c2lnbm9yZQoKMjAwNS0wOS0wMSAxODoxMjoxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLio6IEhhbmRsZSBuZXdzZWdtZW50cyBtb3JlIGNvcnJlY3RseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9ldmVudCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgSGFuZGxlIG5ld3NlZ21lbnRzIG1vcmUgY29ycmVjdGx5LgoJICAqIGdzdC9nc3RidXMuYzoKCSAgRml4IGRvY3MuCgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X25ld3NlZ21lbnQpOgoJICBBIG5ld3NlZ21lbnQgY2Fubm90IGhhdmUgYSBzdGFydF90aW1lIG9mIC0xCgoyMDA1LTA5LTAxIDE2OjUzOjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvZ3N0ZW51bXR5cGVzLio6IFVwZGF0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9nc3RlbnVtdHlwZXMuYzoKCSAgKiB3aW4zMi9nc3RlbnVtdHlwZXMuaDoKCSAgVXBkYXRlCgoyMDA1LTA4LTMxIDIxOjAxOjM1ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBSZW1vdmUgZXh0cmFuZW91cyAnY28nIGZyb20gY3ZzIGNvbW1hbmQgaW4gUFdHLCBhcyByZXBvcnRlZCBvbiBpcmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZW1vdmUgZXh0cmFuZW91cyAnY28nIGZyb20gY3ZzIGNvbW1hbmQgaW4gUFdHLCBhcyByZXBvcnRlZCBvbiBpcmMuCgoyMDA1LTA4LTMxIDE4OjQ1OjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6IGZpeGVkIGJvb2xlYW4gYWdhaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpOgoJICBmaXhlZCBib29sZWFuIGFnYWluCgoyMDA1LTA4LTMxIDE1OjI3OjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogYWRkIC1nb29kCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgYWRkIC1nb29kCgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIHJlbW92ZSB3cm9uZyBkb2NzCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9saW5rX2ZpbHRlcmVkKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgYWRkIGdzdF9lbGVtZW50X2xpbmtfZmlsdGVyZWQKCjIwMDUtMDgtMzEgMTQ6MDg6NDUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGlubGluZWQgbW9yZSBkb2NzLCBmaXhlZCBkb3VibGUgaWQtcmVmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RlcnJvci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsdGVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R1cmloYW5kbGVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R1cml0eXBlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R1dGlscy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0eG1sLnNnbWw6CgkgICogZ3N0L2dzdGVycm9yLmM6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgICogZ3N0L2dzdGZpbHRlci5jOgoJICAqIGdzdC9nc3R1cmkuYzoKCSAgKiBnc3QvZ3N0dXJpdHlwZS5jOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R4bWwuYzoKCSAgaW5saW5lZCBtb3JlIGRvY3MsIGZpeGVkIGRvdWJsZSBpZC1yZWYKCjIwMDUtMDgtMzEgMTM6NTM6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFBhc3N0aHJvdWdoIGVsZW1lbnRzIGRvbid0IG5lZWQgdGhlIGNhcHMgYXMgdGhleSBkb24ndCBjYXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgIFBhc3N0aHJvdWdoIGVsZW1lbnRzIGRvbid0IG5lZWQgdGhlIGNhcHMgYXMgdGhleSBkb24ndCBjYXJlLgoKMjAwNS0wOC0zMSAxMzo1MDo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRG9uJ3QgbGVhayByZWZjb3VudHMgb24gYnVmZmVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKToKCSAgRG9uJ3QgbGVhayByZWZjb3VudHMgb24gYnVmZmVycy4KCjIwMDUtMDgtMzEgMTM6NDE6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLio6IEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB3ZSBhcmUgbm90IG5lZ290aWF0ZWQgbW9yZSBncmFjZWZ1bGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHdlIGFyZSBub3QgbmVnb3RpYXRlZCBtb3JlIGdyYWNlZnVsbHkuCgoyMDA1LTA4LTMxIDEyOjU1OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogU2V0IFJFQURPTkxZIGZsYWcgb24gbW1hcCdlZCBidWZmZXJzLCBvdGhlcndpc2UgZ3N0X2J1ZmZlcl9tYWtlX3dyaXRhYmxlKCkgd29uJ3Qgd29yayBwcm9wLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfbW1hcF9idWZmZXJfaW5pdCksCgkgIChnc3RfZmlsZV9zcmNfbWFwX3JlZ2lvbik6CgkgIFNldCBSRUFET05MWSBmbGFnIG9uIG1tYXAnZWQgYnVmZmVycywgb3RoZXJ3aXNlCgkgIGdzdF9idWZmZXJfbWFrZV93cml0YWJsZSgpIHdvbid0IHdvcmsgcHJvcGVybHkgKCMzMTQ3MDgpLgoKMjAwNS0wOC0zMSAxMDowNzoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogcGFzc3Rocm91Z2ggZWxlbWVudHMgY2FuIGV2ZW4gZG8gaW5wbGFjZSBvbiBub24gd3JpdGFibGUgYnVmZmVycyAoYXMgdGhleSBkb24ndCB0b3VjaCB0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgIHBhc3N0aHJvdWdoIGVsZW1lbnRzIGNhbiBldmVuIGRvIGlucGxhY2Ugb24gbm9uIHdyaXRhYmxlCgkgIGJ1ZmZlcnMgKGFzIHRoZXkgZG9uJ3QgdG91Y2ggdGhlbSkuCgoyMDA1LTA4LTMxIDEwOjAwOjA4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IG1vcmUgdGVzdHMgKGhlaGUgSSBoYXZlIHRoZSBtb3N0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IChnc3RfdGVzdF9tb25vX3NvdXJjZV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3Rlc3RfbW9ub19zb3VyY2Vfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF90ZXN0X21vbm9fc291cmNlX2NsYXNzX2luaXQpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICBtb3JlIHRlc3RzIChoZWhlIEkgaGF2ZSB0aGUgbW9zdCkKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIGRlc2NyaWJlIHBvcHBpbmcgbWVzc2FnZXMgd2hlbnVzaW5nIG11bGx0aXBsZSBzb3VyY2VzCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1pbnRlcnBvbGF0aW9uLmM6CgkgIGltcGxlbWVudCBib29sZWFuIHByb3BlcnRpZXMKCjIwMDUtMDgtMzEgMDg6NTc6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBDYW5ub3QgYXNzZXJ0IHRoYXQgdGhlIHJlZmNvdW50IGhhcyB0byBiZSBwb3NpdGl2ZSBzaW5jZSBhIGRpc3Bvc2VkIG9iamVjdCBjYW4gYmUgcmVzdXJlY3RlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9yZWYpOgoJICBDYW5ub3QgYXNzZXJ0IHRoYXQgdGhlIHJlZmNvdW50IGhhcyB0byBiZSBwb3NpdGl2ZQoJICBzaW5jZSBhIGRpc3Bvc2VkIG9iamVjdCBjYW4gYmUgcmVzdXJlY3RlZC4KCjIwMDUtMDgtMzEgMDg6Mzg6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFJldmVydCBjaGFuZ2UsIG5lZWQgdG8gZmlyc3QgZml4IGJhZGx5IGJlaGF2aW5nIGFwcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCk6CgkgIFJldmVydCBjaGFuZ2UsIG5lZWQgdG8gZmlyc3QgZml4IGJhZGx5IGJlaGF2aW5nCgkgIGFwcHMuCgoyMDA1LTA4LTMwIDE5OjQ1OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZWxlbWVudHMvOiBBY3RpdmF0ZSBwYWRzIGJlZm9yZSB1c2luZyB0aGVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6IChzZXR1cF9mYWtlc3JjKToKCSAgKiBjaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOiAoc2V0dXBfaWRlbnRpdHkpOgoJICBBY3RpdmF0ZSBwYWRzIGJlZm9yZSB1c2luZyB0aGVtLgoKMjAwNS0wOC0zMCAxOToyOTo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzogRmx1c2hpbmcgb3V0IDAgYnl0ZXMgaXMgb2sgZm9yIHRoaXMgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX2ZsdXNoKToKCSAgRmx1c2hpbmcgb3V0IDAgYnl0ZXMgaXMgb2sgZm9yIHRoaXMgZnVuY3Rpb24uCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgIG5vIG5ld3NlZ21lbnQgZ2l2ZXMgYSB3YXJuaW5nIGFuZCBzZXRzIHRoZSBzdGFydC9zdG9wIHRvCgkgIGludmFsaWQuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Bhc3N0aHJvdWdoKToKCSAgU29tZSBkZWJ1ZyBpbmZvLgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfcmVmKToKCSAgQ2hlY2sgcmVmY291bnQgaGVyZSB0b28uCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KToKCSAgUGFkcyBhcmUgaW5pdGlhbGx5IGZsdXNoaW5nIGFuZCByZWZ1c2luZyBkYXRhLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfbGlua19wYWRzX2ZpbHRlcmVkKToKCSAgV2hlbiBhZGRpbmcgYSBjYXBzZmlsdGVyIGVsZW1lbnQgbWFrZSBzdXJlIGl0IGhhcyB0aGUKCSAgc2FtZSBzdGF0ZSBhcyB0aGUgcGFyZW50IGJpbi4KCjIwMDUtMDgtMzAgMTc6MjM6MTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1vcmUgZG9jcyBhbmQgdHdvIG1vcmUgaW5saW5lZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3Rmb3JtYXQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHZlcnNpb24uc2dtbDoKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgICogZ3N0L2dzdGZvcm1hdC5jOgoJICAqIGdzdC9nc3Rmb3JtYXQuaDoKCSAgKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJICBtb3JlIGRvY3MgYW5kIHR3byBtb3JlIGlubGluZWQKCjIwMDUtMDgtMzAgMTc6MTI6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogRG9uJ3Qgc3luYyB0byBjbG9jay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2NsYXNzX2luaXQpOgoJICBEb24ndCBzeW5jIHRvIGNsb2NrLgoKMjAwNS0wOC0zMCAwODoxNzo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogdWx0cmFsMzN0IGZ1bmMxMG5zIGRlc2VydmUgdG8gYXBwZWFyIGluIHRoZSBkb2NzIGFjdHVhbHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgdWx0cmFsMzN0IGZ1bmMxMG5zIGRlc2VydmUgdG8gYXBwZWFyIGluIHRoZSBkb2NzIGFjdHVhbHkKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3Rjb21wYXQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGNvbmZpZy5zZ21sOgoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5jOgoJICAqIGdzdC9nc3Rjb21wYXQuaDoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGlubGluZWQgbW9yZSBkb2NzCgoyMDA1LTA4LTI5IDIxOjQxOjAyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBpbmxpbmVkIGFuZCBleHRlbmRlZCBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXJ5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R1dGlscy5zZ21sOgoJICAqIGdzdC9nc3RxdWVyeS5jOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBpbmxpbmVkIGFuZCBleHRlbmRlZCBkb2NzCgoyMDA1LTA4LTI5IDE5OjU5OjUyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IG1vcmUgdGVzdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICBtb3JlIHRlc3RzCgkgICogZG9jcy9nc3QvdG1wbC9nc3R1dGlscy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkgIGluY2x1ZGUgcGF0aCBmaXhlcwoJICAqIGV4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOiAobWFpbik6CgkgIGNvbnRyb2xsZXIgZXhhbXBsZSB3b3JrcyBub3cKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgZG9jIGZpeGVzCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgc2hvdyBwYXJhbSBzcGVjIGZsYWdzCgoyMDA1LTA4LTI5IDE2OjEwOjM2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYyAoZ3N0X3V0aWxfdWludDY0X3NjYWxlKTogTmV3IDM3MzN0IGZ1bmN0MTBuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuYyAoZ3N0X3V0aWxfdWludDY0X3NjYWxlKTogTmV3IDM3MzN0IGZ1bmN0MTBuLgoKMjAwNS0wOC0yOSAwOTo1Mjo0NCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZG9jcy9mYXEvY3ZzLnhtbDoKCSAgTWlub3IgdXBkYXRlcyB0byBkZXZlbG9wZXIgY3ZzIGluc3RydWN0aW9ucywgdG8gbW9yZSBjbG9zZWx5IG1hdGNoIHdoYXQgdGhlIGZyZWVkZXNrdG9wIHBlb3BsZSB3YW50LiBBbHNvLCB0ZXN0IG15IGN2Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNaW5vciB1cGRhdGVzIHRvIGRldmVsb3BlciBjdnMgaW5zdHJ1Y3Rpb25zLCB0byBtb3JlIGNsb3NlbHkgbWF0Y2ggd2hhdAoJICB0aGUgZnJlZWRlc2t0b3AgcGVvcGxlIHdhbnQuIEFsc28sIHRlc3QgbXkgY3ZzIGNvbW1pdCBhY2Nlc3MuLi4KCjIwMDUtMDgtMjggMTc6NDU6NTggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5oIChHU1RfQk9JTEVSUExBVEVfRlVMTCk6IFByb3RvdHlwZSBpbnN0YW5jZV9pbml0IGFzIGhhdmluZyB0d28gYXJndW1lbnRzIGluc3RlYWQgb2YganVzdCBvbmUuIEFsbG93cyBzdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0yOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuaCAoR1NUX0JPSUxFUlBMQVRFX0ZVTEwpOiBQcm90b3R5cGUgaW5zdGFuY2VfaW5pdAoJICBhcyBoYXZpbmcgdHdvIGFyZ3VtZW50cyBpbnN0ZWFkIG9mIGp1c3Qgb25lLiBBbGxvd3Mgc3VwZXJjbGFzc2VzCgkgIHRvIGFjY2VzcyBpbmZvcm1hdGlvbiBvbiBzdWJjbGFzc2VzIC0tIHNlZSB0aGUgdGVycmlibGUgZm9yKCkgbG9vcAoJICBpbiBndHlwZS5jOmdfdHlwZV9jcmVhdGVfaW5zdGFuY2UgZm9yIHRoZSByZWFzb24gd2h5LiBBbGwgY2FsbGVycwoJICBjaGFuZ2VkLgoKMjAwNS0wOC0yNyAxMDo1NzowMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6IHVwZGF0ZSBpbmZvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICB1cGRhdGUgaW5mbwoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGNhcHMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGNsb2NrLnNnbWw6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBhZGRlZCBkZXNjcmlwdGlvbnMgZm9yIGJ1cyBhbmQgbWVzc2FnZQoJICBpbmxpbmUgY2FwcyBhbmQgY2xvY2sgZG9jcwoKMjAwNS0wOC0yNiAyMjozMjo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdG1lc3NhZ2UuKjogZG9jIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgZG9jIGZpeGVzCgoyMDA1LTA4LTI2IDIxOjIzOjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IGZpeCBkaXYtYnktemVybwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX3NpemUpOgoJICBmaXggZGl2LWJ5LXplcm8KCjIwMDUtMDgtMjYgMTQ6MjE6NDMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmMgKHJ1bl9waXBlbGluZSk6IENoZWNrIGVsZW1lbnRfc2V0X3N0YXRlJ3MgcmV0dXJuIHZhbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMjYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYyAocnVuX3BpcGVsaW5lKTogQ2hlY2sKCSAgZWxlbWVudF9zZXRfc3RhdGUncyByZXR1cm4gdmFsLgoJICAodGVzdF8yX2VsZW1lbnRzKTogQWRkIHRlc3QgdGhhdCdzIGJlZW4gZGlzYWJsZWQgZm9yIG1vbnRocy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogQ2xlYW51cHMuIEFkZCBjYW4tYWN0aXZhdGUtcHVzaCBhbmQKCSAgY2FuLWFjdGl2YXRlLXB1bGwgcHJvcGVydGllcy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiBDbGVhbnVwcy4gQWRkIGNhbi1hY3RpdmF0ZS1wdXNoIGFuZAoJICBjYW4tYWN0aXZhdGUtcHVsbCBwcm9wZXJ0aWVzLiBJbXBsZW1lbnQgaXNfc2Vla2FibGUgc28gZmFrZXNyYyBjYW4KCSAgb3BlcmF0ZSBpbiBwdWxsIG1vZGUuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoR3N0QmFzZVNpbmspOiBSZW1vdmUgaGFzLWxvb3AsIGhhcy1jaGFpbgoJICBwcm9wZXJ0aWVzLgoJICAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZSwgZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKQoJICAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdXNoKTogTWFrZSBhY3RpdmF0aW9uIG1vZGUgY2hvb3Npbmcgd29yay4KCSAgQ2xlYW51cHMuCgkgIChnc3RfYmFzZV9zaW5rX2NoYWluLCBnc3RfYmFzZV9zaW5rX2xvb3ApOiBBc3NlcnQgYWN0aXZhdGlvbiBtb2RlCgkgIGlzIHJpZ2h0LiBNYWtlIHB1bGwgbW9kZSB3b3JrLiBQb3N0IGFuIGVvcyBiZWZvcmUgcGF1c2luZyBpbiBwdWxsCgkgIG1vZGUuCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6IFBheSBhdHRlbnRpb24gdG8gdGhlIGNvcmUncwoJICBjaGFuZ2Vfc3RhdGUoKSByZXR1cm4gdmFsLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoR3N0QmFzZVNyYyk6IFJlbW92ZSBoYXMtbG9vcCwKCSAgaGFzLWdldHJhbmdlIHByb3BlcnRpZXMuIENsZWFudXBzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaCAoR3N0QmFzZVNyYyk6IFJlbW92ZSBoYXNfbG9vcCwKCSAgaGFzX2dldHJhbmdlIGFuZCByZXBsYWNlIHdpdGggY2FuX2FjdGl2YXRlX3B1bGwgYW5kCgkgIGNhbl9hY3RpdmF0ZV9wdXNoLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmggKEdzdEJhc2VTaW5rKTogUmVhcnJhbmdlIGZpZWxkcywgYWRkCgkgIGxvY2tpbmcgY29tbWVudHMuIFJlbW92ZSBoYXNfbG9vcCwgaGFzX2NoYWluIGFuZCByZXBsYWNlIHdpdGgKCSAgY2FuX2FjdGl2YXRlX3B1bGwgYW5kIGNhbl9hY3RpdmF0ZV9wdXNoLgoKMjAwNS0wOC0yNiAxMzoyODowMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBBZGQgbWV0YWRhdGEgcmVhZGluZyBleGFtcGxlIHRoYXQgbG9vcHMgb3ZlciBhIGxpc3Qgb2YgZmlsZW5hbWVzLCBkdW1waW5nIGFueSB0YWdzIGZvdW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgICogZXhhbXBsZXMvbWV0YWRhdGEvTWFrZWZpbGUuYW06CgkgICogZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOiAobWVzc2FnZV9sb29wKSwKCSAgKGhhdmVfcGFkX2hhbmRsZXIpLCAobWFrZV9waXBlbGluZSksIChwcmludF90YWcpLCAobWFpbik6CgkgIEFkZCBtZXRhZGF0YSByZWFkaW5nIGV4YW1wbGUgdGhhdCBsb29wcyBvdmVyIGEgbGlzdCBvZiBmaWxlbmFtZXMsCgkgIGR1bXBpbmcgYW55IHRhZ3MgZm91bmQuCgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19kaXNwb3NlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZGlzcG9zZSk6CgkgIFJlbGVhc2UgYSBmZXcgcG90ZW50aWFsbHktaGVsZCByZWZlcmVuY2VzIGluIGRpc3Bvc2UuCgoyMDA1LTA4LTI2IDEzOjIxOjQ3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC90bXBsL2dzdG1pbmlvYmplY3Quc2dtbDogZG8gKm5vdCogYWRkIHRtcGwvKi5zZ21sIGZpbGVzIHRvIENWUyEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RtaW5pb2JqZWN0LnNnbWw6CgkgIGRvICpub3QqIGFkZCB0bXBsLyouc2dtbCBmaWxlcyB0byBDVlMhCgoyMDA1LTA4LTI2IDEzOjE3OjU0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9ieXRlc3RyZWFtLzogcmVtb3Zpbmcgb2Jzb2xldGUgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYnl0ZXN0cmVhbS8uY3ZzaWdub3JlOgoJICAqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvYnl0ZXN0cmVhbS9hZGFwdGVyLmM6CgkgICogbGlicy9nc3QvYnl0ZXN0cmVhbS9hZGFwdGVyLmg6CgkgICogbGlicy9nc3QvYnl0ZXN0cmVhbS9ieXRlc3RyZWFtLmM6CgkgICogbGlicy9nc3QvYnl0ZXN0cmVhbS9ieXRlc3RyZWFtLmg6CgkgICogbGlicy9nc3QvYnl0ZXN0cmVhbS9maWxlcGFkLmM6CgkgICogbGlicy9nc3QvYnl0ZXN0cmVhbS9maWxlcGFkLmg6CgkgIHJlbW92aW5nIG9ic29sZXRlIGZpbGVzCgoyMDA1LTA4LTI2IDEyOjQ4OjI5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogZGlzYWJlZCBhZGRpdGlvbmFsIGluZGV4IGVudHJpZXMgYWdhaW4sIGFzIHRoaXMgbWFrZXMgZG9jcy1nZW4ganVzdCBzbG93IGFuZCB0aGV5IGFyZW4ndCB1c2VmdWwgeWV0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgZGlzYWJlZCBhZGRpdGlvbmFsIGluZGV4IGVudHJpZXMgYWdhaW4sIGFzIHRoaXMgbWFrZXMgZG9jcy1nZW4ganVzdAoJICBzbG93IGFuZCB0aGV5IGFyZW4ndCB1c2VmdWwgeWV0CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgbGl0dGxlIC1zZWN0aW9uLnR4dCBjbGVhbnVwIGZvciBsaWJzCgoyMDA1LTA4LTI2IDExOjU2OjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9iYXNlLzogZml4IHVwIHNvbWUgZGVidWdnaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSksCgkgIGZpeCB1cCBzb21lIGRlYnVnZ2luZwoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF91bml0X3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgaGFuZGxlIGFuZCBzdG9yZSB0aW1lZCBORVdTRUdNRU5UIGV2ZW50cyBzbyB0aGF0IHN1YmNsYXNzZXMgdGhhdAoJICBjYWxjdWxhdGUgdGltZSBieSBjb3VudGluZyBzYW1wbGVzIGhhdmUgYSBzZWdtZW50X3N0YXJ0IHRpbWUgdGhleQoJICBuZWVkIHRvIGFkZCB0byB0aGVpciB0aW1lc3RhbXBzIC0gc2VlIGF1ZGlvcmVzYW1wbGUKCjIwMDUtMDgtMjYgMTE6MTk6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgd2hpdGVzcGFjZSwgZG9jIGFuZCBkZWJ1ZyBmaXhpbmcvYWRkaXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlLCBkb2MgYW5kIGRlYnVnIGZpeGluZy9hZGRpdGlvbnMKCjIwMDUtMDgtMjUgMjM6MTc6MTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RiaW4uaDogcmVtb3ZlZCAnOycgZnJvbSB0aGUgZW5kIG9mIG1hY3JvIGRlZnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5oOgoJICByZW1vdmVkICc7JyBmcm9tIHRoZSBlbmQgb2YgbWFjcm8gZGVmcwoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSksIChhY3RpdmF0ZV9wYWRzKSwKCSAgKGdzdF9lbGVtZW50X3NhdmVfdGh5c2VsZik6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X25ld3NlZ21lbnQpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiBnc3QvZ3N0cHJvYmUuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYWRfcXVlcnlfY29udmVydCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIGZpeGVkIHBhcmFtZXRlciBuYW1lIG1pc21hdGNoZXMgYmV0d2VlbiBzb3VyY2UsIGhlYWRlciBhbmQgZG9jcwoJICBhZGRlZCBzb21lIG1vcmUgZG9jcywgcmVzb2x2ZWQgdGhlIGxhc3QgYmF0Y2ggb2YgdW51c2VkIGVsZW1lbnRzIGluCgkgIGRvY3MgKG5vdyBzb21lb25lIG5lZWRzIHRvIGRvYyB0aGVtKQoKMjAwNS0wOC0yNSAyMDo1MjowNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5LmM6CgkgIHJlc3BlY3Qgb3JkZXIgb2YgcGx1Z2luIGRpcnMgd2hlbiBsb2FkaW5nIHBsbHVnaW5zIGFuZCByZWJ1aWxkaW5nIHJlZ2lzdHJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXNwZWN0IG9yZGVyIG9mIHBsdWdpbiBkaXJzIHdoZW4gbG9hZGluZyBwbGx1Z2lucyBhbmQgcmVidWlsZGluZyByZWdpc3RyeQoKMjAwNS0wOC0yNSAxOTozNjowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uKjogQ2FjaGUgY2FwcyB1bml0X3NpemUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF91bml0X3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIENhY2hlIGNhcHMgdW5pdF9zaXplLgoJICBNYWtlIHN1cmUgd2UgY2Fubm90IG5lZ290aWF0ZSB1cCBhbmQgZG93bnN0cmVhbSBhdCB0aGUKCSAgc2FtZSB0aW1lLgoKMjAwNS0wOC0yNSAxODo1NTozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuYzoKCSAgbWFrZSByZWdpc3RyeSByZXNwZWN0IG9yZGVyIG9mIEdTVF9QTFVHSU5fUEFUSDsgbWFrZSB0aGUgaW5zdGFsbGVkIGxvY2F0aW9uIGdvIGxhc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1ha2UgcmVnaXN0cnkgcmVzcGVjdCBvcmRlciBvZiBHU1RfUExVR0lOX1BBVEg7IG1ha2UgdGhlIGluc3RhbGxlZCBsb2NhdGlvbiBnbyBsYXN0CgoyMDA1LTA4LTI1IDE4OjU0OjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBhZGQgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGRvY3MKCjIwMDUtMDgtMjUgMTY6Mjc6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGdzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBhZGQgYSB1aW50NjQgY2hlY2tpbmcgbWV0aG9kCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSB1aW50NjQgY2hlY2tpbmcgbWV0aG9kCgoyMDA1LTA4LTI1IDEzOjUyOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBCZSBhIGJpdCBtb3JlIGNvbnNlcnZhdGl2ZSBhYm91dCB0aGUgcG9zdGVkIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9idXNfaGFuZGxlcik6CgkgIEJlIGEgYml0IG1vcmUgY29uc2VydmF0aXZlIGFib3V0IHRoZSBwb3N0ZWQgbWVzc2FnZS4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3Bvc3QpOgoJICBTb21lIGNsZWFudXBzLCB3YXJuIHdyb25nIHJldHVybiB2YWx1ZXMuCgoyMDA1LTA4LTI1IDEwOjUxOjE0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIFJldmVydCB1bnBvcHVsYXIgY2hhbmdlIGZvciBHU1RfTUVTU0FHRV9TUkMgdG8gR09iamVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX2ZpbmFsaXplKSwgKF9nc3RfbWVzc2FnZV9jb3B5KSwKCSAgKGdzdF9tZXNzYWdlX25ldyksIChnc3RfbWVzc2FnZV9uZXdfZW9zKSwgKGdzdF9tZXNzYWdlX25ld19lcnJvciksCgkgIChnc3RfbWVzc2FnZV9uZXdfd2FybmluZyksIChnc3RfbWVzc2FnZV9uZXdfdGFnKSwKCSAgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X2RvbmUpLCAoZ3N0X21lc3NhZ2VfbmV3X2N1c3RvbSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgKiB0b29scy9nc3QtbWQ1c3VtLmM6IChldmVudF9sb29wKToKCSAgUmV2ZXJ0IHVucG9wdWxhciBjaGFuZ2UgZm9yIEdTVF9NRVNTQUdFX1NSQyB0byBHT2JqZWN0LgoKMjAwNS0wOC0yNSAxMDozNTo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIGZpeCBkb2NzIGJ5IGZpeGluZyBlbnVtIHR5cGVkZWYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkb2NzIGJ5IGZpeGluZyBlbnVtIHR5cGVkZWYKCjIwMDUtMDgtMjUgMTA6MTY6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB3aW0gZml4ZWQgdGhlIHRhc2ssIHlheQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2ltIGZpeGVkIHRoZSB0YXNrLCB5YXkKCjIwMDUtMDgtMjUgMTA6MDE6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nZW5lcmljL3N0YXRlcy5jOiBDbGVhbnVwIGNhbiBiZSBkb25lIGF0IHRoZSBlbmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIENsZWFudXAgY2FuIGJlIGRvbmUgYXQgdGhlIGVuZC4KCSAgKiBnc3QvZ3N0dGFzay5jOiAoZ3N0X3Rhc2tfZ2V0X3R5cGUpLCAoZ3N0X3Rhc2tfZmluYWxpemUpLAoJICAoZ3N0X3Rhc2tfZnVuYyksIChnc3RfdGFza19jbGVhbnVwX2FsbCksIChnc3RfdGFza19zZXRfbG9jayksCgkgIChnc3RfdGFza19nZXRfc3RhdGUpLCAoZ3N0X3Rhc2tfc3RhcnQpLCAoZ3N0X3Rhc2tfcGF1c2UpOgoJICBPaCBib3kuLiBUaGFua3MgZm9yIGZpbmRpbmcgdGhpcywgVGhvbWFzLgoKMjAwNS0wOC0yNCAyMjowMTo0MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICBncm1wZiwgYW5vdGhlciB0cnkgdG8gZml4IGl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBncm1wZiwgYW5vdGhlciB0cnkgdG8gZml4IGl0CgoyMDA1LTA4LTI0IDIxOjU3OjA1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgIGFub3RoZXIgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhbm90aGVyIGZpeAoKMjAwNS0wOC0yNCAyMTo0NToxMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOiBhZGRlZCBtaXNzaW5nIHR5cGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgYWRkZWQgbWlzc2luZyB0eXBlcwoKMjAwNS0wOC0yNCAyMTozNTo0MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgYWRkZWQgbWlpc3NpbmcgY2xhc3NlcyBhbmQgc3ltYm9scyAoMTIzIG1vcmUgdG8gZ28pIHJlbW92ZWQgcmVtb3ZlZCBzeW1ib2xzIGZyb20gc2VjdGlvbiBmaWxlIGZpeGVkIG1hbnkgZG9jLWNvbW1lbnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZ3N0L2dzdGJpbi5jOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5Lmg6CgkgIGFkZGVkIG1paXNzaW5nIGNsYXNzZXMgYW5kIHN5bWJvbHMgKDEyMyBtb3JlIHRvIGdvKQoJICByZW1vdmVkIHJlbW92ZWQgc3ltYm9scyBmcm9tIHNlY3Rpb24gZmlsZQoJICBmaXhlZCBtYW55IGRvYy1jb21tZW50cwoKMjAwNS0wOC0yNCAyMDo0OTo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IE1ha2Ugc3VyZSBhbGwgdGFza3MgYXJlIHN0b3BwZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2Ugc3VyZSBhbGwgdGFza3MgYXJlIHN0b3BwZWQuCgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVbnJlZiBhZnRlciB1c2FnZSBmb3IgcHJvcGVyIHZhbGdyaW5kaW5nLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZmluYWxpemUpLCAoZ3N0X3BhZF9zdG9wX3Rhc2spOgoJICBSZWFsbHkgd2FpdCBmb3IgdGhlIHRhc2sgdG8gc3RvcCBiZWZvcmUgZGVzdHJveWluZyB0aGUKCSAgbXV0ZXguCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgIFNtYWxsIGNsZWFudXBzLiBEb24ndCBzdG9wIHRoZSB0YXNrIHdoZW4gd2UgZGlkIG5vdCBzdGFydAoJICBpdC4KCSAgKiBnc3QvZ3N0dGFzay5jOiAoZ3N0X3Rhc2tfZ2V0X3R5cGUpLCAoZ3N0X3Rhc2tfaW5pdCksCgkgIChnc3RfdGFza19mdW5jKSwgKGdzdF90YXNrX2NsZWFudXBfYWxsKSwgKGdzdF90YXNrX3NldF9sb2NrKSwKCSAgKGdzdF90YXNrX2dldF9zdGF0ZSksIChnc3RfdGFza19zdGFydCksIChnc3RfdGFza19wYXVzZSksCgkgIChnc3RfdGFza19qb2luKToKCSAgKiBnc3QvZ3N0dGFzay5oOgoJICBQcm90ZWN0IHRoZSBzdHJlYW0gbG9jayB3aXRoIHRoZSBvYmplY3QgbG9jay4KCSAgRGlzYWxsb3cgc2V0dGluZyB0aGUgc3RyZWFtIGxvY2sgd2hlbiBydW5uaW5nLgoJICBBZGQgY2xlYW51cF9hbGwgdG8gd2FpdCBmb3IgdGhlIHRocmVhZHBvb2wgdG8gZmluaXNoLgoJICBSZW1vdmUgY29kZSB0byBhdXRvYWxsb2NhdGUgYSBtdXRleCBpZiBub25lIHdhcyBwcm92aWRlZC4KCSAgQWRkIF9qb2luKCkgdG8gd2FpdCBmb3IgYSB0YXNrIHRvIHN0b3AuCgkgIFByb3RlY3QgdGhlIHRocmVhZCBwb29sIHdpdGggYSBnbG9iYWwgbG9jay4KCjIwMDUtMDgtMjQgMTc6NTc6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay4qOiBIYW5kbGUgbmV3c2VnbWVudCBldmVudHMgY29ycmVjdGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3RpbWVzKSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9idWZmZXIpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEhhbmRsZSBuZXdzZWdtZW50IGV2ZW50cyBjb3JyZWN0bHkuCgkgIERyb3AgYnVmZmVycyBvdXQgb2YgdGhlIHNlZ21lbnQgcmFuZ2UuCgoyMDA1LTA4LTI0IDE3OjI0OjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZGlzYWJsZSB0ZXN0IHdoaWxlIHdpbSBpcyBmaXhpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRpc2FibGUgdGVzdCB3aGlsZSB3aW0gaXMgZml4aW5nCgoyMDA1LTA4LTI0IDE2OjQ2OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIGFkZCBwbHVnaW5zZGlyIHRvIHBrZ2NvbmZpZyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHBsdWdpbnNkaXIgdG8gcGtnY29uZmlnIGZpbGVzCgoyMDA1LTA4LTI0IDE2OjQxOjQ1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIGNoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2hhbmdlbG9nCgoyMDA1LTA4LTI0IDE2OjA5OjUwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrLzogYWRkIGEgdGVzdCB0aGF0IGRvZXMgYSBidW5jaCBvZiBzdGF0ZSBjaGFuZ2VzIG9uIGVsZW1lbnRzIG5lZWRzIHNvbWUgZml4aW5nIGZvciB2YWxncmluZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nZW5lcmljL3N0YXRlcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoc3RhdGVzX3N1aXRlKSwgKG1haW4pOgoJICBhZGQgYSB0ZXN0IHRoYXQgZG9lcyBhIGJ1bmNoIG9mIHN0YXRlIGNoYW5nZXMgb24gZWxlbWVudHMKCSAgbmVlZHMgc29tZSBmaXhpbmcgZm9yIHZhbGdyaW5kCgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmM6IChnc3Rfb2JqZWN0X3N1aXRlKToKCSAgd2hpdGVzcGFjZQoJICAqIGdzdC9nc3RjYXBzLmg6CgkgIGFkZCBwcm90b3R5cGUgZm9yIGdzdF9jYXBzX2lzX2VxdWFsX2ZpeGVkCgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeXBvb2wuYzoKCSAgZG9jIGZpeGVzCgoyMDA1LTA4LTI0IDE1OjQ5OjAzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cXVlcnkuYyAoZ3N0X3F1ZXJ5X25ld19jb252ZXJ0KTogU3BldyBpZiB3ZSB0cnkgdG8gY29udmVydCBhIG5lZ2F0aXZlIHZhbHVlLiBEb2Vzbid0IG1ha2UgbXVjaCBzZW5zZS4gTW9zdGx5IHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMjQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHF1ZXJ5LmMgKGdzdF9xdWVyeV9uZXdfY29udmVydCk6IFNwZXcgaWYgd2UgdHJ5IHRvCgkgIGNvbnZlcnQgYSBuZWdhdGl2ZSB2YWx1ZS4gRG9lc24ndCBtYWtlIG11Y2ggc2Vuc2UuIE1vc3RseSB0aGlzIGlzCgkgIGhlcmUgdG8gZm9yY2UgY2FsbGVycyB0byBlbnN1cmUgLTEgbWFwcyB0byAtMS4KCjIwMDUtMDgtMjQgMTU6MTA6NDEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOiBXZWxsIGRvbmUgdG8gTWljaGFlbCBmb3IgY2F0Y2hpbmcgbXkgZGVsaWJlcmF0ZSBpbnRyb2R1Y3Rpb24gb2YgdGhpcyBzcGVsbGluZyBtaXN0YWtlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIFdlbGwgZG9uZSB0byBNaWNoYWVsIGZvciBjYXRjaGluZyBteSBkZWxpYmVyYXRlIGludHJvZHVjdGlvbgoJICBvZiB0aGlzIHNwZWxsaW5nIG1pc3Rha2UuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIEFkZCBHU1RfRUxFTUVOVF9VTlBBUkVOVElORyB0byBwcmV2ZW50IHJhY2VzIHNvIHRoYXQgd2UgY2FuCgkgIHVubGluayBwYWRzIGJlZm9yZSByZW1vdmluZyB0aGUgZWxlbWVudCBmcm9tIHRoZSBiaW4uCgoyMDA1LTA4LTI0IDEzOjQ5OjIxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0LmMgKHBhcnNlX2RlYnVnX2xpc3QpOiBBY2NlcHQgZS5nLiBHU1RfREVCVUc9NCB0byBtZWFuIHRoZSBzYW1lIHRoaW5nIGFzIEdTVF9ERUJVRz0qOjQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTI0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3QuYyAocGFyc2VfZGVidWdfbGlzdCk6IEFjY2VwdCBlLmcuIEdTVF9ERUJVRz00IHRvIG1lYW4KCSAgdGhlIHNhbWUgdGhpbmcgYXMgR1NUX0RFQlVHPSo6NC4KCSAgKHBhcnNlX2RlYnVnX2xldmVsLCBwYXJzZV9kZWJ1Z19jYXRlZ29yeSk6IE5ldyBoZWxwZXIgcGFyc2Vycy4KCjIwMDUtMDgtMjQgMTM6MzM6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiB1c2UgZ2Jvb2xlYW4gcmV0dXJuIHZhbHVlcyBhbmQgcG9pbnRlcnMgdG8gc2l6ZSBzbyB3ZSBjYW4gdXNlIHRoZSBmdWxsIEdTVF9CVUZGRVJfU0laRSByLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX3NpemUpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF91bml0X3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgIHVzZSBnYm9vbGVhbiByZXR1cm4gdmFsdWVzIGFuZCBwb2ludGVycyB0byBzaXplIHNvIHdlIGNhbiB1c2UgdGhlCgkgIGZ1bGwgR1NUX0JVRkZFUl9TSVpFIHJhbmdlIChndWludCkgZm9yIGJ1ZmZlciBzaXplcwoJICB1c2UgR3N0UGFkRGlyZWN0aW9uIGZvciB0cmFuc2Zvcm1fY2FwcwoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgcmVuYW1lIGdldF9zaXplIHRvIGdldF91bml0X3NpemUgc2luY2UgdGhhdCdzIHdoYXQgaXQgaXMKCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfdHJhbnNmb3JtX2NhcHMpOgoJICB1c2UgR3N0UGFkRGlyZWN0aW9uIGZvciB0cmFuc2Zvcm1fY2FwcwoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfbmV3X2FuZF9hbGxvYyk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIGNsZWFudXAgYW5kIGRlYnVnZ2luZwoKMjAwNS0wOC0yNCAxMzowNDozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRml4ZWQgbG9uZyBzdGFuZGluZyBtZW0tbGVhawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpLCAoYWN0aXZhdGVfcGFkcyksCgkgIChnc3RfZWxlbWVudF9zYXZlX3RoeXNlbGYpOgoJICAqIHRvb2xzL2dzdC1jb21wcHJlcC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzKToKCSAgRml4ZWQgbG9uZyBzdGFuZGluZyBtZW0tbGVhawoKMjAwNS0wOC0yNCAxMTo1NDozNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBDaGFuZ2UgR1NUX01FU1NBR0VfU1JDIHRvIGJlIGEgR09iamVjdCByYXRoZXIgdGhhbiBhIEdzdE9iamVjdCwgc28gdGhhdCBhcHBsaWNhdGlvbnMgY2FuIHNlbnNpYmx5IHBvc3QgY3VzdG9tIG1lc3NhZ2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX2ZpbmFsaXplKSwgKF9nc3RfbWVzc2FnZV9jb3B5KSwKCSAgKGdzdF9tZXNzYWdlX25ldyksIChnc3RfbWVzc2FnZV9uZXdfZW9zKSwgKGdzdF9tZXNzYWdlX25ld19lcnJvciksCgkgIChnc3RfbWVzc2FnZV9uZXdfd2FybmluZyksIChnc3RfbWVzc2FnZV9uZXdfdGFnKSwKCSAgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X2RvbmUpLCAoZ3N0X21lc3NhZ2VfbmV3X2N1c3RvbSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgKiB0b29scy9nc3QtbWQ1c3VtLmM6IChldmVudF9sb29wKToKCSAgQ2hhbmdlIEdTVF9NRVNTQUdFX1NSQyB0byBiZSBhIEdPYmplY3QgcmF0aGVyIHRoYW4gYSBHc3RPYmplY3QsIHNvCgkgIHRoYXQgYXBwbGljYXRpb25zIGNhbiBzZW5zaWJseSBwb3N0IGN1c3RvbSBtZXNzYWdlcyB3aXRoIHJlZmVyZW5jZXMKCSAgdG8gdGhlaXIgb3duIG9iamVjdHMuCgoyMDA1LTA4LTI0IDExOjQ0OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS4qOiBNYW55IGZpeGVzIGFuZCBuZXcgZmVhdHVyZXMgYWRkZWQgYnkgVGhvbWFzLiBDYW4gbm93IGFsc28gZG8gdHJhbnNmb3JtcyB3aXRoIHZhcmlhYmxlIHNpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfc2l6ZSksIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIE1hbnkgZml4ZXMgYW5kIG5ldyBmZWF0dXJlcyBhZGRlZCBieSBUaG9tYXMuIENhbiBub3cgYWxzbyBkbwoJICB0cmFuc2Zvcm1zIHdpdGggdmFyaWFibGUgc2l6ZXMgYW5kIGEgY3VzdG9tIGZpeGF0ZV9jYXBzIGZ1bmN0aW9uLgoKMjAwNS0wOC0yNCAxMTozNjo0OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2ZpeGF0ZV9jYXBzKTogQ2hlY2sgaWYgdGhlIGNhcHMgaXMgZml4ZWQgYWxyZWFkeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMjQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2ZpeGF0ZV9jYXBzKTogQ2hlY2sgaWYgdGhlIGNhcHMgaXMgZml4ZWQKCSAgYWxyZWFkeS4KCjIwMDUtMDgtMjQgMTE6MjI6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IFNvbWUgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX25ld19hbmRfYWxsb2MpOgoJICBTb21lIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgQ2FzdCB0byBDbG9ja1RpbWUgYmVmb3JlIGZvcm1hdHRpbmcgdG8gdGltZS4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQ2xlYW51cHMuCgoyMDA1LTA4LTIzIDIxOjMyOjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBncmFjZWZ1bGx5IGhhbmRsZSBoZWxwZXIgbWV0aG9kIGNhbGxzIHRvIG9iamVjdHMgdGhhdCBhcmUgbm90IGJlZWluZyBjb250cm9sbGVkLCBhZGRlZCB0ZXN0IGNhc2UgZm9yIHRoYXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2Fwcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Z2hvc3RwYWQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXJ5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R1dGlscy5zZ21sOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWhlbHBlci5jOiAoZ3N0X29iamVjdF9zZXRfY29udHJvbGxlciksCgkgIChnc3Rfb2JqZWN0X3NpbmtfdmFsdWVzKSwgKGdzdF9vYmplY3RfZ2V0X3ZhbHVlX2FycmF5cyksCgkgIChnc3Rfb2JqZWN0X2dldF92YWx1ZV9hcnJheSk6CgkgIGdyYWNlZnVsbHkgaGFuZGxlIGhlbHBlciBtZXRob2QgY2FsbHMgdG8gb2JqZWN0cyB0aGF0IGFyZSBub3QgYmVlaW5nCgkgIGNvbnRyb2xsZWQsIGFkZGVkIHRlc3QgY2FzZSBmb3IgdGhhdAoKMjAwNS0wOC0yMyAxODoxNzowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RldmVudC4qOiBTb21lIG1vcmUgZGVidWdnaW5nIG91dHB1dCBhbmQgZG9jIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKF9nc3RfZXZlbnRfY29weSksIChnc3RfZXZlbnRfbmV3X2N1c3RvbSksCgkgIChnc3RfZXZlbnRfbmV3X25ld3NlZ21lbnQpLCAoZ3N0X2V2ZW50X3BhcnNlX25ld3NlZ21lbnQpLAoJICAoZ3N0X2V2ZW50X25ld190YWcpLCAoZ3N0X2V2ZW50X3BhcnNlX3RhZyksIChnc3RfZXZlbnRfbmV3X3FvcyksCgkgIChnc3RfZXZlbnRfcGFyc2VfcW9zKSwgKGdzdF9ldmVudF9uZXdfc2VlayksCgkgIChnc3RfZXZlbnRfcGFyc2Vfc2Vlayk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIFNvbWUgbW9yZSBkZWJ1Z2dpbmcgb3V0cHV0IGFuZCBkb2MgY2xlYW51cHMuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpOgoJICBGaXggcG9zc2libGUgZGVhZGxvY2suCgoyMDA1LTA4LTIzIDE0OjI1OjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhZGRlZCBhYm91dCAxMDAgc3ltYm9scyBmcm9tIGdzdHJlYW1lci11bnVzZWQudHh0IHRvIHRoZSByaWdodCBzZWN0aW9ucyBmaXhlZCBtb3JlIGJyb2tlbiBjb21tZW50cyBhZGRlZCBHc3RCdXMgdG8gZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIGFkZGVkIGFib3V0IDEwMCBzeW1ib2xzIGZyb20gZ3N0cmVhbWVyLXVudXNlZC50eHQgdG8gdGhlIHJpZ2h0IHNlY3Rpb25zCgkgIGZpeGVkIG1vcmUgYnJva2VuIGNvbW1lbnRzCgkgIGFkZGVkIEdzdEJ1cyB0byBkb2NzCgoyMDA1LTA4LTIzIDExOjUzOjU4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBpbmxpbmVkIG1vcmUgZG9jIGNvbW1lbnRzLCBhZGRlZCBtaXNzaW5nIGNvbW1lbnRzIGFuZCBmaXhlZCBjb21tZW50cyBmaXhlZCB0eXBvcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGJpbi5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0YnVmZmVyLnNnbWw6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZ2V0X3R5cGUpLCAoZ3N0X2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgaW5saW5lZCBtb3JlIGRvYyBjb21tZW50cywgYWRkZWQgbWlzc2luZyBjb21tZW50cyBhbmQgZml4ZWQgY29tbWVudHMKCSAgZml4ZWQgdHlwb3MKCjIwMDUtMDgtMjMgMTE6Mzg6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBzb21lIGRlYnVnZ2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX25ld19hbmRfYWxsb2MpOgoJICBzb21lIGRlYnVnZ2luZwoJICAqIGdzdC9nc3RjYXBzLmg6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3BhZF9hbGxvY19idWZmZXIpOgoJICBtb3JlIGRlYnVnZ2luZwoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9jYXBzX3N0cnVjdHVyZV9maXhhdGVfZmllbGRfYm9vbGVhbik6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBhZGQgYSBmaXhhdGUgZnVuY3Rpb24gZm9yIGJvb2xlYW5zOyBhZGQgYSBGSVhNRSB0aGF0IHRoZXNlIGZ1bmMKCSAgbmFtZXMgc2hvdWxkIHByb2JhYmx5IGJlIGdzdF9zdHJ1Y3R1cmVfZml4YXRlXyoKCjIwMDUtMDgtMjIgMjE6MDM6MzMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBvcnRlZCBnc3RjaGlsZHByb3h5IG92ZXIgZnJvbSAwLjggcG9ydGVkIGdzdC1pbnNwZWN0IGZpeGVzIGFuZCBlbmhhbmNlbWVudHMgb3ZlciBmcm9tIDAuOAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZ2V0X3R5cGUpLAoJICAoZ3N0X2Jpbl9jaGlsZF9wcm94eV9nZXRfY2hpbGRfYnlfaW5kZXgpLAoJICAoZ3N0X2Jpbl9jaGlsZF9wcm94eV9nZXRfY2hpbGRyZW5fY291bnQpLAoJICAoZ3N0X2Jpbl9jaGlsZF9wcm94eV9pbml0KToKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOiAoZ3N0X2NoaWxkX3Byb3h5X2dldF9jaGlsZF9ieV9uYW1lKSwKCSAgKGdzdF9jaGlsZF9wcm94eV9nZXRfY2hpbGRfYnlfaW5kZXgpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X2dldF9jaGlsZHJlbl9jb3VudCksIChnc3RfY2hpbGRfcHJveHlfbG9va3VwKSwKCSAgKGdzdF9jaGlsZF9wcm94eV9nZXRfcHJvcGVydHkpLCAoZ3N0X2NoaWxkX3Byb3h5X2dldF92YWxpc3QpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X2dldCksIChnc3RfY2hpbGRfcHJveHlfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9jaGlsZF9wcm94eV9zZXRfdmFsaXN0KSwgKGdzdF9jaGlsZF9wcm94eV9zZXQpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X2NoaWxkX2FkZGVkKSwgKGdzdF9jaGlsZF9wcm94eV9jaGlsZF9yZW1vdmVkKSwKCSAgKGdzdF9jaGlsZF9wcm94eV9iYXNlX2luaXQpLCAoZ3N0X2NoaWxkX3Byb3h5X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2ludGVyZmFjZXMpLAoJICAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pLCAocHJpbnRfZWxlbWVudF9pbmZvKToKCSAgcG9ydGVkIGdzdGNoaWxkcHJveHkgb3ZlciBmcm9tIDAuOAoJICBwb3J0ZWQgZ3N0LWluc3BlY3QgZml4ZXMgYW5kIGVuaGFuY2VtZW50cyBvdmVyIGZyb20gMC44CgoyMDA1LTA4LTIyIDE5OjQ4OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBBbHNvIGNhbGwgdGhlIHRyYW5zZm9ybSBmdW5jdGlvbiBpZiB3ZSBoYXZlIEFOWSBjYXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICBBbHNvIGNhbGwgdGhlIHRyYW5zZm9ybSBmdW5jdGlvbiBpZiB3ZSBoYXZlIEFOWSBjYXBzLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX3NldF9uZXdfc3RyZWFtX3RpbWUpOgoJICBGaXggZGVidWcgaW5mby4KCjIwMDUtMDgtMjIgMTk6MjI6MzQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2V2ZW50X2hhbmRsZXIpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19ldmVudF9oYW5kbGVyKQoJICBEb24ndCBwcmV0ZW5kIHRvIGhhbmRsZSBzZWVrIGV2ZW50cyBpZiB0aGUgc291cmNlIGlzIG5vdCBzZWVrYWJsZQoKMjAwNS0wOC0yMiAxODo0ODo0OCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZW1vdmUgZXh0cmEgcGFyYW1ldGVyIHRvIGRlYnVnIG91dHB1dAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgUmVtb3ZlIGV4dHJhIHBhcmFtZXRlciB0byBkZWJ1ZyBvdXRwdXQKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc2VuZF9kaXNjb250KSwKCSAgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgRml4IHNlZWsgZXZlbnQgaGFuZGxpbmcuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksCgkgIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICBEb24ndCBzdGFydCB0aGUgc3JjIHBhZCB0YXNrIG9uIEZMVVNIX1NUT1AgaWYgdGhlIHBhZAoJICBpc24ndCBsaW5rZWQuCgkgIERlYnVnIGNoYW5nZXMuCgoyMDA1LTA4LTIyIDE1OjEyOjU2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuaCAoR1NUX0JPSUxFUlBMQVRFX1dJVEhfSU5URVJGQUNFKTogTmV3IGdoZXR0byBtYWNybywgaW1wbGVtZW50cyBhbiBpbnRlcmZhY2UgYW5kIGdzdGltcGxlbWVudHNpbnRlcmZhY2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMjIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHV0aWxzLmggKEdTVF9CT0lMRVJQTEFURV9XSVRIX0lOVEVSRkFDRSk6IE5ldyBnaGV0dG8KCSAgbWFjcm8sIGltcGxlbWVudHMgYW4gaW50ZXJmYWNlIGFuZCBnc3RpbXBsZW1lbnRzaW50ZXJmYWNlIGZvciBhCgkgIG5ldyB0eXBlLgoKMjAwNS0wOC0yMiAxNTowODo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RjYXBzLmM6IEFkZGVkIGNoZWNrIGZvciBnc3Rfc3RhdGljX2NhcHNfZ2V0KCkgcmVmY291bnRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RjYXBzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfY2Fwc19zdWl0ZSk6CgkgIEFkZGVkIGNoZWNrIGZvciBnc3Rfc3RhdGljX2NhcHNfZ2V0KCkgcmVmY291bnRpbmcuCgoyMDA1LTA4LTIyIDE0OjM1OjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogTWFrZSBfc3RhdGljX2NhcHNfZ2V0KCkgcmVmY291bnRpbmcgc2FuZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9zdGF0aWNfY2Fwc19nZXQpLCAoZ3N0X2NhcHNfdG9fc3RyaW5nKToKCSAgTWFrZSBfc3RhdGljX2NhcHNfZ2V0KCkgcmVmY291bnRpbmcgc2FuZS4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgQWRkIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKCkgdG8gcHJvdGVjdCBhZ2FpbnN0IHNlZ2ZhdWx0cy4KCjIwMDUtMDgtMjIgMTA6Mzc6MDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGlubGluZWQgcmVtYWluaW5nIGRvY3MsIGFkZGVkIG1pc3NpbmcgZG9jIGNvbW1lbnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXZlbnQuc2dtbDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgaW5saW5lZCByZW1haW5pbmcgZG9jcywgYWRkZWQgbWlzc2luZyBkb2MgY29tbWVudHMKCjIwMDUtMDgtMjIgMDk6MjU6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBzaW5jZSB3ZSBkb24ndCBrbm93IHdoZW4gcHJlcm9sbCBpcyBkb25lLCB1c2UgcmVmY291bnQgcmFuZ2UgY2hlY2sgZm9yIHRoZSBzaW5rCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgc2luY2Ugd2UgZG9uJ3Qga25vdyB3aGVuIHByZXJvbGwgaXMgZG9uZSwgdXNlIHJlZmNvdW50IHJhbmdlCgkgIGNoZWNrIGZvciB0aGUgc2luawoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5oOgoJICBhZGQgbWFjcm8gZm9yIGNoZWNraW5nIHJlZmNvdW50IHJhbmdlCgoyMDA1LTA4LTIxIDE2OjUzOjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBmaWd1cmUgdGhpcyBvdXQgZm9yIEhUIG1hY2hpbmVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWd1cmUgdGhpcyBvdXQgZm9yIEhUIG1hY2hpbmVzCgoyMDA1LTA4LTIxIDE1OjIxOjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBzb21lIGZ1bmt5IEhUL211bHRpY3B1IHZzIHNpbmdsZSBkaWZmZXJlbmNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzb21lIGZ1bmt5IEhUL211bHRpY3B1IHZzIHNpbmdsZSBkaWZmZXJlbmNlCgoyMDA1LTA4LTIxIDE1OjAxOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBjbGVhbiB1cCBlbnZpcm9ubWVudCBmb3Igd2hlbiByZWdpc3RyeSBnZXRzIGJ1aWx0IHZlcnN1cyB3aGVuIGFjdHVhbCB0ZXN0cyBhcmUgcnVuOyB2YWxncmluZCBzZWVtcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgY2xlYW4gdXAgZW52aXJvbm1lbnQgZm9yIHdoZW4gcmVnaXN0cnkgZ2V0cyBidWlsdCB2ZXJzdXMKCSAgd2hlbiBhY3R1YWwgdGVzdHMgYXJlIHJ1bjsgdmFsZ3JpbmQgc2VlbXMgdG8gbm90IHJlcG9ydAoJICBsZWFrcyBpZiBHU1RfUExVR0lOX1BBVEggaXMgc2V0IHRvIHNvbWUgc3BlY2lmaWMgdmFsdWVzCgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBhZGQgbW9yZSByZWZjb3VudGluZyBjaGVja3M7IG1heWJlIHRoaXMgZXhwb3NlcyBhCgkgIHByZXJvbGwgbG9jayBidWcgPwoJICAqIGNvbW1vbi9jaGVjay5tYWs6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2VsZW1lbnRfaXNfc2VtaV9zaW5rKSwgKGdzdF9iaW5fZ2V0X3N0YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3BhZF9jaGFpbik6CgkgIGFkZC9maXggZGVidWdnaW5nL3doaXRlc3BhY2UKCjIwMDUtMDgtMjEgMTE6NDA6NDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGV2ZW50LmM6IEVyLCBkb24ndCBjYWxsIGdzdF9iaW5fd2F0Y2hfZm9yX3N0YXRlX2NoYW5nZSB5b3UgaWRpb3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RldmVudC5jOiAoZXZlbnRfcHJvYmUpLCAodGVzdF9ldmVudCksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIEVyLCBkb24ndCBjYWxsIGdzdF9iaW5fd2F0Y2hfZm9yX3N0YXRlX2NoYW5nZSB5b3UgaWRpb3QuCgoyMDA1LTA4LTIxIDExOjE1OjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjb21tb246CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBydW4gdmFsZ3JpbmQgd2l0aCBwcm9wZXIgZW52CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBydW4gdmFsZ3JpbmQgd2l0aCBwcm9wZXIgZW52CgoyMDA1LTA4LTIxIDEwOjU0OjQ3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBVc2UgQ0hFQ0tfQ0ZMQUdTIGFuZCBDSEVDS19MSUJTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBVc2UgQ0hFQ0tfQ0ZMQUdTIGFuZCBDSEVDS19MSUJTCgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChldmVudF9wcm9iZSksICh0ZXN0X2V2ZW50KSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgRG9uJ3QgbGVhayBldmVudHMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZGlzY29udCksCgkgIChnc3RfYmFzZV9zcmNfc3RhcnQpLCAoZ3N0X2Jhc2Vfc3JjX3N0b3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIFNwcmlua2xlIGdzdF9iYXNlX3NyY19zdG9wIGxpYmVyYWxseSBhcm91bmQgZXJyb3IgcGF0aHMgdG8gZml4CgkgIHByb2JsZW1zIHJldXNpbmcgYSBzb3VyY2UgYWZ0ZXIgZmFpbGVkIHN0YXRlIGNoYW5nZXMuCgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspLAoJICAoaGVscGVyX2ZpbmRfc3VnZ2VzdCksIChnc3RfdHlwZV9maW5kX2hlbHBlcik6CgkgIEV4dHJhIGRlYnVnIG91dHB1dC4gRG9uJ3Qgc2VnZmF1bHQgb24gR1NUX1BBRF9HRVRSQU5HRUZVTkMgPSBOVUxMCgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RldmVudC5zZ21sOgoJICBNaWdyYXRlIHBhcnQgb2YgdGhlIGRvY3MgZnJvbSB0aGUgU0dNTCBmaWxlLiBXYWl0IGZvciBlbnNvbmljIHRvCgkgIHRlbGwgbWUgaG93IEkgZGlkIGl0IHdyb25nIDspCgkgICogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6IChtYWluKToKCSAgRXh0cmEgcm9idXN0bmVzcyB0byBzdGF0ZSBjaGFuZ2VzIGJldHdlZW4gZmlsZXMuCgoyMDA1LTA4LTIxIDEwOjM5OjM5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBkb24ndCB2YWxncmluZCB0aGUgY29udHJvbGxlciB0ZXN0IC0gaXQncyBsZWFraW5nIC0gU3RlZmFuLCBIRUxQCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBkb24ndCB2YWxncmluZCB0aGUgY29udHJvbGxlciB0ZXN0IC0gaXQncyBsZWFraW5nIC0gU3RlZmFuLCBIRUxQCgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfbWVzc2FnZV9lcnJvciksCgkgIChnc3RfY2hlY2tfY2hhaW5fZnVuYyksIChnc3RfY2hlY2tfc2V0dXBfZWxlbWVudCksCgkgIChnc3RfY2hlY2tfdGVhcmRvd25fZWxlbWVudCksIChnc3RfY2hlY2tfc2V0dXBfc3JjX3BhZCksCgkgIChnc3RfY2hlY2tfdGVhcmRvd25fc3JjX3BhZCksIChnc3RfY2hlY2tfc2V0dXBfc2lua19wYWQpLAoJICAoZ3N0X2NoZWNrX3RlYXJkb3duX3NpbmtfcGFkKToKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgYWRkIGEgYnVuY2ggb2YgbWV0aG9kcyB0byBzZXQgdXAgZWxlbWVudHMsIGFuZCBzcmMgYW5kIHNpbmsgcGFkcwoJICAqIGNoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzogKHNldHVwX2Zha2VzcmMpLCAoY2xlYW51cF9mYWtlc3JjKToKCSAgKiBjaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOiAoc2V0dXBfaWRlbnRpdHkpLCAoY2xlYW51cF9pZGVudGl0eSksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIHVzZSB0aGVtCgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0dGFnLmg6CgkgIHdoaXRlc3BhY2UvZG9jIGZpeGVzCgoyMDA1LTA4LTIwIDIwOjMwOjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgbWFrZSBHU1RfRUxFTUVOVF9FUlJPUiBub3QgZG8gR1NUX0VSUk9SX09CSkVDVCAtIHRoZXNlIGVycm9ycyBzaG91bGQgYmUgaGFuZGxlZCBieSB0aGUgYXBwbGljYXRpb24gYW5kIG5vdCBhbHdheXMgcHJpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWtlIEdTVF9FTEVNRU5UX0VSUk9SIG5vdCBkbyBHU1RfRVJST1JfT0JKRUNUIC0gdGhlc2UgZXJyb3JzIHNob3VsZAoJICBiZSBoYW5kbGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiBhbmQgbm90IGFsd2F5cyBwcmludGVkIGFzIHdlbGwKCjIwMDUtMDgtMjAgMjA6MTU6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IHNldCBHU1RfVE9PTFNfRElSCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBzZXQgR1NUX1RPT0xTX0RJUgoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX21lc3NhZ2VfZXJyb3IpOgoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5oOgoJICBhZGQgYSBmYWlsX3VubGVzc19lcXVhbHNfaW50CgkgIGFkZCBmYWlsX3VubGVzcyBmb3IgZXJyb3IgbWVzc2FnZXMKCjIwMDUtMDgtMjAgMTQ6MDA6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZ3N0LnN1cHA6CgkqIGNvbW1vbjoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC5zdXBwOgoJICBmYWN0b3Igb3V0IHRoZSBjb21tb24gc3R1ZmYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZhY3RvciBvdXQgdGhlIGNvbW1vbiBzdHVmZgoKMjAwNS0wOC0yMCAxMzoxNzo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIHdvcmsgb24gYnVpbGRzIHdpdGhvdXQgY2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdvcmsgb24gYnVpbGRzIHdpdGhvdXQgY2hlY2sKCjIwMDUtMDgtMjAgMTI6NDc6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICByZW5hbWVkIHRlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbmFtZWQgdGVzdAoKMjAwNS0wOC0yMCAxMjo0MzoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIGNoZWNrL2dzdC9nc3RldmVudHMuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnRzLmM6CgkgIHB1dCBzb21lIG1ha2UtdXAgb24gdGhlIGdzdGV2ZW50IHRlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHB1dCBzb21lIG1ha2UtdXAgb24gdGhlIGdzdGV2ZW50IHRlc3QKCjIwMDUtMDgtMjAgMTI6Mzk6MDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGNoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBjaGVjay9nc3QvZ3N0dGFnLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICB2YWxncmluZCBtb3JlIHRlc3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB2YWxncmluZCBtb3JlIHRlc3RzCgoyMDA1LTA4LTIwIDEyOjE0OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIGNoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSogY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBjaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6CgkqIGNoZWNrL2dzdC1saWJzL2dkcC5jOgoJKiBjaGVjay9nc3QvZ3N0LmM6CgkqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSogY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiBjaGVjay9nc3QvZ3N0YnVzLmM6CgkqIGNoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIGNoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiBjaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiBjaGVjay9nc3QvZ3N0cGFkLmM6CgkqIGNoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGNoZWNrL2dzdC9nc3R0YWcuYzoKCSogY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIGNoZWNrL2dzdGNoZWNrLmM6CgkqIGNoZWNrL2dzdGNoZWNrLmg6CgkqIGNoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6CgkqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBwa2djb25maWcvTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdGNoZWNrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdGNoZWNrLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICBtb3ZlIGNoZWNrIHN0dWZmIHRvIGl0cyBvd24gbGlicmFyeSB0byBiZSB1c2VkIGJ5IG90aGVyIG1vZHVsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vdmUgY2hlY2sgc3R1ZmYgdG8gaXRzIG93biBsaWJyYXJ5IHRvIGJlIHVzZWQgYnkgb3RoZXIgbW9kdWxlcwoKMjAwNS0wOC0xOSAwOTo1ODo0MiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZWxpbWluYXRlIGFub3RoZXIgdG1wbCBmaWxlLCBmaXggc3BlbGxpbmcgaW4gdGhlIGxvbmctZGVzY3JpcHRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3Quc2dtbDoKCSAgKiBnc3QvZ3N0LmM6CgkgIGVsaW1pbmF0ZSBhbm90aGVyIHRtcGwgZmlsZSwgZml4IHNwZWxsaW5nIGluIHRoZSBsb25nLWRlc2NyaXB0aW9uCgoyMDA1LTA4LTE4IDE2OjQyOjQ5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RldmVudHMuYzogU2hvdWxkIGZpeCBidWlsZCBvbiA2NC1iaXQgYXJjaCdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RldmVudHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGV2ZW50X3Byb2JlKSwKCSAgKHRlc3RfZXZlbnQpLCAodGltZWRpZmYpLCAoZ3N0ZXZlbnRzX3N1aXRlKToKCSAgU2hvdWxkIGZpeCBidWlsZCBvbiA2NC1iaXQgYXJjaCdzCgoyMDA1LTA4LTE4IDE2OjIwOjI0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBNYWtlIHN1cmUgdGhhdCB3aGVuIGEgcGlwZWxpbmUgZ29lcyB0byBQTEFZSU5HLCB0aGF0IGRhdGEgaGFzIGFjdHVhbGx5IGhpdCB0aGUgc2luay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgIE1ha2Ugc3VyZSB0aGF0IHdoZW4gYSBwaXBlbGluZSBnb2VzIHRvIFBMQVlJTkcsIHRoYXQgZGF0YSBoYXMKCSAgYWN0dWFsbHkgaGl0IHRoZSBzaW5rLgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jICh0ZXN0X3NpbmspOiBBIHNpbmsgdGhhdCBkb2Vzbid0IGdldCBhbnkKCSAgZGF0YSBzaG91bGRuJ3QgcmV0dXJuIFNVQ0NFU1MgZm9yIGdvaW5nIHRvIGVpdGhlciBQTEFZSU5HIG9yCgkgIFBBVVNFRC4gVGVzdCBhbHNvIHRoZSByZXR1cm4gdmFsdWVzIG9uIHRoZSB3YXkgYmFjayBkb3duLgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6IFdoZW4gY2hhbmdpbmcgdGhlCgkgIHN0YXRlIG9mIGFuIGVsZW1lbnQgY3VycmVudGx5IGNoYW5naW5nIHN0YXRlIGFzeW5jaHJvbm91c2x5LCBnbyB0bwoJICBsb3N0LXN0YXRlIGFmdGVyIGNvbW1pdGluZyB0aGUgcGVuZGluZyBzdGF0ZS4gTWFrZXMgZnV0dXJlIGNhbGxzCgkgIHRvIGdldF9zdGF0ZSBjb250aW51ZSB0byByZXR1cm4gQVNZTkMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOiBSZXR1cm4KCSAgQVNZTkMgd2hlbiBnb2luZyB0byBQTEFZSU5HIGlmIHdlIHN0aWxsIGRvbid0IGhhdmUgcHJlcm9sbCwgYXMgY2FuCgkgIGhhcHBlbiB3aXRoIGxpdmUgc291cmNlcy4KCjIwMDUtMDgtMTggMTY6MTU6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOiBIYWNrIGxvbmcgcGFyYWdyYXBoIGludG8gMiBjaHVua3MgYXMgYSB3b3JrYXJvdW5kIGZvciBidWdneSBqYWRldGV4IHZlcnNpb24gaW4gc2lkIGFuZCBiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgSGFjayBsb25nIHBhcmFncmFwaCBpbnRvIDIgY2h1bmtzIGFzIGEgd29ya2Fyb3VuZCBmb3IgYnVnZ3kKCSAgamFkZXRleCB2ZXJzaW9uIGluIHNpZCBhbmQgYnJlZXp5IHRoYXQgbG9vcHMgaW5maW5pdGVseSBhbmQKCSAgZWF0cyBhbGwgUkFNLgoKMjAwNS0wOC0xOCAxNjowMDozNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QvZ3N0ZXZlbnRzLmM6IFByb3ZpZGUgbW9yZSBlcnJvciBtYXJnaW4gaW4gY2xvY2sgbWVhc3VyZW1lbnRzIHRvIGFsbG93IGZvciBnX2dldF9jdXJyZW50X3RpbWUgaW5hY2N1cmFjaWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnRzLmM6IChHU1RfU1RBUlRfVEVTVCksIChldmVudF9wcm9iZSksCgkgICh0ZXN0X2V2ZW50KSwgKHRpbWVkaWZmKSwgKGdzdGV2ZW50c19zdWl0ZSk6CgkgIFByb3ZpZGUgbW9yZSBlcnJvciBtYXJnaW4gaW4gY2xvY2sgbWVhc3VyZW1lbnRzIHRvIGFsbG93IGZvcgoJICBnX2dldF9jdXJyZW50X3RpbWUgaW5hY2N1cmFjaWVzLgoKMjAwNS0wOC0xOCAxNTo0NzoxNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QvZ3N0ZXZlbnRzLmM6IEZpeCBlcnJvciBtZXNzYWdlIG91dHB1dCBzbyBJIG1pZ2h0IGJlIGFibGUgdG8gdGVsbCB3aHkgdGhlIHRlc3Qgd29ya3MgaGVyZSBidXQgZmFpbHMgb24gdGhlIGIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50cy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZXZlbnRfcHJvYmUpLAoJICAodGVzdF9ldmVudCksICh0aW1lZGlmZiksIChnc3RldmVudHNfc3VpdGUpOgoJICBGaXggZXJyb3IgbWVzc2FnZSBvdXRwdXQgc28gSSBtaWdodCBiZSBhYmxlIHRvIHRlbGwgd2h5IHRoZQoJICB0ZXN0IHdvcmtzIGhlcmUgYnV0IGZhaWxzIG9uIHRoZSBidWlsZCBmYXJtLgoKMjAwNS0wOC0xOCAxNTozMToyOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay86IEkgd3JvdGUgYSB0ZXN0IQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnRzLmM6IChHU1RfU1RBUlRfVEVTVCksIChldmVudF9wcm9iZSksCgkgICh0ZXN0X2V2ZW50KSwgKHRpbWVkaWZmKSwgKGdzdGV2ZW50c19zdWl0ZSksIChtYWluKToKCSAgSSB3cm90ZSBhIHRlc3QhCgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgU3BlbGxpbmcgY29ycmVjdGlvbgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXZlbnQuc2dtbDoKCSAgRG9jcyB1cGRhdGVzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICBUcmVhdCBhIGJ1ZmZlci13aXRob3V0LW5ld3NlZ21lbnQgdGhlIHNhbWUgYXMgYSByZWNlaXZpbmcKCSAgYSBuZXdzZWdtZW50IG5vdCBpbiB0aW1lIGZvcm1hdCwgYW5kIGRpc2FibGUgc3luY2luZyB0byB0aGUgY2xvY2sKCSAgd2l0aCBhIHdhcm5pbmcuCgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19zZXRfc3luY19oYW5kbGVyKToKCSAgQXNzZXJ0IGlmIGFueW9uZSB0cmllcyB0byByZXBsYWNlIHRoZSBleGlzdGluZyBzeW5jX2hhbmRsZXIgZm9yIGJ1cywKCSAgYXMgb25seSB0aGUgb3duZXIgc2hvdWxkIGJlIHNldHRpbmcgaXQuCgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEhhdmUgYSBmaXhlZCBzZXQgb2YgY3VzdG9tIGV2ZW50IGVudW1zIHdpdGggZXZlbnRzIGlkZW50aWZpZWQgYnkKCSAgdGhlaXIgc3RydWN0dXJlIG5hbWUgKGFzIGluIDAuOCksIHJhdGhlciB0aGFuIGEgZnJlZS1mb3ItYWxsCgkgIGFsbG93aW5nIGNvbGxpc2lvbnMgYmV0d2VlbiBlbnVtIHZhbHVlcyBmcm9tIGRpZmZlcmVudCBwbHVnaW5zLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2xhc3NfaW5pdCk6CgkgIERvY3MgY2hhbmdlLgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KToKCSAgSGFuZGxlIG91dC1vZi1iYW5kIGRvd25zdHJlYW0gZXZlbnRzIGZyb20gdGhlIHNlbmRpbmcgdGhyZWFkLgoKMjAwNS0wOC0xNyAxNjo1NzowMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmMgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOiBJbnRlcnByZXQgcGxheS10aW1lb3V0PT0wIHRvIG1lYW4gbm8gdGltZW91dCBhdCBhbGwuIEluIHRoYXQgY2FzZSwgZG9uLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwaXBlbGluZS5jIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKTogSW50ZXJwcmV0CgkgIHBsYXktdGltZW91dD09MCB0byBtZWFuIG5vIHRpbWVvdXQgYXQgYWxsLiBJbiB0aGF0IGNhc2UsIGRvbid0CgkgIGJvdGhlciB3aXRoIGEgZ2V0X3N0YXRlIG9yIGEgd2FybmluZywganVzdCByZXR1cm4gZGlyZWN0bHksIGV2ZW4KCSAgaWYgaXQncyBBU1lOQy4KCjIwMDUtMDgtMTcgMTY6MzM6MjcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRGVidWcgY2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBEZWJ1ZyBjaGFuZ2VzLgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGdzdC9nc3R1dGlscy5jIChnc3RfYmluX3dhdGNoX2Zvcl9zdGF0ZV9jaGFuZ2UpOiBBZGQgZnVuY3Rpb24gdG8KCSAgZW5zdXJlIGJpbnMgcG9zdCBzdGF0ZSBjaGFuZ2UgbWVzc2FnZXMuIEEgYml0IG9mIGEgaGFjayBidXQgSSBjYW4ndAoJICB0aGluayBvZiBhIHdheSB0byBhdm9pZCBpdC4KCSAgKiBjaGVjay9nc3QvZ3N0YmluLmMgKHRlc3Rfd2F0Y2hfZm9yX3N0YXRlX2NoYW5nZSk6IEFkZGVkIHRlc3QuCgoyMDA1LTA4LTE2IDE3OjIzOjU1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RhZGFwdGVyLio6IE5ldyBmdW5jdGlvbiwgbGlrZSBwZWVrKCkgYnV0IHlvdSBvd24gdGhlIGRhdGEuIE5vdCB0ZXJyaWJseSBlZmZpY2llbnQgYXRtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0xNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jIChnc3RfYWRhcHRlcl90YWtlKTogTmV3IGZ1bmN0aW9uLCBsaWtlCgkgIHBlZWsoKSBidXQgeW91IG93biB0aGUgZGF0YS4gTm90IHRlcnJpYmx5IGVmZmljaWVudCBhdG0uCgoyMDA1LTA4LTE2IDE2OjI5OjA0ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuKjogQWRkIHR3byB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgdGFnIGhhbmRsaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3NfZm9yX3BhZCksIChwdXNoX2FuZF9yZWYpLAoJICAoZ3N0X2VsZW1lbnRfZm91bmRfdGFncyk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZCB0d28gdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHRhZyBoYW5kbGluZy4KCjIwMDUtMDgtMTYgMTI6MTU6NDYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogRml4IGRvY3MgdG8gdXNlIF9iaW5fYWRkKCkgYmVmb3JlIF9saW5rKCksIHdoaWNoIGZpeGVzIHRoZSBleGFtcGxlcyB3aXRoIHJlY2VudCBjb3JlIHZlcnNpb25zIChyZXBvcnRlZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgIEZpeCBkb2NzIHRvIHVzZSBfYmluX2FkZCgpIGJlZm9yZSBfbGluaygpLCB3aGljaCBmaXhlcyB0aGUgZXhhbXBsZXMKCSAgd2l0aCByZWNlbnQgY29yZSB2ZXJzaW9ucyAocmVwb3J0ZWQgYnkgTWFkaGFuIFJhaiBNCgkgIDxyYWpfbWFkYW5AcmVkaWZmbWFpbC5jb20+LCAjMzEzMTk5KS4KCjIwMDUtMDgtMTYgMDk6NDI6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0dmFsdWUuYzogQWRkZWQgc3VidHJhY3QgY2hlY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIEFkZGVkIHN1YnRyYWN0IGNoZWNrcy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIFNvbWUgbW9yZSBkb2NzIGFib3V0IG5ld3NlZ21lbnQKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZSksIChiaW5fYnVzX2hhbmRsZXIpOgoJICBGaXggRklYTUUKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfdG9fc3RyaW5nKToKCSAgQWRkIGNvbW1lbnRzLCBjbGVhbnVwcy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2F2ZV90aHlzZWxmKToKCSAgY2xlYW51cHMKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9jb2xsZWN0X2ludF9yYW5nZSksCgkgIChnc3Rfc3RyaW5nX3Vud3JhcCksIChnc3RfdmFsdWVfdW5pb25faW50X2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfdW5pb25faW50X3JhbmdlX2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2ludF9pbnRfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9pbnRfcmFuZ2VfaW50X3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfZG91YmxlX2RvdWJsZV9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2RvdWJsZV9yYW5nZV9kb3VibGVfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9saXN0KSwgKGdzdF92YWx1ZV9zdWJ0cmFjdF9pbnRfaW50X3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9pbnRfcmFuZ2VfaW50KSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9kb3VibGVfcmFuZ2VfZG91YmxlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9kb3VibGVfcmFuZ2VfZG91YmxlX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9mcm9tX2xpc3QpLCAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2xpc3QpLAoJICAoZ3N0X3ZhbHVlX2Nhbl9jb21wYXJlKSwgKGdzdF92YWx1ZV9jb21wYXJlX2ZyYWN0aW9uKToKCSAgQ2xlYW51cHMsIGFkZCBjb21tZW50cywgcmVtb3ZlIHVubmVlZGVkIGFzc2VydHMuCgoyMDA1LTA4LTE1IDE4OjE1OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGRvbid0IGNvbnZlcnQgTlVMTCBzdHJ1Y3R1cmVzIHRvIHN0cmluZ3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IGNvbnZlcnQgTlVMTCBzdHJ1Y3R1cmVzIHRvIHN0cmluZ3MKCjIwMDUtMDgtMTUgMTY6NTc6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IG1hZGUgc29tZSBkZWZpbmVzIHByaXZhdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgbWFkZSBzb21lIGRlZmluZXMgcHJpdmF0ZQoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29uZmlnLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RxdWV1ZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnbGlzdC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3R4bWwuYzogKGdzdF94bWxfY2xhc3NfaW5pdCk6CgkgIGRvY3VtZW50ZWQgYWxsIHVuZG9jdW1lbnRlZCBzaWduYWwgaW5saW5lCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5oOgoJICBhZGRlZCBwYWRkaW5nCgoyMDA1LTA4LTE1IDA5OjU2OjE5ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDogRG9jdW1lbnQgX3NldF9saW5rX2Z1bmN0aW9uIC0+IF9zZXRfc2V0Y2Fwc19mdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIERvY3VtZW50IF9zZXRfbGlua19mdW5jdGlvbiAtPiBfc2V0X3NldGNhcHNfZnVuY3Rpb24uCgoyMDA1LTA4LTE0IDIyOjI5OjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBhZGQgYSAuY2hlY2sgdGFyZ2V0IGZvciBydW5uaW5nIHRoZSBjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgYWRkIGEgLmNoZWNrIHRhcmdldCBmb3IgcnVubmluZyB0aGUgY2hlY2sKCSAgKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIGNvc21ldGljIGZpeHVwcwoJICAqIGNoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF90ZXN0X3N1aXRlKToKCSAgY29tcGxldGUgY2hlY2tzIGZvciBnc3RidWZmZXI7IHdvdWxkIGJlIG5pY2UgaWYgSSBjb3VsZCBnZXQgdGhlCgkgIGdjb3Ygc3R1ZmYgdG8gd29yayBzbyBJIGNhbiBzZWUgaWYgSSBhY3R1YWxseSBjb21wbGV0ZWQgZ3N0YnVmZmVyLmMKCSAgKiBjaGVjay9nc3RjaGVjay5oOgoJICBhZGQgQVNTRVJUX0JVRkZFUl9SRUZDT1VOVAoKMjAwNS0wOC0xMyAxMTo0NTo1MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9NQU5JRkVTVDoKCSAgcmVtb3ZlIHNwaWRlciBmcm9tIGRpc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBzcGlkZXIgZnJvbSBkaXN0CgoyMDA1LTA4LTEzIDExOjQzOjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2dzdHNwaWRlci52Y3Byb2o6CgkgIHJlbW92ZWQgZnJvbSBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmVkIGZyb20gSEVBRAoKMjAwNS0wOC0xMyAxMDozMzoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBHU1RfVEFHX0xBTkdVQUdFX0NPREUgYXMgd2UgaGF2ZSBpbiAwLjgsIGFuZCBkb24ndCBzcGV3IG91dCBhIHdhcm5pbmcgaWYgYSB0YWcgdGhhdCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQgaXMgcmUtci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWcuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpLCAoZ3N0X3RhZ19yZWdpc3Rlcik6CgkgICogZ3N0L2dzdHRhZy5oOgoJICBBZGQgR1NUX1RBR19MQU5HVUFHRV9DT0RFIGFzIHdlIGhhdmUgaW4gMC44LCBhbmQgZG9uJ3QKCSAgc3BldyBvdXQgYSB3YXJuaW5nIGlmIGEgdGFnIHRoYXQgaXMgYWxyZWFkeSByZWdpc3RlcmVkCgkgIGlzIHJlLXJlZ2lzdGVyZWQsIHVubGVzcyBpdCBpcyByZS1yZWdpc3RlcmVkIHdpdGggYQoJICBkaWZmZXJlbnQgdHlwZSAoIzMwODQzOCkuCgoyMDA1LTA4LTEyIDE0OjMwOjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvOiBBZGQgc29tZSBwYXJhZ3JhcGhzIGFib3V0IHN0YXRlIGNoYW5nZXMgaW4gMC45IHRvIHRoZSBQV0cgYW5kIHRoZSBwb3J0aW5nIGd1aWRlLCBpbiBwYXJ0aWN1bGFyIGFib3V0IHRoZSBuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXN0YXRlLnhtbDoKCSAgQWRkIHNvbWUgcGFyYWdyYXBocyBhYm91dCBzdGF0ZSBjaGFuZ2VzIGluIDAuOSB0byB0aGUgUFdHCgkgIGFuZCB0aGUgcG9ydGluZyBndWlkZSwgaW4gcGFydGljdWxhciBhYm91dCB0aGUgbmV3IG1lYW5pbmcKCSAgb2YgR1NUX1NUQVRFX1BBVVNFRCBhbmQgaG93IHRvIHdyaXRlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbnMKCSAgd2l0aCBjb25jdXJyZW50IGFjY2VzcyBieSBtdWx0aXBsZSB0aHJlYWRzIGluIG1pbmQuCgoyMDA1LTA4LTExIDE3OjM5OjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICBhZGRlZCBkZXByZWNhdGlvbiBhbmQgc2luY2UgaW5kZXhlcyBhZGRlZCBzaW5jZSB0YWdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRlZCBkZXByZWNhdGlvbiBhbmQgc2luY2UgaW5kZXhlcwoJICBhZGRlZCBzaW5jZSB0YWdzCgoyMDA1LTA4LTExIDE0OjI0OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IEFjdHVhbGx5IGltcGxlbWVudCAocmUpc2V0dGluZyB0aGUgdGFyZ2V0IG9uIGEgZ2hvc3RwYWQgYXMgZGVzY3JpYmVkIGluIHRoZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldF91bmxvY2tlZCksCgkgIChnc3RfcHJveHlfcGFkX3NldF90YXJnZXQpLCAoZ3N0X3Byb3h5X3BhZF9nZXRfdGFyZ2V0KSwKCSAgKGdzdF9wcm94eV9wYWRfZGlzcG9zZSksIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19saW5rKSwgKGdzdF9naG9zdF9wYWRfc2V0X2ludGVybmFsKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X25vdGFyZ2V0KSwgKGdzdF9naG9zdF9wYWRfZ2V0X3RhcmdldCksCgkgIChnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQpOgoJICBBY3R1YWxseSBpbXBsZW1lbnQgKHJlKXNldHRpbmcgdGhlIHRhcmdldCBvbiBhIGdob3N0cGFkCgkgIGFzIGRlc2NyaWJlZCBpbiB0aGUgZG9jcy4KCjIwMDUtMDgtMTAgMjE6MTk6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IENoZWNrIHdoZXRoZXIgR1NUX0RFQlVHX05PX0NPTE9SIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNldCBhbmQgZGlzYWJsZSBjb2xvdXJlZCBkZWJ1ZyBvdXRwdXQgaWYgdGhhdCBpcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXRfY2hlY2tfd2l0aF9wb3B0X3RhYmxlKSwgKGluaXRfcHJlKToKCSAgQ2hlY2sgd2hldGhlciBHU1RfREVCVUdfTk9fQ09MT1IgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMKCSAgc2V0IGFuZCBkaXNhYmxlIGNvbG91cmVkIGRlYnVnIG91dHB1dCBpZiB0aGF0IGlzIHRoZSBjYXNlLgoKMjAwNS0wOC0xMCAxNTowODowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IFRoZSBtZW1vcnkgcmV0dXJuZWQgYnkgZ3N0X3R5cGVfZmluZF9wZWVrKCkgbmVlZHMgdG8gc3RheSB2YWxpZCB1bnRpbCB0aGUgZW5kIG9mIGEgdHlwZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcik6CgkgIFRoZSBtZW1vcnkgcmV0dXJuZWQgYnkgZ3N0X3R5cGVfZmluZF9wZWVrKCkgbmVlZHMgdG8KCSAgc3RheSB2YWxpZCB1bnRpbCB0aGUgZW5kIG9mIGEgdHlwZWZpbmQgZnVuY3Rpb24sIGFuZAoJICB0eXBlZmluZCBmdW5jdGlvbnMgbWF5IGtlZXAgcmVzdWx0cyBmcm9tIGRpZmZlcmVudAoJICBvZmZzZXRzIGFyb3VuZCwgc28gd2UgY2FuJ3QganVzdCB1bnJlZiB0aGUgYnVmZmVyIGZyb20KCSAgdGhlIHByZXZpb3VzIF9wZWVrKCksIGJ1dCBoYXZlIHRvIHNhdmUgYWxsIGJ1ZmZlcnMKCSAgcmV0dXJuZWQgYnkgX3BlZWsoKSB1bnRpbCB0eXBlZmluZGluZyBpcyBkb25lIGFuZCBvbmx5CgkgIGZyZWUgdGhlbSB0aGVuLgoKMjAwNS0wOC0wOSAxNjoyNTo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE5ldyBtYWNyb3M6IEdTVF9ST1VORF9VUF8yKCkgdGhyb3VnaCBHU1RfUk9VTkRfVVBfNjQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgTmV3IG1hY3JvczogR1NUX1JPVU5EX1VQXzIoKSB0aHJvdWdoIEdTVF9ST1VORF9VUF82NCgpLgoKMjAwNS0wOC0wOCAxNjowMToxMiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGZpeCB1cCBzcGVjIGZvciBsYXRlc3QgQ1ZTIGNoYW5nZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB1cCBzcGVjIGZvciBsYXRlc3QgQ1ZTIGNoYW5nZXMKCjIwMDUtMDgtMDggMTU6MDg6MTQgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRml4IGEgcHJldHR5IGdvb2QgbWVtbGVhay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIEZpeCBhIHByZXR0eSBnb29kIG1lbWxlYWsuCgoyMDA1LTA4LTA4IDEzOjU1OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGl0ZXJhdG9yLmg6IEZpeCB3cm9uZyBpbmNsdWRlIGFuZCAnbWFrZSBkaXN0Y2hlY2snLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgRml4IHdyb25nIGluY2x1ZGUgYW5kICdtYWtlIGRpc3RjaGVjaycuCgoyMDA1LTA4LTA4IDEzOjM4OjM0ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IFVzZSBnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UoKSBpbnN0ZWFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fYnVzX2hhbmRsZXIpOgoJICBVc2UgZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKCkgaW5zdGVhZC4KCjIwMDUtMDgtMDggMTM6MzE6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBBZGQgcGFkZGluZyB0byBvdXIgYmFzZSBlbGVtZW50cycgY2xhc3MgYW5kIGluc3RhbmNlIHN0cnVjdHMgYW5kIHRvIEdzdEl0ZXJhdG9yICh5b3Ugd2lsbCBuZWVkIHRvIHJlYnVpbGQgYWxsIHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICAqIGdzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgQWRkIHBhZGRpbmcgdG8gb3VyIGJhc2UgZWxlbWVudHMnIGNsYXNzIGFuZCBpbnN0YW5jZSBzdHJ1Y3RzIGFuZAoJICB0byBHc3RJdGVyYXRvciAoeW91IHdpbGwgbmVlZCB0byByZWJ1aWxkIGFsbCBwbHVnaW5zIGFuZCBhcHBzISkKCjIwMDUtMDgtMDggMTM6MTc6MDcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogTWFrZSBkZWZhdWx0IG1lc3NhZ2UgZm9yd2FyZGluZyBmcm9tIGNoaWxkLT5idXMgdG8gYmluLT5idXMgdGhyZWFkc2FmZSBhbmQgbWFrZSBpdCBub3QgZW1pdCB3YXJuaW5ncyBpZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fYnVzX2hhbmRsZXIpOgoJICBNYWtlIGRlZmF1bHQgbWVzc2FnZSBmb3J3YXJkaW5nIGZyb20gY2hpbGQtPmJ1cyB0byBiaW4tPmJ1cwoJICB0aHJlYWRzYWZlIGFuZCBtYWtlIGl0IG5vdCBlbWl0IHdhcm5pbmdzIGlmIHRoZSBwYXJlbnQgaGFzIG5vIGJ1cy4KCjIwMDUtMDgtMDggMTI6MTQ6MjAgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IE9uIHBhdXNlZC0+cmVhZHksIHNldCBwYWQtPmNhcHMgdG8gTlVMTCwgYXMgaXMgdGhlIGRvY3VtZW50ZWQgYmVoYXZpb3VyIGluIHRoaXMgc3RhdGUgY2hhbmdlLiBGaXhlcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoYWN0aXZhdGVfcGFkcyk6CgkgIE9uIHBhdXNlZC0+cmVhZHksIHNldCBwYWQtPmNhcHMgdG8gTlVMTCwgYXMgaXMgdGhlIGRvY3VtZW50ZWQKCSAgYmVoYXZpb3VyIGluIHRoaXMgc3RhdGUgY2hhbmdlLiBGaXhlcyBwbGF5YmFjayBvZiBzZXJpZXMgb2YKCSAgbWVkaWEgZmlsZXMgd2hlbiB2aXN1YWxpemF0aW9uIGlzIGVuYWJsZWQgaW4gVG90ZW0uCgoyMDA1LTA4LTA3IDEzOjM3OjA4ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBBbGxvdyBOVUxMIGFzIGZpbHRlci1jYXBzICh3aGljaCBtZWFucyAiYW55IikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9zZXRfcHJvcGVydHkpOgoJICBBbGxvdyBOVUxMIGFzIGZpbHRlci1jYXBzICh3aGljaCBtZWFucyAiYW55IikuCgoyMDA1LTA4LTA1IDE3OjI4OjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgIGFkZGluZyBtb3JlIGVudHJpZXMgdG8gdGhlIGRvY3MgYW5kIGZpeCBzbWFsbCBkb2MtYnVncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkaW5nIG1vcmUgZW50cmllcyB0byB0aGUgZG9jcyBhbmQgZml4IHNtYWxsIGRvYy1idWdzCgoyMDA1LTA4LTA1IDEzOjQyOjEwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBjaGVjay9nc3QtbGlicy8uZ2l0aWdub3JlOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsLy5naXRpZ25vcmU6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc3JjLnNnbWw6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICBtaWdyYXRlZCBzb21lIG1vcmUgZG9jcyB0byBiZSBpbmxpbmVkIGluIHRoZSBzb3VyY2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtaWdyYXRlZCBzb21lIG1vcmUgZG9jcyB0byBiZSBpbmxpbmVkIGluIHRoZSBzb3VyY2VzCgoyMDA1LTA4LTA1IDEyOjU5OjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNldHJhbnNmb3JtLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1pbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbGliLmM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgYWRkZWQgbG9uZy9zaG9ydCBkZXNjIGZvciBjb250cm9sbGVyIGRvY3MgYWRkZWQgY29sbGVjdHBhZHMgYmFzZSBjbGFzcyBkb2NzIGFkZGVkIGNvcnJlY3QgaW5jbHVkZXMgdG8gYmFzZS1jbGFzcyBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRlZCBsb25nL3Nob3J0IGRlc2MgZm9yIGNvbnRyb2xsZXIgZG9jcwoJICBhZGRlZCBjb2xsZWN0cGFkcyBiYXNlIGNsYXNzIGRvY3MKCSAgYWRkZWQgY29ycmVjdCBpbmNsdWRlcyB0byBiYXNlLWNsYXNzIGRvY3MKCjIwMDUtMDgtMDUgMTA6MDI6NDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXRyYW5zZm9ybS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJ1ZmZlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNhcHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RjbG9jay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNvbXBhdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNvbmZpZy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZGV0YWlscy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnRmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZW51bXR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXJyb3Iuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RldmVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbHRlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZvcm1hdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGdob3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW1wbGVtZW50c2ludGVyZmFjZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXhmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5mby5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGl0ZXJhdG9yLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWFjcm9zLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWVtY2h1bmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RtaW5pb2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkdGVtcGxhdGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYXJzZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBpcGVsaW5lLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luZmVhdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXJ5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVldWUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHJlZ2lzdHJ5cG9vbC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN0cnVjdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN5c3RlbWNsb2NrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnbGlzdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRhZ3NldHRlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRyYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHJhc2hzdGFjay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVmaW5kLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZWZpbmRmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1cmloYW5kbGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXJpdHlwZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2ZXJzaW9uLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0eG1sLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RnZXRiaXRzLnNnbWw6CgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1oZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgbW9yZSB0ZXN0cyAoYW5kIGZpeGVzKSBmb3IgdGhlIGNvbnRyb2xsZXIgbW9yZSBkb2NzIGZvciB0aGUgY29udHJvbGxlciBpbnRlZ3JhdGVkIGNvbXBhbmllcyBkb2NzIGZvciB0aGUgYWRhcHRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSB0ZXN0cyAoYW5kIGZpeGVzKSBmb3IgdGhlIGNvbnRyb2xsZXIKCSAgbW9yZSBkb2NzIGZvciB0aGUgY29udHJvbGxlcgoJICBpbnRlZ3JhdGVkIGNvbXBhbmllcyBkb2NzIGZvciB0aGUgYWRhcHRlcgoKMjAwNS0wOC0wNSAwNjo1NzoyNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb3NtZXRpYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29zbWV0aWMgZml4ZXMKCjIwMDUtMDgtMDUgMDY6NTU6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXRyYW5zZm9ybS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJ1ZmZlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNhcHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RjbG9jay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNvbXBhdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNvbmZpZy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZGV0YWlscy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnRmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZW51bXR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXJyb3Iuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RldmVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbHRlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZvcm1hdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGdob3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW1wbGVtZW50c2ludGVyZmFjZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXhmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5mby5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGl0ZXJhdG9yLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWFjcm9zLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWVtY2h1bmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RtaW5pb2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkdGVtcGxhdGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYXJzZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBpcGVsaW5lLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luZmVhdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXJ5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVldWUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHJlZ2lzdHJ5cG9vbC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN0cnVjdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN5c3RlbWNsb2NrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnbGlzdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRhZ3NldHRlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRyYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHJhc2hzdGFjay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVmaW5kLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZWZpbmRmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1cmloYW5kbGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXJpdHlwZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2ZXJzaW9uLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0eG1sLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RnZXRiaXRzLnNnbWw6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgYWRkIHNpemV0eXBlIHRlc3RzIGZvciBmYWtlc3JjCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc2l6ZXR5cGUgdGVzdHMgZm9yIGZha2VzcmMKCjIwMDUtMDgtMDQgMTk6NDA6NDMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IFJlaW1wbGVtZW50IHVzaW5nIGJhc2V0cmFuc2Zvcm0sIGZpeGVzIGJ1ZmZlcl9hbGxvYyBwcm94eWluZyBhbW9uZyBvdGhlciB0aGluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTA0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IFJlaW1wbGVtZW50IHVzaW5nIGJhc2V0cmFuc2Zvcm0sCgkgIGZpeGVzIGJ1ZmZlcl9hbGxvYyBwcm94eWluZyBhbW9uZyBvdGhlciB0aGluZ3MuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgUmV2ZXJ0IHBhdGNoIHRvIGdzdGJhc2V0cmFuc2Zvcm0gZnJvbSA3LTI4IHJlbW92aW5nCgkgIGRlbGF5X2NvbmZpZ3VyZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmggKEdzdEJhc2VUcmFuc2Zvcm1DbGFzcy5nZXRfc2l6ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3NpemUpOgoJICBTZW1hbnRpY3MgY2hhbmdlZCwgc2hvdWxkIHJldHVybiBub3QgdGhlIHNpemUgb2YgdGhlIG91dHB1dCBidWZmZXIKCSAgYnV0IHRoZSBieXRlIHNpemUgb2YgYSBidWZmZXIgd2l0aCBhIGdpdmVuIGNhcHMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0Y2Fwcyk6IEJldHRlcgoJICBkZWJ1ZyBvYmplY3QuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpOiBEb24ndCBzZXQgb3V0X3NpemUgaGVyZTogKGluLAoJICBvdXQpIGFyZSBub3QgdGhlIHBhZCBjYXBzIHVudGlsIHNldGNhcHMgZmluaXNoZXMuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKTogUHJveHkgdGhlIGJ1ZmZlcl9hbGxvYyBmb3IgdGhlCgkgIG5vdC1pbi1wbGFjZSBjYXNlIGFzIHdlbGwuIERlYWwgd2l0aCBjaGFuZ2luZyBmcm9tIGluLXBsYWNlIHRvCgkgIG5vdC1pbi1wbGFjZSB3aXRoaW4gY2FsbGluZyBwYWRfYWxsb2NfYnVmZmVyLiBTdGlsbCBhIGJpdAoJICBjb25jZXJuZWQgYWJvdXQgdGhlIG92ZXJoZWFkIGhlcmUuLi4KCjIwMDUtMDgtMDQgMTE6NTY6NTcgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6IEFkZGVkIGdzdF9hZGFwdGVyX2dldF90eXBlKCkgdG8gdGhlIGhlYWRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIEFkZGVkIGdzdF9hZGFwdGVyX2dldF90eXBlKCkgdG8gdGhlIGhlYWRlcgoKMjAwNS0wOC0wMyAxNjoxMDowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBmaXhlZCBkaXN0Y2hlY2sgYnJlYWthZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeGVkIGRpc3RjaGVjayBicmVha2FnZQoKMjAwNS0wOC0wMyAxNTo1OToxMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGFkZGVkIGNoZWNrIHRlc3Qgc3VpdGUgZm9yIHRoZSBjb250cm9sbGVyIGZpeGVkIGEgZG9jIHR5cG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGVkIGNoZWNrIHRlc3Qgc3VpdGUgZm9yIHRoZSBjb250cm9sbGVyCgkgIGZpeGVkIGEgZG9jIHR5cG8KCjIwMDUtMDgtMDMgMTM6MzA6MTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGdzdC9iYXNlL1JFQURNRToKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvUkVBRE1FOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJICBhZGQgc2hvcnQvbG9uZyBkZXNjcmlwdGlvbiBkb2NzIHRvIGJhc2UgY2xhc3NlcyBhZGQgcHVzaHNyYyB0byB0aGUgZG9jcyByZW1vdmUgY29uc29saWRhdGVkIGRvYyBmcmFnbWVudHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBzaG9ydC9sb25nIGRlc2NyaXB0aW9uIGRvY3MgdG8gYmFzZSBjbGFzc2VzCgkgIGFkZCBwdXNoc3JjIHRvIHRoZSBkb2NzCgkgIHJlbW92ZSBjb25zb2xpZGF0ZWQgZG9jIGZyYWdtZW50cwoKMjAwNS0wOC0wMiAyMTozOTozNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJICB0aGF0IG9uZSB0b28KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRoYXQgb25lIHRvbwoKMjAwNS0wOC0wMiAyMTozODoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLnBjLmluOgoJICBhZGRlZCBtaXNzaW5nIHBjIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRlZCBtaXNzaW5nIHBjIGZpbGVzCgoyMDA1LTA4LTAyIDIxOjM1OjM0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvdG1wbC9nc3RldmVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkqIGV4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9saWIuYzoKCSogcGtnY29uZmlnL01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbC5wYy5pbjoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NvbnRyb2xsZXIvaW50ZXJwb2xhdG9yLmM6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9jb250cm9sbGVyL2ludGVycG9sYXRvci5jOgoJICBhZGRlZCBjb250cm9sbGVyIGNvZGUgcmVtb3ZlZCBkcGFyYW0gcGMgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGVkIGNvbnRyb2xsZXIgY29kZQoJICByZW1vdmVkIGRwYXJhbSBwYyBmaWxlcwoKMjAwNS0wOC0wMSAyMToxNzowMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBCcm9hZGNhc3QgdGhlIGNvbmRpdGlvbiB3aGVuIHNodXR0aW5nIGRvd24sIHRvIG1ha2Ugc3VyZSB3ZSB3YWtlIGFsbCB0aHJlYWRzIHVwLiBTaHV0IGRvd24uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0cGFkc19maW5hbGl6ZSksCgkgIChnc3RfY29sbGVjdHBhZHNfc3RvcCk6CgkgIEJyb2FkY2FzdCB0aGUgY29uZGl0aW9uIHdoZW4gc2h1dHRpbmcgZG93biwgdG8gbWFrZSBzdXJlIHdlIHdha2UgYWxsCgkgIHRocmVhZHMgdXAuIFNodXQgZG93biBwYWRzIG9uIGZpbmFsaXplLCBmb3Igc2FmZXR5LgoKMjAwNS0wOC0wMSAxNzoyNjowMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEhhbmRsZSBQQVVTRUQtPlJFQURZLT5QQVVTRUQgdHJhbnNpdGlvbiBhZnRlciBuZWdvdGlhdGlvbiBvY2N1cnJlZCBhbHJlYWR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0wMSAgSmFuIFNjaG1pZHQgIDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICBIYW5kbGUgUEFVU0VELT5SRUFEWS0+UEFVU0VEIHRyYW5zaXRpb24gYWZ0ZXIgbmVnb3RpYXRpb24KCSAgb2NjdXJyZWQgYWxyZWFkeS4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfaW5pdCk6CgkgIEV4dHJhIHBpZWNlIG9mIGRlYnVnIGZvciBuZXcgbWVzc2FnZXMuCgoyMDA1LTA4LTAxIDE2OjQzOjU4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIHJlbW92ZSBkcGFyYW1zIGRlcHMgZnJvbSB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGRwYXJhbXMgZGVwcyBmcm9tIHRoZSBkb2NzCgoyMDA1LTA4LTAxIDE2OjE3OjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGV2ZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZvcm1hdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGdob3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVlcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzdHJ1Y3R1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0YWdsaXN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbC8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jb250cm9sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sL2NvbnRyb2wuYzoKCSogbGlicy9nc3QvY29udHJvbC9jb250cm9sLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtX3Ntb290aC5jOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbV9zbW9vdGguaDoKCSogbGlicy9nc3QvY29udHJvbC9kcGFyYW1jb21tb24uaDoKCSogbGlicy9nc3QvY29udHJvbC9kcGFyYW1tYW5hZ2VyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtbWFuYWdlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwbGluZWFyaW50ZXJwLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBsaW5lYXJpbnRlcnAuaDoKCSogbGlicy9nc3QvY29udHJvbC91bml0Y29udmVydC5jOgoJKiBsaWJzL2dzdC9jb250cm9sL3VuaXRjb252ZXJ0Lmg6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZHlucGFyYW1zLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZHlucGFyYW1zL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2R5bnBhcmFtcy9kcGFyYW1zdGVzdC5jOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9keW5wYXJhbXMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2R5bnBhcmFtcy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2R5bnBhcmFtcy9kcGFyYW1zdGVzdC5jOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgZGVhY3RpdmF0ZSBhbmQgcmVtb3ZlIGRwYXJhbXMgKGxpYmdzdGNvbnRyb2wpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkZWFjdGl2YXRlIGFuZCByZW1vdmUgZHBhcmFtcyAobGliZ3N0Y29udHJvbCkKCjIwMDUtMDgtMDEgMTE6MTU6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lio6IFNldCBjYXBzIG9uIGFsbCBvdXRnb2luZyBidWZmZXJzLCBub3QganVzdCB0aGUgZmlyc3Qgb25lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGF2ZV90eXBlKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9pbml0KSwKCSAgKHN0b3BfdHlwZWZpbmRpbmcpLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2dldHJhbmdlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIFNldCBjYXBzIG9uIGFsbCBvdXRnb2luZyBidWZmZXJzLCBub3QganVzdCB0aGUgZmlyc3Qgb25lLgoKMjAwNS0wOC0wMSAwOToxMDowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuKjogU2V0IGNhcHMgb24gZmlyc3Qgb3V0Z29pbmcgYnVmZmVyIHdoZW4gd2UndmUgZm91bmQgdGhlIHR5cGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYXZlX3R5cGUpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoZWNrX3NldF9idWZmZXJfY2FwcyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaW5pdCksIChzdG9wX3R5cGVmaW5kaW5nKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9nZXRyYW5nZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICBTZXQgY2FwcyBvbiBmaXJzdCBvdXRnb2luZyBidWZmZXIgd2hlbiB3ZSd2ZSBmb3VuZCB0aGUgdHlwZS4KCjIwMDUtMDgtMDEgMDg6NTI6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2dzdC86IFJlbW92ZSBzb21lIG9sZCBjcnVmdCBmcm9tIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHNjaGVkdWxlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0c2NoZWR1bGVyZmFjdG9yeS5zZ21sOgoJICBSZW1vdmUgc29tZSBvbGQgY3J1ZnQgZnJvbSBkb2NzLgoKMjAwNS0wNy0zMSAxMTo1OTozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuaDogRml4IGlubGluZSBkb2NzIGZvciBHc3RQYWRMaW5rUmV0dXJuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEZpeCBpbmxpbmUgZG9jcyBmb3IgR3N0UGFkTGlua1JldHVybi4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2hhc19uYW1lKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgTmV3IEFQSTogZ3N0X3N0cnVjdHVyZV9oYXNfbmFtZSgpLgoKMjAwNS0wNy0zMCAxNTowMDowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogVXNlIEFDX1NZU19MQVJHRUZJTEUsIHdoaWNoIHdpbGwgc2V0IF9GSUxFX09GRlNFVF9CSVRTPTY0IGFuZCBfTEFSR0VGSUxFX1NPVVJDRSBpbiBjb25maWcuaCBhcyByZXF1aXJlZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFVzZSBBQ19TWVNfTEFSR0VGSUxFLCB3aGljaCB3aWxsIHNldCBfRklMRV9PRkZTRVRfQklUUz02NAoJICBhbmQgX0xBUkdFRklMRV9TT1VSQ0UgaW4gY29uZmlnLmggYXMgcmVxdWlyZWQuIERvIG5vdAoJICBleHBvcnQgdGhvc2UgZmxhZ3MgaW4gb3VyIC5wYyBmaWxlcyBhbnkgbG9uZ2VyICgjMTQyMjA5KS4KCSAgUmVtb3ZlIHVudXNlZCBHU1RfRElTQUJMRV9PTUVHQV9DT1RIUkVBRFMgc3R1ZmYuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZpbGVfc2lua19kb19zZWVrKSwgKGdzdF9maWxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2ZpbGVfc2lua19nZXRfY3VycmVudF9vZmZzZXQpLCAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICBSZWRvIHNlZWsvdGVsbCBjYWxscyB3aXRoIGxhcmdlIGZpbGUgc3VwcG9ydCBpbiBtaW5kOyBhZGQgc29tZQoJICBkZWJ1Z2dpbmcgbWVzc2FnZXM7IGFkZCBsb2cgbWVzc2FnZSB0aGF0IHRlbGxzIHVzIHdoZW4gbGFyZ2UKCSAgZmlsZSBzdXBwb3J0IGlzIHVuYXZhaWxhYmxlIG9yIG5vdCBlbmFibGVkIGZvciBzb21lIHJlYXNvbi4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NsYXNzX2luaXQpOgoJICBBZGQgbG9nIG1lc3NhZ2UgdGhhdCB0ZWxscyB1cyB3aGVuIGxhcmdlIGZpbGUgc3VwcG9ydAoJICBpcyB1bmF2YWlsYWJsZSBvciBub3QgZW5hYmxlZCBmb3Igc29tZSByZWFzb24uCgoyMDA1LTA3LTI5IDE5OjIyOjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IEFkZGVkIHRlc3QgZm9yIHJlbW92aW5nIGFuIGVsZW1lbnQgd2l0aCBnaG9zdHBhZCBmcm9tIGEgYmluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9naG9zdF9wYWRfc3VpdGUpOgoJICBBZGRlZCB0ZXN0IGZvciByZW1vdmluZyBhbiBlbGVtZW50IHdpdGggZ2hvc3RwYWQgZnJvbSBhIGJpbi4KCSAgRml4ZWQgdGVzdCBhcyBjdXJyZW50IGltcGxlbWVudGF0aW9uIGRvZXMgdGhlIHJpZ2h0IHRoaW5nLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fcXVlcnlfdHlwZSksIChnc3RfcHJveHlfcGFkX2RvX2V2ZW50KSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fcXVlcnkpLCAoZ3N0X3Byb3h5X3BhZF9kb19pbnRlcm5hbF9saW5rKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fYnVmZmVyYWxsb2MpLCAoZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZSksCgkgIChnc3RfcHJveHlfcGFkX2RvX2FjdGl2YXRlcHVsbCksIChnc3RfcHJveHlfcGFkX2RvX2FjdGl2YXRlcHVzaCksCgkgIChnc3RfcHJveHlfcGFkX2RvX2NoYWluKSwgKGdzdF9wcm94eV9wYWRfZG9fZ2V0cmFuZ2UpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19jaGVja2dldHJhbmdlKSwgKGdzdF9wcm94eV9wYWRfZG9fZ2V0Y2FwcyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2FjY2VwdGNhcHMpLCAoZ3N0X3Byb3h5X3BhZF9kb19maXhhdGVjYXBzKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fc2V0Y2FwcyksIChnc3RfcHJveHlfcGFkX3NldF90YXJnZXQpLAoJICAoZ3N0X3Byb3h5X3BhZF9nZXRfdGFyZ2V0KSwgKGdzdF9wcm94eV9wYWRfaW5pdCksCgkgIChnc3RfcHJveHlfcGFkX2Rpc3Bvc2UpLCAoZ3N0X3Byb3h5X3BhZF9maW5hbGl6ZSksCgkgIChnc3RfZ2hvc3RfcGFkX2NsYXNzX2luaXQpLCAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fbGluayksIChnc3RfZ2hvc3RfcGFkX2RvX3VubGluayksCgkgIChnc3RfZ2hvc3RfcGFkX3NldF9pbnRlcm5hbCksIChnc3RfZ2hvc3RfcGFkX2Rpc3Bvc2UpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXdfbm90YXJnZXQpLCAoZ3N0X2dob3N0X3BhZF9uZXcpLAoJICAoZ3N0X2dob3N0X3BhZF9nZXRfdGFyZ2V0KSwgKGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldCk6CgkgICogZ3N0L2dzdGdob3N0cGFkLmg6CgkgIENsZWFuIHVwIGdob3N0cGFkcywgcmVtb3ZlIHByb3BlcnRpZXMgZm9yIGludGVybmFsIHN0dWZmLgoJICBNYWtlIHRocmVhZHNhZmUuCgkgIEZpeCByZWZjb3VudGluZy4KCSAgUHJlcGFyZSBmb3Igc3dpdGNoaW5nIHRhcmdldHMsIG5vdCBhbGwgdXNlIGNhc2VzIHdvcmsgeWV0LgoKMjAwNS0wNy0yOSAxOToxOToyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OiBTbWFsbCB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OgoJICBTbWFsbCB1cGRhdGUuCgkgICogZ3N0L2dzdGJpbi5jOiAodW5saW5rX3BhZHMpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKToKCSAgVW5saW5raW5nIHBhZHMgd2hpbGUgaG9sZGluZyB0aGUgYmluIExPQ0sgaXMgbm90IGEgZ29vZAoJICBpZGVhLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3RfcGFkX2xpbmtfY2hlY2tfaGllcmFyY2h5KSwgKGdzdF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLAoJICAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX3NldF9jYXBzKSwgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIE5vIHByb2Igc2V0dGluZyB0ZW1wbGF0ZSBhZnRlciBjcmVhdGluZyB0aGUgcGFkLgoKMjAwNS0wNy0yOSAxNTozNDo1MiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IGdzdF9idXNfcG9sbCBtYXkgYmUgY2FsbGVkIGZyb20gb3RoZXIgdGhyZWFkcy4gSGFuZGxlIHRoaXMgbmljZWx5IGJ5IG5vdCBtYWtpbmcgcG9sbF9kYXRhIGRpc2FwcGVhciBvZmYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19zZXRfZmx1c2hpbmcpLCAoZ3N0X2J1c19wb3ApLAoJICAoZ3N0X2J1c19wZWVrKSwgKGdzdF9idXNfc291cmNlX2Rpc3BhdGNoKSwKCSAgKGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwpLCAocG9sbF9oYW5kbGVyKSwgKHBvbGxfdGltZW91dCksCgkgIChwb2xsX2Rlc3Ryb3kpLCAocG9sbF9kZXN0cm95X3RpbWVvdXQpLCAoZ3N0X2J1c19wb2xsKToKCSAgZ3N0X2J1c19wb2xsIG1heSBiZSBjYWxsZWQgZnJvbSBvdGhlciB0aHJlYWRzLiBIYW5kbGUKCSAgdGhpcyBuaWNlbHkgYnkgbm90IG1ha2luZyBwb2xsX2RhdGEgZGlzYXBwZWFyIG9mZiB0aGUKCSAgc3RhY2sgb25jZSBnc3RfYnVzX3BvbGwgcmV0dXJucy4KCSAgZ3N0X2J1c19wZWVrIG5vdyBpbmNyZW1lbnRzIHRoZSByZWZjb3VudCBvbiB0aGUgcmV0dXJuZWQKCSAgbWVzc2FnZS4KCjIwMDUtMDctMjkgMTE6Mjk6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDogT3ZlcnZpZXcgb2YgY3VycmVudCBHaG9zdFBhZCBkYXRhc3RydWN0dXJlcyBhbmQgdXNlIGNhc2VzIGZvciBjaGFuZ2luZyB0aGUgdGFyZ2V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDoKCSAgT3ZlcnZpZXcgb2YgY3VycmVudCBHaG9zdFBhZCBkYXRhc3RydWN0dXJlcyBhbmQgdXNlCgkgIGNhc2VzIGZvciBjaGFuZ2luZyB0aGUgdGFyZ2V0LgoKMjAwNS0wNy0yOCAxNTozODo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogQWRkZWQgY2hlY2tzIGZvciBoaWVyYXJjaHkgY29uc2lzdGVuY3kgd2hhbiBhZGRpbmcgbGlua2VkIGVsZW1lbnRzIHRvIGJpbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9iaW5fc3VpdGUpOgoJICBBZGRlZCBjaGVja3MgZm9yIGhpZXJhcmNoeSBjb25zaXN0ZW5jeSB3aGFuIGFkZGluZyBsaW5rZWQKCSAgZWxlbWVudHMgdG8gYmlucy4KCSAgKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2VsZW1lbnRfc3VpdGUpOgoJICBBZGRlZCBjaGVjayB0byB0ZXN0IGVsZW1lbnQgc2NoZWR1bGluZyB3aXRob3V0IGJpbi9waXBlbGluZS4KCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXJzdCBhZGQgZWxlbWVudHMgdG8gYmluLCB0aGVuIGxpbmsuCgkgICogZ3N0L2dzdGJpbi5jOiAodW5saW5rX3BhZHMpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKToKCSAgVW5saW5rIHBhZHMgZnJvbSBlbGVtZW50cyBhZGRlZC9yZW1vdmVkIGZyb20gYmluIHRvIG1haW50YWluCgkgIGhpZXJhcmNoeSBjb25zaXN0ZW5jeS4KCjIwMDUtMDctMjggMTE6NDk6NTYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uKjogUmVtb3ZlIGJyb2tlbiBkZWxheV9jb25maWd1cmUgKGZpeGVzIHJlbmVnb3RpYXRpb24gb2Ygc29mdHdhcmUgc2NhbGluZyBwaXBlbGluZXMpOyByZW1vdi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBSZW1vdmUgYnJva2VuIGRlbGF5X2NvbmZpZ3VyZSAoZml4ZXMgcmVuZWdvdGlhdGlvbiBvZiBzb2Z0d2FyZQoJICBzY2FsaW5nIHBpcGVsaW5lcyk7IHJlbW92ZSBzb21lIGxlZnRvdmVyIHByaW50Zigpcy4KCjIwMDUtMDctMjggMTE6MjQ6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogQWRkZWQgc29tZSBtb3JlIHRlc3RzIGZvciB3cm9uZyBoaWVyYXJjaHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfZ2hvc3RfcGFkX3N1aXRlKToKCSAgQWRkZWQgc29tZSBtb3JlIHRlc3RzIGZvciB3cm9uZyBoaWVyYXJjaHkKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgU29tZSB1cGRhdGVzLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9kaXNwb3NlKToKCSAgQ2xlYW51cHMuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3JlbW92ZV9wYWQpLCAoZ3N0X2VsZW1lbnRfc2VlayksCgkgIChnc3RfZWxlbWVudF9kaXNwb3NlKToKCSAgU29tZSBtb3JlIGNsZWFudXBzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKSwKCSAgKGdzdF9wYWRfbGlua19jaGVja19oaWVyYXJjaHkpLCAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLAoJICAoZ3N0X3BhZF9nZXRfY2Fwc191bmxvY2tlZCksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwKCSAgKGdzdF9wYWRfc2V0X2NhcHMpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgQ2hlY2sgZm9yIGNvcnJlY3QgaGllcmFyY2h5IHdoZW4gbGlua2luZyBwYWRzLiBNb3ZpbmcgdG8KCSAgc3RyaWN0IHJlcXVpcmVtZW50IGZvciBnaG9zdHBhZHMgd2hlbiBsaW5raW5nIGVsZW1lbnRzIGluCgkgIGRpZmZlcmVudCBiaW5zLgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQ2xlYW4gdXBzLiBBZGRlZCBXUk9OR19ISUVSQVJDSFkgcmV0dXJuIHZhbHVlLgoKMjAwNS0wNy0yOCAxMDozODowMiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBCZXR0ZXIgZGVidWcgaWYgbm8gdHJhbnNmb3JtIGlzIHBvc3NpYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2Fwcyk6CgkgIEJldHRlciBkZWJ1ZyBpZiBubyB0cmFuc2Zvcm0gaXMgcG9zc2libGUuCgoyMDA1LTA3LTI3IDIwOjIyOjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9yYW5kb20vd3RheS9uZXR3b3JrLXRyYW5zcDogU29tZSBvbGQgZG9jIEkgaGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS93dGF5L25ldHdvcmstdHJhbnNwOgoJICBTb21lIG9sZCBkb2MgSSBoYWQuCgoyMDA1LTA3LTI3IDE5OjAwOjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBGaXggc2VyaWFsaXphdGlvbiBvZiBzZWVrIGV2ZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KSwKCSAgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldCk6CgkgIEZpeCBzZXJpYWxpemF0aW9uIG9mIHNlZWsgZXZlbnRzLgoKMjAwNS0wNy0yNyAxODo0Nzo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEZpeCBjb21waWxhdGlvbiBhbmQgZml4IGV2ZW50IHNlcmlhbGl6YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC1saWJzL2dkcC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19ldmVudCk6CgkgIEZpeCBjb21waWxhdGlvbiBhbmQgZml4IGV2ZW50IHNlcmlhbGl6YXRpb24uCgoyMDA1LTA3LTI3IDE4OjMzOjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU29tZSBkb2NzIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ0hBTkdFUy0wLjk6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIFNvbWUgZG9jcyB1cGRhdGVzCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc2VuZF9kaXNjb250KSwKCSAgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwgKGdzdF9iYXNlX3NyY19ldmVudF9oYW5kbGVyKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfc2l6ZSksIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCksIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Bhc3N0aHJvdWdoKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pc19wYXNzdGhyb3VnaCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2V2ZW50KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfZXZlbnQpOgoJICBFdmVudCB1cGRhdGVzLgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgVXNlIGZhc3RlciBjYXN0cy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2Vlayk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgVXBkYXRlIGdzdF9lbGVtZW50X3NlZWsuCgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfZmluYWxpemUpLCAoX2dzdF9ldmVudF9jb3B5KSwKCSAgKGdzdF9ldmVudF9uZXcpLCAoZ3N0X2V2ZW50X25ld19jdXN0b20pLCAoZ3N0X2V2ZW50X2dldF9zdHJ1Y3R1cmUpLAoJICAoZ3N0X2V2ZW50X25ld19mbHVzaF9zdGFydCksIChnc3RfZXZlbnRfbmV3X2ZsdXNoX3N0b3ApLAoJICAoZ3N0X2V2ZW50X25ld19lb3MpLCAoZ3N0X2V2ZW50X25ld19uZXdzZWdtZW50KSwKCSAgKGdzdF9ldmVudF9wYXJzZV9uZXdzZWdtZW50KSwgKGdzdF9ldmVudF9uZXdfdGFnKSwKCSAgKGdzdF9ldmVudF9wYXJzZV90YWcpLCAoZ3N0X2V2ZW50X25ld19maWxsZXIpLCAoZ3N0X2V2ZW50X25ld19xb3MpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3FvcyksIChnc3RfZXZlbnRfbmV3X3NlZWspLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3NlZWspLCAoZ3N0X2V2ZW50X25ld19uYXZpZ2F0aW9uKToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgTWFrZSBHc3RFdmVudCB1c2UgR3N0U3RydWN0dXJlLiBBZGQgcGFyc2luZyBjb2RlLCBtYWtlIHN1cmUgdGhlCgkgIEFQSSBpcyBzdWZmaWNpZW50bHkgZ2VuZXJpYy4KCSAgTWFyayBwb3NzaWJsZSBkaXJlY3Rpb25zIG9mIGV2ZW50cyBhbmQgc2VyaWFsaXphdGlvbi4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfaW5pdCksIChnc3RfbWVzc2FnZV9maW5hbGl6ZSksCgkgIChfZ3N0X21lc3NhZ2VfY29weSksIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX25ld19jdXN0b20pLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X2RvbmUpOgoJICBTbWFsbCBjbGVhbnVwcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLAoJICAoZ3N0X3BhZF9zZXRfY2FwcyksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBVcGRhdGUgZm9yIG5ldyBldmVudHMuCgkgIENhdGNoIGV2ZW50cyBzZW50IGluIHdyb25nIGRpcmVjdGlvbnMuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbGlua19zcmMpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfbG9vcCksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSk6CgkgIEV2ZW50IHVwZGF0ZXMuCgkgICogZ3N0L2dzdHRhZy5jOgoJICAqIGdzdC9nc3R0YWcuaDoKCSAgUmVtb3ZlIGV2ZW50IGNvZGUgZnJvbSB0aGlzIGZpbGUuCgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KSwKCSAgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldCk6CgkgIEV2ZW50IHVwZGF0ZXMuCgoyMDA1LTA3LTI3IDE1OjA1OjQ1ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IE1ha2UgZGVidWdnaW5nIGFjdHVhbGx5IHVzZWZ1bC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfc2l6ZSksIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgIE1ha2UgZGVidWdnaW5nIGFjdHVhbGx5IHVzZWZ1bC4KCjIwMDUtMDctMjUgMTI6MzE6MDggKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogSW1wbGVtZW50IGRlZmF1bHQgZml4YXRpb24gb25jZSBhZ2Fpbiwgc28gdGhhdCBnc3RfcGFkX2ZpeGF0ZSgpIGFjdHVhbGx5IGRvZXMgYW55dGhpbmcgYXQgYWxsLiBUaGlzIHByby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChmaXhhdGVfdmFsdWUpLCAoZ3N0X3BhZF9kZWZhdWx0X2ZpeGF0ZSksCgkgIChnc3RfcGFkX2ZpeGF0ZV9jYXBzKToKCSAgSW1wbGVtZW50IGRlZmF1bHQgZml4YXRpb24gb25jZSBhZ2Fpbiwgc28gdGhhdCBnc3RfcGFkX2ZpeGF0ZSgpCgkgIGFjdHVhbGx5IGRvZXMgYW55dGhpbmcgYXQgYWxsLiBUaGlzIHByb2JhYmx5IG5lZWRzIHRvIGJlIHNvbWUKCSAgc29ydCBvZiBhIGxhc3QgcmVzb3J0LCBhbmQgdXNlIHByb2ZpbGUtYmFzZWQgZml4YXRpb24gZmlyc3QsIGJ1dAoJICBzaW5jZSB0aGF0IGRvZXNuJ3QgZXhpc3QgeWV0LCB0aGlzIGlzIHRoZSBiZXN0IHdlIGhhdmUuIEZpeGVzCgkgIHZpc3VhbGl6YXRpb24gaW4gVG90ZW0uCgoyMDA1LTA3LTIyIDExOjQ3OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OiBTbWFsbCB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgU21hbGwgdXBkYXRlLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpOgoJICBTb21lIG1vcmUgY29tbWVudHMuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlX3NyY19jcmVhdGUpOgoJICBGaXggaGFuZG9mZiBtYXJzaGFsbC4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KSwKCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBXZSdyZSBhIHJlYWwgaW5wbGFjZSBlbGVtZW50LgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9zdCk6CgkgIEFkZGVkIHNvbWUgY29tbWVudHMuCgkgICogdGVzdHMvbGF0LmM6IChmYWtlc3JjKSwgKGZha2VzaW5rKSwgKHNpbXBsZSksIChxdWV1ZSksIChtYWluKToKCSAgKiB0ZXN0cy9tdXhpbmcvY2FzZTEuYzogKG1haW4pOgoJICAqIHRlc3RzL3NjaGVkL2R5bmFtaWMtcGlwZWxpbmUuYzogKG1haW4pOgoJICAqIHRlc3RzL3NjaGVkL2ludGVycnVwdDEuYzogKG1haW4pOgoJICAqIHRlc3RzL3NjaGVkL2ludGVycnVwdDIuYzogKG1haW4pOgoJICAqIHRlc3RzL3NjaGVkL2ludGVycnVwdDMuYzogKG1haW4pOgoJICAqIHRlc3RzL3NjaGVkL3J1bnhtbC5jOiAobWFpbik6CgkgICogdGVzdHMvc2NoZWQvc2NoZWQtc3RyZXNzLmM6IChtYWluKToKCSAgKiB0ZXN0cy9zZWVraW5nL3NlZWtpbmcxLmM6IChldmVudF9yZWNlaXZlZCksIChtYWluKToKCSAgKiB0ZXN0cy90aHJlYWRzdGF0ZS90aHJlYWRzdGF0ZTIuYzogKGJ1c19oYW5kbGVyKSwgKHRpbWVvdXRfZnVuYyksCgkgIChtYWluKToKCSAgKiB0ZXN0cy90aHJlYWRzdGF0ZS90aHJlYWRzdGF0ZTMuYzogKG1haW4pOgoJICAqIHRlc3RzL3RocmVhZHN0YXRlL3RocmVhZHN0YXRlNC5jOiAobWFpbik6CgkgICogdGVzdHMvdGhyZWFkc3RhdGUvdGhyZWFkc3RhdGU1LmM6IChtYWluKToKCSAgRml4IHRoZSB0ZXN0cy4KCjIwMDUtMDctMjEgMTc6MjI6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OiBTb21lIHNtYWxsIGFkZGl0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgU29tZSBzbWFsbCBhZGRpdGlvbnMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF90aW1lcyksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgZGlzY29udCB2YWx1ZXMgYXJlIGdpbnQ2NCwgaGFuZGxlIHRoZSBtYXRoIGNvcnJlY3RseS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIE1ha2UgdGhlIGJhc2VzcmMgcmVwb3J0IGVycm9yIGlmIHRoZSBzb3VyY2UgcGFkIGlzIG5vdCBsaW5rZWQuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbGlua19zcmMpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9sb29wKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgIE1ha2UgcXVldWUgY29sbGVjdCBkYXRhIGV2ZW4gaWYgdGhlIHNyY3BhZCBpcyBub3QgbGlua2VkLgoJICBTdGFydCBwdXNoaW5nIG91dCBkYXRhIGFzIHNvb24gYXMgaXQgaXMgbGlua2VkLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfdW5saW5rKSwgKGdzdF9mbG93X2dldF9uYW1lKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkZWQgZ3N0X2Zsb3dfZ2V0X25hbWUoKSB0byBlYXNlIGVycm9yIHJlcG9ydGluZy4KCjIwMDUtMDctMjAgMTg6MDI6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWVzc2FnZS4qOiBBZGRlZCBhIGJ1bmNoIG9mIG1lc3NhZ2VzIGZvciBhZHZhbmNlZCBzZWVraW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfZG9uZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWRkZWQgYSBidW5jaCBvZiBtZXNzYWdlcyBmb3IgYWR2YW5jZWQgc2Vla2luZy4KCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtbWFuYWdlci5jOiAoZ3N0X2RwbWFuX3NldF9wYXJlbnQpLAoJICAoZ3N0X2RwbWFuX3N0YXRlX2NoYW5nZWQpOgoJICBGaXggc29tZSBuZXctcGFkIC0+IHBhZC1hZGRlZCBzaWduYWxzCgoyMDA1LTA3LTIwIDE3OjIyOjI3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzLzogRG9jdW1lbnQgbmV3LXBhZC9zdGF0ZS1jaGFuZ2Ugc2lnbmFsIHJlbmFtZXMgYW5kIHRoZSBGaXhlZExpc3QgdHlwZSByZW5hbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBEb2N1bWVudCBuZXctcGFkL3N0YXRlLWNoYW5nZSBzaWduYWwgcmVuYW1lcyBhbmQgdGhlIEZpeGVkTGlzdAoJICB0eXBlIHJlbmFtZS4KCjIwMDUtMDctMjAgMTc6MTY6NDQgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIEdzdEVsZW1lbnQ6Om5ldy1wYWQgLT4gcGFkLWFkZGVkLCBHc3RFbGVtZW50OjpzdGF0ZS1jaGFuZ2UgLT4gc3RhdGUtY2hhbmdlZCwgR3N0VmFsdWVGaXhlZExpc3QgLT4gR3N0VmFsdWVBcnJheSwgYWRkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgICogZG9jcy9yYW5kb20vZHMvMC45LXN1Z2dlc3RlZC1jaGFuZ2VzOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KSwgKGdzdF9lbGVtZW50X3NlZWspOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdGZvcm1hdC5oOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfdmFsdWVfZ2V0X2dlbmVyaWNfdHlwZSksCgkgIChnc3Rfc3RydWN0dXJlX3BhcnNlX2FycmF5KSwgKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfdmFsdWUpOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3R5cGVfaXNfZml4ZWQpLAoJICAoZ3N0X3ZhbHVlX2xpc3RfcHJlcGVuZF92YWx1ZSksIChnc3RfdmFsdWVfbGlzdF9hcHBlbmRfdmFsdWUpLAoJICAoZ3N0X3ZhbHVlX2xpc3RfZ2V0X3NpemUpLCAoZ3N0X3ZhbHVlX2xpc3RfZ2V0X3ZhbHVlKSwKCSAgKGdzdF92YWx1ZV90cmFuc2Zvcm1fYXJyYXlfc3RyaW5nKSwgKGdzdF92YWx1ZV9zZXJpYWxpemVfYXJyYXkpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2FycmF5KSwgKGdzdF92YWx1ZV9pbnRlcnNlY3RfYXJyYXkpLAoJICAoZ3N0X3ZhbHVlX2lzX2ZpeGVkKSwgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIEdzdEVsZW1lbnQ6Om5ldy1wYWQgLT4gcGFkLWFkZGVkLCBHc3RFbGVtZW50OjpzdGF0ZS1jaGFuZ2UgLT4KCSAgc3RhdGUtY2hhbmdlZCwgR3N0VmFsdWVGaXhlZExpc3QgLT4gR3N0VmFsdWVBcnJheSwgYWRkIGZvcm1hdCBhbmQKCSAgZmxhZ3MgYXMgdGhlaXIgb3duIGFyZ3VtZW50cyBpbiBnc3RfZWxlbWVudF9zZWVrKCkgKHNob3VsZCBpbXByb3ZlCgkgICJiaW5kZWFiaWxpdHkiKSwgcmVtb3ZlIGZ1bmN0aW9uIGdlbmVyYXRvcnMgc2luY2UgdGhleSBkb24ndCB3b3JrCgkgIHVuZGVyIGEgd2hvbGUgYnVuY2ggb2YgY29tcGlsZXJzICh0aGV5IHdlcmUgZGVwcmVjYXRlZCBhbHJlYWR5CgkgIGFueXdheSkuCgoyMDA1LTA3LTIwIDE3OjE1OjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC5zdXBwOgoJKiBjb21tb246CgkqIHRlc3RzL2NoZWNrL2dzdC5zdXBwOgoJICBwYXRjaCBmcm9tIEVkZ2FyZCB0byBwcm9wZXJseSBzdXBwcmVzcyB0aGVzZSB3YXJuaW5ncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggZnJvbSBFZGdhcmQgdG8gcHJvcGVybHkgc3VwcHJlc3MgdGhlc2Ugd2FybmluZ3MKCjIwMDUtMDctMjAgMTY6MjA6MzkgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RpbmZvLio6IEZpeCBpbGxlZ2FsIGNhc3Qgb24gc29tZSBwbGF0Zm9ybXMgKCMzMDkyNTMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX2dzdF9kZWJ1Z19uYW1lb2ZfZnVuY3B0ciksCgkgIChfZ3N0X2RlYnVnX3JlZ2lzdGVyX2Z1bmNwdHIpOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIEZpeCBpbGxlZ2FsIGNhc3Qgb24gc29tZSBwbGF0Zm9ybXMgKCMzMDkyNTMpLgoKMjAwNS0wNy0yMCAxMTozNToxOCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdG1lc3NhZ2UuKjogQWRkIF9uZXdfY3VzdG9tLCBtYWtlIF9uZXdfYXBwbGljYXRpb24gYSBtYWNybyB0byBfbmV3X2N1c3RvbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19jdXN0b20pOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFkZCBfbmV3X2N1c3RvbSwgbWFrZSBfbmV3X2FwcGxpY2F0aW9uIGEgbWFjcm8gdG8gX25ld19jdXN0b20uCgoyMDA1LTA3LTIwIDEwOjU4OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy4qOiBBZGQgYSBnYm9vbGVhbiB0byBkZWNpZGUgd2hlbiB0byBwdXNoIG91dCBhIGRpc2NvbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19zdGFydCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBBZGQgYSBnYm9vbGVhbiB0byBkZWNpZGUgd2hlbiB0byBwdXNoIG91dCBhIGRpc2NvbnQuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9sb29wKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9xdWV1ZV9zZXRfcHJvcGVydHkpLCAoZ3N0X3F1ZXVlX2dldF9wcm9wZXJ0eSk6CgkgIFNvbWUgY2xlYW51cHMuCgkgICogdGVzdHMvdGhyZWFkc3RhdGUvdGhyZWFkc3RhdGUxLmM6IChtYWluKToKCSAgTWFrZSBhIHRocmVhZCB0ZXN0IGNvbXBpbGUgYW5kIHJ1bi4uLiB2ZXJ5IHNpbGx5Li4KCjIwMDUtMDctMjAgMTA6MTM6NDYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOiBNZW50aW9uIHJlbW92YWwgb2YgbGliZ3N0Z2NvbmYtMC45LmxhIGFuZCBleGlzdGVuY2Ugb2YgZ2NvbmYgZWxlbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBNZW50aW9uIHJlbW92YWwgb2YgbGliZ3N0Z2NvbmYtMC45LmxhIGFuZCBleGlzdGVuY2Ugb2YgZ2NvbmYKCSAgZWxlbWVudHMuCgoyMDA1LTA3LTIwIDA4OjI5OjA2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL3B3Zy86IERvY3VtZW50IGJhc2UgY2xhc3NlcywgdXBkYXRlIHNlY3Rpb25zIG9mIG4tdG8tMSBhbmQgMS10by1uIChtdXhlciwgZml4IHNvbWUgY29kZSBleGFtcGxlcyBhbmQgbGlua3MgYW5kIHUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICAqIGRvY3MvcHdnL2ludHJvLXByZWZhY2UueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLWJhc2UueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLW1hbmFnZXIueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLW50b24ueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLW50b29uZS54bWw6CgkgICogZG9jcy9wd2cvb3RoZXItb25ldG9uLnhtbDoKCSAgKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBEb2N1bWVudCBiYXNlIGNsYXNzZXMsIHVwZGF0ZSBzZWN0aW9ucyBvZiBuLXRvLTEgYW5kIDEtdG8tbiAobXV4ZXIsCgkgIGRlbXV4ZXIpLCByZW1vdmUgbi10by1uICh3YXMgbmV2ZXIgd3JpdHRlbiksIGZpeCBzb21lIGNvZGUgZXhhbXBsZXMKCSAgYW5kIGxpbmtzIGFuZCB1cGRhdGUgdGhlIHBvcnRpbmcgc2VjdGlvbiB0byBpbmNsdWRlIGFsbCB0aGlzLgoKMjAwNS0wNy0xOSAxNzo0NjozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWV1ZS4qOiBQcm9wYWdhdGUgR3N0Rmxvd1JldHVybiBtb3JlIGludGVsbGlnZW50bHkgdXBzdHJlYW0gYW5kIG91dHB1dCBhbiBFUlJPUi9FT1Mgd2hlbiBzdHJlYW1pbmcgc3RvcHBlZCBkdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksCgkgIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX2xvb3ApLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpLCAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3F1ZXVlX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcXVldWVfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZ3N0cXVldWUuaDoKCSAgUHJvcGFnYXRlIEdzdEZsb3dSZXR1cm4gbW9yZSBpbnRlbGxpZ2VudGx5IHVwc3RyZWFtIGFuZCBvdXRwdXQKCSAgYW4gRVJST1IvRU9TIHdoZW4gc3RyZWFtaW5nIHN0b3BwZWQgZHVlIHRvIGZhdGFsIGVycm9yLgoKMjAwNS0wNy0xOSAxNDo1Mjo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogRG9uJ3QgYmxvY2sgZm9yZXZlciBmb3IgdGhlIHN0YXRlIGNoYW5nZSB0byBjb21wbGV0ZSwgdGhlIHBpcGVsaW5lIGFscmVhZHkgZGlkIHdpdGggYSBzZW5zaWJsZSB0aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChjaGVja19pbnRyKSwgKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgIERvbid0IGJsb2NrIGZvcmV2ZXIgZm9yIHRoZSBzdGF0ZSBjaGFuZ2UgdG8gY29tcGxldGUsIHRoZQoJICBwaXBlbGluZSBhbHJlYWR5IGRpZCB3aXRoIGEgc2Vuc2libGUgdGltZW91dC4KCjIwMDUtMDctMTkgMTM6NDM6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IE1ha2Ugc3VyZSB3ZSBuZXZlciBjYWxsIHRoZSBjcmVhdGUgZnVuY3Rpb24gaXMgd2UgZ290IGRlYWN0aXZhdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgTWFrZSBzdXJlIHdlIG5ldmVyIGNhbGwgdGhlIGNyZWF0ZSBmdW5jdGlvbiBpcyB3ZQoJICBnb3QgZGVhY3RpdmF0ZWQuCgoyMDA1LTA3LTE5IDExOjI3OjA3ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIGZvciBsYXRlc3QgY2hhbmdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGZvciBsYXRlc3QgY2hhbmdlcwoKMjAwNS0wNy0xOSAxMDo0MDo0OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L3BhcnNlL3BhcnNlLmw6IEF0dGVtcHQgdG8gc29sdmUgYnVnICMxNzI4MTUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9wYXJzZS9wYXJzZS5sOiBBdHRlbXB0IHRvIHNvbHZlIGJ1ZyAjMTcyODE1LgoKMjAwNS0wNy0xOSAwOToxOTowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNtYWxsIGRvY3MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZG9fc2Vlayk6CgkgIFNtYWxsIGRvY3MgdXBkYXRlcy4KCSAgT25seSB1cGRhdGUgdGhlIHNlZWtpbmcgdmFsdWVzIHdoZW4gd2UgYXJlIG5vdAoJICBidXN5IHN0cmVhbWluZy4KCjIwMDUtMDctMTggMTc6NDM6NTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBPb3BzLCBpZ25vcmUgdGhlIHJlc3VsdCBvZiBnc3RfcGFkX3B1c2hfZXZlbnQgaGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE9vcHMsIGlnbm9yZSB0aGUgcmVzdWx0IG9mIGdzdF9wYWRfcHVzaF9ldmVudCBoZXJlLgoKMjAwNS0wNy0xOCAxNzoxMjozNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFNlbmQgZGlzY29udCBldmVudCBmcm9tIHRoZSBsb29wIGZ1bmN0aW9uLCBhcyBwYWRzIGFyZW4ndCBhY3RpdmF0ZWQgeWV0IGluIHRoZSBhY3RpdmF0ZV9wdXNoIGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICBTZW5kIGRpc2NvbnQgZXZlbnQgZnJvbSB0aGUgbG9vcCBmdW5jdGlvbiwgYXMgcGFkcwoJICBhcmVuJ3QgYWN0aXZhdGVkIHlldCBpbiB0aGUgYWN0aXZhdGVfcHVzaCBoYW5kbGVyLgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9idXNfaGFuZGxlcik6CgkgIERvbid0IGxlYWsgZWxlbWVudCBuYW1lLgoKMjAwNS0wNy0xOCAxNDo0NzozOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY29uZmlndXJlLmFjOiBVc2UgQVNfTElCVE9PTF9UQUdTLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjb25maWd1cmUuYWM6IFVzZSBBU19MSUJUT09MX1RBR1MuCgoyMDA1LTA3LTE4IDEyOjU4OjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOiBSZW1vdmUgZGVsZXRlZCB0eXBlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICBSZW1vdmUgZGVsZXRlZCB0eXBlcy4KCjIwMDUtMDctMTggMTI6NDk6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RlcnJvci5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0c2NoZWR1bGVyLmM6CgkqIGdzdC9nc3RzY2hlZHVsZXIuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogZ3N0L2dzdHR5cGVzLmg6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5LmM6CgkqIGdzdC9zY2hlZHVsZXJzL3RocmVhZHNjaGVkdWxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbW1hbmFnZXIuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBSZW1vdmVkIHBsdWdhYmxlIHNjaGVkdWxlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZW1vdmVkIHBsdWdhYmxlIHNjaGVkdWxlcnMuCgkgIFJlbW92ZWQgU2NoZWR1bGVyL01hbmFnZXIgZnJvbSBlbGVtZW50cy4KCSAgUmVtb3ZlZCBnc3R0eXBlcy5oLCByZWFycmFuZ2VkIGluY2x1ZGVzLgoJICBSZW1vdmVkIGRlcGVuZGVuY3kgcGFkPC0+ZWxlbWVudCwgZWxlbWVudDw+cGlwZWxpbmUsIGFuZAoJICB2YXJpb3VzIG90aGVycywgIGZpeCBpbmNsdWRlcy4KCSAgaW1wbGVtZW50IGdzdF9wYWRfZ2V0X3BhcmVudCgpIHdpdGggZ3N0X29iamVjdF9nZXRfcGFyZW50KCkKCSAgTWFrZSBHc3RUYXNrIHNlZmNvbnRhaW5lZC4KCSAgRml4IF9nZXRfc3RhdGUoKSBvbiBHc3RCaW4sIGl0IGRpZCBub3QgcmV0dXJuIEFTWU5DIHdpdGggYSAwCgkgIHRpbWVvdXQuCgkgIEZpeCBlbmRsZXNzIGxvb3AgaW4gaXRlcmF0b3JfZm9sZF93aXRoX3Jlc3luYy4KCjIwMDUtMDctMTggMDk6MjI6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBSZW1vdmUgb2xkIGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0YXJjaC5oOgoJICBSZW1vdmUgb2xkIGZpbGUuCgoyMDA1LTA3LTE4IDA4OjUxOjMxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBObyBtb3JlIGNvdGhyZWFkcy5oCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgTm8gbW9yZSBjb3RocmVhZHMuaAoKMjAwNS0wNy0xOCAwODo0MzoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9jb3RocmVhZHMuKjogTGV0J3MgcmVtb3ZlIHRoZXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvY290aHJlYWRzLmM6CgkgICogZ3N0L2NvdGhyZWFkcy5oOgoJICBMZXQncyByZW1vdmUgdGhlc2UuCgoyMDA1LTA3LTE4IDA4OjI4OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBTb21lIG1vcmUgZG9jcyBpbiB0aGUgd29ya3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZHluYW1pYy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgIFNvbWUgbW9yZSBkb2NzIGluIHRoZSB3b3Jrcy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zcmNfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Bhc3N0aHJvdWdoKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pc19wYXNzdGhyb3VnaCk6CgkgIFJlZmNvdW50aW5nIGZpeGVzLgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfc291cmNlX2Rpc3BhdGNoKSwgKGdzdF9idXNfcG9sbCk6CgkgIENsZWFudXBzLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X2ZpbmFsaXplKToKCSAgU2V0IFNSQyB0byBOVUxMLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfdW5saW5rKSwKCSAgKGdzdF9wYWRfZ2V0X3BhcmVudF9lbGVtZW50KSwgKGdzdF9wYWRfcHJveHlfZ2V0Y2FwcyksCgkgIChnc3RfcGFkX3Byb3h5X3NldGNhcHMpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBZGQgX2dldF9wYXJlbnRfZWxlbWVudCgpIHRvIGdldCBhIHBhZHMgcGFyZW50IGFzIGFuIGVsZW1lbnQuCgoyMDA1LTA3LTE3IDIyOjQ0OjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBSZW1vdmUgYm9ndXMgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBSZW1vdmUgYm9ndXMgdGVzdC4KCjIwMDUtMDctMTcgMjI6MjY6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZWZjb3VudGluZyBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcGFkX2dldGNhcHMpLAoJICAoZ3N0X2Jhc2Vfc2lua19wYWRfc2V0Y2FwcyksIChnc3RfYmFzZV9zaW5rX3BhZF9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2NoYWluKSwgKGdzdF9iYXNlX3NpbmtfbG9vcCksCgkgIChnc3RfYmFzZV9zaW5rX2RlYWN0aXZhdGUpLCAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFJlZmNvdW50aW5nIGZpeGVzLgoJICBGaXggbG9naWMgZm9yIHJldHVybmluZyBBU1lOQyB3aGVuIG5vdCBwcmVyb2xsZWQuCgoyMDA1LTA3LTE3IDIyOjIyOjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1ZXVlLmM6IEZpeCBuYXN0eSByZWZjb3VudCBidWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KToKCSAgRml4IG5hc3R5IHJlZmNvdW50IGJ1Zy4KCjIwMDUtMDctMTYgMTk6MjU6NDEgKzAwMDAgIFBoaWxpcHBlIEthbGFmIDxwaGlsaXBwZS5rYWxhZkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIE1vdmVkIGZkc3JjIHRvIGdzdC1wbHVnaW5zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTW92ZWQgZmRzcmMgdG8gZ3N0LXBsdWdpbnMuCgoyMDA1LTA3LTE2IDE1OjQzOjEwICswMDAwICBQaGlsaXBwZSBLYWxhZiA8cGhpbGlwcGUua2FsYWZAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJICBGb3Jnb3QgY2hhbmdlbG9nIGVudHJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGb3Jnb3QgY2hhbmdlbG9nIGVudHJ5CgoyMDA1LTA3LTE2IDE1OjQxOjA0ICswMDAwICBQaGlsaXBwZSBLYWxhZiA8cGhpbGlwcGUua2FsYWZAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYyBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuaCBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYyBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTYgUGhpbGlwcGUgS2hhbGFmIDxidXJnZXJAc3BlZWR5Lm9yZz4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYwoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5oCgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmMKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW0KCSAgUG9ydGVkIGZkc3JjIHRvIDAuOS4KCjIwMDUtMDctMTYgMTQ6NTI6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBGaXggY29tcGlsZSBlcnJvci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICBGaXggY29tcGlsZSBlcnJvci4KCjIwMDUtMDctMTYgMTQ6NDE6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay4qOiBTdG9yZSBhbmQgdXNlIGRpc2NvbnQgdmFsdWVzIHdoZW4gc3luY2luZyBidWZmZXJzIGFzIGRlc2NyaWJlZCBpbiBkZXNpZ24gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3RpbWVzKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgU3RvcmUgYW5kIHVzZSBkaXNjb250IHZhbHVlcyB3aGVuIHN5bmNpbmcgYnVmZmVycyBhcyBkZXNjcmliZWQKCSAgaW4gZGVzaWduIGRvY3MuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZGlzY29udCksCgkgIChnc3RfYmFzZV9zcmNfZG9fc2VlayksIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfc3RhcnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICBQdXNoIGRpc2NvbnQgZXZlbnQgd2hlbiBzdGFydGluZy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm0pOgoJICBTbWFsbCBjbGVhbnVwcy4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgIFNtYWxsIGNsZWFudXBzIGluIGJhc2VfdGltZSAgZGlzdHJpYnV0aW9uLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfYmFzZV90aW1lKSwKCSAgKGdzdF9lbGVtZW50X2dldF9iYXNlX3RpbWUpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBBZGRlZCBtZXRob2RzIGZvciB0aGUgYmFzZV90aW1lIG9mIHRoZSBlbGVtZW50LgoJICBTb21lIE1UIGZpeGVzLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX3NlbmRfZXZlbnQpLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksIChnc3RfcGlwZWxpbmVfc2V0X25ld19zdHJlYW1fdGltZSksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X2xhc3Rfc3RyZWFtX3RpbWUpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBNVCBmaXhlcy4KCSAgSGFuZGxlIHNlZWtpbmcgYXMgZGVzY3JpYmVkIGluIGRlc2lnbiBkb2MsIHJlbW92ZSBzdHJlYW1fdGltZQoJICBoYWNrLgoJICBDbGVhbnVwcyBjbG9jayBhbmQgc3RyZWFtX3RpbWUgc2VsZWN0aW9uIGNvZGUuIEFkZGVkIGFjY2Vzc29ycwoJICBmb3IgdGhlIHN0cmVhbV90aW1lLgoKMjAwNS0wNy0xNiAxNDowNjoyMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVycm9yLmMgKF9nc3RfY29yZV9lcnJvcnNfaW5pdCk6IFVzZSB0aGUgbWFnaWMgd29yZC4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTE2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlcnJvci5jIChfZ3N0X2NvcmVfZXJyb3JzX2luaXQpOiBVc2UgdGhlIG1hZ2ljIHdvcmQuLgoKMjAwNS0wNy0xNiAxMzo1MDozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogTWFrZSBlbGVtZW50cyBzaWxlbnQgYXMgdGhlIGRlZXBfbm90aWZ5IHJlZnMgdGhlIHBhcmVudCwgd2hpY2ggbWlnaHQgbWFrZSB0aGUgdGVzdCBmYWlsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2UgZWxlbWVudHMgc2lsZW50IGFzIHRoZSBkZWVwX25vdGlmeSByZWZzIHRoZQoJICBwYXJlbnQsIHdoaWNoIG1pZ2h0IG1ha2UgdGhlIHRlc3QgZmFpbC4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCk6CgkgIERvbid0IGhvbGQgdGhlIGxvY2sgZm9yIHRvbyBsb25nLgoKMjAwNS0wNy0xNiAxMjozMzoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogRG9uJ3QgdW5yZWYgdGhlIGNhcHMgd2UgcGFzc2VkIHRvIGdzdF9jYXBzX21ha2Vfd3JpdGFibGUoKSBhZnRlciBwYXNzaW5nIHRoZW0uIGdzdF9jYXBzX21ha2Vfdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpOgoJICBEb24ndCB1bnJlZiB0aGUgY2FwcyB3ZSBwYXNzZWQgdG8gZ3N0X2NhcHNfbWFrZV93cml0YWJsZSgpIGFmdGVyCgkgIHBhc3NpbmcgdGhlbS4gZ3N0X2NhcHNfbWFrZV93cml0YWJsZSgpIHdpbGwgZG8gdGhhdCBmb3IgdXMuCgoyMDA1LTA3LTE1IDE2OjEwOjQxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5oIChnc3RfY2Fwc19pc19zaW1wbGUpOiBSZW1vdmVkIGRlcHJlY2F0ZWQgbWFjcm8gKCMxNTczMTEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Y2Fwcy5oIChnc3RfY2Fwc19pc19zaW1wbGUpOiBSZW1vdmVkIGRlcHJlY2F0ZWQgbWFjcm8KCSAgKCMxNTczMTEpLgoKMjAwNS0wNy0xNSAxNDo1OToyMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmMgKG1hcnNoYWxfVk9JRF9fTUlOSU9CSkVDVCk6IFdyaXRlIG91ciBvd24gbWFyc2hhbGxpbmcgZnVuY3Rpb24gZm9yIHRoZSBoYW5kb2ZmIHNpZ25hbC4gUHJvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTE1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jIChtYXJzaGFsX1ZPSURfX01JTklPQkpFQ1QpOiBXcml0ZSBvdXIKCSAgb3duIG1hcnNoYWxsaW5nIGZ1bmN0aW9uIGZvciB0aGUgaGFuZG9mZiBzaWduYWwuIFByb3Blcmx5IHR5cGUgdGhlCgkgIGJ1ZmZlciBhcyBhIGJ1ZmZlci4gRml4ZXMgc29tZSB3YXJuaW5ncy4gU2hvdWxkIGRvIGEgbW9yZSBnZW5lcmFsCgkgIHNvbHV0aW9uLgoJICAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOiBQbHVnIGludG8gdGhlIHJpZ2h0IG1hcnNoYWxsZXIuCgoyMDA1LTA3LTE1IDEzOjQ0OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBVcGRhdGVkIGRvY3MsIG1vc3RseSBESVNDT05UIHJlbGF0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgIFVwZGF0ZWQgZG9jcywgbW9zdGx5IERJU0NPTlQgcmVsYXRlZC4KCjIwMDUtMDctMTUgMTI6NTU6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDogcy9HU1RfUEFEX0xJTktfUkVGVVNFRC9GQUxTRS8gaW4gZ3N0X215X2ZpbHRlcl9zZXRjYXBzKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6CgkgIHMvR1NUX1BBRF9MSU5LX1JFRlVTRUQvRkFMU0UvIGluIGdzdF9teV9maWx0ZXJfc2V0Y2FwcygpCgoyMDA1LTA3LTE1IDExOjA1OjUyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSAgcmVtb3ZlIGlycmVsZXZhbnQgY29kZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGlycmVsZXZhbnQgY29kZQoKMjAwNS0wNy0xNSAxMTowNDoxOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdG9vbHMvZ3N0LXR5cGVmaW5kLmM6IFVwZGF0ZSwgYWRkIGNvcHlyaWdodCBibG9jay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6IFVwZGF0ZSwgYWRkIGNvcHlyaWdodCBibG9jay4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19kZWZhdWx0X25lZ290aWF0ZSk6CgkgIE5vcm1hbGl6ZSBhbmQgdHJ1bmNhdGUgY2FwcyBiZWZvcmUgZml4YXRpb24uCgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgKiBnc3QvZ3N0Y2Fwcy5jIChnc3RfY2Fwc190cnVuY2F0ZSk6IE5ldyBmdW5jdGlvbiwgZGVzdHJ1Y3RpdmVseQoJICBkaXNjYXJkcyBhbGwgYnV0IHRoZSBmaXJzdCBzdHJ1Y3R1cmUgZnJvbSBpdHMgYXJndW1lbnQuCgoyMDA1LTA3LTE1IDEwOjQxOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS4qOiBNYWtlIHBhc3N0aHJvdWdoIHdvcmsgdXNpbmcgdGhlIGJ1ZmZlcnBvb2xzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfc2l6ZSksIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRyYW5nZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Bhc3N0aHJvdWdoKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pc19wYXNzdGhyb3VnaCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBNYWtlIHBhc3N0aHJvdWdoIHdvcmsgdXNpbmcgdGhlIGJ1ZmZlcnBvb2xzLgoJICBDaGFuZ2VkIEFQSSBhIGJpdCwgc3ViY2xhc3NlcyBoYXZlIHRvIHdyaXRlIGludG8gYSBidWZmZXIKCSAgcHJvdmlkZWQgYnkgdGhlIGJhc2UgY2xhc3MuCgkgIE1vcmUgZGVidWcgaW5mbyBpbiBuZWdvIGZ1bmN0aW9ucy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9pbml0KSwKCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm0pOgoJICBQb3J0IHRvIG5ldyBiYXNlIGNsYXNzLgoKMjAwNS0wNy0xNSAxMDozMDo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFRvdGFsbHkgZHVtcCBtZXNzYWdlcyBpbiAtbGF1bmNoIHdpdGggdGhlIC1tIG9wdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKSwgKG1haW4pOgoJICBUb3RhbGx5IGR1bXAgbWVzc2FnZXMgaW4gLWxhdW5jaCB3aXRoIHRoZSAtbSBvcHRpb24uCgkgIEZpeCBtZXNzYWdlIG5hbWUgZm9yIFN0YXRlIG1lc3NhZ2VzLAoKMjAwNS0wNy0xNCAxODo0NTo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogUG9zdCBlcnJvciBtZXNzYWdlcyBvbiBlcnJvcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19sb29wKToKCSAgUG9zdCBlcnJvciBtZXNzYWdlcyBvbiBlcnJvcnMuCgoyMDA1LTA3LTE0IDE4OjEwOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogUmVtb3ZlIGRlYnVnIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19kb19zaW1wbGlmeSk6CgkgIFJlbW92ZSBkZWJ1ZyBpbmZvLgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICBEZWZpbmUgZXJyb3IgZm9yIHN0cmVhbSBzdG9wcGVkLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19idWZmZXJhbGxvYyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2NoYWluKSwgKGdzdF9wcm94eV9wYWRfZG9fZ2V0cmFuZ2UpOgoJICBEbyBwcm9wZXIgcmV0dXJuIHZhbHVlcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLAoJICAoZ3N0X3BhZF9zZXRfY2FwcyksIChnc3RfcGFkX2NoYWluKSwgKGdzdF9wYWRfcHVzaCksCgkgIChnc3RfcGFkX2dldF9yYW5nZSk6CgkgIEJldHRlciByZXR1cm4gdmFsdWVzLgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgUmVvcmdhbmlzZSByZXR1cm4gdmFsdWVzLCBhZGQgbWFjcm8gdG8gY2hlY2sgZm9yIGZhdGFsIGVycm9ycy4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jaGFpbik6CgkgIFJldHVybiBwcm9wZXIgR3N0Rmxvd1JldHVybiB2YWx1ZXMsCgoyMDA1LTA3LTE0IDA5OjM1OjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJKiBkb2NzL2dzdC90bXBsL2dzdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2V0cmFuc2Zvcm0uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RidWZmZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RjYXBzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2xvY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rjb21wYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rjb25maWcuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGRldGFpbHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVudW10eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVycm9yLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXZlbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWx0ZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rmb3JtYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RnaG9zdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGltcGxlbWVudHNpbnRlcmZhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZm8uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpdGVyYXRvci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1hY3Jvcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1lbWNodW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWluaW9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZHRlbXBsYXRlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFyc2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwaXBlbGluZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RxdWVyeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXVlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeXBvb2wuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzY2hlZHVsZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzY2hlZHVsZXJmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c3RydWN0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c3lzdGVtY2xvY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0YWdsaXN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnc2V0dGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHJhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0cmFzaHN0YWNrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZWZpbmQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlZmluZGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHVyaWhhbmRsZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1cml0eXBlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXRpbHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2YWx1ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZlcnNpb24uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R4bWwuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0Y29udHJvbC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZHBhcmFtLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRwbGluaW50LnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRwbWFuLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRwc21vb3RoLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGdldGJpdHMuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0dW5pdGNvbnZlcnQuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkgIG1vcmUgYXV0aXN0aWMgY2xlYW5saW5lc3MgaW4gZnVuY3Rpb25zL25hbWVzL2RlZmluZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgYXV0aXN0aWMgY2xlYW5saW5lc3MgaW4gZnVuY3Rpb25zL25hbWVzL2RlZmluZXMKCjIwMDUtMDctMTMgMTg6Mjk6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgZml4IGRlYnVnIGlmZGVmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZGVidWcgaWZkZWYKCjIwMDUtMDctMTMgMTY6MjY6MDcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KTogUG9zdCBhbiBlcnJvciBpZiB0aGUgc291cmNlIGNvdWxkbid0IG5lZ290aWF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfc3RhcnQpOiBQb3N0IGFuIGVycm9yIGlmIHRoZQoJICBzb3VyY2UgY291bGRuJ3QgbmVnb3RpYXRlLgoKMjAwNS0wNy0xMyAxMzoxNDo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3Quc3VwcDoKCSogdGVzdHMvY2hlY2svZ3N0LnN1cHA6CgkgIGFkZCBhIHN1cHByZXNzaW9uIGZyb20gRWRnYXJkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSBzdXBwcmVzc2lvbiBmcm9tIEVkZ2FyZAoKMjAwNS0wNy0xMyAxMzoxMDoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBtb3ZlIHR3byB0ZXN0c3VpdGUgYXBwcyBvdmVyIHRvIHRoZSBjaGVjayBkaXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHN1aXRlL2NhcHMvTWFrZWZpbGUuYW06CgkgICogdGVzdHN1aXRlL2NhcHMvdmFsdWVfY29tcGFyZS5jOgoJICAqIHRlc3RzdWl0ZS9jYXBzL3ZhbHVlX2ludGVyc2VjdC5jOgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgbW92ZSB0d28gdGVzdHN1aXRlIGFwcHMgb3ZlciB0byB0aGUgY2hlY2sgZGlyCgoyMDA1LTA3LTEyIDE3OjE3OjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBBZGRlZCBtb3JlIGRlYnVnIGluZm8gaW4gdGhlIG5lZ290aWF0ZSBwcm9jZXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2Fwcyk6CgkgIEFkZGVkIG1vcmUgZGVidWcgaW5mbyBpbiB0aGUgbmVnb3RpYXRlIHByb2Nlc3MuCgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgUHJlcGFyZSBmb3Igc2VnbWVudCBwbGF5YmFjay4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfc2V0X2NhcHMpOgoJICBCZXR0ZXIgZGVidWdnaW5nLgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBTb21lIG1vcmUgZG9jcy4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgTlVMTCBwaXBlbGluZSBvbiBlcnJvcnMuCgoyMDA1LTA3LTEyIDE3OjA0OjQxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmMgKF9nc3RfYnVmZmVyX2NvcHkpOiBDb3B5IHRoZSBidWZmZXIgd2hldGhlciBvciBub3QgaXQgY29tZXMgZnJvbSBhIG1hbGxvYyByZWdpb24uIE1ha2Ugc3VyZSBvdXIgY29weSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJ1ZmZlci5jIChfZ3N0X2J1ZmZlcl9jb3B5KTogQ29weSB0aGUgYnVmZmVyIHdoZXRoZXIgb3IKCSAgbm90IGl0IGNvbWVzIGZyb20gYSBtYWxsb2MgcmVnaW9uLiBNYWtlIHN1cmUgb3VyIGNvcHkgZ2V0cyBmcmVlZC4KCjIwMDUtMDctMTIgMTY6Mjg6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiBjaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZml4IHJlZmNvdW50aW5nIG9mIHdhcm5pbmcgYW5kIGVycm9yIG1lc3NhZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggcmVmY291bnRpbmcgb2Ygd2FybmluZyBhbmQgZXJyb3IgbWVzc2FnZXMKCjIwMDUtMDctMTIgMTM6MjY6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICByZS1lbmFibGUgbGVhayBjaGVja2luZyA6KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmUtZW5hYmxlIGxlYWsgY2hlY2tpbmcgOikKCjIwMDUtMDctMTIgMTI6MjA6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGFkZCBwZXItdGVzdCB2YWxncmluZCB0YXJnZXRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBhZGQgcGVyLXRlc3QgdmFsZ3JpbmQgdGFyZ2V0cwoJICAqIGNoZWNrL2dzdC1saWJzL2dkcC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2RhdGFfcHJvdG9jb2xfc3VpdGUpLCAobWFpbik6CgkgIGNsZWFuIHVwCgoyMDA1LTA3LTEyIDA5OjQxOjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBpbnN0YXRlIG1vcmUgdmFsZ3JpbmRhYmxlIHRlc3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTEyICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBpbnN0YXRlIG1vcmUgdmFsZ3JpbmRhYmxlIHRlc3RzCgkgICogY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoY2hhaW5fZnVuYyksIChldmVudF9mdW5jKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKGZha2VzcmNfc3VpdGUpOgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIGZpeCB0ZXN0IGxlYWtzCgkgICogZG9jcy9nc3QvdG1wbC9nc3RtaW5pb2JqZWN0LnNnbWw6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9maW5hbGl6ZSk6CgkgIGZpeCB0aGUgc3RhdGljIG11dGV4IGxlYWsKCjIwMDUtMDctMTEgMTg6NDE6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGFkZCB0d28gbW9yZSB0ZXN0cyBmb3IgdmFsZ3JpbmRpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGFkZCB0d28gbW9yZSB0ZXN0cyBmb3IgdmFsZ3JpbmRpbmcKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgdGVzdCByZWZjb3VudCBvZiBkZXNlcmlhbGl6ZWQgYnVmZmVyLCBmb3VuZCBhIGxlYWsKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0bWluaW9iamVjdC5zZ21sOgoJICBhZGQgbWluaW9iamVjdCB0byBkb2NzCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgYWRkIHNvbWUgZG9jcwoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2J1ZmZlciksCgkgIChnc3Rfc3RyaW5nX3Vud3JhcCk6CgkgIGZpeCBhIGhhcmQtdG8tZmluZCBpbnZhbGlkIHdyaXRlIGZvciBvbmUgb2YgdGhlIHRlc3RzCgkgIGZpeCBhIGxlYWsgZm9yIGRlc2VyaWFsaXplZCBidWZmZXJzCgoyMDA1LTA3LTExIDE1OjQxOjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZG9uJ3QgdmFsZ3JpbmQgYXMgcGFydCBvZiBtYWtlIGNoZWNrIGZvciBub3cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IHZhbGdyaW5kIGFzIHBhcnQgb2YgbWFrZSBjaGVjayBmb3Igbm93CgoyMDA1LTA3LTExIDE1OjIyOjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgc3BlY2lmeSB0b29sCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzcGVjaWZ5IHRvb2wKCjIwMDUtMDctMTEgMTU6MTg6MzIgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvcHdnLzogUmV3cml0ZSBzY2hlZHVsaW5nLWNoYXB0ZXIgZm9yIHNjaGVkdWxpbmcgbW9kZWwgaW4gMC45LiBBZGQgbG90cyBvZiBleGFtcGxlIGNvZGUgYW5kIGV4cGxhbmF0aW9uIGZvciBwYWQgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1ldmVudHMueG1sOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXJlcXVlc3QueG1sOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgICogZG9jcy9wd2cvaW50cm8tcHJlZmFjZS54bWw6CgkgICogZG9jcy9wd2cvb3RoZXItbnRvb25lLnhtbDoKCSAgUmV3cml0ZSBzY2hlZHVsaW5nLWNoYXB0ZXIgZm9yIHNjaGVkdWxpbmcgbW9kZWwgaW4gMC45LiBBZGQgbG90cwoJICBvZiBleGFtcGxlIGNvZGUgYW5kIGV4cGxhbmF0aW9uIGZvciBwYWQgYWN0aXZhdGlvbiwgbG9vcCgpIGFuZAoJICBnZXRyYW5nZSgpIGZ1bmN0aW9ucyBhbmQgYSBiaXQgbW9yZS4gUmVtb3ZlIG9sZCBjb21tZW50cyBwb2ludGluZwoJICB0byBsb29wLWZ1bmN0aW9ucy4KCSAgKiBleGFtcGxlcy9wd2cvTWFrZWZpbGUuYW06CgkgIEFkZCBsb29wL2dldHJhbmdlIGV4YW1wbGVzLgoKMjAwNS0wNy0xMSAxNToxMDo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3Quc3VwcDoKCSogY2hlY2svZ3N0L2dzdC5jOgoJKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIGNoZWNrL2dzdC9nc3RkYXRhLmM6CgkqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiBjaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC5zdXBwOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdmFsZ3JpbmQgdW5pdCB0ZXN0cyBhcyBjaGVjay1sb2NhbDsgYWRkIGdzdF9kZWluaXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHZhbGdyaW5kIHVuaXQgdGVzdHMgYXMgY2hlY2stbG9jYWw7IGFkZCBnc3RfZGVpbml0CgoyMDA1LTA3LTExIDE1OjA2OjI3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgYWRkIG51bS1idWZmZXJzIHByb3BlcnR5IHRvIGJhc2VzcmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBudW0tYnVmZmVycyBwcm9wZXJ0eSB0byBiYXNlc3JjCgoyMDA1LTA3LTEwIDEyOjAzOjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIG1vcmUgbWFjcm8gc3BsaXR0aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIG1hY3JvIHNwbGl0dGluZwoKMjAwNS0wNy0xMCAwMDowNzo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBhZGQgZGVidWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9idXMpOgoJICBhZGQgZGVidWcKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChjaGVja19pbnRyKSwgKGV2ZW50X2xvb3ApOgoJICBmaXggYnVzIGxlYWtzCgoyMDA1LTA3LTA5IDIzOjUyOjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZml4IGNhcHMgbGVhayBpbiBib3RoIGNhc2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggY2FwcyBsZWFrIGluIGJvdGggY2FzZXMKCjIwMDUtMDctMDkgMjM6NDg6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBkdWgsIHJlbW92ZSB1bnVzZWQgdmFyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkdWgsIHJlbW92ZSB1bnVzZWQgdmFyCgoyMDA1LTA3LTA5IDIzOjQ3OjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdHBhZC5jOgoJICBmaXggYSBjYXBzIGxlYWsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBhIGNhcHMgbGVhawoKMjAwNS0wNy0wOSAyMzozMzoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IGFkZCBmaW5hbGl6ZSBtZXRob2QgYW5kIGNsZWFuIHVwIHByb3Blcmx5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19maW5hbGl6ZSk6CgkgIGFkZCBmaW5hbGl6ZSBtZXRob2QgYW5kIGNsZWFuIHVwIHByb3Blcmx5CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfZGlzcG9zZSk6CgkgIGFkZCBkZWJ1ZwoKMjAwNS0wNy0wOSAyMzoxNToyNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGRvbid0IGdldCBzcmMgZm9yIGFsbCBtZXNzYWdlczsgb25seSBmb3IgZW9zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBnZXQgc3JjIGZvciBhbGwgbWVzc2FnZXM7IG9ubHkgZm9yIGVvcwoKMjAwNS0wNy0wOSAyMjo1NDoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IGFkZCBtb3JlIHRoaW5ncyB0byBjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChwb3BfbWVzc2FnZXMpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2Jpbl9zdWl0ZSk6CgkgIGFkZCBtb3JlIHRoaW5ncyB0byBjaGVjawoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hhbmdlX3N0YXRlKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgbW9yZSBkZWJ1ZwoKMjAwNS0wNy0wOSAxNjozNjoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogY2hlY2svZ3N0LWxpYnMvZ2RwLmM6CgkqIGNoZWNrL2dzdC9nc3QuYzoKCSogY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIGNoZWNrL2dzdC9nc3RidXMuYzoKCSogY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogY2hlY2svZ3N0L2dzdGRhdGEuYzoKCSogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGNoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiBjaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIGNoZWNrL2dzdC9nc3RwYWQuYzoKCSogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBjaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogY2hlY2svZ3N0Y2hlY2suYzoKCSogY2hlY2svZ3N0Y2hlY2suaDoKCSogY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzoKCSogY2hlY2svc3RhdGVzL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdGNoZWNrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdGNoZWNrLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIGFkZCBkZWJ1Z2dpbmcgY2F0ZWdvcnkgdXNlIEdTVF9TVEFSVF9URVNUIG5vdywgc28gd2UgYWRkIGEgZGVidWcgbGluZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGRlYnVnZ2luZyBjYXRlZ29yeQoJICB1c2UgR1NUX1NUQVJUX1RFU1Qgbm93LCBzbyB3ZSBhZGQgYSBkZWJ1ZyBsaW5lCgoyMDA1LTA3LTA5IDE1OjE4OjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogYWRkIHRlc3QgZm9yIHN0YXRlIGNoYW5nZSBtZXNzYWdlIG9uIGEgYmluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKFNUQVJUX1RFU1QpLCAoZ3N0X2Jpbl9zdWl0ZSk6CgkgIGFkZCB0ZXN0IGZvciBzdGF0ZSBjaGFuZ2UgbWVzc2FnZSBvbiBhIGJpbgoJICAqIGNoZWNrL2dzdC9nc3RlbGVtZW50LmM6IChTVEFSVF9URVNUKSwgKGdzdF9lbGVtZW50X3N1aXRlKToKCSAgYWRkIGFub3RoZXIgdGVzdAoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faW5pdCk6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19pbml0KSwgKGdzdF9idXNfcG9zdCk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jcmVhdGUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXcpOgoJICAqIGdzdC9nc3RzY2hlZHVsZXIuYzoKCSAgdmFyaW91cyBkZWJ1Z2dpbmcgYWRkaXRpb25zIGFuZCBjbGVhbnVwcwoKMjAwNS0wNy0wOCAxNjo0MTo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSAgYWRkaW5nIHRlc3RzIGZvciBlbGVtZW50cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkaW5nIHRlc3RzIGZvciBlbGVtZW50cwoKMjAwNS0wNy0wOCAxNjoxNjoyOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOiBwbHVnIG1vcmUgbGVha3MuICBBIHNpbXBsZSBnc3RfaW5pdCgpIG5vdyBpcyBsZWFrZnJlZSwgeWF5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOiAobG9hZF9mZWF0dXJlKToKCSAgcGx1ZyBtb3JlIGxlYWtzLiAgQSBzaW1wbGUgZ3N0X2luaXQoKSBub3cgaXMgbGVha2ZyZWUsIHlheS4KCjIwMDUtMDctMDggMTY6MDg6MTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOgoJICBwbHVnIGFub3RoZXIgbWVtbGVhayBpbiByZWdpc3RyeSBsb2FkaW5nIC0gSSBoYXZlIE5PIGlkZWEgd2h5IHRoaXMgd2FzIHJldHVybmluZyBhIEdzdFBsdWdpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGx1ZyBhbm90aGVyIG1lbWxlYWsgaW4gcmVnaXN0cnkgbG9hZGluZyAtIEkgaGF2ZSBOTyBpZGVhIHdoeSB0aGlzIHdhcyByZXR1cm5pbmcgYSBHc3RQbHVnaW4KCjIwMDUtMDctMDggMTQ6NTA6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSAgSSBuZWVkIHRvIGxlYXJuIHRvIHN0b3AgZG9pbmcgdGhpcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSSBuZWVkIHRvIGxlYXJuIHRvIHN0b3AgZG9pbmcgdGhpcwoKMjAwNS0wNy0wOCAxNDozOTowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGFkZCByaWdodCB2YXJpYWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHJpZ2h0IHZhcmlhYmxlCgoyMDA1LTA3LTA4IDE0OjM1OjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogdXNlIEdTVF9TRVRfRVJST1JfQ0ZMQUdTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgdXNlIEdTVF9TRVRfRVJST1JfQ0ZMQUdTCgkgICogZG9jcy9mYXEvY3ZzLnhtbDoKCSAgY2hhbmdlIHRvIEVSUk9SX0NGTEFHUwoKMjAwNS0wNy0wOCAxNDowMTozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IG1ha2UgR1NUX0VSUk9SX0NGTEFHUyBvdmVycmlkYWJsZSBhbmQgcmUtZW5hYmxlIFdlcnJvcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIG1ha2UgR1NUX0VSUk9SX0NGTEFHUyBvdmVycmlkYWJsZSBhbmQgcmUtZW5hYmxlIFdlcnJvcgoJICAqIGRvY3MvZmFxL2N2cy54bWw6CgkgIGFkZCBhIG5vdGUgYWJvdXQgZXJyb3IgQ0ZMQUdTCgkgICogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgY29tbWVudCBvdXQgc29tZSB1bnVzZWQgY29kZQoJICAqIGdzdC9nc3QuYzogKHNwbGl0X2FuZF9pdGVyYXRlKToKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOiAobG9hZF9wYWRfdGVtcGxhdGUpLAoJICAobG9hZF9mZWF0dXJlKToKCSAgcGx1ZyBzb21lIG1lbWxlYWtzCgoyMDA1LTA3LTA3IDE1OjA3OjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgbWFrZSBsaWJzIHVzZSBzYW1lIGd0ay1kb2MubWFrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWtlIGxpYnMgdXNlIHNhbWUgZ3RrLWRvYy5tYWsKCjIwMDUtMDctMDcgMTQ6MTY6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIGZhY3RvciBvdXQgZ3RrLWRvYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmFjdG9yIG91dCBndGstZG9jCgoyMDA1LTA3LTA3IDE0OjAxOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3NjaGVkdWxlcnMvdGhyZWFkc2NoZWR1bGVyLmM6IFVubG9jayB0aGUgU1RSRUFNX0xPQ0sgY29tcGxldGVseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3NjaGVkdWxlcnMvdGhyZWFkc2NoZWR1bGVyLmM6IChnc3RfdGhyZWFkX3NjaGVkdWxlcl9mdW5jKSwKCSAgKGdzdF90aHJlYWRfc2NoZWR1bGVyX2Rpc3Bvc2UpOgoJICBVbmxvY2sgdGhlIFNUUkVBTV9MT0NLIGNvbXBsZXRlbHkuCgoyMDA1LTA3LTA3IDEzOjE0OjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGV4YW1wbGVzL3B3Zy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcHdnLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0wNy0wNyAxMzoxMjo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9pbnN0YW50aWF0ZS8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMDctMDcgMTE6NTk6MzcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGFkZGluZyBhbiBlbGVtZW50IHRlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGluZyBhbiBlbGVtZW50IHRlc3QKCjIwMDUtMDctMDcgMTE6MDk6MzIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RidXMuYyAoZ3N0X2J1c19oYXZlX3BlbmRpbmcpOiBSZW1vdmUgaW50ZW5zZWx5IGlycml0YXRpbmcgZGVidWcgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJ1cy5jIChnc3RfYnVzX2hhdmVfcGVuZGluZyk6IFJlbW92ZSBpbnRlbnNlbHkgaXJyaXRhdGluZwoJICBkZWJ1ZyBtZXNzYWdlLgoKMjAwNS0wNy0wNyAxMDowMzowNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgYW5vdGhlciBkb2MgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhbm90aGVyIGRvYyBmaXgKCjIwMDUtMDctMDcgMDk6MTA6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9tYW51YWwvQlVJTEQ6CgkqIGRvY3MvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtb3JlIG1hY29zeCBtYWRuZXNzIGZpeGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBtYWNvc3ggbWFkbmVzcyBmaXhpbmcKCjIwMDUtMDctMDcgMDg6NDM6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVlcnkuKjogUmVtb3ZlIG9sZCB0eXBlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVlcnkuYzoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgUmVtb3ZlIG9sZCB0eXBlcwoKMjAwNS0wNy0wNyAwODoxNjo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogQWxsb3cgc3ViY2xhc3NlcyB0byBpbXBsZW1lbnQgdGhlaXIgb3duIG5lZ290aWF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X25lZ290aWF0ZSksIChnc3RfYmFzZV9zcmNfbmVnb3RpYXRlKToKCSAgQWxsb3cgc3ViY2xhc3NlcyB0byBpbXBsZW1lbnQgdGhlaXIgb3duIG5lZ290aWF0aW9uLgoKMjAwNS0wNy0wNiAxNzoxNzo1OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IFVwZGF0ZSBkZXNpZ24gbm90ZXMgdG8gcmVmbGVjdCB0aGUgbW92ZW1lbnQgb2YgcmVzcG9uc2liaWxpdHkgZm9yIGJ1cyBoYW5kbGluZyBmcm9tIEdzdFBpcGVsaW5lIHRvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgVXBkYXRlIGRlc2lnbiBub3RlcyB0byByZWZsZWN0IHRoZSBtb3ZlbWVudCBvZgoJICByZXNwb25zaWJpbGl0eSBmb3IgYnVzIGhhbmRsaW5nIGZyb20gR3N0UGlwZWxpbmUgdG8KCSAgR3N0QmluCgoyMDA1LTA3LTA2IDE2OjQ1OjQ1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogUmVtb3ZlIHVubmVjZXNzYXJ5IHF1ZXVlMi8zLzQgZXhhbXBsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUmVtb3ZlIHVubmVjZXNzYXJ5IHF1ZXVlMi8zLzQgZXhhbXBsZXMuCgoyMDA1LTA3LTA2IDE2OjIyOjQ3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGV4YW1wbGVzLzogVXBkYXRlIGEgY291cGxlIG9mIHRoZSBleGFtcGxlcyB0byB3b3JrIGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgKiBleGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzogKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgICogZXhhbXBsZXMvcXVldWUvcXVldWUuYzogKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgICogZXhhbXBsZXMvcXVldWUyL3F1ZXVlMi5jOiAobWFpbik6CgkgIFVwZGF0ZSBhIGNvdXBsZSBvZiB0aGUgZXhhbXBsZXMgdG8gd29yayBhZ2Fpbi4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2VtcHR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9ldmVudCk6CgkgIFNwZWxsaW5nIGNvcnJlY3Rpb25zIGFuZCBleHRyYSBkZWJ1Zy4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9pbml0KSwgKGlzX2VvcyksCgkgIChnc3RfYmluX2FkZF9mdW5jKSwgKGJpbl9lbGVtZW50X2lzX3NpbmspLCAoZ3N0X2Jpbl9nZXRfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2Jpbl9kaXNwb3NlKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2luaXQpLCAoZ3N0X3BpcGVsaW5lX2Rpc3Bvc2UpLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgIE1vdmUgdGhlIGJ1cyBoYW5kbGVyIGZvciBjaGlsZHJlbiB0byB0aGUgR3N0QmluLCBhbmQgY3JlYXRlIGEKCSAgc2VwYXJhdGUgYnVzIGZvciByZWNlaXZpbmcgbWVzc2FnZXMgZnJvbSBjaGlsZHJlbiB0byB0aGUgb25lIHRoZQoJICBidXMgc2VuZHMgJ3Vwd2FyZHMnIG9uLgoKMjAwNS0wNy0wNiAxMzoyNToyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlLzogTWFrZSBiYXNlc3JjIG5lZ290aWF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvUkVBRE1FOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfbG9vcCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfaW5pdCksIChnc3RfYmFzZV9zcmNfc2V0Y2FwcyksCgkgIChnc3RfYmFzZV9zcmNfZ2V0Y2FwcyksIChnc3RfYmFzZV9zcmNfbG9vcCksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpLCAoZ3N0X2Jhc2Vfc3JjX25lZ290aWF0ZSksCgkgIChnc3RfYmFzZV9zcmNfc3RhcnQpLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBNYWtlIGJhc2VzcmMgbmVnb3RpYXRlLgoJICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgcHJlcm9sbCBmYWlscyBpbiBiYXNlc2luay4KCSAgVXBkYXRlIFJFQURNRS4KCjIwMDUtMDctMDYgMTM6MjA6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEltcGxlbWVudCB0aGUgZml4YXRlIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2ZpeGF0ZV9jYXBzKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpOgoJICBJbXBsZW1lbnQgdGhlIGZpeGF0ZSBmdW5jdGlvbi4KCSAgQ2xlYW4gdXAgYWNjZXB0Y2Fwcy4KCjIwMDUtMDctMDYgMTI6MjQ6NTAgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvcHdnLzogUmVtb3ZlIG5ldmVyLXdyaXR0ZW4gZmlsdGVyLWZhY3RvcnkgY2hhcHRlcjsgSSdsbCBhZGQgdGhlIHZhcmlvdXMgYmFzZSBjbGFzc2VzIHRvIHBhcnQgNCAoIm90aGVyIGVsZW1lbnQgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1maWx0ZXJmYWN0b3J5LnhtbDoKCSAgKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBSZW1vdmUgbmV2ZXItd3JpdHRlbiBmaWx0ZXItZmFjdG9yeSBjaGFwdGVyOyBJJ2xsIGFkZCB0aGUgdmFyaW91cwoJICBiYXNlIGNsYXNzZXMgdG8gcGFydCA0ICgib3RoZXIgZWxlbWVudCB0eXBlcyIpIGxhdGVyIG9uLgoKMjAwNS0wNy0wNiAxMjoxODowMCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgQWRkIGEgY2hhcHRlciBvbiBjYXBzIG5lZ290aWF0aW9uLCBzaW1wbGlmeSB0aGUgb3JpZ2luYWwgY29kZSBzYW1wbGVzIGEgYml0IHcuci50LiBjYXBzIG5lZ290aWF0aW9uLCBhZGQgbGluayB0byB0aGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJICAqIGRvY3MvcHdnL3B3Zy54bWw6CgkgICogZXhhbXBsZXMvcHdnL01ha2VmaWxlLmFtOgoJICBBZGQgYSBjaGFwdGVyIG9uIGNhcHMgbmVnb3RpYXRpb24sIHNpbXBsaWZ5IHRoZSBvcmlnaW5hbCBjb2RlCgkgIHNhbXBsZXMgYSBiaXQgdy5yLnQuIGNhcHMgbmVnb3RpYXRpb24sIGFkZCBsaW5rIHRvIHRoZSBhZHZhbmNlZAoJICBzZWN0aW9uLiBBZGQgYSBidW5jaCBvZiBleGFtcGxlcyBzaG93aW5nIGRpZmZlcmVudCB1c2UgY2FzZXMgb2YKCSAgZGlmZmVyZW50IHR5cGVzIG9mIGNhcHMgbmVnb3RpYXRpb24uIFVwc3RyZWFtIHJlbmVnb3RpYXRpb24gaXNuJ3QKCSAgZnVsbHkgZG9jdW1lbnRlZCB5ZXQgc2luY2Ugbm9ib2R5IGtub3dzIGhvdyB0aGF0IHdvcmtzLgoKMjAwNS0wNy0wNiAxMTozNDowNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wucGMuaW46CgkgIHBjIGZpbGUgY2xlYW51cHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBjIGZpbGUgY2xlYW51cHMKCjIwMDUtMDctMDYgMTE6MzE6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgaWYgcGFkIGhhcyBubyBwYXJlbnQsIHJldHVybiBOVUxMIGFzIGxpc3Qgb2YgaW50ZXJuYWwgbGlua3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOgoJICAqIGNoZWNrL2dzdGNoZWNrLmM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfaW50ZXJuYWxfbGlua3NfZGVmYXVsdCk6CgkgIGlmIHBhZCBoYXMgbm8gcGFyZW50LCByZXR1cm4gTlVMTCBhcyBsaXN0IG9mIGludGVybmFsIGxpbmtzCgoyMDA1LTA3LTA1IDE2OjM4OjEzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvOiBzL0JBU0VTUkMvQkFTRV9TUkMvZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICAqIGdzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBzL0JBU0VTUkMvQkFTRV9TUkMvZy4KCjIwMDUtMDctMDUgMTU6Mjg6MTggKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgdXBkYXRlIHNwZWMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHNwZWMgZmlsZQoKMjAwNS0wNy0wNSAxMjoxNzoyNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBNYWtlZmlsZS5hbToKCSAgYmV0dGVyIHJlcG9ydCBnZW5yYXRpb24gdGFyZ2V0IChsY292IG5lZWRzIGEgcGF0Y2gpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiZXR0ZXIgcmVwb3J0IGdlbnJhdGlvbiB0YXJnZXQgKGxjb3YgbmVlZHMgYSBwYXRjaCkKCjIwMDUtMDctMDUgMTA6NTg6MjEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9lbGVtZW50cywgdGVzdHN1aXRlOiBOdWxsIGlmIHdlIGdvdCBpdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMsIHRlc3RzdWl0ZTogTnVsbCBpZiB3ZSBnb3QgaXQuLi4KCjIwMDUtMDctMDUgMTA6MjA6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBQb3J0ZWQgZGF0YXByb3RvbCB0byAwLjkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiAoZ3N0X2RwX3ZhbGlkYXRlX3BhY2tldCk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICAqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbToKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC5wYy5pbjoKCSAgUG9ydGVkIGRhdGFwcm90b2wgdG8gMC45LgoJICBBZGRlZCBwa2djb25maWcgZmlsZXMuCgoyMDA1LTA3LTA1IDA5OjM1OjIyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKTogRGVmYXVsdCB0byByZXR1cm5pbmcgVFJVRSBmb3IgdGhlIGNhc2Ugd2hlbiB0cmFuZm9ybV9jYXBzIHIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2Fwcyk6CgkgIERlZmF1bHQgdG8gcmV0dXJuaW5nIFRSVUUgZm9yIHRoZSBjYXNlIHdoZW4gdHJhbmZvcm1fY2FwcyByZXR1cm5zCgkgIGEgZml4ZWQgY2FwcywgbGlrZSBmb3IgaWRlbnRpdHkgb3Igdm9sdW1lLgoKMjAwNS0wNy0wNSAwODo0Nzo0MCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svOiBBcHBsaWNhdGlvbiBtZXNzYWdlIEFQSSBjaGFuZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RidXMuYyAocG91bmRfYnVzX3dpdGhfbWVzc2FnZXMpOgoJICAqIGNoZWNrL2dzdC9nc3RtZXNzYWdlLmMgKFNUQVJUX1RFU1QpOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmMgKGdvdF9oYW5kb2ZmKTogQXBwbGljYXRpb24KCSAgbWVzc2FnZSBBUEkgY2hhbmdlLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpOiBNb3JlCgkgIGxvZ2ljIHdlYWtzIGhlcmU6IGFsd2F5cyBydW4gdHJhbnNmb3JtX2NhcHMsIHRyeWluZyBwYXNzdGhyb3VnaAoJICBvcGVyYXRpb24gb25seSBpZiB0aGUgb3JpZ2luYWwgY2FwcyBpbnRlcnNlY3RzIHdpdGggdGhlIHRyYW5zZm9ybS4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKTogRGVidWcKCSAgc291cmNlIGFuZCBzaW5rIGNhcHMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0Y2Fwcyk6CgkgIEludGVyc2VjdCB0aGUgcGVlciBjYXBzIHdpdGggdGhlIHBhZCB0ZW1wbGF0ZSBiZWZvcmUgZ29pbmcgaW50bwoJICB0cmFuc2Zvcm1fY2Fwcy4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2Fwcyk6IE1vcmUgZGVidWdnaW5nLgoJICAqIGdzdC9nc3RtZXNzYWdlLmggKGdzdF9tZXNzYWdlX25ld19hcHBsaWNhdGlvbik6IFRha2UgYSBHc3RPYmplY3QKCSAgc3JjIGFyZ3VtZW50LgoKMjAwNS0wNy0wNCAxNTowODozMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3R1dGlscy4qOiBub3cgcmV0dXJucyB0aGUgc2lnbmFsIGlkIGZvciBiZXR0ZXIgd3JhcHBpbmcgaW4gYmluZGluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAoZ3N0X3BhZF9hZGRfKl9wcm9iZSk6IG5vdyByZXR1cm5zIHRoZSBzaWduYWwgaWQgZm9yIGJldHRlciB3cmFwcGluZwoJICBpbiBiaW5kaW5ncy4KCjIwMDUtMDctMDQgMDk6MjI6NTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RwYWQuYzogT25seSBzZXQgZXhwbGljaXQgY2FwcyBvbiBwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0wNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6IE9ubHkgc2V0IGV4cGxpY2l0IGNhcHMgb24gcGFkcy4KCjIwMDUtMDctMDEgMTY6NDY6NTkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL25ldHdvcmstY2xvY2suc2NtOiBDb21tZW50YXJ5IHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY206IENvbW1lbnRhcnkgdXBkYXRlLgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jIChQUk9QX0RVUExJQ0FURSk6IEdvbmUgZGFkZHkgZ29uZS4KCSAgRGlkbid0IHJlYWxseSBtYWtlIHNlbnNlLCBub3QgaW1wbGVtZW50YWJsZSB3aXRoIGJhc2V0cmFuc2Zvcm0sCgkgIGV0Yy4KCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm0pOiBVbnJlZiBpbmJ1ZiB2aWEgbWFrZV93cml0YWJsZS4gRmVlYmxlCgkgIGF0dGVtcHQgYXQgaW1wbGVtZW50aW5nIHRoZSBzeW5jIHByb3BlcnR5LCBuZWVkcyBhbiB1bmxvY2sgbWV0aG9kLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKToKCSAgTmV3IGZ1bmMsIGJ5IGRlZmF1bHQgcmV0dXJucyB0aGUgc2FtZSBjYXBzICh0aGUgaWRlbnRpdHkKCSAgdHJhbnNmb3JtYXRpb24pLgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpOiBVc2VzIHRyYW5zZm9ybV9jYXBzIHRvIHJldHVybgoJICBzb21ldGhpbmcgc2Vuc2libGUuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2Fwcyk6IENvbXBsaWNhdGVkIGxvZ2ljIHRvIGdldCBjYXBzIG9uCgkgIGJvdGggcGFkcywgZXZlbiBpZiB0aGV5IGFyZSBkaWZmZXJlbnQsIGFuZCB0byBjYWxsIHNldF9jYXBzIG9uY2UKCSAgZm9yIGV2ZXJ5IHRpbWUgYm90aCBwYWRzIGdldCB0aGVpciBjYXBzIHNldC4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKTogR2l2ZSB0aGUgcmVmIHRvIHRoZSB0cmFuc2Zvcm0KCSAgZnVuY3Rpb24uIEFsbG93cyBpbi1wbGFjZSBtb2RpZmljYXRpb24gb2YgdGhlIGJ1ZmZlci4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmggKHRyYW5zZm9ybV9jYXBzKTogTmV3IGNsYXNzIG1ldGhvZC4KCSAgR2l2ZW4gY2FwcyBvbiBvbmUgc2lkZSwgd2hhdCBjYW4gSSBkbyBvbiB0aGUgb3RoZXIuCgkgIChzZXRfY2Fwcyk6IFRha2UgdHdvIGNhcHMsIG9uZSBmb3IgZWFjaCBzaWRlIG9mIHRoZSBlbGVtZW50LgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZml4YXRlX2NhcHMpOiBDaGFuZ2UgcHJvdG90eXBlIHRvIG1vZGlmeQoJICBjYXBzIGluIHBsYWNlLiBUaGlzIGlzIHNhZmUgYmVjYXVzZSB3ZSBjYW4gY2hlY2sgdGhlIG11dGFiaWxpdHkgb2YKCSAgdGhlIGNhcHMsIGFuZCBhIGdvb2QgaWRlYSBiZWNhdXNlIGZpeGF0ZSBmdW5jdGlvbnMgYXJlIGp1c3QgY2FsbGVkCgkgIGFzIGEgbWF0dGVyIG9mIGxhc3QgcmVzb3J0LiAoTm90IGFjdHVhbGx5IGltcGxlbWVudGVkLikKCSAgKGdzdF9wYWRfc2V0X2NhcHMpOiBJZiB0aGUgY2FwcyB3ZSdyZSBzZXR0aW5nIGlzIGFjdHVhbGx5IHRoZSBzYW1lCgkgIGFzIHRoZSBleGlzdGluZyBwYWQgY2FwcywganVzdCB1cGRhdGUgdGhlIHBvaW50ZXIgd2l0aG91dCBjYWxsaW5nCgkgIHNldGNhcHMuIEFzc2VydCB0aGF0IGNhcHMgaXMgZWl0aGVyIE5VTEwgb3IgZml4ZWQsIGFzIHBlciB0aGUKCSAgZG9jcy4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogVXBkYXRlIGZvciBmaXhhdGUgY2hhbmdlcy4KCjIwMDUtMDctMDEgMTQ6MzY6MTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBQdXQgdGhlIG1pbmlfb2JqZWN0IGludG8gR1ZhbHVlIGFzIGEgbWluaV9vYmplY3QsIG5vdCBhIGdwb2ludGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0wMiAgSmFuIFNjaG1pZHQgIDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZW1pdF9oYXZlX2RhdGFfc2lnbmFsKToKCSAgUHV0IHRoZSBtaW5pX29iamVjdCBpbnRvIEdWYWx1ZSBhcyBhIG1pbmlfb2JqZWN0LAoJICBub3QgYSBncG9pbnRlci4KCjIwMDUtMDctMDEgMTQ6MjA6MTkgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGV4YW1wbGVzL3B3Zy9NYWtlZmlsZS5hbTogRml4IGJ1aWxkYm90IGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleGFtcGxlcy9wd2cvTWFrZWZpbGUuYW06CgkgIEZpeCBidWlsZGJvdCBhZ2Fpbi4KCjIwMDUtMDctMDEgMTM6MDE6NDcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOiBBZGQgZXh0cmEgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOgoJICBBZGQgZXh0cmEgY2hlY2suCgkgICogZXhhbXBsZXMvcHdnL01ha2VmaWxlLmFtOgoJICBGaXggYnVpbGRib3QuCgoyMDA1LTA3LTAxIDEyOjQzOjAzICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBFbmFibGUgYnVpbGRpbmcgdGhlIFBXRyBleGFtcGxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGV4YW1wbGVzL01ha2VmaWxlLmFtOgoJICAqIGV4YW1wbGVzL3B3Zy9NYWtlZmlsZS5hbToKCSAgKiBleGFtcGxlcy9wd2cvZXh0cmFjdC5wbDoKCSAgRW5hYmxlIGJ1aWxkaW5nIHRoZSBQV0cgZXhhbXBsZXMuCgkgICogZG9jcy9wd2cvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkgIEFkZCBVUkkgaW50ZXJmYWNlIHN0dWIuCgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLWF1dG9wbHVnZ2VyLnhtbDoKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBBZGQgcG9ydGluZyBndWlkZSAobW9zdGx5IHN0dWJzKSwgcmVtb3ZlIGF1dG9wbHVnZ2luZyAoc2VlIEFETSkuCgkgICogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1jaGFpbmZuLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1wcm9wcy54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctc3RhdGUueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOgoJICBVcGRhdGUgdGhlIGJ1aWxkaW5nLSoueG1sIHBhcnRzIGZvciAwLjkgY2hhbmdlcy4gQWxsIGV4YW1wbGVzCgkgIGNvZGUgYmxvY2tzIGNvbXBpbGUgaW4gZXhhbXBsZXMvcHdnLyouCgoyMDA1LTA2LTMwIDEyOjMyOjE3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL21hbnVhbC86IEZpeCBwbGF5YmluL2RlY29kZWJpbiBleGFtcGxlcywgdXBkYXRlIGRvY3MgYSBiaXQsIG1lbnRpb24gYnVzIGluc3RlYWQgb2Ygc2lnbmFscyBpbiB2YXJpb3VzIHBsYWNlcywgbWUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkgIEZpeCBwbGF5YmluL2RlY29kZWJpbiBleGFtcGxlcywgdXBkYXRlIGRvY3MgYSBiaXQsIG1lbnRpb24gYnVzCgkgIGluc3RlYWQgb2Ygc2lnbmFscyBpbiB2YXJpb3VzIHBsYWNlcywgbWVudGlvbiBrbXBsYXllciBhbmQKCSAga2FmZmVpbmUgc2luY2UgdGhleSBoYXZlIGEgd29ya2luZyBHU3RyZWFtZXIgYmFja2VuZCBpbiB0aGUgS0RFCgkgIHNlY3Rpb24uCgoyMDA1LTA2LTMwIDEyOjI2OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIGRlYnVnIGRpc2FibGUgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRlYnVnIGRpc2FibGUgZml4ZXMKCjIwMDUtMDYtMzAgMTI6MTg6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGRlZCBDSEFOR0VTLTAuOSBkb2MsIHVwZGF0ZWQgc3RhdHVzIG9mIG90aGVyIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIENIQU5HRVMtMC45OgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWdob3N0cGFkcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1xdWVyeS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXF1ZXJ5LnR4dDoKCSAgQWRkZWQgQ0hBTkdFUy0wLjkgZG9jLCB1cGRhdGVkIHN0YXR1cyBvZiBvdGhlciBkb2NzLgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBSZW1vdmUgImhtbSIgbWFjcm8KCjIwMDUtMDYtMzAgMTI6MTQ6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay4qOiBTb21lIHR3ZWFrcywgb25seSBFT1MgYW5kIGEgYnVmZmVyIGNvbXBsZXRlIGEgcHJlcm9sbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9lbXB0eSksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLCAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBTb21lIHR3ZWFrcywgb25seSBFT1MgYW5kIGEgYnVmZmVyIGNvbXBsZXRlIGEgcHJlcm9sbC4KCjIwMDUtMDYtMzAgMTE6Mzk6MzQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpOiBQcm94eSBhY3RpdmF0ZV9wdXNoIGRvd24gdG8gdGhlIGludGVybmFsIHBhZCBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0zMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKTogUHJveHkKCSAgYWN0aXZhdGVfcHVzaCBkb3duIHRvIHRoZSBpbnRlcm5hbCBwYWQgYXMgd2VsbC4KCjIwMDUtMDYtMzAgMTA6NTk6MzQgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3R0YWdpbnRlcmZhY2UuYzogU29tZSBkb2N1bWVudGF0aW9uIGZpeGVzICgjMzA3Mzk0IGFuZCAjMzA3Mzk3KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiAgUm9uYWxkIFMuIEJ1bHRqZSAgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCSAgKiBnc3QvZ3N0dGFnaW50ZXJmYWNlLmM6CgkgIFNvbWUgZG9jdW1lbnRhdGlvbiBmaXhlcyAoIzMwNzM5NCBhbmQgIzMwNzM5NykuCgoyMDA1LTA2LTMwIDEwOjIzOjE2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiBjaGVjay9zdGF0ZXMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0wNi0zMCAxMDoyMjoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGdvIGJhY2sgdG8gdGhlIGNpcmN1bGFyIGRlcGVuZGVuY3kgZm9yIG5vdwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZ28gYmFjayB0byB0aGUgY2lyY3VsYXIgZGVwZW5kZW5jeSBmb3Igbm93CgoyMDA1LTA2LTMwIDEwOjEwOjAwICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogRml4IG1lbWxlYWsgKCMzMDkxMjUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6ICBSb25hbGQgUy4gQnVsdGplICA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9saXN0KToKCSAgRml4IG1lbWxlYWsgKCMzMDkxMjUpLgoKMjAwNS0wNi0zMCAwOTo1OToyNyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6IEZpeCBmYWtlc3JjIGV4YW1wbGUgdG8gY29tcGlsZTsgZG9lc24ndCB3b3JrLCBidWcgc29tZXdoZXJlLi4uPwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgRml4IGZha2VzcmMgZXhhbXBsZSB0byBjb21waWxlOyBkb2Vzbid0IHdvcmssIGJ1ZyBzb21ld2hlcmUuLi4/CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICBBZGQgcmVmZXJlbmNlIGZvciBmaWx0ZXJlZCBjYXBzIHRvIGFib3ZlIGNoYXB0ZXIuCgoyMDA1LTA2LTMwIDA5OjQxOjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBMYW1lIGF0dGVtcHQgYXQgbWFraW5nIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gYSBiaXQgbW9yZSByZWFkYWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoY2xlYXJfcXVldWUpLCAocmVtb3ZlX2FsbF9mcm9tX3F1ZXVlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgTGFtZSBhdHRlbXB0IGF0IG1ha2luZyB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIGEgYml0CgkgIG1vcmUgcmVhZGFibGUuCgoyMDA1LTA2LTMwIDA5OjMzOjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBTb21lIG1vcmUgdHdlZWtzIGFuZCBhZGRpdGlvbnMgdG8gdGhlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBTb21lIG1vcmUgdHdlZWtzIGFuZCBhZGRpdGlvbnMgdG8gdGhlIGRvY3MuCgoyMDA1LTA2LTMwIDA5OjIzOjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogUmVtb3ZlZCBhdG9taWMgb3BlcmF0aW9ucywgdXNlIGV4aXN0aW5nIExPQ0suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKF9nc3RfZG9fcGFzc19kYXRhX2FjY3VtdWxhdG9yKSwKCSAgKGRlZmF1bHRfaGF2ZV9kYXRhKSwgKGdzdF9wYWRfY2xhc3NfaW5pdCksIChnc3RfcGFkX2luaXQpLAoJICAoZ3N0X3BhZF9lbWl0X2hhdmVfZGF0YV9zaWduYWwpLCAoZ3N0X3BhZF9jaGFpbiksIChnc3RfcGFkX3B1c2gpLAoJICAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwgKGdzdF9wYWRfZ2V0X3JhbmdlKSwKCSAgKGdzdF9wYWRfcHVsbF9yYW5nZSksIChnc3RfcGFkX3B1c2hfZXZlbnQpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfYXRvbWljX2ludF9zZXQpLCAoZ3N0X3BhZF9hZGRfZGF0YV9wcm9iZSksCgkgIChnc3RfcGFkX2FkZF9ldmVudF9wcm9iZSksIChnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmUpLAoJICAoZ3N0X3BhZF9yZW1vdmVfZGF0YV9wcm9iZSksIChnc3RfcGFkX3JlbW92ZV9ldmVudF9wcm9iZSksCgkgIChnc3RfcGFkX3JlbW92ZV9idWZmZXJfcHJvYmUpOgoJICBSZW1vdmVkIGF0b21pYyBvcGVyYXRpb25zLCB1c2UgZXhpc3RpbmcgTE9DSy4KCSAgTW92ZSBleGNlcHRpb24gaGFuZGxpbmcgb3V0IG9mIG1haW4gY29kZSBwYXRoLgoKMjAwNS0wNi0zMCAwNzo0NTo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGRyb3AgY2lyY3VsYXIgcmVmZXJlbmNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkcm9wIGNpcmN1bGFyIHJlZmVyZW5jZQoKMjAwNS0wNi0yOSAxOToyMDowNyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBGaXggYWNjdW11bGF0b3IsIGFkZCBkZWZhdWx0IHZhbHVlIGJ5IHVzaW5nIF9lbWl0digpIGluc3RlYWQgb2YgX2VtaXQoKSBmb3Igc2lnbmFsIGVtaXNzaW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChfZ3N0X2RvX3Bhc3NfZGF0YV9hY2N1bXVsYXRvciksCgkgIChzaWxseV9yZXR1cm5fdHJ1ZV9mdW5jdGlvbiksIChnc3RfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BhZF9lbWl0X2hhdmVfZGF0YV9zaWduYWwpLCAoZ3N0X3BhZF9jaGFpbiksIChnc3RfcGFkX3B1c2gpLAoJICAoZ3N0X3BhZF9nZXRfcmFuZ2UpLCAoZ3N0X3BhZF9wdWxsX3JhbmdlKSwgKGdzdF9wYWRfcHVzaF9ldmVudCksCgkgIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBGaXggYWNjdW11bGF0b3IsIGFkZCBkZWZhdWx0IHZhbHVlIGJ5IHVzaW5nIF9lbWl0digpIGluc3RlYWQKCSAgb2YgX2VtaXQoKSBmb3Igc2lnbmFsIGVtaXNzaW9uLgoKMjAwNS0wNi0yOSAxNjo1Nzo1OSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgQWRkIHByb2JlIGV4YW1wbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICAqIGV4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgQWRkIHByb2JlIGV4YW1wbGUuCgkgICogZ3N0L2dzdHBhZC5jOiAoX2dzdF9kb19wYXNzX2RhdGFfYWNjdW11bGF0b3IpOgoJICBNYWtlIHdvcmsgKD8/KS4KCjIwMDUtMDYtMjkgMTY6NDU6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgZml4IGZvciBwcGMsIGhvcGVmdWxseQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGZvciBwcGMsIGhvcGVmdWxseQoKMjAwNS0wNi0yOSAxNjoxMToxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBTaW1wbGlmeSBjb2RlIHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byBoYW5kbGUgc2hvcnQgd3JpdGVzIGFuZCByZXR1cm4gR1NUX0ZMT1dfRVJST1IgaWYgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlc2lua19yZW5kZXIpOgoJICBTaW1wbGlmeSBjb2RlIHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byBoYW5kbGUgc2hvcnQKCSAgd3JpdGVzIGFuZCByZXR1cm4gR1NUX0ZMT1dfRVJST1IgaWYgYW4gZXJyb3Igb2NjdXJlZC4KCjIwMDUtMDYtMjkgMTY6MDU6MjYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6IFJlbW92ZSBwcm9iZXMgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgUmVtb3ZlIHByb2JlcyBtb3JlLgoKMjAwNS0wNi0yOSAxNTo1MToyNSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgUmVtb3ZlIG9sZCBwcm9iZXMsIGFkZCBuZXcgZy1zaWduYWwtYmFzZWQgcHJvYmVzIGFuZCBzb21lIHV0aWxpdHkgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3Rwcm9iZS5zZ21sOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0cGFkLmM6IChfZ3N0X2RvX3Bhc3NfZGF0YV9hY2N1bXVsYXRvciksCgkgIChnc3RfcGFkX2NsYXNzX2luaXQpLCAoZ3N0X3BhZF9pbml0KSwgKGdzdF9wYWRfY2hhaW4pLAoJICAoZ3N0X3BhZF9wdXNoKSwgKGdzdF9wYWRfZ2V0X3JhbmdlKSwgKGdzdF9wYWRfcHVsbF9yYW5nZSksCgkgIChnc3RfcGFkX3B1c2hfZXZlbnQpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX2FkZF9kYXRhX3Byb2JlKSwKCSAgKGdzdF9wYWRfYWRkX2V2ZW50X3Byb2JlKSwgKGdzdF9wYWRfYWRkX2J1ZmZlcl9wcm9iZSksCgkgIChnc3RfcGFkX3JlbW92ZV9kYXRhX3Byb2JlKSwgKGdzdF9wYWRfcmVtb3ZlX2V2ZW50X3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2J1ZmZlcl9wcm9iZSk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIFJlbW92ZSBvbGQgcHJvYmVzLCBhZGQgbmV3IGctc2lnbmFsLWJhc2VkIHByb2JlcyBhbmQgc29tZSB1dGlsaXR5CgkgIGZ1bmN0aW9ucy4KCjIwMDUtMDYtMjkgMTU6MTc6MjUgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvOiBNb3ZlZCBnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl9bc2lua3xzcmNdX2NhcHMoKSB0byBnc3R1dGlscyBhbmQgYWRkZWQgdGhlIGRlZmluaXRpb24gdG8gdGhlIGhlYWRlciBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgTW92ZWQgZ3N0X2VsZW1lbnRfZmFjdG9yeV9jYW5fW3Npbmt8c3JjXV9jYXBzKCkgdG8gZ3N0dXRpbHMgYW5kIGFkZGVkCgkgIHRoZSBkZWZpbml0aW9uIHRvIHRoZSBoZWFkZXIgZmlsZS4KCjIwMDUtMDYtMjkgMTQ6NTY6MDggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvZ3N0L01ha2VmaWxlLmFtIChzY2FuLWJ1aWxkLnN0YW1wKTogVG90YWxseSBvbmx5IGNoZWNrIHBsdWdpbnMgZnJvbSB0aGUgc291cmNlIGRpcmVjdG9yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW0gKHNjYW4tYnVpbGQuc3RhbXApOiBUb3RhbGx5IG9ubHkgY2hlY2sKCSAgcGx1Z2lucyBmcm9tIHRoZSBzb3VyY2UgZGlyZWN0b3J5LgoKMjAwNS0wNi0yOSAxNDo1Mjo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L3RtcGwvOiBTb21lIGZpeGluZ3MgZm9yIGJsYW50ZW50bHkgd3JvbmcgdGV4dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RidWZmZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGNsb2NrLnNnbWw6CgkgIFNvbWUgZml4aW5ncyBmb3IgYmxhbnRlbnRseSB3cm9uZyB0ZXh0LgoKMjAwNS0wNi0yOSAxMjo0MDozOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0LmM6CgkgIGxvZ2ljIHdhcyByZXZlcnNlZCwgZHVoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBsb2dpYyB3YXMgcmV2ZXJzZWQsIGR1aAoKMjAwNS0wNi0yOSAxMjoyNTowNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBhZGQgQSBHU1RfUExVR0lOX1BBVEhfT05MWSBlbnYgdmFyOyBpZiBpdCBpcyBzZXQsIGl0IHdpbGwgb25seSBzY2FuIHRoZSBHU1RfUExVR0lOX1BBVEggbG9jYXRpb25zLCBhbmQgbm90IGFkZCBzeXN0ZW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5jOiAoYWRkX3BhdGhfZnVuYyksIChpbml0X3ByZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfYWRkX3BhdGgpOgoJICBhZGQgQSBHU1RfUExVR0lOX1BBVEhfT05MWSBlbnYgdmFyOyBpZiBpdCBpcyBzZXQsIGl0IHdpbGwKCSAgb25seSBzY2FuIHRoZSBHU1RfUExVR0lOX1BBVEggbG9jYXRpb25zLCBhbmQgbm90IGFkZAoJICBzeXN0ZW0gbG9jYXRpb25zCgoyMDA1LTA2LTI5IDEyOjIzOjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jIGZpeGVzCgoyMDA1LTA2LTI5IDEyOjAyOjEzICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOiBGaXggYXV0b3BsdWdnaW5nIGV4YW1wbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgIEZpeCBhdXRvcGx1Z2dpbmcgZXhhbXBsZS4KCjIwMDUtMDYtMjkgMTE6NDY6MTYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogVHJ5IHRvIGdldCBhdXRvcGx1Z2dpbmcgd29ya2luZywgZml4IHR5cGUgZGV0ZWN0aW9uLiBGaXggdGV4dCBpbiBoZWxsby13b3JsZCBpbWFnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9taW1lLXdvcmxkLmZpZzoKCSAgVHJ5IHRvIGdldCBhdXRvcGx1Z2dpbmcgd29ya2luZywgZml4IHR5cGUgZGV0ZWN0aW9uLiBGaXggdGV4dAoJICBpbiBoZWxsby13b3JsZCBpbWFnZS4KCjIwMDUtMDYtMjkgMTE6MTA6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTbWFsbCBkZWJ1ZyBsaW5lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgU21hbGwgZGVidWcgbGluZS4KCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgbWFwIFNJR05BTCBhbmQgQlJPQURDQVNUIHRvIHRoZSByaWdodCBmdW5jdGlvbi4KCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIFJlbW92ZSByZWR1bmRhbnQgYnJhY2VzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2NhcHMpOgoJICBEb24ndCBjYWxsIHNldGNhcHMgZnVuY3Rpb24gd2hlbiByZXNldGluZyBjYXBzIHRvIE5VTEwuCgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2Rpc3Bvc2UpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19hc3luY190aHJlYWQpLCAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2FzeW5jKSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfdW5zY2hlZHVsZSk6CgkgIFVzZSBCUk9BRENBU1QgYXMgdGhpcyBpcyB3aGF0IHdlIGRvLgoKMjAwNS0wNi0yOSAxMDoyNDowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFdlIGFyZSBhY3R1YWxseSBwcmVyb2xsaW5nIGJlZm9yZSBjb21taXRpbmcgdGhlIHN0YXRlIGNoYW5nZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgIFdlIGFyZSBhY3R1YWxseSBwcmVyb2xsaW5nIGJlZm9yZSBjb21taXRpbmcgdGhlIHN0YXRlCgkgIGNoYW5nZS4KCjIwMDUtMDYtMjkgMDk6MjU6NTEgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogVXBkYXRlICh1bnRpbCB0aHJlYWRzL3NjaGVkdWxpbmcpIEFwcGxpY2F0aW9uIERldmVsb3BtZW50IE1hbnVhbDsgcmVtb3ZlIEdzdFRocmVhZCwgYWRkIEdzdEJ1cywgYWRkIHNpbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtc2NoZWR1bGVycy54bWw6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtdGhyZWFkcy54bWw6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkgICogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgKiBkb2NzL21hbnVhbC90aHJlYWQuZmlnOgoJICBVcGRhdGUgKHVudGlsIHRocmVhZHMvc2NoZWR1bGluZykgQXBwbGljYXRpb24gRGV2ZWxvcG1lbnQgTWFudWFsOwoJICByZW1vdmUgR3N0VGhyZWFkLCBhZGQgR3N0QnVzLCBhZGQgc2ltcGxlIHBvcnRpbmcgY2hlY2tsaXN0LCBhZGQKCSAgZG9jdW1lbnRhdGlvbiBmb3IgdGFnIHdyaXRpbmcsIGNsb2NrcywgbWFrZSBhbGwgZXhhbXBsZXMgdW50aWwgdGhpcwoJICBwYXJ0IGNvbXBpbGUgYW5kIHJ1bi4KCSAgKiBleGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIFVwZGF0ZSBmcm9tIGNoYW5nZXMgdG8gQXBwbGljYXRpb24gRGV2ZWxvcG1lbnQgTWFudWFsOyBhZGQgYnVzCgkgIGV4YW1wbGUsIHJlbW92ZSB0aHJlYWQgZXhhbXBsZS4KCjIwMDUtMDYtMjggMTk6NDU6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IEFkZCBkZWJ1Z2dpbmcgbWVzc2FnZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9zdCksIChnc3RfYnVzX2hhdmVfcGVuZGluZyksCgkgIChnc3RfYnVzX3NldF9mbHVzaGluZyksIChnc3RfYnVzX3BvcCksIChnc3RfYnVzX3BlZWspLAoJICAoZ3N0X2J1c19zb3VyY2VfZGlzcGF0Y2gpOgoJICBBZGQgZGVidWdnaW5nIG1lc3NhZ2VzLgoJICBNYWtlIGludGVybmFsIG1ldGhvZHMgc3RhdGljLgoJICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIGJ1cyBpcyBmbHVzaGVkIGluIHRoZSBoYW5kbGVyLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfYnVzKToKCSAgRml4IHJlZmNvdW50IGluIF9nZXRfYnVzKCk7CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9waXBlbGluZV9nZXRfY2xvY2tfZnVuYyk6CgkgIENsb2NrIHJlZmNvdW50aW5nIGZpeGVzLgoJICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgcHJlcm9sbCB0aW1lZCBvdXQgbW9yZSBncmFjZWZ1bGx5LgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19kaXNwb3NlKToKCSAgQ2xlYW4gdXAgdGhlIGludGVybmFsIHRocmVhZCBpbiBkaXNwb3NlLiBUaGlzIGlzIG5lZWRlZAoJICBmb3Igc3ViY2xhc3NlcyB0aGF0IGFjdHVhbGx5IGdldCBkaXNwb3NlZC4KCSAgKiBnc3Qvc2NoZWR1bGVycy90aHJlYWRzY2hlZHVsZXIuYzoKCSAgKGdzdF90aHJlYWRfc2NoZWR1bGVyX2NsYXNzX2luaXQpLCAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfZnVuYyksCgkgIChnc3RfdGhyZWFkX3NjaGVkdWxlcl9kaXNwb3NlKToKCSAgRnJlZSB0aHJlYWQgcG9vbCBpbiBkaXNwb3NlLgoKMjAwNS0wNi0yOCAxNjo1NzoyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvbmV0d29yay1jbG9jay11dGlscy5zY20gKGRlYnVnLCBwcmludC1ldmVudCk6IE5ldyB1dGlscy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvbmV0d29yay1jbG9jay11dGlscy5zY20gKGRlYnVnLCBwcmludC1ldmVudCk6IE5ldyB1dGlscy4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbSAoKmRlYnVnKiwgKndpdGgtZ3JhcGgqKTogTmV3IHBhcmFtZXRlcnMuCgkgICgqcGFja2V0LWxvc3MqKTogVW5pZmllZCBsb3NzIHByb2JhYmlsaXR5LgoJICAobmV0d29yay10aW1lKTogUmVwb3J0IG91dC1vZi1iYW5kIGV2ZW50cy4KCSAgKiB0ZXN0cy9wbG90LWRhdGE6IEFkZCBzdXBwb3J0IGZvciBvdXQtb2YtYmFuZCBldmVudHMuIEhhY2sgaXQKCSAgaW50byB0aGlzIHNjcmlwdCBpbnN0ZWFkIG9mIHBhc3NpbmcgaXQgZG93biB0aGUgcGlwZTsgc2hvdWxkIGZpeAoJICB0aGlzIGxhdGVyLgoKMjAwNS0wNi0yOCAxNTozNjozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0LzogRG9jcyBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkgIERvY3MgZml4ZXMuCgoyMDA1LTA2LTI4IDEzOjQwOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IENvcnJlY3RseSBwcm94eSB0aGUgY2hlY2tfcHVsbF9yYW5nZSBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fY2hlY2tnZXRyYW5nZSksIChnc3RfcHJveHlfcGFkX2RvX2FjY2VwdGNhcHMpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19maXhhdGVjYXBzKToKCSAgQ29ycmVjdGx5IHByb3h5IHRoZSBjaGVja19wdWxsX3JhbmdlIGZ1bmN0aW9uLgoKMjAwNS0wNi0yOCAxMjo0NToyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZml4IGZha2UgZWxlbWVudHMgdG9vCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZmFrZSBlbGVtZW50cyB0b28KCjIwMDUtMDYtMjggMTI6MDE6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGRpZCBzL2Jhc2VzKHJjL2luaylfL2Jhc2VfcyhyYy9pbmspXy87IHdpbSB3YW50cyB0byByZW1vdmUgYmFzZSBjb21wbGV0ZWx5LCBidXQgdGhhdCdzIGZvciBsYXRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlkIHMvYmFzZXMocmMvaW5rKV8vYmFzZV9zKHJjL2luaylfLzsgd2ltIHdhbnRzIHRvIHJlbW92ZSBiYXNlIGNvbXBsZXRlbHksIGJ1dCB0aGF0J3MgZm9yIGxhdGVyCgoyMDA1LTA2LTI4IDExOjQ4OjU3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbTogUmVtb3ZlZCBuZWVkIGZvciBzbGliLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbTogUmVtb3ZlZCBuZWVkIGZvciBzbGliLgoKMjAwNS0wNi0yOCAxMTozNjo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFRoZSBkZXByZWNhdGVkIHBhZCBsb29wIGZ1bmN0aW9uIGlzIHJlbW92ZWQgbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3NldF9wYWRfZnVuY3Rpb25zKSwKCSAgKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19zZXRfZGF0YWZsb3dfZnVuY3MpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfdXBkYXRlX3BhZF9mdW5jdGlvbnMpOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19idWZmZXJhbGxvYyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2FjY2VwdGNhcHMpLCAoZ3N0X3Byb3h5X3BhZF9kb19maXhhdGVjYXBzKSwKCSAgKGdzdF9wcm94eV9wYWRfc2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpOgoJICBUaGUgZGVwcmVjYXRlZCBwYWQgbG9vcCBmdW5jdGlvbiBpcyByZW1vdmVkIG5vdy4KCjIwMDUtMDYtMjggMTE6MzM6MjIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL25ldHdvcmstY2xvY2suc2NtICgqdGltZW91dCosICpzZW5kLWxvc3MqLCAqcmVjdi1sb3NzKik6IE5ldyBwYXJhbWV0ZXJzLCBzaW11bGF0ZSBuZXR3b3JrIHBhY2tldCBsb3NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbSAoKnRpbWVvdXQqLCAqc2VuZC1sb3NzKiwgKnJlY3YtbG9zcyopOgoJICBOZXcgcGFyYW1ldGVycywgc2ltdWxhdGUgbmV0d29yayBwYWNrZXQgbG9zcy4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLXV0aWxzLnNjbTogSW5pdGlhbGl6ZSB0aGUgUk5HLgoKMjAwNS0wNi0yOCAxMTowMjoxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEZsdXNoaW5nIHRoZSBwcmVyb2xsIHF1ZXVlIGFsd2F5cyBuZWVkcyB0byB1bmxvY2sgdGhlIHdhaXRlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksCgkgIChnc3RfYmFzZXNpbmtfZXZlbnQpLCAoZ3N0X2Jhc2VzaW5rX2RlYWN0aXZhdGUpOgoJICBGbHVzaGluZyB0aGUgcHJlcm9sbCBxdWV1ZSBhbHdheXMgbmVlZHMgdG8gdW5sb2NrIHRoZSB3YWl0ZXJzLgoKMjAwNS0wNi0yOCAxMDo0NTo0OCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBXaGVlbiBhIHNlZWsgd2FzIHN1Y2Nlc3NmdWwgb24gYSBwaXBlbGluZSwgc2V0IHRoZSBzdHJlYW1fdGltZSB0byB0aGUgc2VlayBvZmZzZXQgaW4gb3JkZXIgdG8gaGF2ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9zZW5kX2V2ZW50KToKCSAgV2hlZW4gYSBzZWVrIHdhcyBzdWNjZXNzZnVsIG9uIGEgcGlwZWxpbmUsIHNldCB0aGUgc3RyZWFtX3RpbWUgdG8gdGhlCgkgIHNlZWsgb2Zmc2V0IGluIG9yZGVyIHRvIGhhdmUgYSBzeW5jaHJvbml6ZWQgc3RyZWFtX3RpbWUuCgoyMDA1LTA2LTI4IDEwOjM3OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IENhbGwgd3JhcHBlciBmdW5jdGlvbiBpbnN0ZWFkIG9mIGp1c3QgY2FsbGluZyB0aGUgZnVuY3Rpb24gcG9pbnRlcnMuIFRoaXMgdGFrZXMgY2FyZSBvZiBhbnkgbG9ja2luLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19idWZmZXJhbGxvYyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2dldHJhbmdlKSwgKGdzdF9wcm94eV9wYWRfZG9fY2hlY2tnZXRyYW5nZSksCgkgIChnc3RfcHJveHlfcGFkX2RvX2dldGNhcHMpLCAoZ3N0X3Byb3h5X3BhZF9kb19hY2NlcHRjYXBzKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fZml4YXRlY2Fwcyk6CgkgIENhbGwgd3JhcHBlciBmdW5jdGlvbiBpbnN0ZWFkIG9mIGp1c3QgY2FsbGluZyB0aGUgZnVuY3Rpb24KCSAgcG9pbnRlcnMuIFRoaXMgdGFrZXMgY2FyZSBvZiBhbnkgbG9ja2luZyBhbmQgd2hhdG1vcmUuCgoyMDA1LTA2LTI4IDEwOjI4OjMxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC4qOiBDT05ORUNURUQgLT4gTElOS0VELgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlciksIChnc3RfcGFkX3B1c2gpLAoJICAoZ3N0X3BhZF9wdWxsX3JhbmdlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIENPTk5FQ1RFRCAtPiBMSU5LRUQuCgoyMDA1LTA2LTI4IDA5OjU5OjAxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICAqLmM6IERvbid0IGNhc3QgdG8gR1NUX09CSkVDVCB3aGVuIHJlZmZpbmcgb3IgdW5yZWZmaW5nLiBMYXJnZSBzb3VyY2UtbXVuZ2luZyBjb21taXQhISEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogKi5jOiBEb24ndCBjYXN0IHRvIEdTVF9PQkpFQ1Qgd2hlbiByZWZmaW5nIG9yIHVucmVmZmluZy4gTGFyZ2UKCSAgc291cmNlLW11bmdpbmcgY29tbWl0ISEhCgoyMDA1LTA2LTI4IDA5OjE3OjE0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBnc3QvZ3N0b2JqZWN0LmMgKGdzdF9vYmplY3RfdW5yZWYsIGdzdF9vYmplY3RfcmVmKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0b2JqZWN0LmMgKGdzdF9vYmplY3RfdW5yZWYsIGdzdF9vYmplY3RfcmVmKQoJICAoZ3N0X29iamVjdF9zaW5rKTogVGFrZSBncG9pbnRlciBhcmd1bWVudHMsIG5vdCBHc3RPYmplY3QgLS0KCSAgYXZvaWRzIGNhc3RzLiBMaWtlIEdMaWIuCgoyMDA1LTA2LTI4IDA4OjQxOjQzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZSk6IERvbid0IHByb3h5IGFjdGl2YXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZSk6IERvbid0IHByb3h5CgkgIGFjdGl2YXRlLgoKMjAwNS0wNi0yNyAxODozOTo0MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBzaHV0IHVwIGdjYzMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNodXQgdXAgZ2NjMwoKMjAwNS0wNi0yNyAxODozNTowNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYyAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOiBVbnJlZiBhbnkgcmVtYWluaW5nIGJ1ZmZlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYyAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOiBVbnJlZiBhbnkKCSAgcmVtYWluaW5nIGJ1ZmZlci4KCSAgKiBnc3QvZ3N0dHJhY2UuYyAoZ3N0X2FsbG9jX3RyYWNlX2xpc3Rfc29ydGVkKTogTmV3IGhlbHBlciwKCSAgcmV0dXJucyBhIHNvcnRlZCBjb3B5IG9mIHRoZSB0cmFjZSBsaXN0LgoJICAoZ3N0X2FsbG9jX3RyYWNlX3ByaW50X2xpdmUpOiBOZXcgQVBJLCBvbmx5IHByaW50cyB0cmFjZXMgd2l0aAoJICBsaXZlIG9iamVjdHMuIFNvcnQgdGhlIGxpc3QuCgkgIChnc3RfYWxsb2NfdHJhY2VfcHJpbnRfYWxsKTogU29ydCB0aGUgbGlzdC4KCSAgKGdzdF9hbGxvY190cmFjZV9wcmludCk6IEFsaWduIGNvbHVtbnMuCgkgICogZ3N0L2VsZW1lbnRzL2dzdHR0eXBlZmluZGVsZW1lbnQuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiBBZGFwdCBmb3IgcGFkIGFjdGl2YXRpb24gY2hhbmdlcy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYyAoZ3N0X3BpcGVsaW5lX2luaXQpOiBVbnJlZiBhZnRlciBwYXJlbnRpbmcKCSAgc2NoZWQuCgkgIChnc3RfcGlwZWxpbmVfZGlzcG9zZSk6IERyb3AgcmVmIG9uIHNjaGVkLgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9pbml0KTogU2V0IHRoZSBkZWZhdWx0IGFjdGl2YXRlIGZ1bmMuCgkgIChnc3RfcGFkX2FjdGl2YXRlX2RlZmF1bHQpOiBQdXNoIG1vZGUgYnkgZGVmYXVsdC4KCSAgKHByZV9hY3RpdmF0ZV9zd2l0Y2gsIHBvc3RfYWN0aXZhdGVfc3dpdGNoKTogTmV3IHN0dWJzLCB0aGluZ3MgdG8KCSAgZG8gYmVmb3JlIGFuZCBhZnRlciBzd2l0Y2hpbmcgYWN0aXZhdGlvbiBtb2RlcyBvbiBwYWRzLgoJICAoZ3N0X3BhZF9zZXRfYWN0aXZlKTogVGFrZSBhIGJvb2xlYW4gYW5kIG5vdCBhIG1vZGUsIGRpc3BhdGNoIHRvCgkgIHRoZSBwYWQncyBhY3RpdmF0ZSBmdW5jdGlvbiB0byBjaG9vc2Ugd2hpY2ggbW9kZSB0byBhY3RpdmF0ZS4KCSAgU2hvcnRjdXQgb24gZGVhY3RpdmF0aW9uIGFuZCBjYWxsIHRoZSByaWdodCBmdW5jdGlvbiBkaXJlY3RseS4KCSAgKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCk6IE5ldyBBUEksIChkZSlhY3RpdmF0ZXMgYSBwYWQgaW4gcHVsbAoJICBtb2RlLgoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKTogTmV3IEFQSSwgc2FtZSBmb3IgcHVzaCBtb2RlLgoJICAoZ3N0X3BhZF9zZXRfYWN0aXZhdGVfZnVuY3Rpb24pCgkgIChnc3RfcGFkX3NldF9hY3RpdmF0ZXB1bGxfZnVuY3Rpb24pCgkgIChnc3RfcGFkX3NldF9hY3RpdmF0ZXB1c2hfZnVuY3Rpb24pOiBTZXR0ZXJzIGZvciBuZXcgQVBJLgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmMgKGdzdF9taW5pX29iamVjdF9uZXcsIGdzdF9taW5pX29iamVjdF9mcmVlKToKCSAgVHJhY2UgYWxsIG1pbmlvYmplY3RzLgoJICAoZ3N0X21pbmlfb2JqZWN0X21ha2Vfd3JpdGFibGUpOiBVbnJlZiB0aGUgYXJnIGlmIHdlIGNvcHksIGxpa2UKCSAgZ3N0X2NhcHNfbWFrZV93cml0YWJsZS4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jIChfZ3N0X21lc3NhZ2VfaW5pdGlhbGl6ZSk6IE5vIHRyYWNlIGluaXQuCgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9wcm94eV9wYWRfZG9fYWN0aXZhdGUpCgkgIChnc3RfcHJveHlfcGFkX2RvX2FjdGl2YXRlcHVsbCwgZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZXB1c2gpOgoJICBBZGFwdCBmb3IgbmV3IHBhZCBBUEkuCgkgICogZ3N0L2dzdGV2ZW50LmMgKF9nc3RfZXZlbnRfaW5pdGlhbGl6ZSk6IERvbid0IGluaXRpYWxpemUgdHJhY2UuCgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9pdGVyYXRlX3NyY19wYWRzKQoJICAoZ3N0X2VsZW1lbnRfaXRlcmF0ZV9zaW5rX3BhZHMpOiBOZXcgQVBJIGZ1bmN0aW9ucy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChpdGVyYXRvcl9mb2xkX3dpdGhfcmVzeW5jKTogTmV3IHV0aWxpdHksCgkgIHNob3VsZCBmb2xkIGludG8gZ3N0aXRlcmF0b3IuYyBpbiBzb21lIGZvcm0uCgkgIChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKTogU2ltcGxpZmllZCB2aWEgdXNlIG9mIGZvbGQgYW5kCgkgIGRlbGVnYXRpb24gb2YgZGVjaXNpb25zIHRvIGdzdHBhZC0+YWN0aXZhdGUuCgkgICogZ3N0L2dzdGJ1cy5jIChnc3RfYnVzX3NvdXJjZV9maW5hbGl6ZSk6IFNldCB0aGUgYnVzIHRvIE5VTEwsCgkgIGhlbHAgaW4gZGVidWdnaW5nLgoJICAqIGdzdC9nc3RidWZmZXIuYyAoX2dzdF9idWZmZXJfaW5pdGlhbGl6ZSk6IFJlZiB0aGUgYnVmZmVyIHR5cGUKCSAgY2xhc3Mgb25jZSBpbiBpbml0LCBsaWtlIGdzdG1lc3NhZ2UuIERpZG4ndCBydW4gaW50byB0aGlzIGlzc3VlCgkgIGJ1dCBpdCBzZWVtcyBjb3JyZWN0LiBEb24ndCBpbml0aWFsaXplIGEgdHJhY2UsIGdzdG1pbmlvYmplY3QgZG9lcwoJICB0aGF0LgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmMgKHRlc3Rfc3RvcF9mcm9tX2FwcCk6IE5ldwoJICB0ZXN0LCBydW5zIGZha2VzcmMgISBmYWtlc2luaywgc3RvcHBpbmcgb24gOjpoYW5kb2ZmIHZpYSBhIG1lc3NhZ2UKCSAgdG8gdGhlIGJ1cy4KCSAgKGFzc2VydF9saXZlX2NvdW50KTogTmV3IHV0aWwgZnVuY3Rpb24sIHVzZXMgYWxsb2MgdHJhY2VzIHRvIGNoZWNrCgkgIGNsZWFudXAuCgkgICogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmMgKHRlc3RfZ2hvc3RfcGFkcyk6IE1vcmUgcmVmY291bnQgY2hlY2tzLgoJICBUbyBiZSBtb2RpZmllZCB3aGVuIHVubGluayBkcm9wcyB0aGUgaW50ZXJuYWwgcGFkLgoKMjAwNS0wNi0yNyAxODoxMToyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQ2xlYW51cCB0aGUgZ2V0X3N0YXRlKCkgZnVuY3Rpb24gYSBsaXR0bGUsIG1ha2Ugc3VyZSBpdCBpdGVyYXRlcyB0aGUgc2FtZSBzZXQgb2YgZWxlbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZ2V0X3N0YXRlKSwgKGdzdF9iaW5faXRlcmF0ZV9zdGF0ZV9vcmRlciksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgIENsZWFudXAgdGhlIGdldF9zdGF0ZSgpIGZ1bmN0aW9uIGEgbGl0dGxlLCBtYWtlIHN1cmUgaXQKCSAgaXRlcmF0ZXMgdGhlIHNhbWUgc2V0IG9mIGVsZW1lbnRzLgoJICBBZGRlZCBzdHViIGl0ZXJhdGVfc3RhdGVfb3JkZXIoKS4KCjIwMDUtMDYtMjcgMTQ6NDA6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXRyYW5zZm9ybS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpdGVyYXRvci5zZ21sOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYWRkaW5nIGJhc2V0cmFuc2Zvcm0gYW5kIGl0ZXJhdG9yIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGluZyBiYXNldHJhbnNmb3JtIGFuZCBpdGVyYXRvciBkb2NzCgoyMDA1LTA2LTI3IDEzOjI1OjQ0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWFjdGl2YXRpb24udHh0OiBOb3RlcyBvbiBob3cgYWN0aXZhdGlvbiBzaG91bGQgd29yayAtLSBub3QgcXVpdGUgaW1wbGVtZW50ZWQgeWV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWFjdGl2YXRpb24udHh0OiBOb3RlcyBvbiBob3cgYWN0aXZhdGlvbiBzaG91bGQKCSAgd29yayAtLSBub3QgcXVpdGUgaW1wbGVtZW50ZWQgeWV0LgoKMjAwNS0wNi0yNyAwODo1NDoxNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnkuc2dtbDoKCSAgcmVtb3ZlIHN0dWZmIHRoYXQgaXNuJ3QgdGhlcmUgYW55bW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHN0dWZmIHRoYXQgaXNuJ3QgdGhlcmUgYW55bW9yZQoKMjAwNS0wNi0yNyAwODoxNjo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIG1vcmUgZG9jIGFuZCB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIGRvYyBhbmQgd2hpdGVzcGFjZSBmaXhlcwoKMjAwNS0wNi0yNSAxOTo1MzowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBBdCBsZWFzdCBnZXQgdGhlIGNoYWluIGZ1bmN0aW9uIGNvcnJlY3QsIG5lZWRzIG1vcmUgZml4aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fY2hhaW4pOgoJICBBdCBsZWFzdCBnZXQgdGhlIGNoYWluIGZ1bmN0aW9uIGNvcnJlY3QsIG5lZWRzIG1vcmUKCSAgZml4aW5nLgoKMjAwNS0wNi0yNSAxOTozNzo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFJpZ2h0LCB0d28gcHJvYmxlbXMgaGVyZTogZ2hvc3RwYWRzIGRvbid0IHRha2UgbG9ja3MgYW5kIGdsaWIgX3JlY19tdXRleF9sb2NrX2Z1bGwoKSB3aXRoIGRlcHRoPT0wIHN0aWxsIGxvY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2VzaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2VzaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlc2lua19kb19zeW5jKSwgKGdzdF9iYXNlc2lua19oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X2Jhc2VzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHRhc2suaDoKCSAgUmlnaHQsIHR3byBwcm9ibGVtcyBoZXJlOiBnaG9zdHBhZHMgZG9uJ3QgdGFrZSBsb2NrcyBhbmQKCSAgZ2xpYiBfcmVjX211dGV4X2xvY2tfZnVsbCgpIHdpdGggZGVwdGg9PTAgc3RpbGwgbG9ja3MuCgkgIENhdGNoIGlsbGVnYWwgbG9ja2luZyBhbmQgZ193YXJuIHRoZW0uCgoyMDA1LTA2LTI1IDE5OjE0OjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svc3RhdGVzL3NpbmtzLmM6IEhhdmUgdG8gY2hlY2sgZm9yIGNvbXBsZXRpb24gbm93Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiAoU1RBUlRfVEVTVCksIChnc3Rfb2JqZWN0X3N1aXRlKToKCSAgSGF2ZSB0byBjaGVjayBmb3IgY29tcGxldGlvbiBub3cuLi4KCjIwMDUtMDYtMjUgMTk6MDk6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBVbmxvY2sgU1RSRUFNX0xPQ0sgd2hhdGV2ZXIgdGhlIHJlY3Vyc2lvbiB3YXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9lbXB0eSksCgkgIChnc3RfYmFzZXNpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZXNpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2VzaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2VzaW5rX2hhbmRsZV9ldmVudCksCgkgIChnc3RfYmFzZXNpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIFVubG9jayBTVFJFQU1fTE9DSyB3aGF0ZXZlciB0aGUgcmVjdXJzaW9uIHdhcy4KCjIwMDUtMDYtMjUgMTc6NTQ6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZXdvcmtlZCB0aGUgYmFzZSBzaW5rLCBoYW5kbGUgZXZlbnQgYW5kIGJ1ZmZlciBzZXJpYWxpc2F0aW9uIGNvcnJlY3RseSBhbmQgcmVtb3ZlZCBwb3NzaWJsZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLCAoZ3N0X2Jhc2VzaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2VzaW5rX2V2ZW50KSwgKGdzdF9iYXNlc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlc2lua19oYW5kbGVfZXZlbnQpLCAoZ3N0X2Jhc2VzaW5rX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VzaW5rX2NoYWluKSwgKGdzdF9iYXNlc2lua19sb29wKSwgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZXNpbmtfY2hhbmdlX3N0YXRlKToKCSAgUmV3b3JrZWQgdGhlIGJhc2Ugc2luaywgaGFuZGxlIGV2ZW50IGFuZCBidWZmZXIgc2VyaWFsaXNhdGlvbgoJICBjb3JyZWN0bHkgYW5kIHJlbW92ZWQgcG9zc2libGUgZGVhZGxvY2suCgkgIEhhbmRsZSBFT1MgY29ycmVjdGx5LgoKMjAwNS0wNi0yNSAxNzo1MToxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFsbG93IGVsZW1lbnRzIHRvIHBvc3QgRU9TIGluIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoaXNfZW9zKSwgKHBpcGVsaW5lX2J1c19oYW5kbGVyKSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGNoZWNrX2ludHIpLCAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgQWxsb3cgZWxlbWVudHMgdG8gcG9zdCBFT1MgaW4gdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbi4KCSAgRml4IHVwIC1sYXVuY2gsIG1ha2UgaXQgZXhpdCB0aGUgcG9sbCBsb29wIHdoZW4gdGhlCgkgIHBpcGVsaW5lIGFjdHVhbGx5IGNoYW5nZWQgc3RhdGUuCgkgIEZpeCB1cCB3YXJuaW5nIHBhcnNpbmcgaW4gLWxhdW5jaC4KCjIwMDUtMDYtMjUgMTc6NDQ6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IENvcmUgdGFrZXMgU1RSRUFNX0xPQ0sgZm9yIHVzIG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9jaGFpbiksIChnc3RfdGVlX2xvb3ApLAoJICAoZ3N0X3RlZV9zaW5rX2FjdGl2YXRlKToKCSAgQ29yZSB0YWtlcyBTVFJFQU1fTE9DSyBmb3IgdXMgbm93LgoKMjAwNS0wNi0yNSAxNzo0MjoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEtlZXAgdHJhY2sgb2YgY3VycmVudCB0YXJnZXQgc3RhdGUgd2hpbGUgcGVyZm9ybWluZyBhIHN0YXRlIGNoYW5nZSBzbyB0aGF0IHN1YmNsYXNzZXMgY2FuIGRvIHNvbWV0aGluZyBpbnRlcmVzdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9wYXJzZV9lcnJvciksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV93YXJuaW5nKToKCSAgS2VlcCB0cmFjayBvZiBjdXJyZW50IHRhcmdldCBzdGF0ZSB3aGlsZSBwZXJmb3JtaW5nIGEgc3RhdGUKCSAgY2hhbmdlIHNvIHRoYXQgc3ViY2xhc3NlcyBjYW4gZG8gc29tZXRoaW5nIGludGVyZXN0aW5nLgoJICBGaXggcGFyc2luZyBvZiB3YXJuaW5nL2Vycm9yIG1lc3NhZ2VzIHdoZW4gR0Vycm9yIGlzIE5VTEwuCgoyMDA1LTA2LTI0IDE4OjE2OjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rjb21wYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleC5zZ21sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1xdW90ZXMueG1sOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgc3RhcnQgcHVsbGluZyBpbiBiYXNlIGNsYXNzZXMgYW5kIGVsZW1lbnRzIGZvciBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzdGFydCBwdWxsaW5nIGluIGJhc2UgY2xhc3NlcyBhbmQgZWxlbWVudHMgZm9yIGRvY3MKCjIwMDUtMDYtMjQgMDc6NDk6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgZml4ZWQgbWFrZSBkaXN0Y2hlY2sgd2l0aCBndGstZG9jIDEuMwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4ZWQgbWFrZSBkaXN0Y2hlY2sgd2l0aCBndGstZG9jIDEuMwoKMjAwNS0wNi0yMyAxNzoxMTo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFdoZW4gdGhlIHN0YXRlIGRpZCBub3QgY2hhbmdlLCBhbHNvIHJlcG9ydCBOT19QUkVST0xMIHdoZW4gaXQgbWF0dGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBXaGVuIHRoZSBzdGF0ZSBkaWQgbm90IGNoYW5nZSwgYWxzbyByZXBvcnQgTk9fUFJFUk9MTAoJICB3aGVuIGl0IG1hdHRlcnMuCgoyMDA1LTA2LTIzIDE3OjA5OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTm8gdW5zYWZlIHRhc2sgcGF1c2luZyBwbGVhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZXZlbnRfZGVmYXVsdCk6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbG9vcCk6CgkgIE5vIHVuc2FmZSB0YXNrIHBhdXNpbmcgcGxlYXNlLgoKMjAwNS0wNi0yMyAxNzowNzowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9zY2hlZHVsZXJzL3RocmVhZHNjaGVkdWxlci5jOiBSZWYgdGhlIHRhc2sgYmVmb3JlIHB1c2hpbmcgaXQgb24gdGhlIHRocmVhZHBvb2wuIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIGhhdmUgYSByZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvc2NoZWR1bGVycy90aHJlYWRzY2hlZHVsZXIuYzoKCSAgKGdzdF90aHJlYWRfc2NoZWR1bGVyX3Rhc2tfc3RhcnQpLAoJICAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfdGFza19wYXVzZSksIChnc3RfdGhyZWFkX3NjaGVkdWxlcl9mdW5jKToKCSAgUmVmIHRoZSB0YXNrIGJlZm9yZSBwdXNoaW5nIGl0IG9uIHRoZSB0aHJlYWRwb29sLiBUaGlzCgkgIG1ha2VzIHN1cmUgdGhhdCB3ZSBoYXZlIGEgcmVmIHdoZW4gdGhlIHRocmVhZGZ1bmN0aW9uIGlzCgkgIGFjdHVhbGx5IGNhbGxlZC4KCjIwMDUtMDYtMjMgMTU6MjY6MDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2VzcmNfZ2V0X3JhbmdlKTogQ2hlY2sgaWYgdGhlIG9mZnNldCBpcyBncmVhdGVyIHRoYW4gdGhlIGZpbGUncyBzaXplLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlc3JjX2dldF9yYW5nZSk6IENoZWNrIGlmIHRoZQoJICBvZmZzZXQgaXMgZ3JlYXRlciB0aGFuIHRoZSBmaWxlJ3Mgc2l6ZS4KCjIwMDUtMDYtMjMgMTU6MDQ6NDggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RvYmplY3QuaCAoR1NUX0NMQVNTX0xPQ0ssIEdTVF9DTEFTU19UUllMT0NLKSAoR1NUX0NMQVNTX1VOTE9DSywgR1NUX0NMQVNTX0dFVF9MT0NLLCBHc3RPYmplY3RDbGFzcykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdG9iamVjdC5oIChHU1RfQ0xBU1NfTE9DSywgR1NUX0NMQVNTX1RSWUxPQ0spCgkgIChHU1RfQ0xBU1NfVU5MT0NLLCBHU1RfQ0xBU1NfR0VUX0xPQ0ssIEdzdE9iamVjdENsYXNzKQoJICAqIGdzdC9nc3RvYmplY3QuYyAoZ3N0X29iamVjdF9jbGFzc19pbml0KTogTWFrZSB0aGUgY2xhc3MgbG9jawoJICByZWN1cnNpdmUuIFdpbSB3b24ndCBsZXQgbWUgZHJvcCBkZWVwX25vdGlmeS4gRGVjb2RlYmluIHdvcmtzCgkgIGFnYWluLCB3aG9vcGR5IGRvby4KCjIwMDUtMDYtMjMgMTQ6MTg6MTUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jIChvbl9pbnRfbm90aWZ5KTogQ2F0Y2hlcyBub3RpZnk6OmNhcHMgb24gdGhlIGludGVybmFsIHBhZCwgYW5kIGhhY2tzIGFjY29yZGluZ2x5LiBEb2Vzbid0IGRvIGl0IG9uIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYyAob25faW50X25vdGlmeSk6IENhdGNoZXMgbm90aWZ5OjpjYXBzIG9uIHRoZQoJICBpbnRlcm5hbCBwYWQsIGFuZCBoYWNrcyBhY2NvcmRpbmdseS4gRG9lc24ndCBkbyBpdCBvbiB0aGUgdGFyZ2V0CgkgIHBhZCBiZWNhdXNlIHdlIGNoYW5nZSBpdHMgY2Fwcy4gUHJvYmFibHkgY2F0Y2hlcyBhbGwgY2FzZXMgb2YKCSAgaW50ZXJlc3QgdGhvLgoJICAoZ3N0X2dob3N0X3BhZF9zZXRfcHJvcGVydHkpOiBDb25uZWN0IHRvIG5vdGlmeTo6Y2FwcyBhcwoJICBhcHByb3ByaXRhdGUuCgoyMDA1LTA2LTIzIDEzOjIwOjQ0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbSAocGxvdC1zaW11bGF0aW9uKTogUGlwZSBkYXRhIHRvIHRoZSBlbGl0ZSBweXRob24gc2tyaXB0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbSAocGxvdC1zaW11bGF0aW9uKTogUGlwZSBkYXRhIHRvIHRoZQoJICBlbGl0ZSBweXRob24gc2tyaXB0LgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2stdXRpbHMuc2NtIChkZWZpbmUtcGFyYW1ldGVyKTogTmV3IG1hY3JvLAoJICBkZWZpbmVzIGEgcGFyYW1ldGVyIHRoYXQgY2FuIGJlIHNldCB2aWEgdGhlIGNvbW1hbmQgbGluZS4KCSAgKHNldC1wYXJhbWV0ZXIhLCBwYXJzZS1wYXJhbWV0ZXItYXJndW1lbnRzKTogQ29tbWFuZCBsaW5lIGFyZ3MKCSAgcGFyc2VyLgoJICAqIHRlc3RzL3Bsb3QtZGF0YTogU2ltcGxlIG1hdHBsb3RsaWItYmFzZWQgcGxvdHRlciwgdGFrZXMgaW5wdXQgb24KCSAgc3RkaW4uCgoyMDA1LTA2LTIzIDEzOjIwOjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXF1b3Rlcy54bWw6CgkgIGFkZCBtb3JlIGltcG9ydGFudCBkb2N1bWVudGF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbW9yZSBpbXBvcnRhbnQgZG9jdW1lbnRhdGlvbgoKMjAwNS0wNi0yMyAxMTo0MzozOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IERvbid0IHJlc3RhcnQgdHlwZWZpbmRpbmcgb24gYSBkaXNjb250LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgSmFuIFNjaG1pZHQgIDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICBEb24ndCByZXN0YXJ0IHR5cGVmaW5kaW5nIG9uIGEgZGlzY29udC4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgRGVidWcgc3BlbGxpbmcgZml4LgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBBbGxvdyBjaGFuZ2luZyBtb2RlIG9mIGFuIGFjdGl2ZSBwYWQuCgkgIERlYnVnIG91dHB1dCBmaXhlcy4KCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOiAobG9hZF9mZWF0dXJlKToKCSAgRG9uJ3QgY2FzdCBhIHN0YXRpYyBwYWQgdGVtcGxhdGUgdG8gYSBub3JtYWwgcGFkIHRlbXBsYXRlLgoKMjAwNS0wNi0yMyAxMToyNToyOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICByZW1vdmUgZ3N0X3N0cnRvbGwgY29tcGxldGVseSwgc2luY2UgaXQgZGlkbid0IGFjdHVhbGx5IGRvIGFueXRoaW5nIG1vcmUgdGhhbiB3aGF0IGdfYXNjaWlfc3RydG91bGwgYWxyZWFkeSBkb2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9pbnRfaGVscGVyKToKCSAgcmVtb3ZlIGdzdF9zdHJ0b2xsIGNvbXBsZXRlbHksIHNpbmNlIGl0IGRpZG4ndCBhY3R1YWxseSBkbwoJICBhbnl0aGluZyBtb3JlIHRoYW4gd2hhdCBnX2FzY2lpX3N0cnRvdWxsIGFscmVhZHkgZG9lcy4KCSAgY2hlY2sgZm9yIHJhbmdlIGVycm9ycyB3aGVuIGRlc2VyaWFsaXppbmcKCSAgZG8gYSBjYXN0IGZvciB0aGUgdW5zaWduZWQgY2FzZXM7IGJ1dCBmdXJ0aGVyIGZpeGluZyBuZWVkcwoJICBhIGRlY2lzaW9uIG9uIHdoYXQgdGhlIGludGVycHJldGF0aW9uIG9mICIoaW50KSIgYW5kCgkgIGRlc2VyaWFsaXphdGlvbiBzaG91bGQgYmUgZm9yIHZhbHVlcyB0aGF0IGZhbGwgb3V0c2lkZSB0aGUKCSAgdHlwZSdzIGJvdW5kYXJpZXMgKGllLCByZWZ1c2UsIG9yIGludGVycHJldCBhcyBjYXN0aW5nKQoKMjAwNS0wNi0yMyAxMDozNzowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0dHlwZXMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBBZGRlZCBzdXBwb3J0IGZvciBsaXZlIHNvdXJjZXMgYW5kIG90aGVyIGVsZW1lbnRzIHRoYXQgY2Fubm90IGRvIHByZXJvbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGRlZCBzdXBwb3J0IGZvciBsaXZlIHNvdXJjZXMgYW5kIG90aGVyIGVsZW1lbnRzIHRoYXQKCSAgY2Fubm90IGRvIHByZXJvbGwuCgkgIFVwZGF0ZWQgZGVzaWduIGRvY3MsIGFkZGVkIGxpdmUtc291cmNlIGRlc2lnbiBkb2MuCgkgIEltcGxlbWVudGVkIGxpdmUgc291cmNlIGZ1bmN0aW9uYWxpdHkgaW4gYmFzZXNyYwoJICBGaXggZXJyb3IgY29uZGl0aW9uIGluIF9iaW5fZ2V0X3N0YXRlKCkKCSAgSW1wbGVtZW50IGxpdmUgc291cmNlIGhhbmRsaW5nIGluIC1sYXVuY2guCgkgIEFkZGVkIGNoZWNrIGZvciBsaXZlIHNvdXJjZXMuCgkgIEZpeGVkIGNhc2UgaW4gR3N0QmluIHdoZXJlIGVsZW1lbnRzIHdlcmUgY2hhbmdlZCBzdGF0ZQoJICBtdWx0aXBsZSB0aW1lcy4KCjIwMDUtMDYtMjMgMDk6NTk6MzMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RwYWQuYyAodGVzdF9nZXRfYWxsb3dlZF9jYXBzLCB0ZXN0X3JlZmNvdW50KTogRml4IGJvcmtlbiByZWZjb3VudGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdHBhZC5jICh0ZXN0X2dldF9hbGxvd2VkX2NhcHMsIHRlc3RfcmVmY291bnQpOiBGaXgKCSAgYm9ya2VuIHJlZmNvdW50aW5nLgoKMjAwNS0wNi0yMyAwOTo0MTo0MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBjb21taXQgdGhlIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvbW1pdCB0aGUgZmlsZQoKMjAwNS0wNi0yMyAwOTo0MTowOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3NldF9jYXBzKTogUmVtb3ZlIG5lZWRsZXNzIHJlZnMsIGdzdF9jYXBzX3JlcGxhY2UgdGFrZXMgY2FyZSBvZiB0aGlzIGZvciB1cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3NldF9jYXBzKTogUmVtb3ZlIG5lZWRsZXNzIHJlZnMsCgkgIGdzdF9jYXBzX3JlcGxhY2UgdGFrZXMgY2FyZSBvZiB0aGlzIGZvciB1cy4KCjIwMDUtMDYtMjMgMDk6Mjg6MjcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfcHJveHlfcGFkX2RvX3NldGNhcHMpOiBDYWxsIHRoZSBmdWxsIGdzdF9wYWRfc2V0X2NhcHMgb24gdGhlIHRhcmdldCwgbm90IGp1c3QgaXRzIHNldGNhcHMoKSBmdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X3Byb3h5X3BhZF9kb19zZXRjYXBzKTogQ2FsbCB0aGUgZnVsbAoJICBnc3RfcGFkX3NldF9jYXBzIG9uIHRoZSB0YXJnZXQsIG5vdCBqdXN0IGl0cyBzZXRjYXBzKCkgZnVuY3Rpb24uCgoyMDA1LTA2LTIzIDAwOjM5OjI2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy86IEEgbmV0d29yayBjbG9jayBzaW11bGF0b3IuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2suc2NtOgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2stdXRpbHMuc2NtOiBBIG5ldHdvcmsgY2xvY2sgc2ltdWxhdG9yLgoJICBTb21ldGhpbmcgb2YgYW4gYWxnb3JpdGhtaWMgdGVzdGJlZCBiZWZvcmUgZG9pbmcgc29tZXRoaW5nIGluIEMuCgoyMDA1LTA2LTIyIDE5OjU3OjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgbWFrZSBzdXJlIGNhcHNsaXN0LmggZ2V0cyBkaXN0ZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1ha2Ugc3VyZSBjYXBzbGlzdC5oIGdldHMgZGlzdGVkCgoyMDA1LTA2LTIyIDE5OjQ4OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGZpbGUgZnJvbXN0cmluZy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSBmcm9tc3RyaW5nLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA2LTIyIDE5OjIyOjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrLzogY29weSBvdmVyIGZyb20gMC44LCBhbmQgYWRkIHR3byB3aXRoIGJpdG1hc2tzIHNwZWNpZmllZCB3aXRoIChpbnQpIDB4RkYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkgIGNvcHkgb3ZlciBmcm9tIDAuOCwgYW5kIGFkZCB0d28gd2l0aCBiaXRtYXNrcyBzcGVjaWZpZWQgd2l0aAoJICAoaW50KSAweEZGLi4uCgkgICogY2hlY2svZ3N0L2dzdGNhcHMuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X2NhcHNfc3VpdGUpOgoJICBhZGQgdGVzdCB0byBwYXJzZSBldmVyeXRoaW5nIGZyb20gY2Fwc2xpc3QuaAoJICAqIGNoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKSwKCSAgKG1haW4pOgoJICBhZGQgdGVzdCBmb3Igc3RydWN0dXJlIGRlc2VyaWFsaXphdGlvbgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBhZGQgdGVzdHMgZm9yIGRlc2VyaWFsaXphdGlvbiBvZiBzdHJpbmdzIHRvIGludCB0eXBlcwoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfbnRoX2ZpZWxkX25hbWUpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgYWRkIGEgd2F5IHRvIGdldCB0aGUgbmFtZSBvZiBhIGZpZWxkIHJlZmVyZW5jZWQgYnkgaW5kZXgKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9pbnRfaGVscGVyKToKCSAgaW5zdGVhZCBvZiBjaGVja2luZyBpZiB0aGUgcmVzdWx0aW5nIGxvbmcgbG9uZyBsaWVzIGJldHdlZW4KCSAgbWluIGFuZCBtYXgsIHdlIGNoZWNrIGlmIHRoZSBsb25nIGxvbmcgd291bGQgZml0IGludG8KCSAgYSBudW1iZXIgb2YgYnl0ZXMgZm9yIHRoZSBmaW5hbCB0eXBlLgoJICBUaGlzIGZpeGVzIGNhc2VzIHdoZXJlIGEgc3RyaW5nIHJlcHJlc2VudHMgMl4zMiAtIDEsIHdoaWNoCgkgIHdoZW4gY2FzdCB0byBpbnQgd291bGQgYmUgdGhlICh2YWxpZCkgLTEsIGJ1dCBpcyBiaWdnZXIgdGhhbgoJICBHX01BWElOVAoKMjAwNS0wNi0yMiAxMTowMjo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIGFkZCBhIGxvZyBsaW5lIGZvciB0eXBlIGRlc2VyaWFsaXphdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgbG9nIGxpbmUgZm9yIHR5cGUgZGVzZXJpYWxpemF0aW9uCgoyMDA1LTA2LTIyIDEwOjUyOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHJldHVybiBsb25nIGxvbmcsIG5vdCBpbnQsIHNvIGdpbnQ2NCBkZXNlcmlhbGl6YXRpb24gYWN0dWFsbHkgd29ya3MuICBJcyB0aGVyZSBhbnkgZmxhZyB0aGF0IG1ha2VzIHRoZSBjb21waWxlciBjaGVjay4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKFNUQVJUX1RFU1QpOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplKToKCSAgcmV0dXJuIGxvbmcgbG9uZywgbm90IGludCwgc28gZ2ludDY0IGRlc2VyaWFsaXphdGlvbiBhY3R1YWxseQoJICB3b3Jrcy4gIElzIHRoZXJlIGFueSBmbGFnIHRoYXQgbWFrZXMgdGhlIGNvbXBpbGVyIGNoZWNrIHRoaXMgPwoJICBGaXhlcyAjMzA4NTU5CgoyMDA1LTA2LTIyIDA5OjU1OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5oOiBBZGRlZCBjb252ZW5pZW5jZSBtYWNyb3MgZm9yIHNldHRpbmcgYnVmZmVycyBpbiBHVmFsdWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgQWRkZWQgY29udmVuaWVuY2UgbWFjcm9zIGZvciBzZXR0aW5nIGJ1ZmZlcnMgaW4gR1ZhbHVlLgoKMjAwNS0wNi0yMSAxNzo0MTozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9nc3QvOiBhZGQgYSB0ZXN0IGRlc2VyaWFsaXppbmcgaW50NjQsIGFuZCBjb21tZW50IHBhcnQgb3V0IGJlY2F1c2UgaXQgZmFpbHMsIHlheSAhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBhZGQgYSB0ZXN0IGRlc2VyaWFsaXppbmcgaW50NjQsIGFuZCBjb21tZW50IHBhcnQgb3V0IGJlY2F1c2UKCSAgaXQgZmFpbHMsIHlheSAhCgoyMDA1LTA2LTIxIDE2OjUzOjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJICBjb21taXQgYSBmaWxlIEkgZm9yZ290CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb21taXQgYSBmaWxlIEkgZm9yZ290CgoyMDA1LTA2LTIxIDE2OjQ4OjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3ZhbHVlX3NlcmlhbGl6ZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3Rlc3RfZ3N0X2luaXQuYzoKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvY2Fwcy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2NhcHMvdmFsdWVfc2VyaWFsaXplLmM6CgkqIHRlc3RzdWl0ZS90ZXN0X2dzdF9pbml0LmM6CgkgIG1vdmUgb3ZlciBhIHZhbHVlX3NlcmlhbGl6ZSB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3ZlIG92ZXIgYSB2YWx1ZV9zZXJpYWxpemUgdGVzdAoKMjAwNS0wNi0yMCAxNToxODoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogU21hbGwgZG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgU21hbGwgZG9jIHVwZGF0ZXMuCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29tcGFyZV9idWZmZXIpLAoJICAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9idWZmZXIpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2J1ZmZlciksCgkgIChnc3RfdmFsdWVfY29tcGFyZV9mbGFncyksIChnc3RfdmFsdWVfc2VyaWFsaXplX2ZsYWdzKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mbGFncyksIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICBGaXggc2VyaWFsaXNhdGlvbiBvZiBidWZmZXJzLCB0aGV5IGFyZSBub3QgYm94ZWQgdHlwZXMgYW55bW9yZQoKMjAwNS0wNi0yMCAxNToxNDo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RjYXBzLmM6IFRlc3RjYXNlIHRvIHNob3cgZXJyb3IgaW4gYnVmZmVyLW9uLWNhcHMgc2VyaWFsaXNhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGNhcHMuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X2NhcHNfc3VpdGUpOgoJICBUZXN0Y2FzZSB0byBzaG93IGVycm9yIGluIGJ1ZmZlci1vbi1jYXBzIHNlcmlhbGlzYXRpb24uCgoyMDA1LTA2LTIwIDE1OjEzOjQzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL3JhbmRvbS93aW5nby9wb3J0aW5nLXBsdWdpbnMtdG8tMC45OiBBIHBpdGlmdWwgZG9jdW1lbnQgSSB3aWxsIGJlIGFkZGluZyB0byBsYXRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9yYW5kb20vd2luZ28vcG9ydGluZy1wbHVnaW5zLXRvLTAuOTogQSBwaXRpZnVsIGRvY3VtZW50IEkKCSAgd2lsbCBiZSBhZGRpbmcgdG8gbGF0ZXIuCgoyMDA1LTA2LTIwIDExOjQxOjE3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0c3lzdGVtY2xvY2suYyAoZ3N0X3N5c3RlbV9jbG9ja19pbml0KTogVW5sb2NrIHRoZSBjbG9jayBpZiBpdHMgc29ja3MgZmlsbCB3aXRoIHJvY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYyAoZ3N0X3N5c3RlbV9jbG9ja19pbml0KTogVW5sb2NrIHRoZSBjbG9jawoJICBpZiBpdHMgc29ja3MgZmlsbCB3aXRoIHJvY2tzLgoJICAoZ3N0X3N5c3RlbV9jbG9ja19vYnRhaW4pOiBTZXQgdGhlIG5hbWUgb24gb2JqZWN0IGNvbnN0cnVjdGlvbi4KCSAgQXZvaWQgZG91YmxlLWNoZWNrZWQgbG9ja2luZy4KCjIwMDUtMDYtMjAgMTE6MzI6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXJpLmM6IEZpeCBwb3RlbnRpYWwgZW5kbGVzcyBsb29wLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXJpLmM6IChnc3RfZWxlbWVudF9tYWtlX2Zyb21fdXJpKToKCSAgRml4IHBvdGVudGlhbCBlbmRsZXNzIGxvb3AuCgoyMDA1LTA2LTIwIDExOjI3OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9naG9zdHBhZHMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9naG9zdHBhZHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZ2hvc3RwYWRzL2dob3N0cGFkcy5jOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9naG9zdHBhZHMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2dob3N0cGFkcy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2dob3N0cGFkcy9naG9zdHBhZHMuYzoKCSAgcmVtb3ZlIGFub3RoZXIgdGVzdCB0aGF0J3Mgb2Jzb2xldGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBhbm90aGVyIHRlc3QgdGhhdCdzIG9ic29sZXRlCgoyMDA1LTA2LTIwIDExOjIzOjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbG9jay8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Nsb2NrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Nsb2NrL2Nsb2NrMS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Nsb2NrL2Nsb2NrMi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Nsb2NrL3NpZ25lZG5lc3MuYzoKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvY2xvY2svLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2Nsb2NrL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvY2xvY2svY2xvY2sxLmM6CgkqIHRlc3RzdWl0ZS9jbG9jay9jbG9jazIuYzoKCSogdGVzdHN1aXRlL2Nsb2NrL3NpZ25lZG5lc3MuYzoKCSAgcmVtb3ZlIGNsb2NrIHRlc3RzdWl0ZSwgaW1wb3J0YW50IHN0dWZmIGFscmVhZHkgbW92ZWQgdG8gY2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBjbG9jayB0ZXN0c3VpdGUsIGltcG9ydGFudCBzdHVmZiBhbHJlYWR5IG1vdmVkIHRvIGNoZWNrCgoyMDA1LTA2LTIwIDExOjE4OjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9iaW5zLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYmlucy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9iaW5zL2ludGVyZmFjZS5jOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9iaW5zLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9iaW5zL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvYmlucy9pbnRlcmZhY2UuYzoKCSAgcmVtb3ZlIHRlc3QgdGhhdCB3YXMgYWxyZWFkeSBtb3ZlZCB0byBjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHRlc3QgdGhhdCB3YXMgYWxyZWFkeSBtb3ZlZCB0byBjaGVjawoKMjAwNS0wNi0xOSAxMTozMjo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogYWRkIGdzdHRhZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgYWRkIGdzdHRhZwoJICAqIGNoZWNrL2dzdC9nc3R0YWcuYzogKGNoZWNrX3RhZ3MpLCAoU1RBUlRfVEVTVCksIChnc3RfdGFnX3N1aXRlKSwKCSAgKG1haW4pOgoJICBtb3ZlIG92ZXIgZnJvbSB0ZXN0c3VpdGUgZGlyIGFuZCBjbGVhbiB1cAoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZ3N0dGFnLmM6CgkgICogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzdWl0ZS90YWdzLy5jdnNpZ25vcmU6CgkgICogdGVzdHN1aXRlL3RhZ3MvTWFrZWZpbGUuYW06CgkgICogdGVzdHN1aXRlL3RhZ3MvbWVyZ2UuYzoKCSAgcmVtb3ZlIHRlc3RzdWl0ZS90YWdzCgoyMDA1LTA2LTE5IDEwOjU0OjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmluLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YnVmZmVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2Fwcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN0cnVjdHVyZS5zZ21sOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgc29tZSBtb3JlIGRvY3MgY2xlYW51cAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc29tZSBtb3JlIGRvY3MgY2xlYW51cAoKMjAwNS0wNi0xOSAxMDozMTo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9idWZzcGVlZC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9idWZzcGVlZC9NYWtlZmlsZS5hbToKCSogdGVzdHMvYnVmc3BlZWQvUkVBRE1FOgoJKiB0ZXN0cy9idWZzcGVlZC9nc3RtZW1wb29sLmM6CgkqIHRlc3RzL2J1ZnNwZWVkL2dzdG1lbXBvb2wuaDoKCSogdGVzdHMvYnVmc3BlZWQvdGVzdDEuYzoKCSogdGVzdHMvYnVmc3BlZWQvdGVzdDIuYzoKCSogdGVzdHMvc3BpZGV5X2JlbmNoLmM6CgkgIHJlbW92ZSBidWZzcGVlZCBhbmQgc3BpZGV5X2JlbmNoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgYnVmc3BlZWQgYW5kIHNwaWRleV9iZW5jaAoKMjAwNS0wNi0xOSAxMDoyMjo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZW51bXR5cGVzLnNnbWw6CgkqIHdpbjMyL2dzdGVudW10eXBlcy5jOgoJICBjbGVhbiB1cCBkb2NzIGEgbGl0dGxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjbGVhbiB1cCBkb2NzIGEgbGl0dGxlCgoyMDA1LTA2LTE5IDAwOjUyOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL2dzdGNoZWNrLmg6IGFkZCBtYWNyb3MgZm9yIGNoZWNraW5nIHJlZmNvdW50cyBvbiBvYmplY3RzIGFuZCBjYXBzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdGNoZWNrLmg6CgkgIGFkZCBtYWNyb3MgZm9yIGNoZWNraW5nIHJlZmNvdW50cyBvbiBvYmplY3RzIGFuZCBjYXBzCgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOiAoU1RBUlRfVEVTVCksIChnc3RfcGFkX3N1aXRlKToKCSAgYWRkIHNvbWUgbW9yZSB1bml0IHRlc3RzCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9saW5rX2NoZWNrX2NvbXBhdGlibGVfdW5sb2NrZWQpLAoJICAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLCAoZ3N0X3BhZF9saW5rKSwgKGdzdF9wYWRfZ2V0X2FsbG93ZWRfY2Fwcyk6CgkgIGZpeCBsZWFrZWQgcmVmY291bnRzIChJIGhvcGUgOikpIHNvIHVuaXR0ZXN0IHdvcmtzCgkgICogZ3N0L2dzdHBhZC5oOgoJICB3aGl0ZXNwYWNlIHJlbW92YWwKCjIwMDUtMDYtMTggMjI6MzM6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gaGVhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBoZWFkCgoyMDA1LTA2LTE3IDEyOjAwOjM1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIGNoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2hhbmdlbG9nCgoyMDA1LTA2LTE3IDExOjU4OjQ4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZXNpbmtfY2hhaW4pOiBSZW1vdmUgYm9ndXMgYXNzZXJ0OyBpdCdzIGFsd2F5cyBwb3NzaWJsZSB0aGF0IHRoZSBwYWQgZ2V0cyBkZWFjdGl2YXRlZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2VzaW5rX2NoYWluKTogUmVtb3ZlIGJvZ3VzCgkgIGFzc2VydDsgaXQncyBhbHdheXMgcG9zc2libGUgdGhhdCB0aGUgcGFkIGdldHMgZGVhY3RpdmF0ZWQgaW4KCSAgYmV0d2VlbiB0aGUgY2hlY2tzIGluIGdzdHBhZC5jIGFuZCB0aGUgaW1wbGVtZW50YXRpb24uIFJlbHkgb24KCSAgZmluaXNoX3ByZXJvbGwoKSB0byByZXR1cm4gYSBGTFVTSElORyBvciBzaW1pbGFyIGluc3RlYWQgb2Ygb24gdGhlCgkgIGFzc2VydC4KCjIwMDUtMDYtMTcgMTE6MzM6MjcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlc2lua19ldmVudCk6IE9ubHkgd2FpdCBmb3IgdGhlIGNsb2NrIGFuZCBwb3N0IGFuIEVPUyBtZXNzYWdlIGlmIHdlIGNvbWUgb3V0IG9mIGZpbmlzaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZXNpbmtfZXZlbnQpOiBPbmx5IHdhaXQgZm9yIHRoZQoJICBjbG9jayBhbmQgcG9zdCBhbiBFT1MgbWVzc2FnZSBpZiB3ZSBjb21lIG91dCBvZiBmaW5pc2hfcHJlcm9sbCBpbgoJICB0aGUgcGxheWluZyBzdGF0ZS4KCjIwMDUtMDYtMTcgMDk6NTg6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICBpbmNvcnBvcmF0ZSBwbHVnaW5zIHN0dWZmIGFuZCB1bmluc3RhbGxlZCBzdHVmZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaW5jb3Jwb3JhdGUgcGx1Z2lucyBzdHVmZiBhbmQgdW5pbnN0YWxsZWQgc3R1ZmYKCjIwMDUtMDYtMTcgMDk6MzI6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2luZGV4ZXJzLy5naXRpZ25vcmU6CgkqIHBsdWdpbnMvaW5kZXhlcnMvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTA2LTE3IDA5OjEyOjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiBnc3QvYmFzZS8uZ2l0aWdub3JlOgoJKiBnc3QvZWxlbWVudHMvLmdpdGlnbm9yZToKCSogZ3N0L3BhcnNlLy5naXRpZ25vcmU6CgkqIGdzdC9yZWdpc3RyaWVzLy5naXRpZ25vcmU6CgkqIGdzdC9zY2hlZHVsZXJzLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2Jhc2UvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvYnl0ZXN0cmVhbS8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jb250cm9sLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9nZXRiaXRzLy5naXRpZ25vcmU6CgkqIHBsdWdpbnMvZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRvb2xzLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0wNi0xNyAwODo1OTo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiAuZ2l0aWdub3JlOgoJKiBDaGFuZ2VMb2c6CgkqIFJFQURNRToKCSogY2hlY2svLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvbWFudWFsLy5naXRpZ25vcmU6CgkqIGdzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWFudWFsLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlOyBmaXggUkVBRE1FCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZTsgZml4IFJFQURNRQoKMjAwNS0wNi0xNiAxNzo1MDoxNiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBBbGxvdyBOVUxMIGFzIHBvc3NpYmxlIHZhbHVlIGZvciBmaWx0ZXJfY2FwcyBwcm9wZXJ0eSwgaW5kaWNhdGluZyBHU1RfQ0FQU19BTlkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9jYXBzZmlsdGVyX3NldF9wcm9wZXJ0eSk6IEFsbG93IE5VTEwgYXMgcG9zc2libGUgdmFsdWUKCSAgZm9yIGZpbHRlcl9jYXBzIHByb3BlcnR5LCBpbmRpY2F0aW5nIEdTVF9DQVBTX0FOWS4KCjIwMDUtMDYtMDkgMTM6MzM6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogZml4IGRlYnVnIG91dHB1dAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2VzcmNfY3JlYXRlKToKCSAgZml4IGRlYnVnIG91dHB1dAoJICAqIGdzdC9zY2hlZHVsZXJzL01ha2VmaWxlLmFtOgoJICB1c2UgbGliZ3N0IHByZWZpeAoJICAqIGdzdHJlYW1lci5zcGVjLmluOgoJICBmaXggc3BlYyBmb3IgaXQKCjIwMDUtMDYtMDkgMTI6MjM6MDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0cmVhbWVyLnNwZWMuaW46IGNsZWFuIHVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdHJlYW1lci5zcGVjLmluOgoJICBjbGVhbiB1cAoKMjAwNS0wNi0wOSAxMjowOTo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3RyZWFtZXIuc3BlYy5pbjogY2xlYW4gdXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGNsZWFuIHVwCgoyMDA1LTA2LTA5IDEyOjAzOjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFRPRE86CgkqIGRvY3MvcmFuZG9tL1RPRE8tcHJlLTAuOToKCSAgaGF2ZSBhIHJlYWwgVE9ETywgbW92ZSBvbGQgVE9ETwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaGF2ZSBhIHJlYWwgVE9ETywgbW92ZSBvbGQgVE9ETwoKMjAwNS0wNi0wOSAxMjowMDoyNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIHBvIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBvIHVwZGF0ZXMKCjIwMDUtMDYtMDkgMTE6MTI6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICB1cGRhdGUgdHJhbnNsYXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDA1LTA2LTA4IDIyOjE2OjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogUlBBRCBmaXhlcyBhbGwgYXJvdW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0wOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogUlBBRCBmaXhlcyBhbGwgYXJvdW5kLgoJICAoZ3N0X2VsZW1lbnRfbGlua19wYWRzKTogUmVmY291bnRpbmcgZml4ZXMuCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICAqIHBhcnNlL2dyYW1tYXIueToKCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IFJQQUQgZml4ZXMuCgkgICogZ3N0L2dzdGdob3N0cGFkLmg6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IE5ldyBnaG9zdCBwYWQgaW1wbGVtZW50YXRpb24gYXMgZnVsbCBwcm94eQoJICBwYWRzLiBUaGUgdHJpY2t5IHRoaW5nIGlzIHRoZXkgcHJvdmlkZSBib3RoIHNvdXJjZSBhbmQgc2luawoJICBpbnRlcmZhY2VzLCBzaW5jZSB0aGV5IHByb3h5IHRoZSBpbnRlcm5hbCBwYWQgZm9yIHRoZSBleHRlcm5hbAoJICBwYWQsIGFuZCB2aWNlIHZlcnNhLiBJbXBsZW1lbnQgd2l0aCBsb3dlci1sZXZlbCBQcm94eVBhZCBvYmplY3RzLAoJICB3aXRoIHRoZSBpbnRlcmlvciBwcm94eSBwYWQgYXMgYSBjaGlsZCBvZiB0aGUgZXh0ZXJpb3IgZ2hvc3QgcGFkLgoJICBTaG91bGQgd3JpdGUgYSBkb2Mgb24gdGhpcy4KCSAgKiBnc3QvZ3N0cGFkLmg6IHMvUlBBRC9QQUQvLCBzL1JlYWxQYWQvUGFkLy4KCSAgKGdzdF9wYWRfc2V0X25hbWUsIGdzdF9wYWRfc2V0X3BhcmVudCk6IE1hY3JvcyByZW1vdmVkLCB1c2UKCSAgZ3N0X29iamVjdCBBUEkuCgkgICogZ3N0L2dzdHBhZC5jOiBCaWcgY2hhbmdlcy4gTm8gbW9yZSBzdHViIGJhc2UgR3N0UGFkLCBub3cgYWxsCgkgIHBhZHMgYXJlIHJlYWwgcGFkcy4gTm8gZ2hvc3QgcGFkcyBpbiB0aGlzIGZpbGUuIE5vdCBkb2N1bWVudGluZwoJICB0aGUgbXlyaWFkIHMvUlBBRC9QQUQvIGFuZCBSRUFMSVpFIGZpeGVzLgoJICAoZ3N0X3BhZF9jbGFzc19pbml0KTogQWRkIHByb3BlcnRpZXMgZm9yICJkaXJlY3Rpb24iIGFuZAoJICAidGVtcGxhdGUiLiBCb3RoIGFyZSBjb25zdHJ1Y3Qtb25seSwgc28gdGhleSBjYW4ndCBjaGFuZ2UgZHVyaW5nCgkgIHRoZSBsaWZlIG9mIHRoZSBwYWQuIEZpeGVzIHByb3Blcmx5IGRlcml2aW5nIGZyb20gR3N0UGFkLgoJICAoZ3N0X3BhZF9jdXN0b21fbmV3LCBnc3RfcGFkX2N1c3RvbV9uZXdfZnJvbV90ZW1wbGF0ZSk6IEdvbmUuIEZvcgoJICBkZXJpdmVkIG9iamVjdHMsIGp1c3Qgc2V0IHByb3BlcnRpZXMgd2hlbiBjcmVhdGluZyB0aGUgb2JqZWN0cyB2aWEKCSAgZ19vYmplY3RfbmV3LgoJICAoZ3N0X3BhZF9nZXRfcGFyZW50KTogSW1wbGVtZW50IGFzIGEgZnVuY3Rpb24sIHJldHVybiBOVUxMIGlmIHRoZQoJICBwYXJlbnQgaXMgbm90IGFuIGVsZW1lbnQuCgkgIChnc3RfcGFkX2dldF9yZWFsX3BhcmVudCwgZ3N0X3BhZF9hZGRfZ2hvc3RfcGFkKQoJICAoZ3N0X3BhZF9yZW1vdmVfZ2hvc3RfcGFkLCBnc3RfcGFkX3JlYWxpemUpOiBSZW1vdmVkLgoJICAqIGdzdC9nc3RvYmplY3QuYyAoZ3N0X29iamVjdF9jbGFzc19pbml0KTogTWFrZSBuYW1lIGEgY29uc3RydWN0CgkgIHByb3BlcnR5LiBEb24ndCBzZXQgaXQgaW4gdGhlIG9iamVjdCBpbml0LgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2FkZF9wYWQpOiBEb24ndCBhbGxvdyBhZGRpbmcgcGFkcwoJICB3aXRoIFVOS05PV04gZGlyZWN0aW9uLgoJICAoZ3N0X2VsZW1lbnRfYWRkX2dob3N0X3BhZCk6IFJlbW92ZSBub24tb3J0aG9nb25hbCBBUEkuIFJlcGxhY2UKCSAgd2l0aCBnc3RfZWxlbWVudF9hZGRfcGFkIChlLCBnc3RfZ2hvc3RfcGFkX25ldyAobmFtZSwgcGFkKSkuCgkgIChnc3RfZWxlbWVudF9yZW1vdmVfcGFkKTogUmVtb3ZlIGdob3N0LXBhZCBzcGVjaWFsIGNhc2VzLgoJICAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6IFJlbW92ZSBycGFkIGNydWZ0LgoJICAqIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOiBVc2UgZ3N0X3BhZF9nZXRfcGFyZW50IHRvCgkgIGNhdGNoIHRoZSBwYWQncy1wYXJlbnQtbm90LWFuLWVsZW1lbnQgY2FzZS4KCSAgKiBnc3QvZ3N0Lmg6IEluY2x1ZGUgZ3N0Z2hvc3RwYWQuaC4KCSAgKiBnc3QvZ3N0LmMgKGluaXRfcG9zdCk6IE5vIG1vcmUgcmVhbCwgZ2hvc3QgcGFkcy4KCSAgKiBnc3QvTWFrZWZpbGUuYW06IEFkZCBnc3RnaG9zdHBhZC5bY2hdLgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSAgKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYyAodGVzdF9naG9zdF9wYWRzKTogQ2hlY2sgdGhhdCBsaW5raW5nCgkgIGludG8gYSBiaW4gY3JlYXRlcyBnaG9zdCBwYWRzLCBhbmQgdGhhdCB0aGUgcmVmY291bnRzIGFyZSByaWdodC4KCSAgUGFydGx5IG1vdmVkIGZyb20gZ3N0YmluLmMuCgoyMDA1LTA2LTA4IDE0OjAwOjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrLzogaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0LWxpYnMvLmN2c2lnbm9yZToKCSAgKiBjaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiBjaGVjay9waXBlbGluZXMvLmN2c2lnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgKiBjaGVjay9waXBlbGluZXMvY2xlYW51cC5jOiAoc2V0dXBfcGlwZWxpbmUpLCAocnVuX3BpcGVsaW5lKSwKCSAgKFNUQVJUX1RFU1QpLCAoY2xlYW51cF9zdWl0ZSksIChtYWluKToKCSAgYWRkIHNvbWUgdGVzdHMgcmVsYXRlZCB0byBjbGVhbnVwIGFmdGVyIHJ1bm5pbmcgcGlwZWxpbmVzCgoyMDA1LTA2LTA4IDEzOjU3OjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGFkZCBhIEdzdEJ1ZmZlciB1bml0IHRlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIEdzdEJ1ZmZlciB1bml0IHRlc3QKCjIwMDUtMDYtMDggMTM6NDU6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJICBwcmV2aW91cyBjb21taXQgYWNjaWRlbnRhbGx5IGFsc28gYWRkZWQgcmVmY291bnQgZGVmaW5lcyBmb3IgZ3N0bWluaW9iamVjdCwgbG9nZ2luZyB0aGF0IG5vdwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcHJldmlvdXMgY29tbWl0IGFjY2lkZW50YWxseSBhbHNvIGFkZGVkIHJlZmNvdW50IGRlZmluZXMgZm9yIGdzdG1pbmlvYmplY3QsIGxvZ2dpbmcgdGhhdCBub3cKCjIwMDUtMDYtMDggMTM6NDI6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGFkZCBhICdwbHVnaW5zJyBkaXIgdG8gdGhlIFBMVUdJTl9QQVRIIGluIHRoZSB1bmluc3RhbGxlZCBzY3JpcHQgdG8gZHJvcCByYW5kb20gb3RoZXIgcGx1Z2luLWhhdmluZyBwcm9qZWN0cyBpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgJ3BsdWdpbnMnIGRpciB0byB0aGUgUExVR0lOX1BBVEggaW4gdGhlIHVuaW5zdGFsbGVkIHNjcmlwdCB0byBkcm9wIHJhbmRvbSBvdGhlciBwbHVnaW4taGF2aW5nIHByb2plY3RzIGluCgoyMDA1LTA2LTA4IDEzOjQxOjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgd2UgZGlkIGEgcHJlcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2UgZGlkIGEgcHJlcmVsZWFzZQoKMjAwNS0wNi0wOCAxMzo0MTozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIE9CSkVDVCBhY3RzIG9uIG9iaiBub3QgY2FwcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgT0JKRUNUIGFjdHMgb24gb2JqIG5vdCBjYXBzCgoyMDA1LTA2LTA4IDEzOjQxOjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBhZGQgYSBkZWJ1ZyBsaW5lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSBkZWJ1ZyBsaW5lCgoyMDA1LTA2LTA4IDEzOjQwOjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICB3aGl0ZSBzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGUgc3BhY2UgZml4ZXMKCjIwMDUtMDYtMDMgMTg6MjY6NTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogTWFrZWZpbGUuYW06CgkqIGNvbW1vbjoKCSAgYWRkZWQgc3VwcG9ydCBmb3IgaHRtbCB1bml0IHRlc3QgY292ZXJhZ2UgcmVwb3J0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkZWQgc3VwcG9ydCBmb3IgaHRtbCB1bml0IHRlc3QgY292ZXJhZ2UgcmVwb3J0cwoKMjAwNS0wNi0wMiAxNTo0NToxNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBGcmVlIGV4aXN0aW5nIGNhcHMgaWYgdGhlIGNhcHNmaWx0ZXIgY2hhbmdlcy4gQWRkIGEgRklYTUUgYWJvdXQgc2V0dGluZyB0aG9zZSBjYXBzIG9uIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3NldF9wcm9wZXJ0eSk6CgkgIEZyZWUgZXhpc3RpbmcgY2FwcyBpZiB0aGUgY2Fwc2ZpbHRlciBjaGFuZ2VzLiBBZGQgYSBGSVhNRSBhYm91dAoJICBzZXR0aW5nIHRob3NlIGNhcHMgb24gdGhlIHBhZHMuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQpLCAoZ2hvc3RfdXApOgoJICBCZWZvcmUgYWRkaW5nIGEgZ2hvc3QgcGFkIHRvIGEgcGFyZW50IGJpbiwgY2hlY2sgdGhhdCB0aGVyZSBpc24ndAoJICBhbHJlYWR5IG9uZSBmb3IgdGhlIGVsZW1lbnQgb24gdGhlIGJpbi4gUHJldmVudHMgaW5maW5pdGUgcmVjdXJzaW9uCgkgIHdoZW4gdXNpbmcgZGVjb2RlYmluIGluIHBhcnNlIHBpcGVsaW5lcy4gQW5keSBzYXlzIGhlJ2xsIHJld3JpdGUgdGhlCgkgIHdheSB0aGlzIHdvcmtzIGFueXdheSwgc28gaWdub3JlIHRoZSBoYWNrLgoKMjAwNS0wNi0wMiAxMToxMjozNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jIChkb19wdWxsX3R5cGVmaW5kKTogUXVlcnkgdGhlIGZpbGUgc2l6ZSwgcGFzcyBpdCBvbiB0byB0aGUgdHlwZSBmaW5kIGhlbHBlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMDIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jIChkb19wdWxsX3R5cGVmaW5kKTogUXVlcnkgdGhlCgkgIGZpbGUgc2l6ZSwgcGFzcyBpdCBvbiB0byB0aGUgdHlwZSBmaW5kIGhlbHBlci4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlc3JjX2RvX3NlZWspOiBTZXQgdGhlCgkgIHNlZ21lbnRfc3RhcnQgYW5kIHNlZ21lbnRfZW5kIHByb3Blcmx5IGFjY29yZGluZyB0byB0aGUgc2VlawoJICBtZXRob2QuIFNlZ21lbnRfZW5kIGlzIHN0aWxsIGEgYml0IGZsYWt5IGJlY2F1c2Ugb2Zmc2V0IGNhbiBiZQoJICBuZWdhdGl2ZSBmb3IgQ1VSIGFuZCBFTkQgY2FzZXMsIGJ1dCBpdCB0YWtlcyAtMSBhcyBhbiAidW5zZXQiCgkgIHZhbHVlLgoKMjAwNS0wNi0wMiAwOTo0MjowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEJ1ZmZlcmFsbG9jOiByZXR1cm4gR3N0Rmxvd1JldHVybiB0byBtb3JlIGFjY3VyYXRseSByZXBvcnQgd2h5IGFsbG9jYXRpb24gZmFpbGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3BhZF9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2Vfc2lua19idWZmZXJfYWxsb2MpLCAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfcHVzaCksCgkgIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwKCSAgKGdzdF9wYWRfbGluayksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfYWxsb2NfYnVmZmVyKSwKCSAgKGdzdF9wYWRfcXVlcnkpLCAoZ3N0X3BhZF9zdGFydF90YXNrKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbik6CgkgIEJ1ZmZlcmFsbG9jOiByZXR1cm4gR3N0Rmxvd1JldHVybiB0byBtb3JlIGFjY3VyYXRseSByZXBvcnQKCSAgd2h5IGFsbG9jYXRpb24gZmFpbGVkLgoKMjAwNS0wNi0wMiAwOTozOToyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBUYWtlIHNuYXBzaG90IG9mIHN0YXRlIHdpdGhvdXQgYmxvY2tpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX3NlbmRfZXZlbnQpOgoJICBUYWtlIHNuYXBzaG90IG9mIHN0YXRlIHdpdGhvdXQgYmxvY2tpbmcuCgoyMDA1LTA2LTAyIDA4OjI2OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBTbWFsbCBkb2MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkgIFNtYWxsIGRvYyB1cGRhdGVzCgoyMDA1LTA1LTMwIDE2OjI4OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IFByb3RlY3QgbGFzdF9tZXNzYWdlIHByb3BlcnR5IGFzIGl0IGlzIGFjY2Vzc2VkIGZyb20gbXVsdGlwbGUgdGhyZWFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfZXZlbnQpLAoJICAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybSksIChnc3RfaWRlbnRpdHlfZ2V0X3Byb3BlcnR5KToKCSAgUHJvdGVjdCBsYXN0X21lc3NhZ2UgcHJvcGVydHkgYXMgaXQgaXMgYWNjZXNzZWQgZnJvbQoJICBtdWx0aXBsZSB0aHJlYWRzLgoKMjAwNS0wNS0zMCAxNTo1MzowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFNsaWNrZXIgcGFkIGFjdGl2YXRpb24gY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBTbGlja2VyIHBhZCBhY3RpdmF0aW9uIGNvZGUuCgoyMDA1LTA1LTMwIDE1OjUxOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTW92ZSBlbGVtZW50ZmFjdG9yeSBtZXRob2RzIHRvIHNlcGFyYXRlIC5oIGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICAqIGdzdC9nc3R0eXBlcy5oOgoJICBNb3ZlIGVsZW1lbnRmYWN0b3J5IG1ldGhvZHMgdG8gc2VwYXJhdGUgLmggZmlsZS4KCjIwMDUtMDUtMzAgMTU6NDg6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTbWFsbCB0eXBvIGZpeGVzLCBkb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIFNtYWxsIHR5cG8gZml4ZXMsIGRvYyB1cGRhdGVzLgoKMjAwNS0wNS0zMCAxNTo0NjoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3QuYzogUmVtb3ZlIGNwdS1vcHQgZmxhZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXRfZ2V0X3BvcHRfdGFibGUpLCAoaW5pdF9wb3N0KSwKCSAgKGluaXRfcG9wdF9jYWxsYmFjayk6CgkgIFJlbW92ZSBjcHUtb3B0IGZsYWcuCgoyMDA1LTA1LTMwIDE1OjQ0OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci4qOiBBdm9pZCB0eXBlY2hlY2tpbmcgaW4gcGxhY2VzIHdoZXJlIG5vdCBuZWVkZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9zdWJidWZmZXJfZmluYWxpemUpLAoJICAoZ3N0X2J1ZmZlcl9jcmVhdGVfc3ViKSwgKGdzdF9idWZmZXJfaXNfc3Bhbl9mYXN0KToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEF2b2lkIHR5cGVjaGVja2luZyBpbiBwbGFjZXMgd2hlcmUgbm90IG5lZWRlZC4KCSAgQWRkZWQgYWNjZXNzb3IgZm9yIG1hbGxvY19kYXRhLgoKMjAwNS0wNS0zMCAxNTo0MTo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogUHJvcGFnYXRlIGVycm9ycyBmcm9tIF9zZXRfY2FwcygpIGluIGNvbmZpZ3VyZV9zcmMvc2luayBmdW5jdGlvbnMgaW5zdGVhZCBvZiByZXR1cm5pbmcgVFJVRS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3JlYWxfcGFkX2luaXQpLCAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwgKGdzdF9wYWRfbGluayksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwKCSAgKGdzdF9wYWRfY29uZmlndXJlX3NpbmspLCAoZ3N0X3BhZF9jb25maWd1cmVfc3JjKSwKCSAgKGdzdF9wYWRfYWxsb2NfYnVmZmVyKSwgKGdzdF9wYWRfcXVlcnkpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KSwKCSAgKGdzdF9wYWRfc3RhcnRfdGFzayk6CgkgIFByb3BhZ2F0ZSBlcnJvcnMgZnJvbSBfc2V0X2NhcHMoKSBpbiBjb25maWd1cmVfc3JjL3NpbmsKCSAgZnVuY3Rpb25zIGluc3RlYWQgb2YgcmV0dXJuaW5nIFRSVUUuCgkgIEZMVVNIIGV2ZW50cyBjYW4gdHJhdmVsIHVwIGFuZCBkb3duc3RyZWFtCgoyMDA1LTA1LTMwIDE1OjM2OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSGFuZGxlIEVPUyBpbiBwcmVyb2xsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfcHVzaCksCgkgIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpOgoJICBIYW5kbGUgRU9TIGluIHByZXJvbGwuCgoyMDA1LTA1LTMwIDE1OjM0OjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1ZXVlLmM6IFJlbW92ZSBvbGQgcGllY2VzIG9mIGNvZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9sb29wKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX2V2ZW50KToKCSAgUmVtb3ZlIG9sZCBwaWVjZXMgb2YgY29kZQoJICBGbHVzaGluZyB0aGUgcXVldWUgaW4gYW4gdXBzdHJlYW0gZXZlbnQgaXMgYSB2ZXJ5IGJhZCBpZGVhLgoKMjAwNS0wNS0yOSAxMzo1Njo1NSArMDAwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUBnbm9tZS5vcmc+CgoJICBmaWxlIGdzdHNpbXBsZXNjaGVkdWxlci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1DT01QQU5ZLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSBnc3RzaW1wbGVzY2hlZHVsZXIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtQ09NUEFOWS4KCjIwMDUtMDUtMjcgMDk6Mjg6MDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgcmVtb3ZlIGNvbmZsaWN0IGRvb2JlcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBjb25mbGljdCBkb29iZXJzCgoyMDA1LTA1LTI3IDA5OjI3OjM1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jIChnc3RfdmFsdWVfbWluaV9vYmplY3RfY29sbGVjdCk6IFVzZSBnc3RfdmFsdWVfc2V0X21pbmlfb2JqZWN0IHNvIGFzIHRvIGFkZCBhIHJlZiBvbiB0aGUgb2JqZWN0ICguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMjYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYyAoZ3N0X3ZhbHVlX21pbmlfb2JqZWN0X2NvbGxlY3QpOiBVc2UKCSAgZ3N0X3ZhbHVlX3NldF9taW5pX29iamVjdCBzbyBhcyB0byBhZGQgYSByZWYgb24gdGhlIG9iamVjdCAod2hpY2gKCSAgd2lsbCBiZSByZW1vdmVkIHdoZW4gdGhlIHZhbHVlIGlzIHVuc2V0KS4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYyAoZ3N0X2Zha2VzaW5rX2NsYXNzX2luaXQpOiBGaXggc2lnbmFsCgkgIGFyZyB0eXBlIGluIDo6aGFuZG9mZi4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOiBBbHNvIGRlYWN0aXZhdGUKCSAgcGFkcyBpbiBSRUFEWS0+TlVMTCwganVzdCBpbiBjYXNlIHRoZSBlbGVtZW50IGRpZG4ndCBtYWtlIGl0IHRvCgkgIFBBVVNFRC4gV2luZ28gdGVzdGVkLCBXaW0gYXBwcm92ZWQuCgoyMDA1LTA1LTI2IDEwOjUwOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBBIGZsdXNoaW5nIHBhZCBjYW5ub3QgYmUgdXNlZCB0byBhbGxvY19idWZmZXIgZnJvbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwKCSAgKGdzdF9wYWRfbGluayksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfYWxsb2NfYnVmZmVyKSwKCSAgKGdzdF9wYWRfcXVlcnkpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KSwgKGdzdF9wYWRfc3RhcnRfdGFzayk6CgkgIEEgZmx1c2hpbmcgcGFkIGNhbm5vdCBiZSB1c2VkIHRvIGFsbG9jX2J1ZmZlciBmcm9tLgoKMjAwNS0wNS0yNiAxMDo0ODo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuKjogSW1wbGVtZW50IGEgcmVhbCBHU291cmNlIGFuZCB1c2UgZ19tYWluX2NvbnRleHRfd2FrZXVwKCkgdG8gc2lnbmFsIG5ldyBtZXNzYWdlcyBpbnN0ZWFkIG9mIHRoZSBzb2NrZXRwYWlyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2luaXQpLCAoZ3N0X2J1c19kaXNwb3NlKSwgKGdzdF9idXNfcG9zdCksCgkgIChnc3RfYnVzX3BvcCksIChnc3RfYnVzX3NvdXJjZV9wcmVwYXJlKSwgKGdzdF9idXNfc291cmNlX2NoZWNrKSwKCSAgKGdzdF9idXNfc291cmNlX2Rpc3BhdGNoKSwgKGdzdF9idXNfc291cmNlX2ZpbmFsaXplKSwKCSAgKGdzdF9idXNfY3JlYXRlX3dhdGNoKSwgKGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwpOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgSW1wbGVtZW50IGEgcmVhbCBHU291cmNlIGFuZCB1c2UgZ19tYWluX2NvbnRleHRfd2FrZXVwKCkgdG8KCSAgc2lnbmFsIG5ldyBtZXNzYWdlcyBpbnN0ZWFkIG9mIHRoZSBzb2NrZXRwYWlyLgoKMjAwNS0wNS0yNSAxOTozMzozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEZpeCBzdGF0ZSBjaGFuZ2VzIGZvciBub24gc2lua3MuIFdlIG5vdyBjaGFuZ2Ugc2lua3MsIHRoZW4gZWxlbWVudHMgd2l0aCB1bmNvbm5lY3RlZCBzcmNwYWRzLCB0aGVuIHRoZSByZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fZWxlbWVudF9pc19zaW5rKSwgKGhhc19hbmNlc3RvciksCgkgIChiaW5fZWxlbWVudF9pc19zZW1pX3NpbmspLCAoYXBwZW5kX2NoaWxkKSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLAoJICAoZ3N0X3BhZF9saW5rKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9xdWVyeSksCgkgIChnc3RfcGFkX3NlbmRfZXZlbnQpLCAoZ3N0X3BhZF9zdGFydF90YXNrKToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfbG9vcCksCgkgIChnc3RfcXVldWVfc2lua19hY3RpdmF0ZSksIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlKSwKCSAgKGdzdF9xdWV1ZV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RxdWV1ZS5oOgoJICBGaXggc3RhdGUgY2hhbmdlcyBmb3Igbm9uIHNpbmtzLiBXZSBub3cgY2hhbmdlIHNpbmtzLCB0aGVuIGVsZW1lbnRzCgkgIHdpdGggdW5jb25uZWN0ZWQgc3JjcGFkcywgdGhlbiB0aGUgcmVzdC4KCSAgTW9yZSBlZmZpY2llbnQgcXVldWUgdW5sb2NraW5nIGluIGZsdXNoIGFuZCBzdGF0ZSBjaGFuZ2VzLgoJICBTZXQgdGhlIHBhZCBhY3RpdmF0ZSBtb2RlIGV2ZW4gaWYgaXQgZG9lcyBub3QgaGF2ZSBhbiBhY3RpdmF0ZQoJICBmdW5jdGlvbi4KCjIwMDUtMDUtMjUgMTY6MDk6MzQgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICBoYXBwaWZ5IGJ1aWxkYm90CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBoYXBwaWZ5IGJ1aWxkYm90CgoyMDA1LTA1LTI1IDE1OjU3OjU3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IERvbid0IGdvIGluIHB1bGwgbW9kZSBmb3Igbm9uLXNlZWthYmxlIHNvdXJjZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2FjdGl2YXRlKToKCSAgRG9uJ3QgZ28gaW4gcHVsbCBtb2RlIGZvciBub24tc2Vla2FibGUgc291cmNlcy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaW5pdCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfZGlzcG9zZSksIChnc3RfdHlwZV9maW5kX2hhbmRsZV9zcmNfcXVlcnkpLAoJICAoZnJlZV9lbnRyeSksIChzdG9wX3R5cGVmaW5kaW5nKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpLCAoZmluZF9wZWVrKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbiksIChkb19wdWxsX3R5cGVmaW5kKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBBbGxvdyB0eXBlZmluZGluZyAody9vIHNlZWtpbmcpIGluIHB1c2gtbW9kZSwgc2ltcGxpZmllZCB2ZXJzaW9uCgkgIG9mIHdoYXQgd2FzIGluIDAuOC4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9idWZmZXJfam9pbik6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIGdzdF9idWZmZXJfam9pbigpIGZyb20gMC44LgoKMjAwNS0wNS0yNSAxMzo1OToxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRGlzYWJsZSBhdHRlbXB0IGF0IG1vZGUgc3dpdGNoaW5nIHVudGlsIGl0IGlzIGZpZ3VyZWQgb3V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLAoJICAoZ3N0X3BhZF9saW5rKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9xdWVyeSksCgkgIChnc3RfcGFkX3NlbmRfZXZlbnQpLCAoZ3N0X3BhZF9zdGFydF90YXNrKToKCSAgRGlzYWJsZSBhdHRlbXB0IGF0IG1vZGUgc3dpdGNoaW5nIHVudGlsIGl0IGlzIGZpZ3VyZWQgb3V0LgoKMjAwNS0wNS0yNSAxMTo1MDoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEltcGxlbWVudCBnc3RfcGFkX3BhdXNlL3N0YXJ0L3N0b3BfdGFzaygpLCB0YWtlIFNUUkVBTSBsb2NrIGluIHRhc2sgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX3BlZWspLCAoZ3N0X2FkYXB0ZXJfZmx1c2gpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9wdXNoKSwKCSAgKGdzdF9iYXNlc2lua19maW5pc2hfcHJlcm9sbCksIChnc3RfYmFzZXNpbmtfY2hhaW4pLAoJICAoZ3N0X2Jhc2VzaW5rX2xvb3ApLCAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2RvX3NlZWspLAoJICAoZ3N0X2Jhc2VzcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2VzcmNfYWN0aXZhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfc2lua19hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9kaXNwb3NlKSwgKGdzdF9yZWFsX3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9yZWFsX3BhZF9pbml0KSwgKGdzdF9yZWFsX3BhZF9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3JlYWxfcGFkX2dldF9wcm9wZXJ0eSksIChnc3RfcGFkX3NldF9hY3RpdmUpLAoJICAoZ3N0X3BhZF9pc19hY3RpdmUpLCAoZ3N0X3BhZF9nZXRfcXVlcnlfdHlwZXMpLCAoZ3N0X3BhZF91bmxpbmspLAoJICAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLCAoZ3N0X3BhZF9saW5rKSwgKGdzdF9wYWRfZ2V0X3JlYWxfcGFyZW50KSwKCSAgKGdzdF9yZWFsX3BhZF9nZXRfY2Fwc191bmxvY2tlZCksIChnc3RfcGFkX3BlZXJfZ2V0X2NhcHMpLAoJICAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX2dldF9wZWVyKSwgKGdzdF9wYWRfcmVhbGl6ZSksCgkgIChnc3RfcGFkX2V2ZW50X2RlZmF1bHRfZGlzcGF0Y2gpLCAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0KSwKCSAgKGdzdF9wYWRfZGlzcGF0Y2hlciksIChnc3RfcGFkX3F1ZXJ5KSwgKGdzdF9yZWFsX3BhZF9kaXNwb3NlKSwKCSAgKGdzdF9wYWRfc2F2ZV90aHlzZWxmKSwgKGhhbmRsZV9wYWRfYmxvY2spLCAoZ3N0X3BhZF9jaGFpbiksCgkgIChnc3RfcGFkX3B1c2gpLCAoZ3N0X3BhZF9nZXRfcmFuZ2UpLCAoZ3N0X3BhZF9wdWxsX3JhbmdlKSwKCSAgKGdzdF9wYWRfc2VuZF9ldmVudCksIChnc3RfcGFkX3N0YXJ0X3Rhc2spLCAoZ3N0X3BhZF9wYXVzZV90YXNrKSwKCSAgKGdzdF9wYWRfc3RvcF90YXNrKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9sb29wKSwgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3R0YXNrLmM6IChnc3RfdGFza19pbml0KSwgKGdzdF90YXNrX3NldF9sb2NrKSwKCSAgKGdzdF90YXNrX2dldF9zdGF0ZSk6CgkgICogZ3N0L2dzdHRhc2suaDoKCSAgKiBnc3Qvc2NoZWR1bGVycy90aHJlYWRzY2hlZHVsZXIuYzoKCSAgKGdzdF90aHJlYWRfc2NoZWR1bGVyX3Rhc2tfc3RhcnQpLCAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfZnVuYyk6CgkgIEltcGxlbWVudCBnc3RfcGFkX3BhdXNlL3N0YXJ0L3N0b3BfdGFzaygpLCB0YWtlIFNUUkVBTSBsb2NrCgkgIGluIHRhc2sgZnVuY3Rpb24uCgkgIFJlbW92ZSBBQ1RJVkUgcGFkIGZsYWcsIHVzZSBGTFVTSElORyBldmVyeXdoZXJlCgkgIEFkZGVkIF9wYWRfY2hhaW4oKSwgX3BhZF9nZXRfcmFuZ2UoKSB0byBjYWxsIGNoYWluL2dldHJhbmdlCgkgIGZ1bmN0aW9ucy4KCSAgQWRkIGxvY2tzIGFyb3VuZCBJU19GTFVTSElORyB3aGVuIHJlYWRpbmcuCgkgIFRha2UgU1RSRUFNIGxvY2sgaW4gY2hhaW4oKSwgZ2V0X3JhbmdlKCkgZnVuY3Rpb25zIHNvIHBsdWdpbnMKCSAgZG9uJ3QgbmVlZCB0byB0YWtlIGl0IGFueW1vcmUuCgoyMDA1LTA1LTI1IDExOjI2OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBVbnJlZiBtZXNzYWdlIGFmdGVyIHVzaW5nIGl0cyBjb250ZW50cyBpbnN0ZWFkIG9mIGJlZm9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIFVucmVmIG1lc3NhZ2UgYWZ0ZXIgdXNpbmcgaXRzIGNvbnRlbnRzIGluc3RlYWQgb2YKCSAgYmVmb3JlLgoKMjAwNS0wNS0yNCAxNjo0NzowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogRG9jcyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1naG9zdHBhZHMudHh0OgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcXVlcnkudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICBEb2NzIHVwZGF0ZXMuCgkgIEFkZGVkIGdlbmVyYWwgb3ZlcnZpZXcgZG9jLgoJICBBZGRlZCBkcmFmdCBnaG9zdHBhZCByZXBsYWNlbWVudCBpZGVhLgoKMjAwNS0wNS0yMiAwNDoyNjo0MSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBkb2NzL2dzdC90bXBsL29sZC86IEkgZGlkbid0IGludGVuZCB0byBhZGQgdGhlc2Ugb3IgY2hlY2sgdGhlbSBpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0QmluLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0QnVmZmVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0Q2Fwcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdENsb2NrLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0Q29tcGF0LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0RGF0YS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdEVsZW1lbnQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RFdmVudC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdEluZGV4LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0U3RydWN0dXJlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0VGFnLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvY290aHJlYWRzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvY290aHJlYWRzX2NvbXBhdC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dldHRleHQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nb2JqZWN0Mmd0ay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dyYW1tYXIudGFiLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0LWkxOG4tYXBwLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0LWkxOG4tbGliLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0X3ByaXZhdGUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RhZ2dyZWdhdG9yLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0YXJjaC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGF0b21pY19pbXBsLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0YnVmZmVyc3RvcmUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RkYXRhX3ByaXZhdGUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RkaXNrc2luay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGRpc2tzcmMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RlbGVtZW50ZmFjdG9yeS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGV4dHJhdHlwZXMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RmYWtlc2luay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGZha2VzcmMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RmZHNpbmsuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RmZHNyYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGZpbGVzaW5rLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZmlsZXNyYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGh0dHBzcmMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RpZGVudGl0eS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGluZGV4ZmFjdG9yeS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdG1hcnNoYWwuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RtZDVzaW5rLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0bXVsdGlkaXNrc3JjLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0bXVsdGlmaWxlc3JjLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0cGFkdGVtcGxhdGUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RwaXBlZmlsdGVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0c2NoZWR1bGVyZmFjdG9yeS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHNlYXJjaGZ1bmNzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0c2hhcGVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0c3BpZGVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0c3BpZGVyaWRlbnRpdHkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RzdGF0aXN0aWNzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0dGVlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0dGltZWNhY2hlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0dHlwZWZpbmRmYWN0b3J5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0eG1scmVnaXN0cnkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9ndGhyZWFkLWNvdGhyZWFkcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL3R5cGVzLnNnbWw6CgkgIEkgZGlkbid0IGludGVuZCB0byBhZGQgdGhlc2Ugb3IgY2hlY2sgdGhlbSBpbi4KCjIwMDUtMDUtMjAgMTI6NDc6MDUgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUgc3BlYyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgc3BlYyBmaWxlCgoyMDA1LTA1LTE5IDE5OjU0OjAxICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogVXNlIC1uby1jb21tb24gZXZlcnl3aGVyZS4gIEluIGEgc2FuZSB3b3JsZCwgaXQgd291bGQgYmUgdGhlIGRlZmF1bHQgaW4gbGlidG9vbCwgYmVjYXVzZSB3aXRob3V0IGl0LCB5by4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6IFVzZSAtbm8tY29tbW9uIGV2ZXJ5d2hlcmUuICBJbiBhIHNhbmUgd29ybGQsIGl0CgkgIHdvdWxkIGJlIHRoZSBkZWZhdWx0IGluIGxpYnRvb2wsIGJlY2F1c2Ugd2l0aG91dCBpdCwgeW91IGNhbid0CgkgIGJ1aWxkIERMTHMgb24gV2luZG93cy4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOiBSZW1vdmUgR3N0Q3B1LCBHc3REYXRhLCBHc3RUaHJlYWQKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Y3B1LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RkYXRhLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0aHJlYWQuc2dtbDoKCjIwMDUtMDUtMTkgMTk6NDE6MTIgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuKjogQWRkIEdWYWx1ZSBzZXQvZ2V0IGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF92YWx1ZV9zZXRfbWluaV9vYmplY3QpLAoJICAoZ3N0X3ZhbHVlX3Rha2VfbWluaV9vYmplY3QpLCAoZ3N0X3ZhbHVlX2dldF9taW5pX29iamVjdCk6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDogQWRkIEdWYWx1ZSBzZXQvZ2V0IGZ1bmN0aW9ucy4KCjIwMDUtMDUtMTkgMTY6MjY6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBNYWtlIHN1YmJ1ZmVyIHVucmVmIHRoZSBwYXJlbnQgaW4gZmluYWxpemUuIHNvbWUgbW9yZSBkZWJ1Z2dpbmcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9pbml0KSwgKGdzdF9zdWJidWZmZXJfZ2V0X3R5cGUpLAoJICAoZ3N0X3N1YmJ1ZmZlcl9jbGFzc19pbml0KSwgKGdzdF9zdWJidWZmZXJfZmluYWxpemUpLAoJICAoZ3N0X3N1YmJ1ZmZlcl9pbml0KSwgKGdzdF9idWZmZXJfaXNfc3Bhbl9mYXN0KToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19wb3N0KToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3JhbmRvbV9wYWQpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9pbml0KSwgKGdzdF9tZXNzYWdlX2ZpbmFsaXplKToKCSAgTWFrZSBzdWJidWZlciB1bnJlZiB0aGUgcGFyZW50IGluIGZpbmFsaXplLgoJICBzb21lIG1vcmUgZGVidWdnaW5nIGluZm8uCgoyMDA1LTA1LTE5IDE2OjIzOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgZnJlZSBwcmVyb2xsIHF1ZXVlIHRvbyBlYXJseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlc2lua19pbml0KSwgKGdzdF9iYXNlc2lua19maW5hbGl6ZSksCgkgIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpLCAoZ3N0X2Jhc2VzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIERvbid0IGZyZWUgcHJlcm9sbCBxdWV1ZSB0b28gZWFybHkuCgoyMDA1LTA1LTE5IDE0OjUyOjE2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvOiBIaSwgSSdtIG91dGRhdGVkLiBQbGVhc2Ugc2hvb3QgbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvUk9BRE1BUDoKCSAgSGksIEknbSBvdXRkYXRlZC4gUGxlYXNlIHNob290IG1lLgoKMjAwNS0wNS0xOSAxMjowNzozNSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IERvIG5vdCBhY2Nlc3MgdmFyaWFibGVzIGFmdGVyIHRoZXkgaGF2ZSBiZWVuIGRlbGV0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX3NlbmRfZXZlbnQpOgoJICBEbyBub3QgYWNjZXNzIHZhcmlhYmxlcyBhZnRlciB0aGV5IGhhdmUgYmVlbiBkZWxldGVkLgoKMjAwNS0wNS0xOSAwODo0MTo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEEgcGx1Z2luIGZlYXR1cmUgZG9lcyB1bmZvcnR1bmF0bHkgbm90IHVzZSB0aGUgb2JqZWN0IG5hbWUgeWV0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9wbHVnaW5fZmVhdHVyZXMpOgoJICBBIHBsdWdpbiBmZWF0dXJlIGRvZXMgdW5mb3J0dW5hdGx5IG5vdCB1c2UgdGhlCgkgIG9iamVjdCBuYW1lIHlldC4uLgoKMjAwNS0wNS0xOCAxNzozNToyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogUG9ydCBfc3BhbigpIGZ1bmN0aW9ucyB0byBuZXcgc3ViYnVmZmVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9pc19zcGFuX2Zhc3QpLCAoZ3N0X2J1ZmZlcl9zcGFuKToKCSAgUG9ydCBfc3BhbigpIGZ1bmN0aW9ucyB0byBuZXcgc3ViYnVmZmVycy4KCjIwMDUtMDUtMTggMTM6NDk6MDggKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogRml4IGNsb2NrIHNldHRlcnkgaW4gYmlucyB3aGVuIGFkZGluZyBraWRzIGFmdGVyIHRoZSBjbG9jayBoYXMgYmVlbiBzZWxlY3RlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyk6CgkgIEZpeCBjbG9jayBzZXR0ZXJ5IGluIGJpbnMgd2hlbiBhZGRpbmcga2lkcyBhZnRlciB0aGUgY2xvY2sgaGFzCgkgIGJlZW4gc2VsZWN0ZWQuCgoyMDA1LTA1LTE4IDEzOjIzOjI0ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogV29ya2Fyb3VuZCB1bnRpbCBzaWduYWxzIHN1cHBvcnQgR3N0TWluaU9iamVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCk6CgkgIFdvcmthcm91bmQgdW50aWwgc2lnbmFscyBzdXBwb3J0IEdzdE1pbmlPYmplY3QuCgoyMDA1LTA1LTE4IDExOjM0OjQ1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogT29wcywgZml4IGEgdHlwbyBHU1RfVFlQRV9CVUZGRVIgLT4gR1NUX1RZUEVfU1VCQlVGRkVSLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIE9vcHMsIGZpeCBhIHR5cG8gR1NUX1RZUEVfQlVGRkVSIC0+IEdTVF9UWVBFX1NVQkJVRkZFUi4KCjIwMDUtMDUtMTggMDk6NTU6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS86IFBvcnRlZCBhbmQgYWRkZWQgYWRhcHRlciB0byB0aGUgYmFzZSBjbGFzc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9iYXNlX2luaXQpLAoJICAoZ3N0X2FkYXB0ZXJfY2xhc3NfaW5pdCksIChnc3RfYWRhcHRlcl9pbml0KSwKCSAgKGdzdF9hZGFwdGVyX2Rpc3Bvc2UpLCAoZ3N0X2FkYXB0ZXJfZmluYWxpemUpLCAoZ3N0X2FkYXB0ZXJfbmV3KSwKCSAgKGdzdF9hZGFwdGVyX2NsZWFyKSwgKGdzdF9hZGFwdGVyX3B1c2gpLCAoZ3N0X2FkYXB0ZXJfcGVlayksCgkgIChnc3RfYWRhcHRlcl9mbHVzaCksIChnc3RfYWRhcHRlcl9hdmFpbGFibGUpLAoJICAoZ3N0X2FkYXB0ZXJfYXZhaWxhYmxlX2Zhc3QpOgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgUG9ydGVkIGFuZCBhZGRlZCBhZGFwdGVyIHRvIHRoZSBiYXNlIGNsYXNzZXMuCgoyMDA1LTA1LTE3IDE3OjUwOjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IE1ha2Ugc3VyZSB0aGUgY2xhc3MgaXMgcmVmZmVkL3VucmVmZmVkIG9uY2UgYmVmb3JlIHRocmVhZHMgY2FuIGJlIHVzZWQuICBGaXhlcyAjMzA0NTUxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgTWFrZSBzdXJlIHRoZSBjbGFzcyBpcyByZWZmZWQvdW5yZWZmZWQgb25jZSBiZWZvcmUgdGhyZWFkcyBjYW4gYmUKCSAgdXNlZC4gIEZpeGVzICMzMDQ1NTEuCgoyMDA1LTA1LTE3IDE3OjM3OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRG9uJ3QgcXVldWUgYnVmZmVycyBpbiBiYXNlc2luayB3aGVuIHdlIGFyZSBmbHVzaGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19maW5pc2hfcHJlcm9sbCksCgkgIChnc3RfYmFzZXNpbmtfY2hhaW5fdW5sb2NrZWQpLCAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X2dldF90eXBlKSwKCSAgKGdzdF9taW5pX29iamVjdF9mcmVlKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfcXVlcnkpLAoJICAoZ3N0X3BhZF9wdXNoKSwgKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2hhbmdlX3N0YXRlKToKCSAgRG9uJ3QgcXVldWUgYnVmZmVycyBpbiBiYXNlc2luayB3aGVuIHdlIGFyZSBmbHVzaGluZy4KCSAgVW5yZWYgYnVmZmVyIHdoZW4gZmx1c2hpbmcgaW4gYmFzZXNpbmsuCgkgIEZsdXNoIHF1ZXVlIHdoZW4gZ29pbmcgdG8gUkVBRFkKCSAgVW5yZWYgYnVmZmVyIHdoZW4gX3B1c2goKSByZXR1cm5zIGFuIGVycm9yLgoJICBEb24ndCBmcmVlIE1pbmlPYmplY3QgaW5zdGFuY2Ugd2hlbiByZWZjb3VudCBpcyBpbmNyZW1lbnRlZAoJICBpbiBfZmluYWxpemUoKSBzbyB0aGF0IHdlIGNhbiByZWNvdmVyIG9iamVjdHMuCgoyMDA1LTA1LTE3IDE3OjIyOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1zY2hlZHVsZXJzLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtcmVxdWVzdC54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tcHJlZmFjZS54bWw6CgkqIGV4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5jOgoJKiBleGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuaDoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmg6CgkgIHNtYWxsIGRvYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc21hbGwgZG9jIGZpeGVzCgoyMDA1LTA1LTE3IDE0OjExOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQ2xlYXIgcXVldWUgd2hlbiBnb2luZyB0byBSRUFEWS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX3NldF9jYXBzKSwKCSAgKGdzdF9wYWRfYWxsb2NfYnVmZmVyKSwgKGdzdF9wYWRfcXVlcnkpLCAoZ3N0X3BhZF9wdXNoKToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jaGFuZ2Vfc3RhdGUpOgoJICBDbGVhciBxdWV1ZSB3aGVuIGdvaW5nIHRvIFJFQURZLgoJICBSZW1vdmUgSU5fU0VUQ0FQUyBmbGFnIHRvby4KCjIwMDUtMDUtMTcgMTQ6MDE6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFJlbW92ZSBpbXBsaWNpdCBjYXN0IGZyb20gZ2Jvb2xlYW4gdG8gR3N0RWxlbWVudFN0YXRlUmV0dXJuOyBtYWtlIHN1cmUgd2Ugc3RpbGwgcmV0dXJuIGZhaWx1cmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfY2hhbmdlX3N0YXRlKToKCSAgUmVtb3ZlIGltcGxpY2l0IGNhc3QgZnJvbSBnYm9vbGVhbiB0byBHc3RFbGVtZW50U3RhdGVSZXR1cm47CgkgIG1ha2Ugc3VyZSB3ZSBzdGlsbCByZXR1cm4gZmFpbHVyZSBpbiBwYXVzZWQgPT4gcmVhZHkgY2FzZSBpZgoJICB0aGUgcGFyZW50IGNsYXNzIGZhaWxzIHRvIGNoYW5nZSBzdGF0ZSBhbmQgb3VyIG93biBzdG9wCgkgIHZmdW5jIHN1Y2NlZWRzLgoKMjAwNS0wNS0xNyAxMDo0MTo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogTWVzc2FnZSB3YXMgdW5yZWZmZWQgdG9vIHNvb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBNZXNzYWdlIHdhcyB1bnJlZmZlZCB0b28gc29vbi4KCjIwMDUtMDUtMTYgMjE6MTc6MTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RiaW4uYyAoc2lua19pdGVyYXRvcl9maWx0ZXIpOiBFcnIuLi4gdW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMTYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJpbi5jIChzaW5rX2l0ZXJhdG9yX2ZpbHRlcik6IEVyci4uLiB1bS4uLgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYyAodGVzdF9naG9zdF9wYWRzKTogTmV3IHRlc3QgZm9yIHRoZQoJICBnaG9zdGluZy1pZi1lbGVtZW50cy1ub3QtaW4tc2FtZS1iaW4gYmVoYXZpb3IuCgoyMDA1LTA1LTE2IDIxOjA1OjIxICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IFVzZSBnX2F0b21pY19pbnRfZ2V0KCkgaW5zdGVhZCBvZiBhY2Nlc3NpbmcgcmVmY291bnQgZGlyZWN0bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IFVzZSBnX2F0b21pY19pbnRfZ2V0KCkgaW5zdGVhZCBvZgoJICBhY2Nlc3NpbmcgcmVmY291bnQgZGlyZWN0bHkuCgoyMDA1LTA1LTE2IDIwOjIxOjU1ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiByZW1vdmUgR3N0RGF0YSBjaGVja3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06IHJlbW92ZSBHc3REYXRhIGNoZWNrcwoJICAqIGNoZWNrL2dzdC1saWJzL2dkcC5jOiAoU1RBUlRfVEVTVCk6IGZpeCBmb3IgQVBJIGNoYW5nZXMKCSAgKiBnc3QvTWFrZWZpbGUuYW06IGFkZCBtaW5pb2JqZWN0LCByZW1vdmUgZGF0YQoJICAqIGdzdC9nc3QuaDogYWRkIG1pbmlvYmplY3QsIHJlbW92ZSBkYXRhCgkgICogZ3N0L2dzdGRhdGEuYzogcmVtb3ZlCgkgICogZ3N0L2dzdGRhdGEuaDogcmVtb3ZlCgkgICogZ3N0L2dzdGRhdGFfcHJpdmF0ZS5oOiByZW1vdmUKCSAgKiBnc3QvZ3N0dHlwZXMuaDogcmVtb3ZlIEdzdEV2ZW50IGFuZCBHc3RNZXNzYWdlCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSk6IGZpeCBmb3IgQVBJIGNoYW5nZXMKCSAgKiBnc3QvZ3N0bWFyc2hhbC5saXN0OiBjaGFuZ2UgQk9YRUQgLT4gT0JKRUNUCgkgIEltcGxlbWVudCBHc3RNaW5pT2JqZWN0LgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgTW9kaWZ5IHRvIGJlIHN1YmNsYXNzZXMgb2YgR3N0TWluaU9iamVjdC4KCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChfZ3N0X2J1ZmZlcl9pbml0aWFsaXplKSwgKGdzdF9idWZmZXJfZ2V0X3R5cGUpLAoJICAoZ3N0X2J1ZmZlcl9jbGFzc19pbml0KSwgKGdzdF9idWZmZXJfZmluYWxpemUpLCAoX2dzdF9idWZmZXJfY29weSksCgkgIChnc3RfYnVmZmVyX2luaXQpLCAoZ3N0X2J1ZmZlcl9uZXcpLCAoZ3N0X2J1ZmZlcl9uZXdfYW5kX2FsbG9jKSwKCSAgKGdzdF9zdWJidWZmZXJfZ2V0X3R5cGUpLCAoZ3N0X3N1YmJ1ZmZlcl9pbml0KSwKCSAgKGdzdF9idWZmZXJfY3JlYXRlX3N1YiksIChnc3RfYnVmZmVyX2lzX3NwYW5fZmFzdCksCgkgIChnc3RfYnVmZmVyX3NwYW4pOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKF9nc3RfZXZlbnRfaW5pdGlhbGl6ZSksIChnc3RfZXZlbnRfZ2V0X3R5cGUpLAoJICAoZ3N0X2V2ZW50X2NsYXNzX2luaXQpLCAoZ3N0X2V2ZW50X2luaXQpLCAoZ3N0X2V2ZW50X2ZpbmFsaXplKSwKCSAgKF9nc3RfZXZlbnRfY29weSksIChnc3RfZXZlbnRfbmV3KToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoX2dzdF9tZXNzYWdlX2luaXRpYWxpemUpLAoJICAoZ3N0X21lc3NhZ2VfZ2V0X3R5cGUpLCAoZ3N0X21lc3NhZ2VfY2xhc3NfaW5pdCksCgkgIChnc3RfbWVzc2FnZV9pbml0KSwgKGdzdF9tZXNzYWdlX2ZpbmFsaXplKSwgKF9nc3RfbWVzc2FnZV9jb3B5KSwKCSAgKGdzdF9tZXNzYWdlX25ldyksIChnc3RfbWVzc2FnZV9uZXdfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3dhcm5pbmcpLCAoZ3N0X21lc3NhZ2VfbmV3X3RhZyksCgkgIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksIChnc3RfbWVzc2FnZV9uZXdfYXBwbGljYXRpb24pOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogZ3N0L2dzdHByb2JlLmM6IChnc3RfcHJvYmVfcGVyZm9ybSksCgkgIChnc3RfcHJvYmVfZGlzcGF0Y2hlcl9kaXNwYXRjaCk6CgkgICogZ3N0L2dzdHByb2JlLmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChfZ3N0X3F1ZXJ5X2luaXRpYWxpemUpLCAoZ3N0X3F1ZXJ5X2dldF90eXBlKSwKCSAgKGdzdF9xdWVyeV9jbGFzc19pbml0KSwgKGdzdF9xdWVyeV9maW5hbGl6ZSksIChnc3RfcXVlcnlfaW5pdCksCgkgIChfZ3N0X3F1ZXJ5X2NvcHkpLCAoZ3N0X3F1ZXJ5X25ldyk6CgkgIFVwZGF0ZSBlbGVtZW50cyBmb3IgR3N0RGF0YSAtPiBHc3RNaW5pT2JqZWN0IGNoYW5nZXMKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9maW5hbGl6ZSksIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwKCSAgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfbG9vcCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmM6CgkgIChnc3RfYnVmZmVyX3N0b3JlX2FkZF9idWZmZXJfZnVuYyksCgkgIChnc3RfYnVmZmVyX3N0b3JlX2NsZWFyZWRfZnVuYyksIChnc3RfYnVmZmVyX3N0b3JlX2dldF9idWZmZXIpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2VzaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2VzaW5rX3JlbmRlcik6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfbW1hcF9idWZmZXJfZ2V0X3R5cGUpLAoJICAoZ3N0X21tYXBfYnVmZmVyX2NsYXNzX2luaXQpLCAoZ3N0X21tYXBfYnVmZmVyX2luaXQpLAoJICAoZ3N0X21tYXBfYnVmZmVyX2ZpbmFsaXplKSwgKGdzdF9maWxlc3JjX21hcF9yZWdpb24pLAoJICAoZ3N0X2ZpbGVzcmNfY3JlYXRlX3JlYWQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zcmNfZXZlbnQpLCAoZnJlZV9lbnRyeV9idWZmZXJzKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9oZWFkZXJfZnJvbV9idWZmZXIpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZHAtcHJpdmF0ZS5oOgoKMjAwNS0wNS0xNSAyMzoxODo0MCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzogRG9uJ3QgaW5jbHVkZSBoZWFkZXJzIHRoYXQgd2VyZSBqdXN0IHJlbW92ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOiBEb24ndCBpbmNsdWRlIGhlYWRlcnMgdGhhdCB3ZXJlCgkgIGp1c3QgcmVtb3ZlZC4KCjIwMDUtMDUtMTUgMjM6MTY6MjkgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOiBSZW1vdmUgc29tZSBlbGVtZW50cyB0aGF0IGRvbid0IG5lZWQgdG8gYmUgaW4gdGhlIGNvcmUgKG9yIGV2ZW4gZXhpc3QgYXQgYWxsKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOiBSZW1vdmUgc29tZSBlbGVtZW50cyB0aGF0IGRvbid0CgkgIG5lZWQgdG8gYmUgaW4gdGhlIGNvcmUgKG9yIGV2ZW4gZXhpc3QgYXQgYWxsKS4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0YWdncmVnYXRvci5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RhZ2dyZWdhdG9yLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdG1kNXNpbmsuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0bWQ1c2luay5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RtdWx0aWZpbGVzcmMuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0bXVsdGlmaWxlc3JjLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHBpcGVmaWx0ZXIuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0cGlwZWZpbHRlci5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RzaGFwZXIuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0c2hhcGVyLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHN0YXRpc3RpY3MuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0c3RhdGlzdGljcy5oOgoJICAqIHBvL1BPVEZJTEVTLmluOiBSZW1vdmUgYWJvdmUgZmlsZXMuCgoyMDA1LTA1LTE0IDE4OjAxOjEyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YmluLmMgKGdzdF9iaW5faXRlcmF0ZV9zaW5rcyk6IFVzZSBzaW5rX2l0ZXJhdG9yX2ZpbHRlciBzbyBhcyB0byBnZXQgdGhlIHJlZnMgcmlnaHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTE0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9pdGVyYXRlX3NpbmtzKTogVXNlIHNpbmtfaXRlcmF0b3JfZmlsdGVyCgkgIHNvIGFzIHRvIGdldCB0aGUgcmVmcyByaWdodC4KCSAgKHNpbmtfaXRlcmF0b3JfZmlsdGVyKTogTmV3IGZ1bmN0aW9uLCB3cmFwcyBiaW5fZWxlbWVudF9pc19zaW5rLAoJICB1bnJlZmZpbmcgb2JqZWN0cyB0aGF0IGRvbid0IHBhc3MgdGhlIGZpbHRlci4KCjIwMDUtMDUtMTQgMTc6MTI6MTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jIChnc3RfcGlwZWxpbmVfaW5pdCk6IERyb3AgcmVmIG9uIGJ1cyBhZnRlciBnc3RfZWxlbWVudF9zZXRfYnVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0xNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYyAoZ3N0X3BpcGVsaW5lX2luaXQpOiBEcm9wIHJlZiBvbiBidXMgYWZ0ZXIKCSAgZ3N0X2VsZW1lbnRfc2V0X2J1cy4KCSAgKGdzdF9waXBlbGluZV9kaXNwb3NlKTogU2V0IHRoZSBidXMgb24gdGhlIHBpcGVsaW5lIHRvIE5VTEwuIEluCgkgIG5vcm1hbCBjYXNlcywgdGhpcyB3aWxsIGRlc3Ryb3kgdGhlIGJ1cy4KCSAgKiBnc3QvZ3N0dXRpbHMuYyAocHJlcGFyZV9saW5rX21heWJlX2dob3N0aW5nKTogRHJvcCByZWYgb24gcm9vdAoJICBvYmplY3QuCgoyMDA1LTA1LTE0IDE1OjU0OjQ5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YmluLmMgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKTogRml4IHN0YXRlIGNoYW5nZXMgaWYgYSBiaW4gaGFzIG5vIHNpbmtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0xNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YmluLmMgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKTogRml4IHN0YXRlIGNoYW5nZXMgaWYgYSBiaW4KCSAgaGFzIG5vIHNpbmtzLgoKMjAwNS0wNS0xNCAxNTozMjozNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmMgKGdzdF9lbGVtZW50X2xpbmtfcGFkcyk6IEluc3RlYWQgb2YgY2FsbGluZyBnc3RfcGFkX2xpbmssIGNhbGwgcGFkX2xpbmtfbWF5YmVfZ2hvc3RpbmcsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTEzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R1dGlscy5jIChnc3RfZWxlbWVudF9saW5rX3BhZHMpOiBJbnN0ZWFkIG9mIGNhbGxpbmcKCSAgZ3N0X3BhZF9saW5rLCBjYWxsIHBhZF9saW5rX21heWJlX2dob3N0aW5nLAoJICAocGFkX2xpbmtfbWF5YmVfZ2hvc3RpbmcpOiBMaW5rcyBwYWRzLCBtYWtpbmcgc3VyZSB0aGF0IHRoZQoJICBlbGVtZW50cyBiZWluZyBsaW5rZWQgYXJlIGluIHRoZSBzYW1lIGJpbi4KCSAgKGZpbmRfY29tbW9uX3Jvb3QsIG9iamVjdF9oYXNfYW5jZXN0b3IsIGdob3N0X3VwLCByZW1vdmVfcGFkKToKCSAgSGVscGVycyBmb3IgcGFkX2xpbmtfbWF5YmVfZ2hvc3RpbmcuCgoyMDA1LTA1LTEzIDEyOjUzOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkgIFJlcXVpcmUgR0xpYiA+PSAyLjQuMCAoZm9yIHRoZSBnX2F0b21pY18qIGZ1bmNzKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVxdWlyZSBHTGliID49IDIuNC4wIChmb3IgdGhlIGdfYXRvbWljXyogZnVuY3MpCgoyMDA1LTA1LTEzIDEwOjE4OjQxICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgYWRkIG1pc3NpbmcgLmggZmlsZSB0byBzcGVjIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtaXNzaW5nIC5oIGZpbGUgdG8gc3BlYyBmaWxlCgoyMDA1LTA1LTEzIDA5OjI3OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc291cmNlLnR4dDoKCSAgTWVudGlvbiBHc3RQdXNoU3JjCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNZW50aW9uIEdzdFB1c2hTcmMKCjIwMDUtMDUtMTIgMTk6NDU6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBJZGVudGlmeSBzaW5rcyBieSB0aGVpciBmbGFnIHRvIGF2b2lkIG92ZXJseSBjb21wbGljYXRlZCBjaGVja3MgKGZvdyBub3cpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY191bmxvY2spLAoJICAoZ3N0X2Jhc2VzcmNfaXNfc2Vla2FibGUpOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksCgkgIChiaW5fZWxlbWVudF9pc19zaW5rKSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfYWRkX3BhZCksIChnc3RfZWxlbWVudF9xdWVyeSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgSWRlbnRpZnkgc2lua3MgYnkgdGhlaXIgZmxhZyB0byBhdm9pZCBvdmVybHkgY29tcGxpY2F0ZWQKCSAgY2hlY2tzIChmb3cgbm93KS4KCSAgRG8gc3RhdGUgY2hhbmdlcyBldmVuIGZvciBlbGVtZW50cyBub3QgcmVhY2hhYmxlIGZyb20gdGhlCgkgIHNpbmtzLgoJICBCYXNlU2luayBpcyBhIHNpbmsgbm93IDopCgkgIFNvbWUgbW9yZSBkZWJ1Z2dpbmcgaW5mbyBpbiB0aGUgYmFzZXNyYy4KCjIwMDUtMDUtMTIgMTU6MDk6MTcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogSW1wbGVtZW50IF9xdWVyeSBvbiBhIGJpbiwgc2ltaWxhciB0byBfc2VuZF9ldmVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fcXVlcnkpOgoJICBJbXBsZW1lbnQgX3F1ZXJ5IG9uIGEgYmluLCBzaW1pbGFyIHRvIF9zZW5kX2V2ZW50LgoKMjAwNS0wNS0xMiAxMzo1OTo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogRGlzY29udCBldmVudCBvZmZzZXQgZm9ybWF0IHNob3VsZCBiZSBHU1RfRk9STUFUX0JZVEVTLCBub3QgR1NUX0ZPUk1BVF9USU1FLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19kb19zZWVrKToKCSAgRGlzY29udCBldmVudCBvZmZzZXQgZm9ybWF0IHNob3VsZCBiZSBHU1RfRk9STUFUX0JZVEVTLAoJICBub3QgR1NUX0ZPUk1BVF9USU1FLgoKMjAwNS0wNS0xMiAxMzoxODoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogU2FtZSBmaXggYXMgUm9uYWxkJ3MgYnV0IHdpdGhvdXQgdGhlIHNpZ25hbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX2dldF9zdGF0ZSk6CgkgIFNhbWUgZml4IGFzIFJvbmFsZCdzIGJ1dCB3aXRob3V0IHRoZSBzaWduYWwuCgoyMDA1LTA1LTEyIDEyOjI3OjA3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuYzogTm8sIGFuIGVsZW1lbnQgaXMgbm90IGEgcGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3F1ZXJ5X3Bvc2l0aW9uKToKCSAgTm8sIGFuIGVsZW1lbnQgaXMgbm90IGEgcGFkLgoKMjAwNS0wNS0xMiAxMjoxNzoyMyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBJZiBhIGNoaWxkIGlzIHJlbW92ZWQgZnJvbSBhIGJpbiB3aGlsZSB3ZSByZW1vdmUgdGhlIGNoaWxkIGZyb20gdGhlIGJpbiBhbmQgd2hpbGUgd2UncmUgcmV0cmlldmluZyBpdHMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoY2JfcGFyZW50X3Vuc2V0KSwKCSAgKGdzdF9iaW5fZ2V0X3N0YXRlKToKCSAgSWYgYSBjaGlsZCBpcyByZW1vdmVkIGZyb20gYSBiaW4gd2hpbGUgd2UgcmVtb3ZlIHRoZSBjaGlsZCBmcm9tCgkgIHRoZSBiaW4gYW5kIHdoaWxlIHdlJ3JlIHJldHJpZXZpbmcgaXRzIHN0YXRlLCBzaWduYWwgdGhpcyB0byB0aGUKCSAgZ2V0X3N0YXRlIGZ1bmN0aW9uIHNvIHdlIGFib3J0IHRoZSB3YWl0IChpbnN0ZWFkIG9mIHdhaXRpbmcgZm9yCgkgIGEgdGltZW91dCkgYW5kIGNhbiBpbW1lZGlhdGVseSByZS1pdGVyYXRlIG92ZXIgYWxsIG90aGVyIGVsZW1lbnRzLgoKMjAwNS0wNS0xMiAxMDo0MzoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlLzogQWRkZWQgaXNfc2Vla2FibGUgdG8gQmFzZVNyYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19pc19zZWVrYWJsZSksCgkgIChnc3RfYmFzZXNyY19zdGFydCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9iYXNlL2dzdHB1c2hzcmMuYzogKGdzdF9wdXNoc3JjX2dldF90eXBlKSwKCSAgKGdzdF9wdXNoc3JjX2Jhc2VfaW5pdCksIChnc3RfcHVzaHNyY19jbGFzc19pbml0KSwKCSAgKGdzdF9wdXNoc3JjX2luaXQpLCAoZ3N0X3B1c2hzcmNfY3JlYXRlKToKCSAgKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkgIEFkZGVkIGlzX3NlZWthYmxlIHRvIEJhc2VTcmMKCSAgQWRkZWQgc2ltcGxlIFB1c2hTcmMuCgoyMDA1LTA1LTExIDA5OjIxOjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IHJlZmNvdW50aW5nIGluIHV0aWxzIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfYWRkX3BhZCksIChnc3RfZWxlbWVudF9xdWVyeSk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X2VsZW1lbnRfbGlua19wYWRzKSwgKGdzdF9lbGVtZW50X3F1ZXJ5X3Bvc2l0aW9uKSwKCSAgKGdzdF9lbGVtZW50X3F1ZXJ5X2NvbnZlcnQpLCAoaW50ZXJzZWN0X2NhcHNfZnVuYyksCgkgIChnc3RfcGFkX3F1ZXJ5X3Bvc2l0aW9uKSwgKGdzdF9wYWRfcXVlcnlfY29udmVydCk6CgkgIEZpeCByZWZjb3VudGluZyBpbiB1dGlscyBmdW5jdGlvbi4KCSAgTm8gcG9pbnQgaW4gdHJ5aW5nIHRvIGFjdGl2YXRlIGEgcGFkIHdoZW4gaXQncyBhZGRlZCwgaXQgY291bGQKCSAgYmUgYWRkZWQgZnJvbSB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIGFuZCB0aGVuIHdlIGRlYWRsb2NrLCB0aGUKCSAgZWxlbWVudCBoYXMgdG8gZGVjaWRlIHdoYXQgdG8gZG8uCgoyMDA1LTA1LTExIDAzOjM3OjEwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYyAoZ3N0X2Zha2VzaW5rX3JlbmRlcik6IEVyLCBlbWl0IHdpdGgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmMgKGdzdF9mYWtlc2lua19yZW5kZXIpOiBFciwgZW1pdCB3aXRoCgkgICphbGwqIHRoZSBhcmd1bWVudHMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpOiBHcmFiIHRoZQoJICBzdHJlYW0gbG9jayBpZiBpdCdzIGEgRkxVU0hfRE9ORTsgbm9ybWFsIGZsdXNoZXMgZG9uJ3QgZ2V0IHRoZQoJICBsb2NrIChhY2NvcmRpbmcgdG8gdGhlIGRvY3MgLS0gaWYgdGhpcyBpcyB3cm9uZyBjaGFuZ2UgdGhlIGRvY3MpLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKTogU2V0IHRoZSBidXMgdG8KCSAgZmx1c2ggbWVzc2FnZXMgaW4gdGhlIE5VTEwgc3RhdGUuCgkgICogZ3N0L2dzdGJ1cy5jIChnc3RfYnVzX3Bvc3QpOiBJZiBhIGJ1cyBpcyBmbHVzaGluZywgdW5yZWYgdGhlCgkgIG1lc3NhZ2UgaW1tZWRpYXRlbHkgYW5kIHJldHVybi4KCSAgKGdzdF9idXNfc2V0X2ZsdXNoaW5nKTogTmV3IGZ1bmN0aW9uLiBJZiBhIGJ1cyBpcyBmbHVzaGluZywgaXQKCSAgZmx1c2hlcyBvdXQgYW55IHF1ZXVlZCBtZXNzYWdlcyBhbmQgaW1tZWRpYXRlbHkgdW5yZWZzIG5ldwoJICBtZXNzYWdlcy4gVGhpcyBpcyBzbyB3aGVuIGFuIGVsZW1lbnQgZ29lcyB0byBOVUxMLCBhbGwgb2YgdGhlCgkgIHVuaGFuZGxlZCBtZXNzYWdlcyBjb21pbmcgZnJvbSBpdCBjYW4gYmUgZnJlZWQsIGFuZCB0aGVpcgoJICByZWZlcmVuY2VzIHRvIHRoZSBlbGVtZW50IGRyb3BwZWQuIEluIG90aGVyIHdvcmRzOiBtZXNzYWdlIHNvdXJjZQoJICByZWYgY29uc2lkZXJlZCBoYXJtZnVsIDpQCgkgICogZ3N0L2dzdGJpbi5jIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6IFVucmVmIHBlZXIgZWxlbWVudCB3aGVuCgkgIHdlJ3JlIGZpbmlzaGVkIHdpdGggaXQuCgkgICogZ3N0L2dzdG1lc3NhZ2UuYyAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpOgoKMjAwNS0wNS0xMCAxNDo1MTo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICByZW1vdmUgc3R1cGlkIHByaW50ZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHN0dXBpZCBwcmludGYKCjIwMDUtMDUtMTAgMTQ6NTA6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYzogQWRkZWQgZmxhZ3Mgc2VyaWFsaXplL2Rlc2VyaWFsaXplL2NvbXBhcmUgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29tcGFyZV9mbGFncyksCgkgIChnc3RfdmFsdWVfc2VyaWFsaXplX2ZsYWdzKSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mbGFncyksCgkgIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICBBZGRlZCBmbGFncyBzZXJpYWxpemUvZGVzZXJpYWxpemUvY29tcGFyZSBjb2RlLgoKMjAwNS0wNS0wOSAyMTozNzo1NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJveHlfZ2V0Y2Fwcyk6IEludGVyc2VjdCB0aGUgcGVlcidzIGNhcHMgd2l0aCBvdXIgY2Fwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMDkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJveHlfZ2V0Y2Fwcyk6CgkgIEludGVyc2VjdCB0aGUgcGVlcidzIGNhcHMgd2l0aCBvdXIgY2Fwcy4KCjIwMDUtMDUtMDkgMTU6NTQ6MjYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC86IEhhbmRsZSBuZWdhdGl2ZSBvZmZzZXRzIGJldHRlci4gRml4ZXMgZGVjb2RlYmluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoZmluZF9wZWVrKToKCSAgSGFuZGxlIG5lZ2F0aXZlIG9mZnNldHMgYmV0dGVyLiBGaXhlcyBkZWNvZGViaW4uCgoyMDA1LTA1LTA5IDE0OjQ3OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogSW1wbGVtZW50IGFjY2VwdF9jYXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fcHJveHlfZ2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9xdWVyeSk6CgkgIEltcGxlbWVudCBhY2NlcHRfY2Fwcy4KCSAgRml4IHNpbGx5IGxvY2svdW5sb2NrIG1pc21hdGNoIGluIGJhc2UgY2xhc3MuCgoyMDA1LTA1LTA5IDEwOjUzOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1wdXNoLXB1bGwudHh0OgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RxdWVyeXV0aWxzLmM6CgkqIGdzdC9nc3RxdWVyeXV0aWxzLmg6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgUmVtb3ZlIG9sZCBxdWVyeSBmdW5jdGlvbnMuIFBvcnRlZCBvbGQgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbW92ZSBvbGQgcXVlcnkgZnVuY3Rpb25zLiBQb3J0ZWQgb2xkIGNvZGUuCgkgIEFkZGVkIHBvc2l0aW9uL2NvbnZlcnQgaGVscGVyIGZ1bmN0aW9ucyB0byBnc3R1dGlscy4KCSAgUmVvcmRlcmVkIGdzdHBhZC5jIGNvZGUsIGdyb3VwaW5nIHJlbGV2YW50IHRoaW5ncy4KCSAgUmVtb3ZlIGdzdF9tZXNzYWdlX25ldygpLCBhbHdheXMgbmVlZCB0byBzcGVmaWN5IGEgc3BlY2lmaWMKCSAgbWVzc2FnZS4KCjIwMDUtMDUtMDkgMDY6MjE6MTAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RpdGVyYXRvci5oOiBBZGQgc29tZSBpbmNsdWRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMDkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6IEFkZCBzb21lIGluY2x1ZGVzLgoJICAqIGdzdC9nc3RxdWVyeXV0aWxzLmg6IEluY2x1ZGUgbW9yZSBoZWFkZXJzLgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfcXVlcnlfcG9zaXRpb24pOiBOZXcgcm91dGluZSwgcmVwbGFjZXMKCSAgc29tZSB1c2VzIG9mIGdzdF9wYWRfcXVlcnkuCgkgICogZ3N0L2dzdHF1ZXJ5dXRpbHMuYzogQnVpbGQgZml4ZXMuIE1ha2UgcGFyc2UgZnVuY3Rpb25zIGlnbm9yZQoJICBOVUxMIG91dCBwYXJhbWV0ZXJzLgoJICAoZ3N0X3F1ZXJ5X25ld19wb3NpdGlvbik6IE5ldyBwcm9jLCBhbGxvY2F0ZXMgYSBuZXcgcG9zaXRpb24KCSAgcXVlcnkuCgkgICogZ3N0L01ha2VmaWxlLmFtIChsaWJnc3RyZWFtZXJfQEdTVF9NQUpPUk1JTk9SQF9sYV9TT1VSQ0VTKTogQWRkCgkgIGdzdHF1ZXJ5dXRpbHMuYyB0byB0aGUgYnVpbGQuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jIChnc3Rfc3RydWN0dXJlX3NldF92YWxpc3QpOiBJbXBsZW1lbnQgd2l0aAoJICB0aGUgZ2VuZXJpYyBHX1ZBTFVFX0NPTExFQ1QuCgoyMDA1LTA1LTA4IDE3OjA3OjA1ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBBZGRlZCBnc3RxdWVyeXV0aWxzLmggdG8gdGhlIGxpc3Qgb2YgaGVhZGVycyB0byBpbnN0YWxsLCB0aGF0IHdhcyBhICduYWNodHknIG1vdmUgd2luZ28gOikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOiAoZ3N0X2hlYWRlcnMpOgoJICBBZGRlZCBnc3RxdWVyeXV0aWxzLmggdG8gdGhlIGxpc3Qgb2YgaGVhZGVycyB0byBpbnN0YWxsLCB0aGF0IHdhcwoJICBhICduYWNodHknIG1vdmUgd2luZ28gOikKCjIwMDUtMDUtMDYgMjE6NDE6MjIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RxdWVyeS5oCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTA2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RxdWVyeS5oCgkgICogZ3N0L2dzdHF1ZXJ5LmMgKF9nc3RfcXVlcnlfaW5pdGlhbGl6ZSk6IEV4dGVuZCBHc3RRdWVyeSBmcm9tCgkgIEdzdERhdGEsIGluaXQgYSBtZW1jaHVuay4KCSAgKHN0YW5kYXJkX2RlZmluaXRpb25zKTogQWRkIGEgZmV3IHF1ZXJ5IHR5cGVzLCBkZXByZWNhdGUgYSBmZXcuCgkgIChnc3RfcXVlcnlfZ2V0X3R5cGUpOiBOZXcgcHJvYy4KCSAgKF9nc3RfcXVlcnlfY29weSwgX2dzdF9xdWVyeV9mcmVlLCBnc3RfcXVlcnlfbmV3KTogR3N0RGF0YQoJICBpbXBsZW1lbnRhdGlvbi4KCSAgKGdzdF9xdWVyeV9uZXdfYXBwbGljYXRpb24sIGdzdF9xdWVyeV9nZXRfc3RydWN0dXJlKTogTmV3IHB1YmxpYwoJICBwcm9jcy4KCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1xdWVyeS50eHQ6IFJlbW92ZWQgTElOS1MgZnJvbSB0aGUgcXVlcnkgdHlwZXMsCgkgIGJlY2F1c2UgYWxsIHRoZSByZXN0IGNhbiBiZSBkaXNwYXRjaGVkIHRvIG90aGVyIHBhZHMgLS0gc2VlbWVkCgkgIHVnbHkgdG8gaGF2ZSBhIHF1ZXJ5IHRoYXQgY291bGRuJ3QgYmUgZGlzcGF0Y2hlZC4gaW50ZXJuYWxfbGlua3MKCSAgaXMgZmluZSBhcyBhIHBhZCBtZXRob2QuCgkgICogZ3N0L2dzdHBhZC5oOiBBZGQgcXVlcnkyIGFzIGEgcGFkIG1ldGhvZCwgYWRkIHRoZSBuZXcgZnVuY3Rpb25zCgkgIGluIGdzdHBhZC5jLCBidXQgbWFpbnRhaW4gYmluYXJ5IGNvbXBhdGliaWxpdHkgZm9yIHRoZSBtb21lbnQuCgkgIFdpbGwgZml4IGJlZm9yZSAwLjkgaXMgb3V0LgoJICAqIGdzdC9nc3RxdWVyeXV0aWxzLmM6CgkgICogZ3N0L2dzdHF1ZXJ5dXRpbHMuaDogTmV3IGZpbGVzLCBpbXBsZW1lbnQgMyBtZXRob2RzIGZvciBlYWNoCgkgIHF1ZXJ5IHR5cGU6IHBhcnNlX3F1ZXJ5LCBwYXJzZV9yZXNwb25zZSwgYW5kIHNldC4gUHJvYmFibHkgbmVlZCBhbgoJICBhbGxvY2F0b3IgYXMgd2VsbC4KCSAgKiBnc3QvZ3N0Lmg6IEFkZCBnc3RxdWVyeS5oIGFuZCBnc3RxdWVyeXV0aWxzLmggdG8gdGhlIGxpc3QuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmMgKGdzdF9maWxlc2lua19xdWVyeTIpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2VzcmNfcXVlcnkyKTogUmVwbGFjZSBvbGQgcXVlcnksCgkgIHF1ZXJ5X3R5cGVzLCBhbmQgZm9ybWF0cyBtZXRob2RzLgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9xdWVyeTIsIGdzdF9wYWRfcXVlcnkyX2RlZmF1bHQpCgkgIChnc3RfcGFkX3NldF9xdWVyeTJfZnVuY3Rpb24pOiBOZXcgZnVuY3Rpb25zLgoJICAoZ3N0X3JlYWxfcGFkX2luaXQpOiBTZXQgcXVlcnkyX2RlZmF1bHQgYXMgdGhlIGRlZmF1bHQgcXVlcnkyCgkgIGZ1bmN0aW9uLiBCYXNpY2FsbHkganVzdCBkaXNwYXRjaGVzIHRvIGludGVybmFsbHkgbGlua2VkIHBhZHMuCgkgIE5lZWRzIHJldmlldyEKCSAgKiBnc3QvZ3N0ZGF0YV9wcml2YXRlLmggKF9HU1RfREFUQV9JTklUKTogU2V0IGRhdGEtPnJlZmNvdW50IHRvIDEKCSAgd2l0aG91dCB1c2luZyB0aGUgYXRvbWljIG9wZXJhdGlvbnMuIE9ubHkgb25lIHRocmVhZCBjYW4gcG9zc2libHkKCSAgYmUgYWNjZXNzaW5nIHRoZSBkYXRhIGF0IHRoaXMgcG9pbnQuIENoYW5nZWQgc28gYXMgdG8gYXZvaWQKCSAgZ3N0X2F0b21pYyBvcGVyYXRpb25zLgoKMjAwNS0wNS0wNiAxOTo1MDoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQWxzbyBzZXQgY2FwcyBpZiB3ZSB1c2UgdGhlIGZhbGxiYWNrIGJ1ZmZlciBhbGxvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXIpLCAoZ3N0X3BhZF9wdXNoKToKCSAgQWxzbyBzZXQgY2FwcyBpZiB3ZSB1c2UgdGhlIGZhbGxiYWNrIGJ1ZmZlciBhbGxvYy4KCjIwMDUtMDUtMDYgMTc6MzM6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBQdXJnZSBHc3RBdG9taWMgc3R1ZmYgZnJvbSBkb2NzIGFuZCB3aW4zMiBtYWtlZmlsZXMgYXMgd2VsbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RhdG9taWMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdG1lbWNodW5rLnNnbWw6CgkgICogdGVzdHN1aXRlL2VsZW1lbnRzL3N0cnVjdF9pMzg2Lmg6CgkgICogd2luMzIvR1N0cmVhbWVyLnZjcHJvajoKCSAgKiB3aW4zMi9NYWtlZmlsZToKCSAgUHVyZ2UgR3N0QXRvbWljIHN0dWZmIGZyb20gZG9jcyBhbmQgd2luMzIgbWFrZWZpbGVzIGFzIHdlbGwKCjIwMDUtMDUtMDYgMTc6MTA6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggZ3N0X3BhZF9wZWVyX2dldF9jYXBzKCksIG1ha2UgaXQgcmV0dXJuIE5VTEwgaWYgbm8gcGVlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3Byb3h5X2dldGNhcHMpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9nZXRjYXBzKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3BlZXJfZ2V0X2NhcHMpOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpLCAoZ3N0X3F1ZXVlX2dldGNhcHMpLAoJICAoZ3N0X3F1ZXVlX2J1ZmZlcmFsbG9jKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksCgkgIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlKSwgKGdzdF9xdWV1ZV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RxdWV1ZS5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkX3RlbXBsYXRlKSwKCSAgKGludGVyc2VjdF9jYXBzX2Z1bmMpOgoJICBGaXggZ3N0X3BhZF9wZWVyX2dldF9jYXBzKCksIG1ha2UgaXQgcmV0dXJuIE5VTEwgaWYgbm8gcGVlci4KCSAgQWx3YXlzIHRha2UgUVVFVUVfTE9DSyBhZnRlciBTVFJFQU1fTE9DSyBvciB3ZSBtaWdodCBkZWFkbG9jay4KCSAgU29tZSBmaXhlcyBmb3IgdGhlIHBlZXJfZ2V0X2NhcHMoKSBjaGFuZ2UuCgoyMDA1LTA1LTA2IDE2OjE5OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQWN0dWFsbHkgZG8gc29tZXRoaW5nIHdpdGggZXJyb3IgY29kZXMgcmV0dXJuZWQgZnJvbSB0aGUgcHVzaCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9lbXB0eSksCgkgIChnc3RfYmFzZXNpbmtfaGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZXNpbmtfY2hhaW5fdW5sb2NrZWQpLAoJICAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKToKCSAgQWN0dWFsbHkgZG8gc29tZXRoaW5nIHdpdGggZXJyb3IgY29kZXMgcmV0dXJuZWQgZnJvbSB0aGUgcHVzaAoJICBmdW5jdGlvbnMuCgoyMDA1LTA1LTA2IDA4OjI1OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU29tZSBtb3JlIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc291cmNlLnR4dDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX2V2ZW50KSwgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19pbml0KSwgKGdzdF9iYXNlc3JjX3VubG9jayksCgkgIChnc3RfYmFzZXNyY19hY3RpdmF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgU29tZSBtb3JlIGRvY3VtZW50YXRpb24uCgkgIEZpeGVkIHNjaGVkdWxpbmcgZGVjaXNpb24gaW4gX3BhZHNfYWN0aXZhdGUoKS4KCjIwMDUtMDUtMDUgMjE6NTk6NTMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZmluYWwgY3J1ZnQgZml4YWdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaW5hbCBjcnVmdCBmaXhhZ2UKCjIwMDUtMDUtMDUgMjE6NDU6NTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBjcnVmdCByZW1vdmFsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjcnVmdCByZW1vdmFsCgoyMDA1LTA1LTA1IDIxOjQyOjI0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHJldmVydCBjcnVmdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2ZXJ0IGNydWZ0CgoyMDA1LTA1LTA1IDIxOjM3OjM0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcmV2ZXJ0IGFjY2lkZW50YWwgY29tbWl0IG9mIGNydWZ0IC0tIGRvaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2ZXJ0IGFjY2lkZW50YWwgY29tbWl0IG9mIGNydWZ0IC0tIGRvaAoKMjAwNS0wNS0wNSAxNTowMjo0MCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYyAodGVzdF8yX2VsZW1lbnRzKTogIkZpeCIgdGhlIHRlc3Qgc3VpdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmMgKHRlc3RfMl9lbGVtZW50cyk6ICJGaXgiCgkgIHRoZSB0ZXN0IHN1aXRlLgoKMjAwNS0wNS0wNSAxMTo0MzowNiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGZpeCBicm9rZW4gc3BlYyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggYnJva2VuIHNwZWMgZmlsZQoKMjAwNS0wNS0wNSAwOTozMTo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEFkZGVkIG9iamVjdCB0byBoZWxwIGluIG1ha2luZyBjb2xsZWN0IHBhZCBiYXNlZCBlbGVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19pbml0KSwKCSAgKGdzdF9iYXNlc3JjX3NldF9kYXRhZmxvd19mdW5jcyksIChnc3RfYmFzZXNyY19xdWVyeSk6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0cGFkc19nZXRfdHlwZSksCgkgIChnc3RfY29sbGVjdHBhZHNfY2xhc3NfaW5pdCksIChnc3RfY29sbGVjdHBhZHNfaW5pdCksCgkgIChnc3RfY29sbGVjdHBhZHNfZmluYWxpemUpLCAoZ3N0X2NvbGxlY3RwYWRzX25ldyksCgkgIChnc3RfY29sbGVjdHBhZHNfc2V0X2Z1bmN0aW9uKSwgKGdzdF9jb2xsZWN0cGFkc19hZGRfcGFkKSwKCSAgKGZpbmRfcGFkKSwgKGdzdF9jb2xsZWN0cGFkc19yZW1vdmVfcGFkKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19pc19hY3RpdmUpLCAoZ3N0X2NvbGxlY3RwYWRzX2NvbGxlY3QpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2NvbGxlY3RfcmFuZ2UpLCAoZ3N0X2NvbGxlY3RwYWRzX3N0YXJ0KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19zdG9wKSwgKGdzdF9jb2xsZWN0cGFkc19wZWVrKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19wb3ApLCAoZ3N0X2NvbGxlY3RwYWRzX2F2YWlsYWJsZSksCgkgIChnc3RfY29sbGVjdHBhZHNfcmVhZCksIChnc3RfY29sbGVjdHBhZHNfZmx1c2gpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2NoYWluKToKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlc2lua19nZXRfdGltZXMpLCAoZ3N0X2Zha2VzaW5rX2V2ZW50KSwKCSAgKGdzdF9mYWtlc2lua19wcmVyb2xsKSwgKGdzdF9mYWtlc2lua19yZW5kZXIpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVzaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZpbGVzaW5rX2luaXQpLCAoZ3N0X2ZpbGVzaW5rX3NldF9sb2NhdGlvbiksCgkgIChnc3RfZmlsZXNpbmtfb3Blbl9maWxlKSwgKGdzdF9maWxlc2lua19jbG9zZV9maWxlKSwKCSAgKGdzdF9maWxlc2lua19wYWRfcXVlcnkpLCAoZ3N0X2ZpbGVzaW5rX2V2ZW50KSwKCSAgKGdzdF9maWxlc2lua19yZW5kZXIpLCAoZ3N0X2ZpbGVzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkgIEFkZGVkIG9iamVjdCB0byBoZWxwIGluIG1ha2luZyBjb2xsZWN0IHBhZCBiYXNlZCBlbGVtZW50cy4KCSAgUG9ydGVkIGZpbGVzaW5rLgoJICBNYWtlIGV2ZW50IGZ1bmN0aW9uIGluIHNpbmsgYmFzZWNsYXNzIHJldHVybiBnYm9vbGVhbi4KCjIwMDUtMDUtMDUgMDk6Mjg6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggbmFtZSBsb29rdXAgaW4gR3N0QmluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3NlbmRfZXZlbnQpLCAoY29tcGFyZV9uYW1lKSwKCSAgKGdzdF9iaW5fZ2V0X2J5X25hbWUpOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19lbnRyeV9uZXcpLCAoZ3N0X2Nsb2NrX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Nsb2NrX2ZpbmFsaXplKToKCSAgKiBnc3QvZ3N0ZGF0YS5jOiAoZ3N0X2RhdGFfcmVwbGFjZSk6CgkgICogZ3N0L2dzdGRhdGEuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcmVxdWVzdF9wYWQpLAoJICAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9pbml0KSwgKGdzdF9vYmplY3RfcmVmKSwKCSAgKGdzdF9vYmplY3RfdW5yZWYpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX3BlZXJfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX3NldF9jaGVja2dldHJhbmdlX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKSwgKGdzdF9wYWRfc2V0X2NhcHMpLAoJICAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwgKGdzdF9wYWRfcHVsbF9yYW5nZSksCgkgIChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfY2FwcyksIChnc3RfcGFkX3N0YXJ0X3Rhc2spLAoJICAoZ3N0X3BhZF9wYXVzZV90YXNrKSwgKGdzdF9wYWRfc3RvcF90YXNrKToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfZWxlbWVudF9yZXF1ZXN0X3BhZCksIChnc3RfcGFkX3Byb3h5X2dldGNhcHMpOgoJICBGaXggbmFtZSBsb29rdXAgaW4gR3N0QmluLgoJICBBZGRlZCBfZGF0YV9yZXBsYWNlKCkgZnVuY3Rpb24gYW5kIF9idWZmZXJfcmVwbGFjZSgpCgkgIFVzZSBmaW5hbGl6ZSBtZXRob2QgdG8gY2xlYW4gdXAgY2xvY2suCgkgIEZpeCByZWZjb3VudGluZyBvbiByZXF1ZXN0IHBhZHMuCgkgIEZpeCBwYWQgc2NoZWR1bGUgbW9kZSBlcnJvci4KCSAgU29tZSBtb3JlIG9iamVjdCByZWZjb3VudGluZyBkZWJ1ZyBpbmZvLAoKMjAwNS0wNS0wNCAyMToyOTo0NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgR0NDIDQgZml4ZW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTA0ICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvdG1wbC9nc3RhdG9taWMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VzcmNfaW5pdCksIChnc3RfYmFzZXNyY19zZXRfZGF0YWZsb3dfZnVuY3MpLAoJICAoZ3N0X2Jhc2VzcmNfcXVlcnkpLCAoZ3N0X2Jhc2VzcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfYmFzZXNyY19jaGVja19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2VzcmNfYWN0aXZhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc3JjX2FjdGl2YXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2VzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZXNyY19zZXRfcHJvcGVydHkpLCAoZ3N0X2Zha2VzcmNfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX3NpbmtfYWN0aXZhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKGZpbmRfZWxlbWVudF9nZXRfbGVuZ3RoKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGVja2dldHJhbmdlKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9zYXZlX3RoeXNlbGYpLCAoZ3N0X2Jpbl9yZXN0b3JlX3RoeXNlbGYpOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19kb19zaW1wbGlmeSksIChnc3RfY2Fwc19zYXZlX3RoeXNlbGYpLAoJICAoZ3N0X2NhcHNfbG9hZF90aHlzZWxmKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSksCgkgIChnc3RfZWxlbWVudF9zYXZlX3RoeXNlbGYpLCAoZ3N0X2VsZW1lbnRfcmVzdG9yZV90aHlzZWxmKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xvYWRfYW5kX2xpbmspLCAoZ3N0X3BhZF9zYXZlX3RoeXNlbGYpLAoJICAoZ3N0X2dob3N0X3BhZF9zYXZlX3RoeXNlbGYpLCAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHhtbC5jOiAoZ3N0X3htbF93cml0ZSksIChnc3RfeG1sX3BhcnNlX2RvYyksCgkgIChnc3RfeG1sX3BhcnNlX2ZpbGUpLCAoZ3N0X3htbF9wYXJzZV9tZW1vcnkpLAoJICAoZ3N0X3htbF9nZXRfZWxlbWVudCksIChnc3RfeG1sX21ha2VfZWxlbWVudCk6CgkgICogZ3N0L2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOiAoZ3N0X2ZpbGVfaW5kZXhfbG9hZCksCgkgIChfZmlsZV9pbmRleF9pZF9zYXZlX3htbCksIChnc3RfZmlsZV9pbmRleF9jb21taXQpOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6IChyZWFkX3N0cmluZyksIChyZWFkX3VpbnQpLAoJICAocmVhZF9lbnVtKSwgKGxvYWRfcGFkX3RlbXBsYXRlKSwgKGxvYWRfZmVhdHVyZSksIChsb2FkX3BsdWdpbiksCgkgIChsb2FkX3BhdGhzKToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IChnc3RfZHBfcGFja2V0X2Zyb21fY2FwcyksCgkgIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnQpLCAoZ3N0X2RwX2NhcHNfZnJvbV9wYWNrZXQpOgoJICAqIHRvb2xzL2dzdC1jb21wbGV0ZS5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWNvbXBwcmVwLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKHhtbGxhdW5jaF9wYXJzZV9jbWRsaW5lKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzKToKCSAgR0NDIDQgZml4ZW4uCgoyMDA1LTA1LTA0IDE5OjQxOjA1ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZml4IHVwIHNwZWMgZmlsZSB0byB3b3JrIGZvciAwLjkgYnJhbmNoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdXAgc3BlYyBmaWxlIHRvIHdvcmsgZm9yIDAuOSBicmFuY2gKCjIwMDUtMDUtMDMgMTI6NDY6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBhcHBseSBwYXRjaCBmcm9tICMxNzI1MjYgdG8gbWFrZSByZWdpc3RlciB3b3JrIG9uIE1hY09TWAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2NoZWNrX21vZHVsZSksCgkgIChnc3RfcGx1Z2luX2NoZWNrX2ZpbGUpLCAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICBhcHBseSBwYXRjaCBmcm9tICMxNzI1MjYgdG8gbWFrZSByZWdpc3RlciB3b3JrIG9uIE1hY09TWAoKMjAwNS0wNS0wMiAxNjo1MDozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBmaWxlIC5jdnNpZ25vcmUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIC5jdnNpZ25vcmUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA1LTAyIDE1OjMxOjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9pbmRleGVycy9jYWNoZTEuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9pbmRleGVycy9pbmRleGR1bXAuYzoKCSogdGVzdHN1aXRlL2luZGV4ZXJzL2NhY2hlMS5jOgoJKiB0ZXN0c3VpdGUvaW5kZXhlcnMvaW5kZXhkdW1wLmM6CgkgIG1vcmUgcHJpbnQgZm9ybWF0IGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIHByaW50IGZvcm1hdCBmaXhlcwoKMjAwNS0wNS0wMiAxNToyMDozMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy9wcmludGZfZXh0ZW5zaW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvcHJvcGVydHkuaDoKCSogdGVzdHN1aXRlL2RlYnVnL3ByaW50Zl9leHRlbnNpb24uYzoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL3Byb3BlcnR5Lmg6CgkgIG1lcmdlcyBmcm9tIDAuOCBmb3IgNjQgYml0IGlzc3VlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWVyZ2VzIGZyb20gMC44IGZvciA2NCBiaXQgaXNzdWVzCgoyMDA1LTA1LTAyIDEzOjU1OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkZWQgZHJhZnQgZm9yIG5ldyBxdWVyeSBBUEkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcXVlcnkudHh0OgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2dldF9yYW5nZV91bmxvY2tlZCksCgkgIChnc3RfYmFzZXNyY19zdGFydCk6CgkgIEFkZGVkIGRyYWZ0IGZvciBuZXcgcXVlcnkgQVBJLgoJICBBZGRlZCBkcmFmdCBmb3IgYmV0dGVyIHNlbGVjdGluZyBzY2hlZHVsaW5nIG1ldGhvZHMuCgkgIE1ha2UgYmFzZXNyYyBpZ25vcmUgbGVuZ3RoIGlmIHRoZSBzdWJjbGFzcyBkb2VzIG5vdCBzdXBwb3J0CgkgIGl0LgoKMjAwNS0wNS0wMiAxMTo1NDozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgYXV0b21ha2UgMS41IGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhdXRvbWFrZSAxLjUgZml4ZXMKCjIwMDUtMDUtMDIgMTE6NDc6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2ZhcS9NYWtlZmlsZS5hbToKCSogZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIGRvY3MvbWFudWFscy5tYWs6CgkqIGRvY3MvcHdnL01ha2VmaWxlLmFtOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIHBvc3NpYmxlIGZpeGVzIGZvciBhdXRvbWFrZS0xLjUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBvc3NpYmxlIGZpeGVzIGZvciBhdXRvbWFrZS0xLjUKCjIwMDUtMDQtMjggMTY6Mjg6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBCZXR0ZXIgZGVidWdnaW5nIG9mIGNsb2NraW5nIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9iYXNlc2lua19wYWRfZ2V0Y2FwcyksIChnc3RfYmFzZXNpbmtfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfZG9fc3luYyk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZW50cnlfbmV3KToKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9kaXNjb250X2dldF92YWx1ZSk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChwaXBlbGluZV9idXNfaGFuZGxlciksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF91bmxvY2tlZCk6CgkgIEJldHRlciBkZWJ1Z2dpbmcgb2YgY2xvY2tpbmcgaW5mby4KCSAgQWxsb3cgTlVMTCB2YWx1ZXMgd2hlbiBnZXR0aW5nIGRpc2NvbnQgdmFsdWVzLgoKMjAwNS0wNC0yNyAxNDoxOTo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC86IEluY3JlYXNlIHRpbWVvdXQgZm9yIGNoZWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdG9iamVjdC5jOiAoU1RBUlRfVEVTVCksIChnc3Rfb2JqZWN0X3N1aXRlKToKCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3N1aXRlKToKCSAgSW5jcmVhc2UgdGltZW91dCBmb3IgY2hlY2tzLgoKMjAwNS0wNC0yNyAxMzo1Mjo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogZml4IHRoZSBicm9rZW4gcnVsZSBmb3IgY2xlYW51cC4gIEFwcGFyZW50bHkgdGhpcyBydWxlIGlzIG9ubHkgbmVlZGVkIG9uIEZDMiwgc28gbWF5YmUgdGhpcyB3YXJyYW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGZpeCB0aGUgYnJva2VuIHJ1bGUgZm9yIGNsZWFudXAuICBBcHBhcmVudGx5IHRoaXMgcnVsZSBpcwoJICBvbmx5IG5lZWRlZCBvbiBGQzIsIHNvIG1heWJlIHRoaXMgd2FycmFudHMgZnVydGhlciBhdXRvdG9vbAoJICBpbnNwZWN0aW9uLgoKMjAwNS0wNC0yNiAxODowNzo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R0cmFzaHN0YWNrLmg6IE9vb2hoLiBhIG5hc3R5IG9uZSEgQWZ0ZXIgaGF2aW5nIGEgZmFpbGVkIHBvcCgpIGZyb20gdGhlIHN0YWNrLCBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHN0YWNrIGlzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dHJhc2hzdGFjay5oOgoJICBPb29oaC4gYSBuYXN0eSBvbmUhIEFmdGVyIGhhdmluZyBhIGZhaWxlZCBwb3AoKSBmcm9tIHRoZSBzdGFjaywKCSAgaXQncyBwb3NzaWJsZSB0aGF0IHRoZSBzdGFjayBpcyBlbXB0eS4gSW4gdGhhdCBjYXNlLCBkb24ndAoJICBmb2xsb3cgdGhlIE5VTEwgcG9pbnRlci4KCjIwMDUtMDQtMjUgMTM6MDA6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBSZW1vdmUgZ3N0X2xpYnJhcnlfbG9hZCBhcyBpdCBkb2VzIG1vcmUgaGFybSB0aGFuIGdvb2Qgd2l0aCB0aGUgbmV3IGdfbW9kdWxlIGZsYWdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9wZWVyX3NldF9hY3RpdmUpLAoJICAoZ3N0X3BhZF9zZXRfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCksIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksCgkgIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpLCAoZ3N0X3BhZF9wdWxsX3JhbmdlKSwKCSAgKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF9jYXBzKSwgKGdzdF9wYWRfc3RhcnRfdGFzayksCgkgIChnc3RfcGFkX3BhdXNlX3Rhc2spLCAoZ3N0X3BhZF9zdG9wX3Rhc2spOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZCk6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICBSZW1vdmUgZ3N0X2xpYnJhcnlfbG9hZCBhcyBpdCBkb2VzIG1vcmUgaGFybSB0aGFuIGdvb2Qgd2l0aAoJICB0aGUgbmV3IGdfbW9kdWxlIGZsYWdzLgoJICBSZXZlcnQgYm9ndXMgY2FwcyB0ZW1wbGF0ZSBjaGVjayBpbiBwYWQgbGlua2luZywgcGFkIGNhcHMKCSAgYXJlIGltcG9ydGFudCB3aGVuIGxpbmtpbmcgbm90IHRoZSB0ZW1wbGF0ZSwgd2hpY2ggaXMgbW9yZQoJICBnZW5lcmFsIHRoYW4gdGhlIGN1cnJlbnQgY2Fwcy4KCjIwMDUtMDQtMjUgMTE6NTE6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvTWFrZWZpbGUuYW06CgkgIHRoZXJlIGlzIG5vIHNwZWVkLiAgcmVhbGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGhlcmUgaXMgbm8gc3BlZWQuICByZWFsbHkuCgoyMDA1LTA0LTI1IDA5OjUxOjA2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvYXV0b3BsdWcvOiBEaWUsIHNwaWRlciwgZGllLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXV0b3BsdWcvLmN2c2lnbm9yZToKCSAgKiBnc3QvYXV0b3BsdWcvTWFrZWZpbGUuYW06CgkgICogZ3N0L2F1dG9wbHVnL2dzdHNlYXJjaGZ1bmNzLmM6CgkgICogZ3N0L2F1dG9wbHVnL2dzdHNlYXJjaGZ1bmNzLmg6CgkgICogZ3N0L2F1dG9wbHVnL2dzdHNwaWRlci5jOgoJICAqIGdzdC9hdXRvcGx1Zy9nc3RzcGlkZXIuaDoKCSAgKiBnc3QvYXV0b3BsdWcvZ3N0c3BpZGVyaWRlbnRpdHkuYzoKCSAgKiBnc3QvYXV0b3BsdWcvZ3N0c3BpZGVyaWRlbnRpdHkuaDoKCSAgKiBnc3QvYXV0b3BsdWcvc3BpZGVydGVzdC5jOgoJICBEaWUsIHNwaWRlciwgZGllLgoKMjAwNS0wNC0yNSAwOTo0NTozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuKjogQWRkZWQgc3R1YnMgZm9yIHVuaW1wbGVtZW50ZWQgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9wZWVyX3NldF9hY3RpdmUpLAoJICAoZ3N0X3BhZF9zZXRfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbiksIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpLAoJICAoZ3N0X3BhZF9wdWxsX3JhbmdlKSwgKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF9jYXBzKSwKCSAgKGdzdF9wYWRfc3RhcnRfdGFzayksIChnc3RfcGFkX3BhdXNlX3Rhc2spLCAoZ3N0X3BhZF9zdG9wX3Rhc2spOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQWRkZWQgc3R1YnMgZm9yIHVuaW1wbGVtZW50ZWQgZnVuY3Rpb25zLgoKMjAwNS0wNC0yNSAwMzo1NDoyOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBmaWxlIHB5dGhvbi1lbGVtZW50cy50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIHB5dGhvbi1lbGVtZW50cy50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA0LTI0IDIzOjUzOjA2ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RwYWQuaDogRGlzYWJsZSBzb21lIHVuaW1wbGVtZW50ZWQgZnVuY3Rpb25zLiAgV2ltLCBwbGVhc2UgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmg6IERpc2FibGUgc29tZSB1bmltcGxlbWVudGVkIGZ1bmN0aW9ucy4gIFdpbSwKCSAgcGxlYXNlIGZpeC4KCjIwMDUtMDQtMjQgMjI6NDk6NDUgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgQ29udmVydCBldmVyeXRoaW5nIGZyb20gR3N0QXRvbWljSW50IHRvIGdfYXRvbWljX2ludF8qLCBhbmQgcmVtb3ZlIGdzdGF0b21pYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENvbnZlcnQgZXZlcnl0aGluZyBmcm9tIEdzdEF0b21pY0ludCB0byBnX2F0b21pY19pbnRfKiwgYW5kCgkgIHJlbW92ZSBnc3RhdG9taWMuCgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3RhdG9taWMuYzoKCSAgKiBnc3QvZ3N0YXRvbWljLmg6CgkgICogZ3N0L2dzdGF0b21pY19pbXBsLmg6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0ZGF0YS5jOgoJICAqIGdzdC9nc3RkYXRhLmg6CgkgICogZ3N0L2dzdGRhdGFfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICAqIGdzdC9nc3RvYmplY3QuYzoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogQWRkIGdzdF9hdG9taWNfaW50X3NldCgpIGNvbXBhaXRpYmlsaXR5IGZ1bmN0aW9uLgoJICAqIGdzdC9nc3R1dGlscy5oOgoKMjAwNS0wNC0yNCAyMjo0NDoxMyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjaGVjay9nc3QvZ3N0cGFkLmM6IE9oIHllYWgsIGl0J3MgYWx3YXlzIG5pY2UgdG8gbWFrZSB0aGUgcmVncmVzc2lvbnMgdGVzdHMgd29yay4gIFJlbW92ZSBzb21lIGNvZGUgdGhhdCBpcyBubyBsb25nZXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOiAoU1RBUlRfVEVTVCk6IE9oIHllYWgsIGl0J3MgYWx3YXlzIG5pY2UgdG8KCSAgbWFrZSB0aGUgcmVncmVzc2lvbnMgdGVzdHMgd29yay4gIFJlbW92ZSBzb21lIGNvZGUgdGhhdCBpcyBubwoJICBsb25nZXIgdHJ1ZS4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xpbmtfY2hlY2tfdGVtcGxhdGVzX2NvbXBhdGlibGVfdW5sb2NrZWQpOgoJICBEaXNhYmxlIHdhcm5pbmcgZm9yIHBhZHMgd2l0aG91dCB0ZW1wbGF0ZXMuCgoyMDA1LTA0LTI0IDIxOjE2OjQ1ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RwYWQuYzogUmVtb3ZlIGhhbmRsaW5nIG9mIGZpbHRlcmVkIGNhcHMuICBGaXgvbWVyZ2UgZnVuY3Rpb25zIHRoYXQgaGFuZGxlIGZpbHRlcmVkIGxpbmtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IFJlbW92ZSBoYW5kbGluZyBvZiBmaWx0ZXJlZCBjYXBzLiAgRml4L21lcmdlCgkgIGZ1bmN0aW9ucyB0aGF0IGhhbmRsZSBmaWx0ZXJlZCBsaW5rcy4KCSAgKiBnc3QvZ3N0cGFkLmg6IFJlbW92ZSAnYXBwZmlsdGVyJyBmaWVsZCBhbmQgcHJvdG90eXBlcyBvZgoJICByZW1vdmVkIGZ1bmN0aW9ucy4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogRml4L3JlbW92ZSB1dGlsaXR5IGZ1bmN0aW9ucyB0aGF0IGhhbmRsZQoJICBmaWx0ZXJlZCBjYXBzLgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiBBZGQgc2VyaWFsaXphdGlvbi9kZXNlcmlhbGl6YXRpb24gb2YgY2FwcwoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6IElnbm9yZSBmaWx0ZXJlZCBjYXBzIHdoZW4gbGlua2luZy4gIFRoaXMKCSAgcmVxdWlyZXMgZml4aW5nIHNvIHRoYXQgdGhlIGZpbHRlciBjYXBzIG5vdGF0aW9uIGNyZWF0ZXMKCSAgYSBjYXBzZmlsdGVyIGVsZW1lbnQgYW5kIHNldHMgdGhlIGZpbHRlcl9jYXBzIHByb3BlcnR5LiAgSQoJICB0aGluayBldmVyeW9uZSBwcm9iYWJseSB3YW50cyB0byBrZWVwIHRoZSBzaG9ydGhhbmQgbm90YXRpb24uCgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6IHVwZGF0ZXMgZm9yIEFQSSBjaGFuZ2VzLgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6IFJlZ2lzdGVyIGNhcHNmaWx0ZXIgZWxlbWVudC4KCSAgKiBnc3QvTWFrZWZpbGUuYW06IGZpeCBzcGFjaW5nCgkgICogZG9jcy9yYW5kb20vZHMvMC45LXN1Z2dlc3RlZC1jaGFuZ2VzOiByYW5kb20KCjIwMDUtMDQtMjMgMjM6Mjk6NDcgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2VsZW1lbnRzLzogTmV3IGVsZW1lbnQgdGhhdCBhY3RzIGxpa2UgYW4gaWRlbnRpdHksIGJ1dCBmaWx0ZXJzIGNhcHMuICBXaWxsIGV2ZW50dWFsbHkgcmVwbGFjZSBmaWx0ZXJlZCBjYXBzIGluIHBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBOZXcgZWxlbWVudCB0aGF0IGFjdHMgbGlrZSBhbgoJICBpZGVudGl0eSwgYnV0IGZpbHRlcnMgY2Fwcy4gIFdpbGwgZXZlbnR1YWxseSByZXBsYWNlIGZpbHRlcmVkCgkgIGNhcHMgaW4gcGFkIGxpbmtpbmcuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9jcmVhdGVfYWxsX3BhZHMpOiBOZXcgZnVuY3Rpb24KCSAgdG8gY3JlYXRlIGFsbCB0aGUgQUxXQVlTIHBhZHMgdGhhdCBhcmUgcmVnaXN0ZXJlZCB3aXRoIGFuCgkgIGVsZW1lbnQgY2xhc3MuICBUaGlzIGZ1bmN0aW9uYWxpdHkgc2hvdWxkIGV2ZW50dWFsbHkgYmUKCSAgbWVyZ2VkIGluIHdpdGggR3N0RWxlbWVudCBpbml0aWFsaXphdGlvbi4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiB0ZXN0c3VpdGUvdHJpZ2dlci9SRUFETUU6IHBhcnQgb2YgdHJpZ2dlciB0ZXN0IGNvZGUgdGhhdCBzaG91bGQKCSAgaGF2ZSBiZWVuIGNoZWNrZWQgaW4gYSBsb25nIHRpbWUgYWdvLgoKMjAwNS0wNC0yMyAyMzoyNTowOCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvTWFrZWZpbGUuYW06IFJlbW92ZSBhcy1saWJ0b29sIHN0dWZmLiAgSXQncyBsaWtlbHkgbm90IGFuZCBoYXJkIHRvIGNhcnJ5IGFyb3VuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOiBSZW1vdmUgYXMtbGlidG9vbCBzdHVmZi4gIEl0J3MgbGlrZWx5IG5vdAoJICBuZWVkZWQgd2l0aCBuZXcgdmVyc2lvbnMgb2YgbGlidG9vbCAobm9ib2R5IHdpbGwgY29uZmlybSB0aGlzKSwKCSAgYW5kIGhhcmQgdG8gY2FycnkgYXJvdW5kLgoJICAqIGdzdC9hdXRvcGx1Zy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zY2hlZHVsZXJzL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY29udHJvbC9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZ2V0Yml0cy9NYWtlZmlsZS5hbToKCjIwMDUtMDQtMjEgMTc6MTA6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGZpbGUgTWFrZWZpbGUuYW0gd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIE1ha2VmaWxlLmFtIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoKMjAwNS0wNC0yMSAwOTozNzozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogU29tZSBtb3JlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJ1cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1wdXNoLXB1bGwudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcXVlcnkudHh0OgoJICBTb21lIG1vcmUgZG9jcy4KCjIwMDUtMDQtMjEgMDk6MzM6MzEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBVc2UgcGFyZW50IHJlZmNvdW50IGluIEdzdE1lc3NhZ2UgdG8gZW5zdXJlIEdzdFN0cnVjdHVyZSBjb25zaXN0ZW5jeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKF9nc3RfbWVzc2FnZV9jb3B5KSwgKF9nc3RfbWVzc2FnZV9mcmVlKSwKCSAgKGdzdF9tZXNzYWdlX25ldyksIChnc3RfbWVzc2FnZV9uZXdfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3dhcm5pbmcpLCAoZ3N0X21lc3NhZ2VfbmV3X3RhZyksCgkgIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksIChnc3RfbWVzc2FnZV9uZXdfYXBwbGljYXRpb24pLAoJICAoZ3N0X21lc3NhZ2VfZ2V0X3N0cnVjdHVyZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3NldF9wYXJlbnRfcmVmY291bnQpLAoJICAoZ3N0X3N0cnVjdHVyZV9jb3B5X2NvbmRpdGlvbmFsKToKCSAgVXNlIHBhcmVudCByZWZjb3VudCBpbiBHc3RNZXNzYWdlIHRvIGVuc3VyZSBHc3RTdHJ1Y3R1cmUKCSAgY29uc2lzdGVuY3kuCgkgIENsZWFuZWQgdXAgaGVhZGVycyBhIGJpdC4KCjIwMDUtMDQtMjAgMDk6MTA6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBNYWtlIGdzdF9jYXBzX3JlcGxhY2UoKSB3b3JrIGxpa2Ugb3RoZXIgX3JlcGxhY2UoKSBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9iYXNlc2lua19wYWRfZ2V0Y2FwcyksIChnc3RfYmFzZXNpbmtfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfY2hhaW5fdW5sb2NrZWQpOgoJICAqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9zdWdnZXN0KSwKCSAgKGdzdF90eXBlX2ZpbmRfaGVscGVyKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGF2ZV90eXBlKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9pbml0KSwKCSAgKHN0b3BfdHlwZWZpbmRpbmcpLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCksCgkgIChmaW5kX3N1Z2dlc3QpLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGVja2dldHJhbmdlKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9nZXRyYW5nZSksIChkb190eXBlZmluZCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKF9nc3RfYnVmZmVyX3N1Yl9mcmVlKSwKCSAgKGdzdF9idWZmZXJfZGVmYXVsdF9mcmVlKSwgKGdzdF9idWZmZXJfZGVmYXVsdF9jb3B5KSwKCSAgKGdzdF9idWZmZXJfc2V0X2NhcHMpOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19yZWYpLCAoZ3N0X2NhcHNfdW5yZWYpLAoJICAoZ3N0X2NhcHNfcmVwbGFjZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ldyksCgkgIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfcGVlcl9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfc2V0X2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9saW5rX3ByZXBhcmVfZmlsdGVyZWQpLCAoZ3N0X3BhZF9yZWxpbmtfZmlsdGVyZWQpLAoJICAoZ3N0X3BhZF9zZXRfY2FwcyksIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpLAoJICAoZ3N0X3BhZF9wdWxsX3JhbmdlKSwgKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF9jYXBzKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6IChnc3RfdHlwZV9maW5kX3JlZ2lzdGVyKToKCSAgTWFrZSBnc3RfY2Fwc19yZXBsYWNlKCkgd29yayBsaWtlIG90aGVyIF9yZXBsYWNlKCkgZnVuY3Rpb25zLgoJICBVc2UgX2NhcHNfcmVwbGFjZSgpIHdoZXJlIHBvc3NpYmxlLgoJICBNYWtlIHN1cmUgX21lc3NhZ2VfbmV3KCkgaW5pdGlhbGlzZXMgaXRzIGZpZWxkLgoJICBBZGQgZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X2NhcHMoKQoKMjAwNS0wNC0xOCAwODo1MzowMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogcy9BUkdfL1BST1BfLy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDQtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogcy9BUkdfL1BST1BfLy4KCjIwMDUtMDQtMTggMDg6MjQ6MzAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZXNyY19zZXRfcHJvcGVydHkpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA0LTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2VzcmNfc2V0X3Byb3BlcnR5KQoJICAoZ3N0X2Jhc2VzcmNfZ2V0X3Byb3BlcnR5KTogQkxPQ0tTSVpFIGlzIGEgVUxPTkcuIFJlbmFtZSBBUkdfLi4uCgkgIHRvIFBST1BfLi4uLgoKMjAwNS0wNC0xNiAyMDoyNzo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBORVdTOgoJKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgTkVXUyBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTkVXUyBidWlsZAoKMjAwNS0wNC0xNiAyMDoxNjozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICByZW1vdmVkIHNvbWUgbGluZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlZCBzb21lIGxpbmUKCjIwMDUtMDQtMTYgMTY6Mjg6MDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBhZGQgZ3N0LXBsdWdpbnMtYmFzZSB0byBwa2djb25maWcgcGF0aAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGdzdC1wbHVnaW5zLWJhc2UgdG8gcGtnY29uZmlnIHBhdGgKCjIwMDUtMDQtMTQgMTc6MTc6MzAgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvZmFxL3VzaW5nLnhtbDogQWRkIG5vdGUgb24gZ3N0cmVhbWVyLXByb3BlcnRpZXMgKCMxNTQ5OTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS91c2luZy54bWw6CgkgIEFkZCBub3RlIG9uIGdzdHJlYW1lci1wcm9wZXJ0aWVzICgjMTU0OTk2KS4KCjIwMDUtMDQtMTMgMTc6NDE6MjkgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2JiYi9vcHRpb25hbC1wcm9wZXJ0aWVzOiBTb21lIGFuYWx5c2lzIG9uIG9wdGlvbmFsIHByb3BlcnRpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2JiYi9vcHRpb25hbC1wcm9wZXJ0aWVzOgoJICBTb21lIGFuYWx5c2lzIG9uIG9wdGlvbmFsIHByb3BlcnRpZXMuCgoyMDA1LTA0LTEyIDE1OjAwOjMwICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBVc2UgbGlieG1sMiBmb3IgcmVnaXN0cnkgcGFyc2luZywgdXNlIHN0YXRpY3BhZHRlbXBsYXRlcyBpbiBlbGVtZW50ZmFjdG9yaWVzLiBNYWtlcyBnc3RfaW5pdCgpICsvLSAxMHggZmFzdGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnRmYWN0b3J5LnNnbWw6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfaW5pdCksCgkgIChnc3RfZWxlbWVudF9mYWN0b3J5X2NsZWFudXApLCAoZ3N0X2VsZW1lbnRfcmVnaXN0ZXIpLAoJICAoX19nc3RfZWxlbWVudF9mYWN0b3J5X2FkZF9zdGF0aWNfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X3N0YXRpY19wYWRfdGVtcGxhdGVzKSwKCSAgKGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX3NyY19jYXBzKSwKCSAgKGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX3NpbmtfY2Fwcyk6CgkgICogZ3N0L3JlZ2lzdHJpZXMvTWFrZWZpbGUuYW06CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzogKGdzdF94bWxfcmVnaXN0cnlfZ2V0X3R5cGUpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9jbGFzc19pbml0KSwgKGdzdF94bWxfcmVnaXN0cnlfaW5pdCksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X25ldyksIChnc3RfeG1sX3JlZ2lzdHJ5X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X2dldF9wcm9wZXJ0eSksIChnZXRfdGltZSksIChtYWtlX2RpciksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X2dldF9wZXJtc19mdW5jKSwKCSAgKHBsdWdpbl90aW1lc19vbGRlcl90aGFuX3JlY3Vyc2UpLCAocGx1Z2luX3RpbWVzX29sZGVyX3RoYW4pLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9vcGVuX2Z1bmMpLCAoZ3N0X3htbF9yZWdpc3RyeV9sb2FkX2Z1bmMpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9zYXZlX2Z1bmMpLCAoZ3N0X3htbF9yZWdpc3RyeV9jbG9zZV9mdW5jKSwKCSAgKGFkZF90b19jaGFyX2FycmF5KSwgKHJlYWRfc3RyaW5nKSwgKHJlYWRfdWludCksIChyZWFkX2VudW0pLAoJICAobG9hZF9wYWRfdGVtcGxhdGUpLCAobG9hZF9mZWF0dXJlKSwgKGxvYWRfcGx1Z2luKSwgKGxvYWRfcGF0aHMpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9sb2FkKSwgKGdzdF94bWxfcmVnaXN0cnlfbG9hZF9wbHVnaW4pLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9zYXZlX2NhcHMpLCAoZ3N0X3htbF9yZWdpc3RyeV9zYXZlX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X3NhdmVfZmVhdHVyZSksIChnc3RfeG1sX3JlZ2lzdHJ5X3NhdmVfcGx1Z2luKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfc2F2ZSksIChnc3RfeG1sX3JlZ2lzdHJ5X3JlYnVpbGRfcmVjdXJzZSksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X3JlYnVpbGQpOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5Lmg6CgkgICogdG9vbHMvZ3N0LWNvbXBwcmVwLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfcGFkX3RlbXBsYXRlc19pbmZvKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9pbmZvKToKCSAgVXNlIGxpYnhtbDIgZm9yIHJlZ2lzdHJ5IHBhcnNpbmcsIHVzZSBzdGF0aWNwYWR0ZW1wbGF0ZXMgaW4KCSAgZWxlbWVudGZhY3Rvcmllcy4gTWFrZXMgZ3N0X2luaXQoKSArLy0gMTB4IGZhc3Rlci4KCjIwMDUtMDQtMTIgMTA6NTI6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgQWRkZWQgdHlwZWZpbmQgaGVscGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkZWQgdHlwZWZpbmQgaGVscGVyLgoJICBTbWFsbCBwcmVyb2xsIGZpeCBpbiB0aGUgYmFzZSBzaW5rLgoJICBEaXNhYmxlIHR5cGVmaW5kIGNvZGUgaW4gYmFzZXNyYy4KCSAgQ3J1ZGUgcG9ydCBvZiB0eXBlZmluZGVsZW1lbnQuCgkgIEZha2VzcmMgY2xlYW51cHMuCgoyMDA1LTA0LTEyIDA5OjE2OjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogY2hlY2svZ3N0L2dzdGRhdGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGEuYzoKCSAgSW5jcmVhc2UgdGltZW91dCBzb21lIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEluY3JlYXNlIHRpbWVvdXQgc29tZSBtb3JlCgoyMDA1LTA0LTExIDEyOjAyOjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgb25seSBkaXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBvbmx5IGRpcnMKCjIwMDUtMDQtMTEgMTE6NDA6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBmaXggZGlzdGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZGlzdGNoZWNrCgoyMDA1LTA0LTExIDExOjI0OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svOiBGaXggdXAgdGhlIHRpbWVvdXQgc28gdGhhdCB0aGUgdGVzdCBkb2VzIG5vdCBmYWlsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YnVzLmM6IChnc3RidXNfc3VpdGUpOgoJICAqIGNoZWNrL2dzdC9nc3RkYXRhLmM6ICh0aHJlYWRfcmVmKSwgKGdzdF9kYXRhX3N1aXRlKToKCSAgKiBjaGVjay9nc3RjaGVjay5oOgoJICBGaXggdXAgdGhlIHRpbWVvdXQgc28gdGhhdCB0aGUgdGVzdCBkb2VzIG5vdCBmYWlsLgoKMjAwNS0wNC0xMSAwOTo1Mzo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkgIGRpc3QgdHJpZ2dlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlzdCB0cmlnZ2VyCgoyMDA1LTA0LTEwIDIxOjQyOjMyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIHdvcmsgd2l0aCBkZWJ1ZyBkaXNhYmxlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd29yayB3aXRoIGRlYnVnIGRpc2FibGVkCgoyMDA1LTA0LTEwIDIwOjI5OjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgd29yayB3aXRoIGRlYnVnIGRpc2FibGVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3b3JrIHdpdGggZGVidWcgZGlzYWJsZWQKCjIwMDUtMDQtMTAgMTg6MTk6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogYXV0b2dlbi5zaDoKCSAgaWdub3JlIGFscmVhZHkgYXBwbGllZCBwYXRjaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIGFscmVhZHkgYXBwbGllZCBwYXRjaAoKMjAwNS0wNC0wOCAxMTozNDoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZmlsZSBnc3RwYXJlbnQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgZ3N0cGFyZW50LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA0LTA4IDExOjM0OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBmaWxlIGdzdHBhcmVudC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSBnc3RwYXJlbnQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCjIwMDUtMDQtMDYgMTc6MzA6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBNb3JlIHdvcmsgb24gdGhlIGdlbmVyaWMgc291cmNlIGJhc2UgY2xhc3MsIGltcGxlbWVudCBzZWVraW5nLCBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvUkVBRE1FOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2dldF90eXBlKSwKCSAgKGdzdF9iYXNlc3JjX2luaXQpLCAoZ3N0X2Jhc2VzcmNfZ2V0X2Zvcm1hdHMpLCAoZ3N0X2Jhc2VzcmNfcXVlcnkpLAoJICAoZ3N0X2Jhc2VzcmNfZ2V0X2V2ZW50X21hc2spLCAoZ3N0X2Jhc2VzcmNfZG9fc2VlayksCgkgIChnc3RfYmFzZXNyY19ldmVudF9oYW5kbGVyKSwgKGdzdF9iYXNlc3JjX2dldF9yYW5nZV91bmxvY2tlZCksCgkgIChnc3RfYmFzZXNyY19jaGVja19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2VzcmNfbG9vcCksCgkgIChnc3RfYmFzZXNyY191bmxvY2spLCAoZ3N0X2Jhc2VzcmNfZ2V0X3NpemUpLCAoZ3N0X2Jhc2VzcmNfc3RhcnQpLAoJICAoZ3N0X2Jhc2VzcmNfc3RvcCksIChnc3RfYmFzZXNyY19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZXNyY19jaGFuZ2Vfc3RhdGUpLCAoYmFzZXNyY19maW5kX3BlZWspLAoJICAoYmFzZXNyY19maW5kX3N1Z2dlc3QpLCAoZ3N0X2Jhc2VzcmNfdHlwZV9maW5kKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmlsZXNyY19jbGFzc19pbml0KSwgKGdzdF9maWxlc3JjX2luaXQpLAoJICAoZ3N0X2ZpbGVzcmNfZmluYWxpemUpLCAoZ3N0X2ZpbGVzcmNfc2V0X2xvY2F0aW9uKSwKCSAgKGdzdF9maWxlc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfZmlsZXNyY19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2ZpbGVzcmNfZnJlZV9wYXJlbnRfbW1hcCksIChnc3RfZmlsZXNyY19tYXBfcmVnaW9uKSwKCSAgKGdzdF9maWxlc3JjX21hcF9zbWFsbF9yZWdpb24pLCAoZ3N0X2ZpbGVzcmNfY3JlYXRlX21tYXApLAoJICAoZ3N0X2ZpbGVzcmNfY3JlYXRlX3JlYWQpLCAoZ3N0X2ZpbGVzcmNfY3JlYXRlKSwKCSAgKGdzdF9maWxlc3JjX2dldF9zaXplKSwgKGdzdF9maWxlc3JjX3N0YXJ0KSwgKGdzdF9maWxlc3JjX3N0b3ApOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfcGVlcl9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfc2V0X2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pLCAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwKCSAgKGdzdF9wYWRfcHVsbF9yYW5nZSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBNb3JlIHdvcmsgb24gdGhlIGdlbmVyaWMgc291cmNlIGJhc2UgY2xhc3MsIGltcGxlbWVudCBzZWVraW5nLAoJICBxdWVyeS4KCSAgTWFrZSBmaWxlc3JjIGV4dGVuZCB0aGUgYmFzZSBzb3VyY2UgY2xhc3MuCgkgIEFkZGVkIGdzdF9wYWRfc2V0X2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24gdG8gR3N0UGFkLgoKMjAwNS0wNC0wNiAxMTowODowNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgcGtnY29uZmlnLzogTmV3IGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNC0wNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UucGMuaW46CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOiBOZXcgZmlsZXMuCgkgICogcGtnY29uZmlnL01ha2VmaWxlLmFtOgoJICAqIGNvbmZpZ3VyZS5hYyAoQUNfT1VUUFVUKTogQWRkIGdzdHJlYW1lci1iYXNlIHBrZ2NvbmZpZyBmaWxlcy4KCjIwMDUtMDQtMDUgMTc6NDE6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9mYXEvY3ZzLnhtbDoKCSAgYWRkIGEgbm90ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgbm90ZQoKMjAwNS0wNC0wNSAwODo0NDoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IE1hZGUgYmFzZSBzb3VyY2UgY2xhc3MsIG1ha2UgZmFrZXNyYyBleHRlbmQgaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9iYXNlL1JFQURNRToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfcGFkX2dldGNhcHMpLCAoZ3N0X2Jhc2VzaW5rX3BhZF9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlc2lua19wYWRfYnVmZmVyX2FsbG9jKSwgKGdzdF9iYXNlc2lua19pbml0KSwKCSAgKGdzdF9iYXNlc2lua19kb19zeW5jKSwgKGdzdF9iYXNlc2lua19jaGFpbl91bmxvY2tlZCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfZ2V0X3R5cGUpLAoJICAoZ3N0X2Jhc2VzcmNfYmFzZV9pbml0KSwgKGdzdF9iYXNlc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VzcmNfaW5pdCksIChnc3RfYmFzZXNyY19nZXRfZm9ybWF0cyksCgkgIChnc3RfYmFzZXNyY19nZXRfcXVlcnlfdHlwZXMpLCAoZ3N0X2Jhc2VzcmNfcXVlcnkpLAoJICAoZ3N0X2Jhc2VzcmNfZ2V0X2V2ZW50X21hc2spLCAoZ3N0X2Jhc2VzcmNfZXZlbnRfaGFuZGxlciksCgkgIChnc3RfYmFzZXNyY19zZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2VzcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlc3JjX2dldF9yYW5nZV91bmxvY2tlZCksIChnc3RfYmFzZXNyY19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2VzcmNfbG9vcCksIChnc3RfYmFzZXNyY19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZXNyY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2VzcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9mYWtlc3JjX2NsYXNzX2luaXQpLCAoZ3N0X2Zha2VzcmNfaW5pdCksCgkgIChnc3RfZmFrZXNyY19ldmVudF9oYW5kbGVyKSwgKGdzdF9mYWtlc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmFrZXNyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2Zha2VzcmNfY3JlYXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZXNyY19nZXRyYW5nZSksCgkgIChnc3RfZmlsZXNyY19vcGVuX2ZpbGUpLCAoZ3N0X2ZpbGVzcmNfbG9vcCksCgkgIChnc3RfZmlsZXNyY19hY3RpdmF0ZSksIChmaWxlc3JjX2ZpbmRfcGVlayksCgkgIChnc3RfZmlsZXNyY190eXBlX2ZpbmQpOgoJICBNYWRlIGJhc2Ugc291cmNlIGNsYXNzLCBtYWtlIGZha2VzcmMgZXh0ZW5kIGl0LgoJICBBZGQgY29tbWVudHMgdG8gYmFzZXNpbmsgY2xhc3MuCgkgIFNvbWUgZmlsZXNyYyBjbGVhbnVwLgoKMjAwNS0wNC0wMSAxMDoxNDo0NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogdGVzdHMvbWVtY2h1bmsvZ21lbWNodW5rdGVzdC5jOgoJICBhZGQgc3VwcG9ydCBmb3IgZ29vZ2xlIG1hbGxvYyBpZiBhdmFpbGFibGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBzdXBwb3J0IGZvciBnb29nbGUgbWFsbG9jIGlmIGF2YWlsYWJsZQoKMjAwNS0wNC0wMSAwMjo0MTozNSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IFN3aXRjaCB0byB1c2luZyBHX01PRFVMRV9CSU5EX0xPQ0FMLCB3aGljaCBtZWFucyBwbHVnaW5zIGFyZSBub3cgZXhwZWN0ZWQgdG8gbGluayBhZ2FpbnN0IGxpYmdzdHJlYW1lci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9jaGVja19maWxlKSwgKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgU3dpdGNoIHRvIHVzaW5nIEdfTU9EVUxFX0JJTkRfTE9DQUwsIHdoaWNoIG1lYW5zIHBsdWdpbnMgYXJlIG5vdwoJICBleHBlY3RlZCB0byBsaW5rIGFnYWluc3QgbGliZ3N0cmVhbWVyLgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOiBsaW5rIGFnYWluc3QgbGliZ3N0cmVhbWVyCgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOiBzYW1lCgoyMDA1LTAzLTMxIDE1OjAwOjExICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9pbnN0YW50aWF0ZS86IEFkZCB0ZXN0IHRvIHRlc3Qgc3BlZWQgb2YgY2FwcyBjb3B5IGFuZCBmcmVlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMy0zMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9pbnN0YW50aWF0ZS9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9pbnN0YW50aWF0ZS9jYXBzLmM6IEFkZCB0ZXN0IHRvIHRlc3Qgc3BlZWQgb2YgY2FwcyBjb3B5CgkgIGFuZCBmcmVlLgoJICAqIHRlc3RzL21lbWNodW5rL2dtZW1jaHVua3Rlc3QuYyAobWFpbik6IFVzZSBhbGxvYyBvbmx5IG9uIHRoZQoJICBHTWVtQ2h1bmsgdG8gYmUgZmFpci4KCSAgKiBnc3QvZ3N0dHJhc2hzdGFjay5oOiBSZW1vdmUgd2FybmluZyBhYm91dCB1c2luZyB0aGUgZmFsbGJhY2sKCSAgdHJhc2ggc3RhY2sgaW1wbGVtZW50YXRpb24sIGl0J3Mgc3RpbGwgZmFzdGVyIHRoYW4gbWFsbG9jLgoKMjAwNS0wMy0zMSAxMDoxMDo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEFkZGVkIHN0YXJ0L3N0b3AgbWV0aG9kcyB0byB0cmFuc2Zvcm0gYmFzZSBjbGFzcyBzbyBzdWJjbGFzc2VzIGRvbid0IG5lZWQgdG8gZGVhbCB3aXRoIHN0YXRlIGNoYW5nZXMgZXZlbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2Jhc2VfaW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCksIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zcmNfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X2V2ZW50KSwgKGdzdF9pZGVudGl0eV9jaGVja19wZXJmZWN0KSwKCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm0pLCAoZ3N0X2lkZW50aXR5X3N0YXJ0KSwKCSAgKGdzdF9pZGVudGl0eV9zdG9wKToKCSAgQWRkZWQgc3RhcnQvc3RvcCBtZXRob2RzIHRvIHRyYW5zZm9ybSBiYXNlIGNsYXNzIHNvIHN1YmNsYXNzZXMKCSAgZG9uJ3QgbmVlZCB0byBkZWFsIHdpdGggc3RhdGUgY2hhbmdlcyBldmVuLgoKMjAwNS0wMy0zMSAxMDoxMDoyMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogdGVzdHMvbWVtY2h1bmsvZ21lbWNodW5rdGVzdC5jOgoJICBhZGQgcGVyLXRocmVhZCBzdGF0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHBlci10aHJlYWQgc3RhdHMKCjIwMDUtMDMtMzEgMDk6NDY6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBZGRlZCByYXRlIHRvIHRoZSBkaXNjb250IGV2ZW50IHRvIHByZXBhcmUgZm9yIHZhcmlhYmxlIHNwZWVkIGFuZCByZXZlcnNlIHBsYXliYWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfZGlzY29udGludW91c192YWxpc3QpLAoJICAoZ3N0X2V2ZW50X25ld19kaXNjb250aW51b3VzKSwgKGdzdF9ldmVudF9kaXNjb250X2dldF92YWx1ZSk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfcGVlcl9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfcHVsbF9yYW5nZSk6CgkgIEFkZGVkIHJhdGUgdG8gdGhlIGRpc2NvbnQgZXZlbnQgdG8gcHJlcGFyZSBmb3IgdmFyaWFibGUgc3BlZWQKCSAgYW5kIHJldmVyc2UgcGxheWJhY2suCgoyMDA1LTAzLTMwIDE0OjA5OjAxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiB0ZXN0cy9tZW1jaHVuay9nbWVtY2h1bmt0ZXN0LmM6CgkgIENvbW1pdCBtZW0gY2h1bmsgdGVzdDsgcHJvYmFibHkgd2lsbCBiZSByZW1vdmVkIGxhdGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ29tbWl0IG1lbSBjaHVuayB0ZXN0OyBwcm9iYWJseSB3aWxsIGJlIHJlbW92ZWQgbGF0ZXIuCgoyMDA1LTAzLTMwIDAzOjU3OjM5ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIEEgbGl0dGxlIGV4YW1wbGUgcHJvZ3JhbSB0byBzaG93IGhvdyB0cmlnZ2VyLWJhc2VkIGVsZW1lbnRzIGNhbiB3b3JrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogdGVzdHN1aXRlL3RyaWdnZXIvTWFrZWZpbGUuYW06CgkgICogdGVzdHN1aXRlL3RyaWdnZXIvdHJpZ2dlci5jOiBBIGxpdHRsZSBleGFtcGxlIHByb2dyYW0gdG8gc2hvdwoJICBob3cgdHJpZ2dlci1iYXNlZCBlbGVtZW50cyBjYW4gd29yay4KCjIwMDUtMDMtMjkgMTY6MTg6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBTaW1wbGlmeSBwYWQgYWN0aXZhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvUkVBRE1FOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfZ2V0X3R5cGUpLAoJICAoZ3N0X2Jhc2VzaW5rX2Jhc2VfaW5pdCksIChnc3RfYmFzZXNpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfcGFkX2dldGNhcHMpLCAoZ3N0X2Jhc2VzaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKSwgKGdzdF9iYXNlc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF90eXBlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9iYXNlX2luaXQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2ZpbmFsaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcm94eV9nZXRjYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc3JjX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9maW5hbGl6ZSksCgkgIChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCksIChnc3RfaWRlbnRpdHlfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfZXZlbnQpLCAoZ3N0X2lkZW50aXR5X2NoZWNrX3BlcmZlY3QpLAoJICAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybSksIChnc3RfaWRlbnRpdHlfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9pZGVudGl0eV9nZXRfcHJvcGVydHkpLCAoZ3N0X2lkZW50aXR5X2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfcGVlcl9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksIChnc3RfcGFkX3B1bGxfcmFuZ2UpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgU2ltcGxpZnkgcGFkIGFjdGl2YXRpb24uCgkgIEFkZGVkIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIHB1bGxfcmFuZ2UgY2FuIGJlIHBlcmZvcm1lZC4KCSAgRXJyb3Igb3V0IHdoZW4gcHVsbGluZyBpbmFjdGl2ZSBvciBmbHVzaGluZyBwYWRzLgoJICBSZW1vdmVkIGNvbnN0IGZyb20gcmVmY291bnRlZCB0eXBlcyBhcyBpdCBkb2VzIG5vdCBtYWtlIHNlbnNlLgoJICBTaW1wbGlmeSBwYWQgdGVtcGxhdGVzIGluIGJhc2VzaW5rCgkgIEFkZGVkIGJhc2UgY2xhc3MgZm9yIHNpbXBsZSAxLXRvLTEgdHJhbnNmb3Jtcy4KCSAgTWFrZSBpZGVudGl0eSBzdWJjbGFzcyB0aGUgYmFzZSB0cmFuc2Zvcm0uCgoyMDA1LTAzLTI5IDE0OjM0OjUxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzLzogQWRkIHRoZXNlIGZpbGVzIHRvIENWUy4gTm93IEkgcmVhbGx5IGRvbid0IHVuZGVyc3RhbmQgd2hhdCdzIGdvaW5nIG9uLCBidXQgbGlrZSB3aGF0ZXZlci4gSSB3YW50IGdyZWVuIGJ1aWxkYm90IQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMy0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtb3ZlcnJpZGVzLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItb3ZlcnJpZGVzLnR4dDogQWRkIHRoZXNlIGZpbGVzIHRvIENWUy4gTm93IEkKCSAgcmVhbGx5IGRvbid0IHVuZGVyc3RhbmQgd2hhdCdzIGdvaW5nIG9uLCBidXQgbGlrZSB3aGF0ZXZlci4gSSB3YW50CgkgIGdyZWVuIGJ1aWxkYm90IQoKMjAwNS0wMy0yOSAxNDoxMjo0OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy86IERpc3QgdGhlIG92ZXJyaWRlcyBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDMtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOiBEaXN0IHRoZSBvdmVycmlkZXMgZmlsZXMuCgkgICogY2hlY2svTWFrZWZpbGUuYW0gKGNsZWFuLWxvY2FsKTogUmVtb3ZlIC5saWJzIGRpcmVjdG9yaWVzLgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbSAoRVhUUkFfRElTVCk6IEFkZCBhbGwgdGhlIGF0dGljCgkgIGVsZW1lbnRzIHRvIEVYVFJBX0RJU1QsIHNvIHBvLyBmaWxlcyBhcmUgaGFwcHkuCgoyMDA1LTAzLTI5IDEzOjEwOjI1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBwby9QT1RGSUxFUzogUmVtb3ZlIGdzdHNwaWRlci5jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMy0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBwby9QT1RGSUxFUzogUmVtb3ZlIGdzdHNwaWRlci5jLgoJICAqIGNvbmZpZ3VyZS5hYyAoQUNfT1VUUFVUKTogQWRkIG1pc3NpbmcgdGVzdHN1aXRlIG1ha2VmaWxlcy4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IFJlbW92ZSB0aGUgc2VjdGlvbiBvbgoJICBieXRlc3RyZWFtLgoJICAqIHRlc3RzL2NvbXBsZXhpdHkuYyAobWFpbik6IFNldCB0aGUgbGVuZ3RoIG9mIHRoZSBwcmVyb2xsIHF1ZXVlCgkgIG9uIHRoZSBzaW5rcyB0byBwcmV2ZW50IGEgbG9ja3VwLgoKMjAwNS0wMy0yOSAxMTozOToxNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sLzogUmVtb3ZlIHRlc3QsIGl0J3MgdGhlIHNhbWUgYXMgdGhlIG9uZSBpbiBjaGVjay9nc3QtbGlicy9nZHAuYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDMtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wtdGVzdC5jOiBSZW1vdmUgdGVzdCwgaXQncwoJICB0aGUgc2FtZSBhcyB0aGUgb25lIGluIGNoZWNrL2dzdC1saWJzL2dkcC5jLgoKMjAwNS0wMy0yOSAxMDo1NTozOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgcG8vLCBkb2NzL2dzdC86IENvbW1pdCBhdXRvbWF0aWMgY2hhbmdlcyB0byBkb2NzIGFuZCBwbyBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDMtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogcG8vLCBkb2NzL2dzdC86IENvbW1pdCBhdXRvbWF0aWMgY2hhbmdlcyB0byBkb2NzIGFuZCBwbyBmaWxlcy4KCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW0gKGxpYmdzdGVsZW1lbnRzX2xhX0xERkxBR1MpOiBMaW5rIHRvCgkgIHRoZSB2ZXJzaW9uZWQgbGliZ3N0YmFzZS4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbTogRGVwZW5kIG9uIGFuIHVudmVyc2lvbmVkIGdzdC1yZWdpc3Rlciwgc2VlbXMKCSAgdG8gbWFrZSBhdXRvY29uZiBoYXBwaWVyLgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOiBNYWtlIGxpYmdzdGJhc2UgYSB2ZXJzaW9uZWQgbGliLgoKMjAwNS0wMy0yOCAxNDo1NDozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGVsZW1lbnQudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcmVyb2xsLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBnc3QvYmFzZS9SRUFETUU6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvUkVBRE1FOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgIEFkZGVkIHN0YXRlIGNoYW5nZSBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkZWQgc3RhdGUgY2hhbmdlIGNvZGUuCgkgIEFkZGVkL3VwZGF0ZWQgZG9jcy4KCSAgQWRkZWQgc2luayBiYXNlIGNsYXNzLCBtYWtlIGZha2VzaW5rIGV4dGVuZCB0aGUgYmFzZSBjbGFzcy4KCSAgU21hbGwgY2xlYW51cHMgaW4gR3N0UGlwZWxpbmUuCgoyMDA1LTAzLTI2IDIyOjA3OjUzICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9NYWtlZmlsZS5hbTogcmVtb3ZlIGdzdGNwdS5bY2hdLiAgVGhlIGdzdF9jcHUgZnVuY3Rpb25hbGl0eSBpcyBicm9rZW4gYW5kIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBpbiBhIGRpZmZlcmVudCBsaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06IHJlbW92ZSBnc3RjcHUuW2NoXS4gIFRoZSBnc3RfY3B1IGZ1bmN0aW9uYWxpdHkKCSAgaXMgYnJva2VuIGFuZCBzaG91bGQgYmUgaW1wbGVtZW50ZWQgaW4gYSBkaWZmZXJlbnQgbGlicmFyeS4KCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOiBkb24ndCBjYWxsIF9nc3RfY3B1X2luaXRpYWxpemUoKQoJICAqIGdzdC9nc3QuaDogcmVtb3ZlIGdzdGNwdS5oCgkgICogZ3N0L2dzdGNwdS5jOiByZW1vdmUKCSAgKiBnc3QvZ3N0Y3B1Lmg6IHJlbW92ZQoJICAqIGdzdC9NYWtlZmlsZS5hbS5mdXR1cmU6IFJlbW92ZSB0aGlzIGZpbGUuICBJdCdzIGFuY2llbnQuCgoyMDA1LTAzLTI1IDA5OjU3OjQyICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IEFkZCBkZWZhdWx0IGV2ZW50L3NldF9tYW5hZ2VyIGhhbmRsZXJzLiBUaGUgc2V0X21hbmFnZXIgaGFuZGxlciB0YWtlcyBjYXJlIHRoYXQgdGhlIG1hbmFnZXIgaXMgZGlzdHJpYnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fc2V0X21hbmFnZXIpLAoJICAoZ3N0X2Jpbl9zZW5kX2V2ZW50KToKCSAgQWRkIGRlZmF1bHQgZXZlbnQvc2V0X21hbmFnZXIgaGFuZGxlcnMuIFRoZSBzZXRfbWFuYWdlciBoYW5kbGVyCgkgIHRha2VzIGNhcmUgdGhhdCB0aGUgbWFuYWdlciBpcyBkaXN0cmlidXRlZCBvdmVyIGtpZHMgdGhhdCB3ZXJlCgkgIGFscmVhZHkgaW4gdGhlIGJpbiBiZWZvcmUgdGhlIG1hbmFnZXIgd2FzIHNldC4gVGhlIGV2ZW50IGhhbmRsZXIKCSAgaXMgYSB1dGlsaXR5IHZpcnR1YWwgZnVuY3Rpb24gdGhhdCBzZW5kcyB0aGUgZXZlbnQgb3ZlciBhbGwgc2lua3MsCgkgIHNvIHRoYXQgZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCAoYmluLCBldmVudCk7IGhhcyB0aGUgZXhwZWN0ZWQKCSAgYmVoYXZpb3VyLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZXZlbnRfZGVmYXVsdCk6CgkgIFJlLWluc3RhbGwgZGVmYXVsdCBldmVudCBoYW5kbGluZyBmb3IgZGlzY29udGludWl0aWVzLCBzbyB0aGF0CgkgIHNlZWtpbmcgd29ya3Mgd2l0aG91dCByZXF1aXJpbmcgaGFja3MgaW4gYXBwbGljYXRpb25zIG9yIGV4dHJhCgkgIGNvZGUgaW4gc2lua3MuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksCgkgIChnc3RfcGlwZWxpbmVfc2VuZF9ldmVudCk6CgkgIEhhbGYgaGFjaywgaGFsZiB1dGlsaXR5OiBzZXQgYSBwaXBlbGluZSB0byBQQVVTRUQgZm9yIHNlZWsgZXZlbnRzLAoJICBzaW5jZSB0aGF0IGlzIHRoZSBvbmx5IHdheSB3ZSBjYW4gZ3VhcmFudGVlIGEvdiBzeW5jLiBNZWFucyB0aGF0CgkgIHlvdSBjYW4gZG8gZ3N0X2VsZW1lbnRfc2VlayAocGlwZWxpbmUsIG1ldGhvZCwgcG9zKTsgb24gYSBwaXBlbGluZQoJICBhbmQgaXQgImp1c3Qgd29ya3MiLgoKMjAwNS0wMy0yNSAwOTozNTowMSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IExvY2svdW5sb2NrIG1pc21hdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV91c2VfY2xvY2spOgoJICBMb2NrL3VubG9jayBtaXNtYXRjaC4KCjIwMDUtMDMtMjUgMDA6MzU6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBhZGQgZ3N0LXBsdWdpbnMtYmFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGFkZCBnc3QtcGx1Z2lucy1iYXNlCgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgIGRvbid0IGVycm9yIG91dCB1bnRpbCBkb2NzIGFyZSBmaXhlZAoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgcmVtb3ZlIHRocmVhZAoKMjAwNS0wMy0yMiAxNDoyMzo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFjdGl2YXRlZCBtb3JlIHRlc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOiAoU1RBUlRfVEVTVCksIChnc3RfZGF0YV9zdWl0ZSksIChtYWluKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3NldF92YWxpc3QpLAoJICAoZ3N0X3N0cnVjdHVyZV9jb3B5X2NvbmRpdGlvbmFsKToKCSAgQWN0aXZhdGVkIG1vcmUgdGVzdHMuCgkgIEFkZGVkIG1lc3NhZ2UgdGVzdC4KCSAgQWRkZWQgR19UWVBFX1BPSU5URVIgdG8gR3N0U3RydWN0dXJlLgoKMjAwNS0wMy0yMiAxMTozMjo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvY3MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RidXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICAqIGdzdC9nc3RidXMuYzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBEb2NzIHVwZGF0ZXMKCjIwMDUtMDMtMjEgMTg6MTc6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IEZpeCBjb3B5LWFuZC1wYXN0ZSBlcnJvci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19wb3N0KToKCSAgRml4IGNvcHktYW5kLXBhc3RlIGVycm9yLgoKMjAwNS0wMy0yMSAxNzozNDowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNvbW1vbjoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuaDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGRhdGEuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cHJvYmUuaDoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGdzdC9nc3RxdWV1ZS5oOgoJKiBnc3QvZ3N0c2NoZWR1bGVyLmM6CgkqIGdzdC9nc3RzY2hlZHVsZXIuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R0YWdpbnRlcmZhY2UuaDoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiBnc3QvZ3N0dGhyZWFkLmM6CgkqIGdzdC9nc3R0aHJlYWQuaDoKCSogZ3N0L2dzdHR5cGVzLmg6CgkqIGdzdC9zY2hlZHVsZXJzL01ha2VmaWxlLmFtOgoJKiBnc3Qvc2NoZWR1bGVycy9jb3RocmVhZHNfY29tcGF0Lmg6CgkqIGdzdC9zY2hlZHVsZXJzL2VudHJ5c2NoZWR1bGVyLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2ZhaXJjb3RocmVhZHMuYzoKCSogZ3N0L3NjaGVkdWxlcnMvZmFpcmNvdGhyZWFkcy5oOgoJKiBnc3Qvc2NoZWR1bGVycy9mYWlyc2NoZWR1bGVyLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2dzdGJhc2ljc2NoZWR1bGVyLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2dzdG9wdGltYWxzY2hlZHVsZXIuYzoKCSogZ3N0L3NjaGVkdWxlcnMvZ3RocmVhZC1jb3RocmVhZHMuaDoKCSogZ3N0L3NjaGVkdWxlcnMvdGhyZWFkc2NoZWR1bGVyLmM6CgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2J5dGVzdHJlYW0uYzoKCSogbGlicy9nc3QvYnl0ZXN0cmVhbS9maWxlcGFkLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmM6CgkqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY29tcGxleGl0eS5jOgoJKiB0ZXN0cy9tYXNzX2VsZW1lbnRzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc3RhdGVzL2xvY2tlZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3N0YXRlcy9wYXJlbnQuYzoKCSogdGVzdHN1aXRlL3N0YXRlcy9sb2NrZWQuYzoKCSogdGVzdHN1aXRlL3N0YXRlcy9wYXJlbnQuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtbWQ1c3VtLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBOZXh0IGJpZyBtZXJnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE5leHQgYmlnIG1lcmdlLgoJICBBZGRlZCBHc3RCdXMgZm9yIG1haW5sb29wIGludGVncmF0aW9uLgoJICBBZGRlZCBHc3RNZXNzYWdlIGZvciBzZW5kaW5nIG5vdGlmaWNhdGlvbnMgb24gdGhlIGJ1cy4KCSAgQWRkZWQgR3N0VGFzayBhcyBhbiBhYnN0cmFjdGlvbiBmb3IgcGlwZWxpbmUgZW50cnkgcG9pbnRzLgoJICBSZW1vdmVkIEdzdFRocmVhZC4KCSAgUmVtb3ZlZCBTY2hlZHVsZXJzLgoJICBTaW1wbGlmaWVkIEdzdFF1ZXVlIGZvciBtdWx0aXRocmVhZGVkIGNvcmUuCgkgIE1hZGUgX2xpbmsgdGhyZWFkc2FmZSwgcmVtb3ZlZCBvbGQgY2Fwc25lZ28uCgkgIEFkZGVkIFNUUkVBTV9MT0NLIGFuZCBQUkVST0xMX0xPQ0sgaW4gR3N0UGFkLgoJICBBZGRlZCBwYWQgYmxvY2tpbmcgZnVuY3Rpb25zLgoJICBSZXdvcmtlZCBzY2hlZHVsaW5nIGZ1bmN0aW9ucyBpbiBHc3RQYWQgdG8gcHJlcGFyZSBmb3IKCSAgc2NoZWR1bGluZyB1cGRhdGVzIHNvb24uCgkgIE1vdmVkIGV2ZW50cyBvdXQgb2YgZGF0YSBzdHJlYW0uCgkgIFNpbXBsaWZpZWQgR3N0RXZlbnQgdHlwZXMuCgkgIEFkZGVkIHJldHVybiB2YWx1ZXMgdG8gcHVzaC9wdWxsLgoJICBSZW1vdmVkIGNsb2NraW5nIGZyb20gR3N0RWxlbWVudC4KCSAgQWRkZWQgcHJvdG90eXBlcyBmb3Igc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIGZvciBuZXh0IG1lcmdlLgoJICBSZW1vdmVkIGl0ZXJhdGUgZnJvbSBiaW5zIGFuZCBzdGF0ZSBjaGFuZ2UgbWFuYWdlbWVudC4KCSAgRml4ZWQgc29tZSBlbGVtZW50cywgZGlzYWJsZWQgb3RoZXJzIGZvciBub3cuCgkgIEZpeGVkIC1pbnNwZWN0IGFuZCAtbGF1bmNoLgoJICBBZGRlZCBjaGVjayBmb3IgR3N0QnVzLgoKMjAwNS0wMy0xMCAxMjo1MTo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RlbGVtZW50LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdG9iamVjdC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGFuZGFyZHMudHh0OgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9hZGQpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX3JlbW92ZSk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIHRlc3RzdWl0ZS9jbG9jay9jbG9jazEuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jbG9jay9jbG9jazIuYzogKGdzdF9jbG9ja19kZWJ1ZyksIChlbGVtZW50X3dhaXQpLAoJICAobWFpbik6CgkgICogdGVzdHN1aXRlL2Rsb3Blbi9sb2FkZ3N0LmM6IChkb190ZXN0KToKCSAgKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvYmluLmM6IChhZGRfcmVtb3ZlX3Rlc3QxKSwKCSAgKGFkZF9yZW1vdmVfdGVzdDIpLCAobWFpbik6CgkgICogdGVzdHN1aXRlL3JlZmNvdW50aW5nL2VsZW1lbnQuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9lbGVtZW50X3BhZC5jOiAobWFpbik6CgkgICogdGVzdHN1aXRlL3JlZmNvdW50aW5nL3BhZC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoc2lnaW50X2hhbmRsZXJfc2lnaGFuZGxlcik6CgkgICogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6IChtYWluKToKCSAgRG9jIHVwZGF0ZXMuCgkgIEFkZGVkIGRvYyBhYm91dCBjbG9jay4KCSAgcmVtb3ZlZCBnc3RfYmluX2l0ZXJhdGVfcmVjdXJzZV91cCgpLCBtYXJrZWQgbWV0aG9kcwoJICBmb3IgcmVtb3ZhbC4KCSAgRml4IG1vcmUgdGVzdHN1aXRlcy4KCjIwMDUtMDMtMDkgMTc6Mjg6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBGaXggX3BhZF9nZXRfZGlyZWN0aW9uIHdydCBnaG9zdHBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2RpcmVjdGlvbiksCgkgIChfZ3N0X3BhZF9kZWZhdWx0X2ZpeGF0ZV9mb3JlYWNoKSwgKGdzdF9wYWRfY29sbGVjdHYpLAoJICAoZ3N0X3BhZF9jb2xsZWN0X3ZhbGlzdCk6CgkgICogdGVzdHN1aXRlL2JpbnMvaW50ZXJmYWNlLmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9hdWRpb3NjYWxlLmM6ICh0ZXN0X2NhcHMpOgoJICAqIHRlc3RzdWl0ZS9jYXBzL2NhcHMuYzogKHRlc3QxKSwgKHRlc3QyKSwgKHRlc3QzKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9kZXNlcmlhbGl6ZS5jOiAobWFpbik6CgkgICogdGVzdHN1aXRlL2NhcHMvZW51bWNhcHMuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jYXBzL2ZpbHRlcmNhcHMuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jYXBzL2ludGVyc2VjdDIuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jYXBzL3JhbmRvbS5jOiAobWFpbik6CgkgICogdGVzdHN1aXRlL2NhcHMvcmVuZWdvdGlhdGUuYzogKG15X2ZpeGF0ZSksIChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9zZXRzLmM6IChjaGVja19jYXBzKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9zaW1wbGlmeS5jOiAoY2hlY2tfY2FwcyksIChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9zdWJ0cmFjdC5jOiAoY2hlY2tfY2Fwcyk6CgkgIEZpeCBfcGFkX2dldF9kaXJlY3Rpb24gd3J0IGdob3N0cGFkcy4KCSAgRml4IGNhcHMgdGVzdHN1aXRlLgoKMjAwNS0wMy0wOSAxNjoxMDo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSogY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9zY2hlZHVsZXJzL2VudHJ5c2NoZWR1bGVyLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2dzdGJhc2ljc2NoZWR1bGVyLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2JpbnMvaW50ZXJmYWNlLmM6CgkqIHRlc3RzdWl0ZS9iaW5zL2ludGVyZmFjZS5jOgoJICBBZGRlZCBHc3RCaW4gdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZGVkIEdzdEJpbiB0ZXN0LgoJICBBZGRlZCBHc3RTeXN0ZW1DbG9jayB0ZXN0LgoJICBJbXBsZW1lbnRlZCBjbG9jayBkaXN0cmlidXRpb24gY29kZSBpbiBHc3RCaW4uCgkgIEltcGxlbWVudGVkIGl0ZXJhdGUgc2lua3MgbWV0aG9kIGZvciBmdXR1cmUgdXNlLgoJICBSZWFycmFuZ2VkIGdzdGVsZW1lbnQuaAoJICBGaXggR3N0SXRlcmF0b3IgY29tcGFyaXNvbiBidWcuCgkgIE1vdmVkIHNvbWUgY29kZSB0byBHc3RQaXBlbGluZSwgbW9zdGx5IGNsb2NraW5nIHJlbGF0ZWQuCgoyMDA1LTAzLTA5IDExOjA4OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQnVtcCB2ZXJzaW9uIG51bWJlciwgd2UncmUgbm93IDAuOS4wCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fYWRkKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmUpLAoJICAoZ3N0X2Jpbl9nZXRfYnlfbmFtZV9yZWN1cnNlX3VwKToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19pZF9yZWYpLCAoZ3N0X2Nsb2NrX2lkX3VucmVmKSwKCSAgKGdzdF9jbG9ja19pZF9jb21wYXJlX2Z1bmMpLCAoZ3N0X2Nsb2NrX2lkX3dhaXQpLAoJICAoZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmMpLCAoZ3N0X2Nsb2NrX2luaXQpLAoJICAoZ3N0X2Nsb2NrX2FkanVzdF91bmxvY2tlZCksIChnc3RfY2xvY2tfZ2V0X3RpbWUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfaW5pdCk6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3RwYWQuYzogKF9nc3RfcGFkX2RlZmF1bHRfZml4YXRlX2ZvcmVhY2gpLAoJICAoZ3N0X3BhZF9jb2xsZWN0diksIChnc3RfcGFkX2NvbGxlY3RfdmFsaXN0KSwgKGdzdF9wYWRfcXVlcnkpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQnVtcCB2ZXJzaW9uIG51bWJlciwgd2UncmUgbm93IDAuOS4wCgkgIEFkZCBmdXR1cmUgZGVidWdnaW5nIGNhdGVnb3J5LgoJICBGaXggTlVMTCBfdW5yZWYoKSBpbiBfZ2V0X2J5X25hbWVfcmVjdXJzZV91cAoJICBSZWFycmFuZ2UgZ3N0cGFkLmguCgkgIFVwZGF0ZSBzb21lIGRvY3MuCgoyMDA1LTAzLTA4IDE3OjQyOjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZWxlbWVudHMvZ3N0YWdncmVnYXRvci5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0bWQ1c2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0bXVsdGlmaWxlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RzaGFwZXIuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHN0YXRpc3RpY3MuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogZ3N0L2dzdHRocmVhZC5jOgoJKiBnc3Qvc2NoZWR1bGVycy9nc3RiYXNpY3NjaGVkdWxlci5jOgoJKiBnc3Qvc2NoZWR1bGVycy9nc3RvcHRpbWFsc2NoZWR1bGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0YWdncmVnYXRvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtZDVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzaGFwZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzdGF0aXN0aWNzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIFJlbW92ZSB0aHJlYWRzYWZlIHByb3BlcnRpZXMuIEZpeCBlbGVtZW50cyBiZWNhdXNlIEdPYmplY3QgY29tcGxhaW5zIHdoZW4gaW5zdGFsbGluZyBhIHByb3BlcnR5IGJlZm9yZSBkZWNsYXJpbmcgYSBzZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVtb3ZlIHRocmVhZHNhZmUgcHJvcGVydGllcy4gRml4IGVsZW1lbnRzIGJlY2F1c2UgR09iamVjdAoJICBjb21wbGFpbnMgd2hlbiBpbnN0YWxsaW5nIGEgcHJvcGVydHkgYmVmb3JlIGRlY2xhcmluZyBhCgkgIHNldC9nZXRfcHJvcGVydHkgaGFuZGxlci4KCSAgUmVhcnJhbmdlIGdzdGVsZW1lbnQuaCBmaWxlLCB1c2UgU1RBVEUgbWFjcm9zIGZvciBzdGF0ZSBsb2Nrcy4KCSAgRnJlZSBtdXRleGVzIGluIHRoZSBmaW5hbGl6ZSBtZXRob2QgaW5zdGVhZCBvZiBkaXNwb3NlLgoKMjAwNS0wMy0wOCAxNTo1NzoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZGVkIHBhcmVudGFnZSBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdG9iamVjdC5jOiAoU1RBUlRfVEVTVCksIChnc3Rfb2JqZWN0X3N1aXRlKToKCSAgKiBnc3QvZ3N0dGhyZWFkLmM6IChnc3RfdGhyZWFkX3JlbGVhc2VfY2hpbGRyZW5fbG9ja3MpOgoJICBBZGRlZCBwYXJlbnRhZ2UgY2hlY2suCgkgIEZpeCBidWlsZCBvZyBHc3RUaHJlYWQgYWdhaW4uCgoyMDA1LTAzLTA4IDE0OjM4OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9jcyB1cGRhdGVzLCBjbGVhbiB1cCBzb21lIGhlYWRlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY29udmVudGlvbnMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0b2JqZWN0LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXJlbGF0aW9ucy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGFuZGFyZHMudHh0OgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9hZGQpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX3JlbW92ZSksIChnc3RfYmluX2l0ZXJhdGVfcmVjdXJzZSksCgkgIChnc3RfYmluX2dldF9ieV9uYW1lKSwgKGdzdF9iaW5fZ2V0X2J5X2ludGVyZmFjZSksCgkgIChnc3RfYmluX2l0ZXJhdGVfYWxsX2J5X2ludGVyZmFjZSk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSksIChnc3RfZWxlbWVudF9zZXRfbG9vcF9mdW5jdGlvbik6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpLCAoZ3N0X29iamVjdF9yZWYpLAoJICAoZ3N0X29iamVjdF91bnJlZiksIChnc3Rfb2JqZWN0X3NpbmspLCAoZ3N0X29iamVjdF9kaXNwb3NlKSwKCSAgKGdzdF9vYmplY3RfZGlzcGF0Y2hfcHJvcGVydGllc19jaGFuZ2VkKSwgKGdzdF9vYmplY3Rfc2V0X25hbWUpLAoJICAoZ3N0X29iamVjdF9zZXRfcGFyZW50KSwgKGdzdF9vYmplY3RfdW5wYXJlbnQpLAoJICAoZ3N0X29iamVjdF9jaGVja191bmlxdWVuZXNzKToKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIERvY3MgdXBkYXRlcywgY2xlYW4gdXAgc29tZSBoZWFkZXJzLgoJICBGcmVlIGl0ZXJhdG9ycyBpbiBHc3RCaW4uCgkgIEdzdE9iamVjdCBpcyBub3cgbG9va2luZyBnb29kLgoKMjAwNS0wMy0wNyAxODozMzozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrLzogQWRkZWQgY2hlY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay8uY3ZzaWdub3JlOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dzdC1saWJzLy5jdnNpZ25vcmU6CgkgICogY2hlY2svZ3N0LWxpYnMvZ2RwLmM6IChTVEFSVF9URVNUKSwgKGdzdF9vYmplY3Rfc3VpdGUpLCAobWFpbik6CgkgICogY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogY2hlY2svZ3N0L2dzdGJ1cy5jOiAocG91bmRfYnVzX3dpdGhfbWVzc2FnZXMpLCAocHVsbF9tZXNzYWdlcyksCgkgIChTVEFSVF9URVNUKSwgKGdzdGJ1c19zdWl0ZSksIChtYWluKToKCSAgKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoU1RBUlRfVEVTVCksIChnc3RfY2Fwc19zdWl0ZSksIChtYWluKToKCSAgKiBjaGVjay9nc3QvZ3N0ZGF0YS5jOiAoU1RBUlRfVEVTVCksICh0aHJlYWRfcmVmKSwgKHRocmVhZF91bnJlZiksCgkgIChnc3RfZGF0YV9zdWl0ZSksIChtYWluKToKCSAgKiBjaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzogKG1ha2VfbGlzdF9vZl9pbnRzKSwgKFNUQVJUX1RFU1QpLAoJICAoYWRkX2ZvbGRfZnVuYyksIChnc3RpdGVyYXRvcl9zdWl0ZSksIChtYWluKToKCSAgKiBjaGVjay9nc3QvZ3N0b2JqZWN0LmM6IChnc3RfZmFrZV9vYmplY3RfZ2V0X3R5cGUpLCAoU1RBUlRfVEVTVCksCgkgICh0aHJlYWRfbmFtZV9vYmplY3QpLCAodGhyZWFkX25hbWVfb2JqZWN0X2RlZmF1bHQpLAoJICAoZ3N0X29iamVjdF9uYW1lX2NvbXBhcmUpLCAoZ3N0X29iamVjdF9zdWl0ZSksIChtYWluKToKCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6IChTVEFSVF9URVNUKSwgKHRocmVhZF9saW5rX3VubGluayksCgkgIChnc3RfcGFkX3N1aXRlKSwgKG1haW4pOgoJICAqIGNoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfbG9nX21lc3NhZ2VfZnVuYyksCgkgIChnc3RfY2hlY2tfbG9nX2NyaXRpY2FsX2Z1bmMpLCAoZ3N0X2NoZWNrX2luaXQpOgoJICAqIGNoZWNrL2dzdGNoZWNrLmg6CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzogKHNldHVwX3BpcGVsaW5lKSwKCSAgKHJ1bl9waXBlbGluZSksIChTVEFSVF9URVNUKSwgKHNpbXBsZV9sYXVuY2hfbGluZXNfc3VpdGUpLCAobWFpbik6CgkgIEFkZGVkIGNoZWNrcy4KCjIwMDUtMDMtMDcgMTg6Mjk6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0aXRlcmF0b3IuKjogQWRkZWQgbWlzc2luZyBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6IChnc3RfaXRlcmF0b3JfaW5pdCksIChnc3RfaXRlcmF0b3JfbmV3KSwKCSAgKGdzdF9saXN0X2l0ZXJhdG9yX25leHQpLCAoZ3N0X2xpc3RfaXRlcmF0b3JfcmVzeW5jKSwKCSAgKGdzdF9saXN0X2l0ZXJhdG9yX2ZyZWUpLCAoZ3N0X2l0ZXJhdG9yX25ld19saXN0KSwKCSAgKGdzdF9pdGVyYXRvcl9wb3ApLCAoZ3N0X2l0ZXJhdG9yX25leHQpLCAoZ3N0X2l0ZXJhdG9yX3Jlc3luYyksCgkgIChnc3RfaXRlcmF0b3JfZnJlZSksIChnc3RfaXRlcmF0b3JfcHVzaCksIChmaWx0ZXJfbmV4dCksCgkgIChmaWx0ZXJfcmVzeW5jKSwgKGZpbHRlcl91bmluaXQpLCAoZmlsdGVyX2ZyZWUpLAoJICAoZ3N0X2l0ZXJhdG9yX2ZpbHRlciksIChnc3RfaXRlcmF0b3JfZm9sZCksIChmb3JlYWNoX2ZvbGRfZnVuYyksCgkgIChnc3RfaXRlcmF0b3JfZm9yZWFjaCksIChmaW5kX2N1c3RvbV9mb2xkX2Z1bmMpLAoJICAoZ3N0X2l0ZXJhdG9yX2ZpbmRfY3VzdG9tKToKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgQWRkZWQgbWlzc2luZyBmaWxlcy4KCjIwMDUtMDMtMDcgMTg6Mjc6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE1ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnZlbnRpb25zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RvYmplY3QudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXJlbGF0aW9ucy50eHQ6CgkqIGV4YW1wbGVzL21peGVyL21peGVyLmM6CgkqIGV4YW1wbGVzL3RocmVhZC90aHJlYWQuYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvYXV0b3BsdWcvZ3N0c2VhcmNoZnVuY3MuYzoKCSogZ3N0L2F1dG9wbHVnL2dzdHNwaWRlci5jOgoJKiBnc3QvYXV0b3BsdWcvZ3N0c3BpZGVyaWRlbnRpdHkuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdGNwdS5jOgoJKiBnc3QvZ3N0ZGF0YS5jOgoJKiBnc3QvZ3N0ZGF0YS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0bWVtY2h1bmsuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHByb2JlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGdzdC9nc3RzY2hlZHVsZXIuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSogZ3N0L2dzdHRhZy5jOgoJKiBnc3QvZ3N0dGFnaW50ZXJmYWNlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRocmVhZC5jOgoJKiBnc3QvZ3N0dHJhc2hzdGFjay5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVzLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkqIGdzdC9zY2hlZHVsZXJzL2dzdGJhc2ljc2NoZWR1bGVyLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2dzdG9wdGltYWxzY2hlZHVsZXIuYzoKCSogbGlicy9nc3QvYnl0ZXN0cmVhbS9ieXRlc3RyZWFtLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwby9uYi5wbzoKCSogcG8vcnUucG86CgkqIHRlc3RzL29sZC9leGFtcGxlcy9taXhlci9taXhlci5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvdGhyZWFkL3RocmVhZC5jOgoJKiB0ZXN0cy90aHJlYWRzdGF0ZS90aHJlYWRzdGF0ZTIuYzoKCSogdG9vbHMvZ3N0LWNvbXBwcmVwLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LW1kNXN1bS5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBGaXJzdCBUSFJFQURFRCBiYWNrcG9ydCBhdHRlbXB0LCBmb2N1c2luZyBvbiBhZGRpbmcgbG9ja3MgYW5kIG1ha2luZyBzdXJlIHRoZSBBUEkgaXMgdGhyZWFkc2FmZS4gTmVlZHMgbW9yZSB3b3JrLiBNb3IuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpcnN0IFRIUkVBREVEIGJhY2twb3J0IGF0dGVtcHQsIGZvY3VzaW5nIG9uIGFkZGluZyBsb2NrcyBhbmQKCSAgbWFraW5nIHN1cmUgdGhlIEFQSSBpcyB0aHJlYWRzYWZlLiBOZWVkcyBtb3JlIHdvcmsuIE1vcmUgZG9jcwoJICBmb2xsb3cgdGhpcyB3ZWVrLgoKMjAwNS0wMi0yNSAwMDoxMDowNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBhbm90aGVyIG5vLWRlYnVnIGJ1aWxkIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYW5vdGhlciBuby1kZWJ1ZyBidWlsZCBmaXgKCjIwMDUtMDItMjQgMjM6NDE6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3NjaGVkdWxlcnMvZmFpcmNvdGhyZWFkcy5jOgoJICBkaXNhYmxlIGRlYnVnIGJ1aWxkIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlzYWJsZSBkZWJ1ZyBidWlsZCBmaXgKCjIwMDUtMDItMjQgMTc6MTI6MTkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzLzogTmV3IGZpbGVzLCBnb29kIGZvciBydW5uaW5nIGNvbXBsZXhpdHkgYmVuY2htYXJrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDItMjQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvYmVuY2gtY29tcGxleGl0eS5zY206CgkgICogdGVzdHMvY29tcGxleGl0eS5nbnVwbG90OiBOZXcgZmlsZXMsIGdvb2QgZm9yIHJ1bm5pbmcgY29tcGxleGl0eQoJICBiZW5jaG1hcmtzLgoKMjAwNS0wMi0yNCAxNTozNjoyMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvOiBOZXcgdGVzdCwgc2V0cyB1cCBOIGVsZW1lbnRzLCBhdCBlYWNoIGxldmVsIHRlZWluZyBpbnRvIE0gc3RyZWFtcyBwZXIgZWxlbWVudC4gRWVlZW50ZXJlc3RpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAyLTI0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NvbXBsZXhpdHkuYzogTmV3IHRlc3QsIHNldHMgdXAgTiBlbGVtZW50cywgYXQgZWFjaCBsZXZlbAoJICB0ZWVpbmcgaW50byBNIHN0cmVhbXMgcGVyIGVsZW1lbnQuIEVlZWVudGVyZXN0aW5nLgoKMjAwNS0wMi0yNCAxMjozMToxMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvbWFzc19lbGVtZW50cy5nbnVwbG90OiBnbnVwbG90IGZpbGUgZm9yIHRoZSBtYXNzX2VsZW1lbnRzIGJlbmNobWFyay4gUnVuIGFzIGdudXBsb3QgbWFzc19lbGVtZW50cy5nbnVwbG90ID4gZm9vLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAyLTI0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL21hc3NfZWxlbWVudHMuZ251cGxvdDogZ251cGxvdCBmaWxlIGZvciB0aGUgbWFzc19lbGVtZW50cwoJICBiZW5jaG1hcmsuIFJ1biBhcyBnbnVwbG90IG1hc3NfZWxlbWVudHMuZ251cGxvdCA+IGZvby5wcywgYWZ0ZXIKCSAgcnVubmluZyBiZW5jaC1tYXNzX2VsZW1lbnRzLnNjbS4KCSAgKiB0ZXN0cy9iZW5jaC1tYXNzX2VsZW1lbnRzLnNjbTogTmV3IHNjcmlwdCwgcnVucyBtYXNzX2VsZW1lbnRzCgkgIGZvciB2YXJpb3VzIG51bWJlcnMgb2YgaWRlbnRpdGllcywgb3V0cHV0dGluZyB0aGUgcmVzdWx0cyB0byBhCgkgIGZpbGUuIFJlcXVpcmVzIGd1aWxlIDEuNi4gSnVzdCBmb3IgdGVzdGluZy4KCjIwMDUtMDItMjMgMTU6MTQ6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3NjaGVkdWxlcnMvZmFpcnNjaGVkdWxlci5jOgoJICBvbmUgbW9yZSBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG9uZSBtb3JlIGZpeAoKMjAwNS0wMi0yMyAxNTowNjozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9zY2hlZHVsZXJzL2ZhaXJzY2hlZHVsZXIuYzoKCSAgY29tcGlsZSB3aXRoIGRlYnVnIGRpc2FibGVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb21waWxlIHdpdGggZGVidWcgZGlzYWJsZWQKCjIwMDUtMDItMjIgMTY6MzQ6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkgIGh1bnRpbmcgc2Vhc29uIG9uIDAuOSBpcyBub3cgT1BFTgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaHVudGluZyBzZWFzb24gb24gMC45IGlzIG5vdyBPUEVOCgo=